[R6RS] Scripts and toplevel code

Matthew Flatt mflatt at cs.utah.edu
Fri Aug 18 00:22:37 EDT 2006


At Thu, 17 Aug 2006 14:33:08 -0400, Anton van Straaten wrote:
> Kent wrote:
> >>#!/usr/bin/env scheme-script
> >>#!r6rs
> >>(script <identifier>
> >>  (import ...)
> >>  <library body>)
> >>
> >>where <identifier> names the entry point.  Change it into a library by
> >>changing "script" to "library", replacing <identifier> with the name
> >>of the library and adding an export clause.  This can be done with an
> >>editor macro.
> > 
> > 
> > It's a shame this can't be converted to a library form via a Scheme
> > macro.
> 
> A proposal for R7RS, to fix the underlying issue here, and restore the 
> full power of Scheme macros:
> 
> It could be specified that R7RS implementations provide a partial 
> expansion tool, which expands any code outside library forms to library 
> forms, using a set of (Scheme) macros specified when the tool is run. 
> It would be an error for any code to fail to expand to a library form. 
> "Dumb" text processing tools (sed et al) could then operate on this 
> partially expanded code.

Do you mean to attach an initial "language" to the code, expand the
language spec plus code to a `library' form with a fixed body syntax,
and then have tools process only expanded code? In that case, you need
a reliable way to specify languages, but maybe the library system
itself could help with that. In any case, it sounds plausible to me. :)

Matthew




More information about the R6RS mailing list