[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [plt-scheme] The same macro problem



On May 24, Matthias Felleisen wrote:
> [...]
On May 24, Robert Bruce Findler wrote:
> [...]

I thought at some point that I should send another message that I
already discussed this with Matthew.  The problem I was encountering
was not during a Swindle revision (this is something I'm still
delaying until I feel more comfortable with all the new toys) but just
encountering loosely similar problems and expecting more "Swindle"
problems in the future.

So, I should just point out one quick conclusion: I was trying to get
to two things: a more dynamic syntax-expansion environment, and
sharing of (run-time) information between it and the normal
enviornment.  It turns out that even after about 4 times I went
through the macros chapter since 200 came out, I didn't get the way
syntax values should be used, and after talking to Matthew I learned
how to do it with `syntax-local-value'.  There is still no sharing of
information between the levels, so I realized that the information
which is kept in such syntax bindings should be only syntactical.

I now need more time to try to use this and get to any conclusions,
the best case would be that in the end I would be able to do
everything I did before that with the new system and the result would
probably be some insight on how all this should be explained so for
the rare cases where it is needed, it is known how to cope with it.
As I told Matthew, this should be very similar to the hygiene problem:
the environment is better in that it makes life generally easier but
leaves a back door for situations where you want un-hygienic macros.
With the dynamism, if you can get away with making the syntactic
environment manipulate only syntactic information and not share it
with the normal level, then that would be great (and just hard enough
to make people think twice before they want to try anything like
that).  The worst case scenario is if there is some problem that can
easily be solved with the old way, but is impossible/very-difficult/
very-unelegant with the new way.  Of course, I'm aware of the
advantages this separation gets and (im)patiently wait for the time
when MzScheme would beat Allegro CL...

-- 
          ((lambda (x) (x x)) (lambda (x) (x x)))          Eli Barzilay:
                  http://www.barzilay.org/                 Maze is Life!