mit-scheme-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [MIT-Scheme-devel] interpreted runtime broken


From: Taylor R Campbell
Subject: Re: [MIT-Scheme-devel] interpreted runtime broken
Date: Wed, 12 Jun 2013 03:10:48 +0000
User-agent: IMAIL/1.21; Edwin/3.116; MIT-Scheme/9.1.1

   Date: Tue, 11 Jun 2013 18:58:27 -0700
   From: Matt Birkholz <address@hidden>

   Seriously: what does Scheme48 do "right", and does it have anything to
   do with our need for a release this time *or* last?

The Scheme48 compiler and static linker (`SF/LIAR and DUMP-BAND') are
more or less portable Scheme and clearly separated from the run-time
library and the rest of the system.

You can load a bootstrap compiler and linker into ~any version of
Scheme48, or any of various other Schemes (although some of this has
bitrotted because it wasn't exercised for a while), in order to build
the run-time library, compiler, and linker to make a Scheme48 image
(`all.com').

Notably, the language used in the run-time library, user interface
(REPL and stuff), &c., is independent of the host compiler's concept
of macros.  If the run-time library depended on a hairy *PARSER macro,
the bootstrap compiler (not the host compiler) would load in the
source code for the current version of the *PARSER macro -- not
whatever the host compiler had baked into it when it was built a
decade ago.

Whether or not we make it easy to bootstrap MIT Scheme from other
Schemes, we ought to make it easy to load a bootstrap toolchain -- at
least the macro expander and a portable fasdump, if not SF and LIAR
too -- into ~any version of MIT Scheme to build the rest of the
system.

   I *like* the idea of a fasdump/fasload written in Scheme.  It might
   be fun to extend it into a customizable pickler of the sort for
   which Joe was looking.

For that purpose, I think effort would be better expended on support
for ASN.1 or protocol buffers or whatnot.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]