Journal: Jan 21, 2009

Bryan Newbold, bnewbold@mit.edu
http://web.mit.edu/bnewbold/thesis/

Aha! Found the hook needed to disable error interrupt REPLs in mit-scheme:

(set! standard-error-hook (lambda (x) (begin (warn x) (cmdl-interrupt/abort-top-level))))
For example:
1 ]=> (set! standard-error-hook (lambda (x) (begin (warn x) (cmdl-interrupt/abort-top-level))))

;Value: #f

1 ]=> (car 3)

;Warning: The object 3, passed as the first argument to car, is not the correct type.
;Quit!

1 ]=> 
This makes it much easier for sage to do subprocess interactions. I have a half-working scm scheme interface and now a half-working mit-scheme interface; files for both are in the other folder. I should have a demo server running on SIPB's XVM service tomorrow, maybe if I polish these interfaces I can package them up as optional sage .spkgs. Most importantly, for now only put one S-expression in a scheme notebook cell at a time.

Of course removing the error REPL loop of course takes away excellent functionality from the interactive session... to me a vertically split edwin session with a file *scheme* buffer on the top and REPL output on the bottom is the best way to "do" scheme.

In other news I just learned the vim command I was missing: gq} will rewrap the current paragraph to ~70 columns width; gq will do the same to the current selection in visual mode. FINALLY.

(previous entry)