[plt-scheme] auto check syntax

From: Robby Findler (robby at eecs.northwestern.edu)
Date: Sat May 16 15:50:19 EDT 2009

Check syntax could perhaps use some optimizations, since it seems to
take equally long to color the editor as it does to expand the program
(well, they both take noticeably amounts of time).


On Sat, May 16, 2009 at 2:47 PM, Eli Barzilay <eli at barzilay.org> wrote:
> On May 16, Neil Van Dyke wrote:
>> Eli Barzilay wrote at 05/16/2009 02:50 PM:
>> > On May 16, Neil Van Dyke wrote:
>> >
>> >> Actually, I suspect there is enough information before the variable
>> >> rename occurs that invalidating the existing Check Syntax
>> >> information is not necessary -- just update the name and update the
>> >> positional information for every piece of syntax after the first
>> >> occurrence.
>> >
>> > But (bad) macros can change their behavior based on the names.
>> Drat, I forgot about bad macros.  I suppose one could detect the
>> (unusual?) case of bad macro use and fall back to the slow way of
>> doing things.
> Well, Scheme makes these problems obviously undecidable...
>  (define-syntax (foo stx)
>    (if (something-undecidable)
>      (behave-well)
>      (bad-stuff)))
> The best might be some flag that you set saying "I'm willing to let
> drscheme assume that all macros behave well".  Perhaps another
> approach is to mark one rename, then another, then execute them all in
> one shot.
> But these still require a lot of work, and the only benefit is for the
> (relatively minor) case of doing multiple renames.
>> Or, perhaps full Syntax Check can be sped up, and there's no point
>> in special case updates after source changes like renames.
> The main thing that syntax check is doing is expanding the code.  It
> shouldn't be too expensive.  (The first one is, since it loads the
> scribble indexes.)
> --
>          ((lambda (x) (x x)) (lambda (x) (x x)))          Eli Barzilay:
>                  http://www.barzilay.org/                 Maze is Life!
> _________________________________________________
>  For list-related administrative tasks:
>  http://list.cs.brown.edu/mailman/listinfo/plt-scheme

Posted on the users mailing list.