Not sure if this is sacrilege, but... anybody know of a "meta-Scheme" that would be a lowest-common-denominator/logical-intersection (in fact, not just in theory, so code just works) of Scheme among popular Schemes? I want to write meta-Scheme code and have it be valid (and ideally equivalent) in PLT, Gambit, Bigloo, etc. This would be for a kernel with SRFIs, and is explicitly ignoring / not using non-SRFI libraries that might come with the individual platforms.

Or is this just a dumb idea? Thanks :-)

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

I'll wager a guess

The R5RS Scheme specification (oh, and alias car with mcar for PLT scheme)??

only a partial solution

I didn't explain myself well most likely. While there's the RnRS things, not all Schemes-that-I-care-about follow it closely enough to make it useful. Example: modules.

(Maybe it is all only a problem with Schemes-that-I-care-about more than anything, and nobody else cares about those-Schemes :-)

Not meta?

This sounds not so much ‘meta’ (which I would take prima facie to mean something like a generator or preprocessor for Scheme code) as ‘portable’. It seems quite similar to dpmulligan's earlier question. (I guess that this is a popular niche that needs to be filled!)

thanks for the rephrasing

indeed, portability.


Being not a kernel, but a far from minimalist extension of standard scheme, SLIB isn't an answer to your question, but maybe it's an answer to your need. Take a look at srfi-96, the SLIB prerequisities.

It covers low-level macros (basically, all of them), a common basis for accessing srfis 9, 23, and 63, and a more adequate interface to the filesystem.


hm, i haven't found Bigloo claiming to support it yet, drat.

edit: oh the Bigloo site doesn't mention it, but the SRFI-96 site links to code for Bigloo. go figure.

Mapping sweet spots

As an aside, I ran into a USENET post, subject: Scheme 9 from Empty Space, of Tom Lord's a while ago, asking for not one, but the map to a whole kingdom of meta-Schemes:

There's a hint of an interesting meta-project and meta-meta-project there.

The meta-project would be to develop really nicely coded Scheme implementations, each of which hit a distinct sweet-spot in the design space. E.g., one implementation that aims to be the smallest (an SIOD follow-up). Another that aims to be the hottest pureinterpreter (an SCM replacement). Another that aims to be the tightest effective to-C compiler. Another that aims to be an optimizing to-C compiler. Another that aims to be an easilly retargetted native compiler. Factor JIT into the list. Etc.

The meta-meta-project would be to call out what those sweet-spots are (the list above is speculative and I'm sure I'd change it if called upon to commit to one).

A meta-meta-meta project might be to try to float a common run-time system out of all that so that extensions in languages other than Scheme would have a common target for "language bindings" to Scheme.

As an aside yet further: Plan9 does seem to attract a lot of Scheme implementations, doesn't it?