[gambit-list] Gambit-list Digest, Vol 111, Issue 9

Mikael mikael.rcv at gmail.com
Mon Dec 9 17:08:31 EST 2013

Hi Razvan,

2013/12/9 Răzvan Rotaru <razvan.rotaru at gmail.com>

> Hi,
> Congratulations, and a big thank you. This is great news. I remember
> looking over scheme implementations some time ago, and not being sure
> whether gambit is actually still alive or not (besides bugfixing). Whether
> there's a community around it. Whether somebody is till actively working on
> it and/or supporting it. In the mean time I have learned the answer, and
> I've also found out that things are moving towards multi-core and
> multi-platform (speak: javascript). This is great.
> If I am allowed, I would like to criticize the lack of a "community
> adopted" module system, which I think can have a big (positive) influence
> on the community. My oppinion is that newcomers want to get started
> quickly. And they have stuff to do. They want to tackle the big questions
> later, and get stuff done now. Rick Hickey did put it very nicely: default
> matters. I can't but agree.
> If Black Hole is good enough, I can't but suggest to give it a "pseudo
> standard" status and include it in the distribution (or recommend it as a
> standard module system). And make sure it's handling libraries at least at
> convenient as maven (i.e. auto download and dependency resolution).

Sure Black Hole works as a pseudo standard.

However please note that with benefit, any module system specific stuff can
be contained inside a cond-expand file in each module file, and thus one
and the same module package (repository etc.) can be made to deliver for
Vanilla Gambit and any module system out of the box concurrently, without

(99% of modules use little to no macros in all cases, so module system
specific stuff can this way generally really be located to a cond-expand)

Also however re pseudo standard, please note that Black Hole's present
implementation does not deliver.

> It is incredibly important to have an easy quickstart, and have libraries
> at your fingertips, and get stuff quickly done. This is actually the secret
> recipe of Java (even if they discovered it in the second decade, and the
> core technology still sucks big time, even now). As much as I hate to wake
> a sleeping dragon, I must say that gambit has to make more bold moves and
> decisions and focus on gathering a community around it, if it intends to be
> practical.
> Thanks, and don't kill the critique.
> Razvan
> I'm not sure if and how I can help. If there are ideas out there, I'm open
> to suggestions.

Because you asked, here's one thing:

The public availability of a document per the following is essential in the
design and implementation of a module system, and the current lack of it
makes a key constraint in the same:

If you have some serious spare time to spend, then, carefully go through
the main marco systems out there (define-macro without or with alias
macros, syntax-rules, syntactic closures, syntax-case) and write a document
that describes their respective

   - motivation, function and strengths
   - forms
   - examples of use that illustrate any intricacies like how corner case
   uses play out
   - exactly deterministically the mechanism of expanding them, with
   exactly what state and logics are needed for this and at what points (for
   example, a syntactic tower)
   - how the respective one plays out
      - conceptually and implementationally with the other systems and
      - with typical module system functionality such as identifier
      handling including namespaces
   - any particular features or fundamentals that are required from the
   underlying Scheme implementation

Write it so illustrative and clear that anyone could implement a full
featured expander for a given system, and properly understand the prospects
or issues about a hybrid expander (i.e. one supporting more than one macro

Doing this, you'll help the entire Scheme community a great deal for the
short and long term per the above.

as the documents in circulation currently are

   - the original papers which are purely academic,
   - some sample implementations such as Alexpander which don't do the job
   of documentation and have in themselves little or no educational value,
   - and some partial specialized documentation that don't provide an
   overview and also not a complete picture.

Feel free to share any thoughts on this.

Best regards,
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.iro.umontreal.ca/pipermail/gambit-list/attachments/20131209/1f2550f6/attachment.htm>

More information about the Gambit-list mailing list