Scheme from Scratch - Royal Scheme Stall

Clearly the Royal Scheme project has stalled. I have real work and plenty of it filling my brain. Hopefully Royal Scheme can get going again in the future but I don’t know when that might be.

Comments

Have something to write? Comment on this article.

kbob November 23, 2010

Hi, Peter. Life gets in the way sometimes. I am also slammed at work these days.

Here are some things to read in the meanwhile.

SBCL - a Sanely Bootstrappable Common Lisp
Describes the bootstrap process for SBCL.
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.144.4124&rep=rep1&type=pdf

The Strength of Metacircular Virtual Machines: Jikes RVM
Jikes is a Java VM that does indeed evaluate itself. I'm not sure I understood it all, probably need to read it again. Not online to my knowledge; it's Chapter 10 of Beautiful Architecture O'Reilly, ISBN 978-0-596-51798-4.

And finally, an oldie. Smalltalk-80, the Language and Its Interpretation. This book has been out of print for years, but used copies are available from Amazon. I recently re-browsed it. It describes the original Xerox Parc Smalltalk system in gory detail. Source code for a large majority of the system is included. I *think* there's enough info to build an exact clone of Smalltalk-80.

Nick Fitzgerald November 23, 2010

@Kbob, Thanks for the link to the paper on SBCL's implementation! The LOC counts are scary:

  • 90,000 lines of lisp code implementing the 'standard library', excluding the Common Lisp Object System (CLOS);
  • 60,000 lines of lisp code implementing the compiler (and related subsystems, such as the debugger internals);
  • between 10,000 and 20,000 lines of lisp code per architecture backend implementing the code generators and low-level assembly routines;
  • 20,000 lines of lisp code implementing CLOS;
  • 20,000 lines of lisp code implementing contributed modules or 'extras';
  • 35,000 lines of C and assembly code, for services such as signal handling and garbage collection;
  • 30,000 lines of shell and lisp code for regression tests.

See you guys around,

Nick

Have something to write? Comment on this article.