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.
Afficher les réponses par date