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.
Got mechanics sort of running in sage. Was able to plot and (se ...) from
within the browser notebook interface which was a... strange experience.
See sage-scheme-notes.txt for
installation instructions...
I should either write up a patch or submit a bug/request for a --version
flag for mit-scheme, it needs one!
Todo for scmutils in sage:
Handle multiline inputs properly (now echos a lot)
Handle multiple S-expressions in one notebook cell
Either basic wrappers or reimplementations for (se ...) and the plotting
functions so their results will pop up in the notebook
Interact examples!
Either drop or finish object wrapping... maybe look through the other
interface examples more carefully?
Wrap as an .spkg? Compilation issues on other platforms? Documentation
and tests?
(previous entry)