chicken-hackers
[Top][All Lists]
Advanced

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

Re: [Chicken-hackers] [PATCH] [5] Aggressively reject definitions in exp


From: felix . winkelmann
Subject: Re: [Chicken-hackers] [PATCH] [5] Aggressively reject definitions in expression contexts (#1309)
Date: Wed, 22 Mar 2017 11:36:03 +0100

> On Sat, Feb 25, 2017 at 06:13:48PM +0100, Peter Bex wrote:
> > However, I figured out that the real cause of #1309 is much, much deeper
> > and has to do with a nasty bug in ##sys#canonicalize-body: it invokes
> > "fini" as soon as it sees a non-pair.  However, fini doesn't handle
> > expansions the same way as the body.  For example:
> >
> >   (let () 1 (begin (define blabla 3)) blabla)
> >
> > This will define blabla globally (or trigger an error in CHICKEN 5 with
> > the patch), because the "1" stops the begin from being expanded properly.
> > I fear that this requires a pretty invasive rewrite of
> > ##sys#canonicalize-body.  I'll get back to y'all on that.
>
> Attached is an updated and hopefully final patch set to tackle this bug.
>

Signed off and pushed. I inspected the patches, run the testsuite and
did a few simple checks. Looks good, but there still may be some dark
corners that we don't cover or that break in unexpected ways. But since
this code is quite complex and since we have to fix it anyway, let's see
what happens.

Thanks for the effort, Peter. This must have been quite a piece of work.


felix




reply via email to

[Prev in Thread] Current Thread [Next in Thread]