The Racket repository
![]() Previously, when trying to `enter!' into a module, an exception would abort the whole thing, leaving the repl where it was. This behavior can be very confusing: > (module foo racket/base (define x 123) (error "bleh!")) > (enter! 'foo) bleh! > x reference to undefined identifier: x > (enter! 'foo) > x 123 Things are a little better with xrepl, since the prompt always indicates the module that you're in. Still, it's unfortunate that a module with an error is more likely to be something you'd want to debug -- and most people are likely to miss the fact that entering a second time will work. So make `enter!' catch exceptions when requiring the module, change the namespace, and then re-raise the exception so the user sees it and is left in the expected namespace. |
||
---|---|---|
collects | ||
doc | ||
man/man1 | ||
src | ||
.gitattributes | ||
.gitignore | ||
.mailmap | ||
README |
The Racket programming language =============================== Important executables: * DrRacket: Racket's integrated development environment (start here!). * Racket: the main command-line entry point for running racket programs and scripts. * GRacket: the GUI-mode Racket executable. * raco: Racket's command-line toolset. More Information ---------------- Racket comes with extensive documentation: use DrRacket's `Help' menu, or run `raco docs'. Also, visit us at http://racket-lang.org/ for more Racket resources. Instructions for building Racket from source are in src/README. License ------- Racket Copyright (c) 2010-2011 PLT Scheme Inc. Racket is distributed under the GNU Lesser General Public License (LGPL). This means that you can link Racket into proprietary applications, provided you follow the rules stated in the LGPL. You can also modify Racket; if you distribute a modified version, you must distribute it under the terms of the LGPL, which in particular means that you must release the source code for the modified software. See doc/release-notes/COPYING.txt for more information.