Commit Graph

9 Commits

Author SHA1 Message Date
Eli Barzilay
c5b3317daf Make `enter!' go into a module even if there was an error when it was instantiated.
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.
2011-09-16 11:31:41 -04:00
Vincent St-Amour
e61d472ed3 Fix xrepl tests. 2011-09-13 17:29:47 -04:00
Eli Barzilay
6e50ecad99 Add $1', $2', ..., `$5' as last-value references. 2011-08-26 09:42:56 -04:00
Eli Barzilay
cda4479d1e Hold the saved values weakly. 2011-08-26 09:10:46 -04:00
Eli Barzilay
6203f53ef6 Syntax-based implementation for saved values, finally working. 2011-08-26 05:26:46 -04:00
Eli Barzilay
2bc2050c08 Fix when showing the description of a module.
Set `current-load-relative-directory' to the path of the module file so
paths that it resolves in the description (in `describe-modeul') are not
bogus.
2011-08-22 07:49:49 -04:00
Eli Barzilay
e52e7defae Much improved `wrapped-output'. 2011-08-02 16:56:02 -04:00
Eli Barzilay
7585edbcb6 xrepl improvments:
* a single function to set up all environment parameters.

* improve `getarg's treatment of default thunk

* Add an error display handler that doesn't show the context and instead
  add a ,bt command to show it.
2011-07-29 07:29:29 -04:00
Eli Barzilay
f5e53de4d9 XREPL tests.
Not too much, but already tests large parts of sensitive code.  Caught a
bug where ,top would use (enter! #f) but enter grabbed the wrong
namespace since it was instantiated in the wrong namespace.
2011-07-19 16:39:15 -04:00