[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