[racket-dev] syntax-property guards? (was: Re: The Stepper strikes again)
On Aug 13, 2011, at 10:44 AM, John Clements wrote:
>
> Adding dev to followups, hope that's okay with all three of you.
>
> On Aug 12, 2011, at 7:15 PM, Eli Barzilay wrote:
>
>> A few seconds ago, Matthias Felleisen wrote:
>>>
>>> This sounds wrong. The only way there can be a dependency is via
>>> require. So how can it not be checkable, never mind copy or
>>> hand-coding.
>>
>> The stepper has some function that annotates syntaxes with a stepper
>> specific value. Stephen wanted to use this function but couldn't
>> because there was a dependency cycle. So to "resolve" it, he copied
>> the function into `racket/private/promise' -- so now there's a bit of
>> stepper code that is duplicated in the core. The duplication is
>> obvious problem #1. The more subtle problem is the existence of code
>> in the core that has no meaning without the stepper.
>
> I'm coming a bit late to this party, but I disagree with at least some of this.
>
> Actually, I want to disagree mostly with the "more subtle problem."
>
> To start with, here's the basic motivating change to the code (lots like this):
>
> - (defsubst (~and x ...) (~ (and (! x) ...)) ~and *and)
> + (defsubst (~and x ...) (hidden-~ (and (hidden-! x) ...)) ~and *and)
One more minor aside I should have mentioned: Stephen's use of a macro here reads *much more nicely* than the way the rest of the stepper annotations explicitly inject the annotations using with-syntax; when I get time, I want to adopt this approach elsewhere.
Nice!
John
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 4624 bytes
Desc: not available
URL: <http://lists.racket-lang.org/dev/archive/attachments/20110813/b4b8632b/attachment.p7s>