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

Re: [Scheme-reports] practical matters - CSAN

 | Date: Tue, 23 Aug 2011 21:16:35 -0400
 | From: John Cowan <cowan@x>
 | Alex Shinn scripsit:
 | > Certainly we want to include SLIB libraries.  I think the
 | > most sensible migration path for SLIB would be a separate
 | > tool that generates multiple packages and a repository
 | > directly from the SLIB distribution.  
 | The problem is that SRFI 96, which is the foundation for SLIB,
 | can't be implemented in its entirety in R7RS-small.  In particular,
 | SRFI 96 includes define-macro.

SLIB includes 108 macro-free modules and 27 which define or use

9 of the 27 use scanf, which should be refactored to be macro-free.

2 of the 27 use fluid-let.  SLIB developers have been rewriting
modules to avoid fluid-let; only two remain.

The SLIB promise module is superfluous in WG1-Scheme.

4 of the 27 define macro-systems (macro-by-example, syntax-case,
syntactic-closures, macros-that-work).  These would be eliminated in
favor of WG1-Scheme macros.

Seven implement SRFIs:

  SRFI 0: Feature-based conditional expansion construct
  SRFI 9: Defining Record Types
  SRFI 39: Parameter objects

These 3 are included in WG1-Scheme.

  SRFI 8: receive: Binding to multiple values
  SRFI 11: Syntax for receiving multiple values

Multiple values are addressed in WG1-Scheme.

  SRFI 2: AND-LET*: an AND with local bindings, a guarded LET* special form
  SRFI 61: A more general cond clause

No other SLIB modules uses these 2; they could be dropped without

That leaves only 4 syntax-defining packages: within-database, yasos,
trace, and break; and one package (collect) which uses yasos.

So 95% of SLIB would survive the transition to being macro-free.
SRFI-96 could be amended or superseded.

Scheme-reports mailing list