[gambit-list] Thoughts on Scheme
wsxiaoys.lh at gmail.com
Sat Jan 5 07:16:05 EST 2013
Great post Mikael! So happy to read your thoughts.
On Sat, Jan 5, 2013 at 6:37 PM, Mikael <mikael.rcv at gmail.com> wrote:
> The syntactic-closures based macro systems (syntax-rules/syntax case
> including define-syntax, syntax-rules, let-syntax, letrec-syntax) bring
> incredible complexity and with that low debuggability through a very
> complex identifier concept based a kind of duality of the identifier symbol
> in itself and the syntactic environment in which it is used in a particular
> instance, and brings a complex API for handling macros with this, that by
> nature is not Schemy and not suited for debugging.
> Per came with the suggestions above based on having spent approx 6 months
> fulltime on developing the Black Hole module system, which does hybrid
> define-macro and syntactic closures expansion.
> There might be some caveat I didn't get, but, I'd guess you could actually
> make a macro expander that supports both an alias macro system as per above
> and a syntactic-closures for compatibility with code that uses it, possibly
> by splitting expansion into two expansion phases, thus isolating all the
> identifier-related complexity.
While talking about the syntactic-closures, If we ignore syntax-case, I'll
disagree that it brings "incredible" complexity. I've been uncertain
on syntactic-closures for years, while this Holiday I finally got spare
time reading its implementation in riaxpander/chibi-scheme, I found
the concept of it is quite straight forward. Though I deadly missed an
easy-to-understand, concrete implementation with document for it during
the learning process.
I've cloned such a system in gambit, and keep digging on how to
integrate hygiene with module system and gambit's compiling process.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Gambit-list