[gambit-list] Debugging of invalid generated syntax

Christian christian at pflanze.mine.nu
Sat Dec 31 05:23:46 EST 2005


At 0:52 Uhr -0500 31.12.2005, Marc Feeley wrote:
>On 27-Dec-05, at 6:31 PM, Christian wrote:
>
>>I'm thinking about writing a 'lowlevel' macro-expansion system which
>>tracks source location (as I've mentioned in a mail a few weeks
>>ago). That would help with problem 1 (it would directly show the
>>relevant line).
>>
>>My other suggestions would be:
>>  - (2) show the invalid macro-expanded code in the error message
>>  - (3) would it be feasible to compile the gambit core with `debug ?
>>  - (5) are there hooks into the builtin macro-expander? (to be able to
>>    grab the partially macro-expanded code oneself)
>
>What Gambit really needs is an implementation of syntax-case that 
>tracks source location information.  It has been on my TODO list for 
>a while, and I have a few bits and pieces working, but still far 
>from  a complete implementation.

Are you modifying the portable syntax-case implementation, or writing 
a new implementation, or implementing srfi-72 ?

Could you already provide some code to experiment with (that might at 
least help my understandings)? Do you have an estimation of when it 
will be ready?

I've been hoping to reimplement a middle-sized system (publication 
system for an online journal, currently about 50'000 LOC of own Perl, 
C, XSP and XSLT code) on Gambit by the end of the next summer (and I 
only have about one third of the time till then for working on it). 
Currently there are dangerously many things missing for that: module 
system (but I think I may handle it with chjmodule), an OO system 
(meroon (with macro/debugging improvements? Not having error location 
information in define-method bodies might turn out to be a nightmare) 
or another system), possibly many smaller things ('greedy' macro 
expansion?,..) which need more knowledge of Gambit internals from my 
side. I'm also not yet sure how to handle concurrency, because of the 
issue of C libraries blocking other gambit threads (maybe I'll just 
ignore it for now?, or fall back to a forking or multiprocess 
(Termite?) model?, but would that mean I have to forget interactive 
development and live debugging and resort to a restart-on-changes 
model? And thus *really* have to serialize all continuations?). I 
don't dare to think that I'll also still have to port some server 
libraries from places like scheme underground or SISC or PLT server 
(or peek at their sources and implement new ones).

Is anyone else wanting to do similar things and willing to join efforts?

I'll now just send this mail out, maybe someone should tell me it's impossible.

Christian.



More information about the Gambit-list mailing list