This is the mail archive of the
guile@sources.redhat.com
mailing list for the Guile project.
Re: guile-vm-0.2
Keisuke Nishida <kxn30@po.cwru.edu> writes:
> Mikael Djurfeldt <mdj@mdj.nada.kth.se> writes:
>
> > > I think that's it for now. I want to have support for generalized
> > > `set!', but is it possible?
> >
> > Sure it is---silly me, I've forgotten this completely. This is a bug
> > and should be fixed ASAP. If anyone provides a patch to psyntax.ss,
> > I'll happily receive it. Otherwise, I'll do it myself.
>
> How do you support it? Could you expand a set! form to a corresponding
> setter form at this time? Or do you leave it as it is?
I have now done the former.
> > I think something like this is a good idea, but we'll have to
> > elaborate the details further. When you currently ask for the syntax
> > of a module, the module is expected to provide a *procedure* which is
> > the macro expander. So the code above is not correct in this respect.
> >
> > Actually, what we probably should do is to fix psyntax.ss so that it
> > starts to cooperate for real with the module system. We can do that
> > by extending the syntactic environments (the variable `r' in Dybvig's
> > code) with some object representing the top-level environment. We'll
> > then extend the expander call with an extra parameter to provide this
> > object. Also, the top-level lookup hook should be changed from using
> > the object-property of Guile variable objects to using this syntactic
> > environment instead.
>
> Yes. I hope the next module system includes this fix.
It could actually be instructive to try it already in the current
system. The problem is actually more on the syntax-case side (since
the code isn't module aware) than on the module system side.
> And when I think about macro expansion, I realize that my compiler
> cannot compile all of the current Guile's Scheme code because it
> doesn't support macro objects. When do you plan to replace them by
> syntax-case?
ASAP
My current list is: lexer, GOOPS integration, initiation of module
system design.
This would come towards the end of this list, unless someone else
comes first.