[gambit-list] Continuing my psyntax / syntax-case work
matthastie at gmail.com
Sat Dec 21 03:17:09 EST 2013
Progress on making my aforementioned compiled syntax improvements to psyntax compilation are ongoing.
In the meantime, I have published some alterations to the Gambit shipped syntax-case.scm: a Scheme bootstrapper, some minor alterations to psyntax, and a preliminary implementation of a module loader that treats git submodules of a git repository as 'roots' for module content.
The basic idea is that one should be able to grab scheme module content for immediate use in an application via the addition of git submodules. Use of submodules has the benefit of not introducing a surrogate version system, while it unifies the source configuration of included module content with the main repository in a manner that is unprecedented in other programming languages.
Eventually, I want to use serializable continuations with this system, and I foresee that git clone + submodules may provide an excellent basis for environmental consistency across a network of Gambits.
Nevertheless, I suspect these modifications I'm making to psyntax deviate somewhat from the intended goal of the Gambit distributed version, and so the work is provided in a separate repository:
Let me know if there are juicy bits therein that the community desires, and I'll fork Gambit and issue pull requests as directed.
I think the most important discovery for the community to know of is that the 'quote improvement' patch appears to break ribcage definitions under some circumstances, and specifically breaks support for 'implicit exports'. I found that reversion of the 'quote patch' to the original implementation that quotes everything, regardless of whether they are self-evaluating, repaired the issue. Unfortunately, I was not able to figure out root cause of the problem: it seems entirely reasonable to me that self-evaulating objects should not necessitate quoting.
Another change of mine is simple work towards removal of namespace support. The sc#prop-table is ignorant of namespaced symbols and thus syntax keywords pollute all namespaces. I did do some work towards providing a namespace aware psyntax, but I was not successful at providing complete and reliable functionality. Unfortunate, yes, but modules giveth where namespaces have been taken away.
At this juncture, I think I'll revert to continuing my effort towards complied syntax and modules ... although I concede that the gratuitous alpha conversion is giving me symbol blindness, and I may do work in this area too at some stage.
Please let me know if there is any interest in this work, or additions/directions that the community may find useful. I'm happy to oblige!
More information about the Gambit-list