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

Re: Harlequin 1.2 still available?



On Mon, 5 Jun 2000, Maury Markowitz wrote:
> "Scott McKay" <swm@mediaone.net> wrote in message
> Rhv_4.37850$Ft1.1955916@typhoon.ne.mediaone.net">news:Rhv_4.37850$Ft1.1955916@typhoon.ne.mediaone.net...
> 
> > During active development, you can set the compilation mode
> > to a "looser" mode in which, when you do Project->Build, the
> > compiler figures out which things have changes and compiles
> > just those things and any downstream things that might be
> > affected.  This can greatly improve the compilation time for
> > Project->Build.
> 
>  Forgive the stupid question: isn't this how all make systems work?

If I remember/understand correctly, the "compile just enough" operates not
just at the level of file timestamps (like usual make systems) but also at
the level of individual definitions after parsing.  I.e., if you've
changed only a couple of definitions in a file, only those ones (and any
which depend on them) will be processed after parsing.

You could get almost the same effect by storing each definition in a
separate /source record/.  The Dylan language design allows for what we
would think of as "source files" actually just being views into a
database.  FunDev's "composite buffers" produced by commands like "Edit
Methods" give you a taste of how this would work.

> > and the do Project->Start.  Play with your project for a while,
> > then use the Application->Pause to pause it.  You can now ...
> > [Link-n-Go]
> 
>   Ahhh, Link-n-Go, the mysterious vanishing feature.  Cool, I didn't know
> the Dylan systems offered this.

I think only FunDev does just now (i.e., not Mindy or Gwydion's d2c --
dunno about the fabled Apple Dylan tech. release).  BTW, I think in 2.0
you don't actually even have to pause the application manually -- the
environment pauses and resumes it for you. 

> >  - The code generated for loose mode compilation is a little
> >    slower than tight mode compilation
> 
>   That seems odd - isn't this just a message to the runtime to move some
> pointers?  Why is the generated code different?

Without going into detail (which I don't fully understand ;-), I think
that in "Production Mode" the compiler can sometimes optimise away the
layer of pointers it needs for interactive recompilation.  This is why
there are more restrictions on what you can do interactively in a
Production-Mode app.

HTH,
Hugh




Follow-Ups: References: