Yes, this changes. The new expander produces #t instead of #f in that last case.
The old expander has some ordering constraints that are not properly explained anywhere and are difficult to reason about. Those constraints go away in the new expander. At Thu, 26 Mar 2015 15:52:20 -0300, Gustavo Massaccesi wrote: > I'm still not sure that this is related, but in the old system two > equal consecutive marks cancel. But if you compose two markers, the > "composed" mark doesn't cancel when it's applied twice. For example: > > ;--- > #lang racket > (define A (make-syntax-introducer)) > (define B (make-syntax-introducer)) > (define (AB x) (A (B x))) > > (free-identifier=? #'x (A (A #'x))) ;==> #t > (bound-identifier=? #'x (A (A #'x))) ;==> #t > > (free-identifier=? #'x (AB (AB #'x))) ;==> #t > (bound-identifier=? #'x (AB (AB #'x))) ;==> #f > ;--- > > Does this change? (Is this related?) > > Gustavo > > > On Wed, Mar 25, 2015 at 5:32 PM, Matthew Flatt <[email protected]> wrote: > > An update: > > > > http://www.cs.utah.edu/~mflatt/scope-sets-3/ > > > > The write-up is mostly new from section 5 through section 11: > > > > 5 First-Class Definition Contexts > > 6 Rename Transformers > > 7 Modules and Phases > > 8 The Top Level > > 9 The Syntax-Function Zoo > > 10 Compatibility with the Current Racket Expander > > 11 Debugging Support > > > > Section 7 was in the earlier drafts as section 5, but it was wrong. > > Section 10 was formerly 8, but it's revised and expanded. > > > > > > On the implementation side, `make` now completes without error > > (including documentation). It uses about the same space and time as the > > current expander, but just slightly more of each; I'm optimistic about > > further improvement. The core Racket tests pass, but it's not hard to > > find other tests that fail. > > > > Here are the packages that I've forked to address incompatibilities > > (mostly small changes) where the starred ones are new or updated since > > my last report: > > > > compatibility > > drracket > > r5rs > > redex > > compiler * > > macro-debugger * > > racklog > > scribble * > > typed-racket * > > htdp * > > > > While working on performance, I ended up converting the implementation > > of immutable hash tables from AVL trees to HAMTs. The change was a > > substantial improvement for representing scope sets, but most anything > > that uses immutable hash tables can benefit. > > > > After I get more tests passing and update documentation, I'll encourage > > you to try it out --- maybe two weeks from now. > > > > -- > > You received this message because you are subscribed to the Google Groups > "Racket Developers" group. > > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > > To post to this group, send email to [email protected]. > > To view this discussion on the web visit > https://groups.google.com/d/msgid/racket-dev/20150325203205.986B46501BC%40mail-s > vr1.cs.utah.edu. > > For more options, visit https://groups.google.com/d/optout. > > -- > You received this message because you are subscribed to the Google Groups > "Racket Developers" group. > To unsubscribe from this group and stop receiving emails from it, send an > email > to [email protected]. > To post to this group, send email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/racket-dev/CAPaha9OrYjSYM-xuhRNvGjaXcdyHUx0xG5 > ufy4RSD0VDup9%2B%3DA%40mail.gmail.com. > For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups "Racket Developers" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-dev/20150326185658.36F4B6501B0%40mail-svr1.cs.utah.edu. For more options, visit https://groups.google.com/d/optout.
