
Geiser: Emacs modes that conspire to keep the Lisp Machine spirit alive - gphil
http://nongnu.org/geiser/
======
gosub
There's one thing I always wanted to understand about working with image-based
system (like a lisp-machine o smalltalk VMs): when you change a class or a
function, how do you manage the mismatch between the code you have just
written and an already running version. For example: you change the definition
of a function on a live system, and then you go home for the weekend. Monday
morning you notice a background process running that uses that function; how
do you check if the version used is the old one or the new one?

~~~
lispm
You check the stacktrace of the background process and see which function got
called. How you do that depends on the implementation. If you have some handle
to the called function, you can check that against the current definition.
Functions are 'objects' and you can compare them for identity. In real
implementations there also will be some id.

~~~
gosub
Did the function object have a reference to the source object, so that it
would be possible to read the original source until it is garbage collected?

------
rml
scsh hackers might enjoy using geiser-scsh:

[https://github.com/rmloveland/geiser-
scsh](https://github.com/rmloveland/geiser-scsh)

------
wtbob
Very cool! I'm not a Scheme fan (Common Lisp all the way!), but it looks like
some nifty stuff. Nicely done.

------
brudgers
Another Racket friendly Emacs major mode is Greg Hendershot's racket-mode.

[https://github.com/greghendershott/racket-
mode](https://github.com/greghendershott/racket-mode)

------
whitten
I don't think the Lisp Machine actually ran Scheme, did it?

~~~
cpr
No, the two branches (Symbolics and Lisp Machines) ran their own Lisp Machine
Lisp which was a fairly complex melange of MacLisp-derived CommonLisp-
precursor constructs.

Plus it had its own object system (Flavors).

