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

Attachment: smime.p7s
Description: S/MIME cryptographic signature

_________________________________________________
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Reply via email to