3.9 vs. 3.10 : Closures, fixTemps
Mathieu Suen
mathk.sue at gmail.com
Wed Dec 19 09:11:49 UTC 2007
Hi
On Dec 19, 2007, at 9:12 AM, Andreas Raab wrote:
> Philippe Marschall wrote:
>>> Concerning speed: When doing an [Object2 compileAll] timeToRun
>>> (Object2
>>> being the partial copy of class Object that NewCompiler was able
>>> to hand
>>> me) I ended up with 1444 msecs for Compiler and 4020 msecs for
>>> NewCompiler. Unless I'm mistaken this is an improvement over the
>>> last
>>> version I tried which was roughly 4x slower (this is still 2.8x
>>> slower
>>> but it's a definitive improvement).
>> I wasn't talking about compilation speed. What's really limiting for
>> bigger projects is not the speed of the compiler but PackageInfo
>> which
>> makes Monticello slow. I was talking about execution speed.
>
> I see. Has anyone measured the performance of the micro and macro
> benchmarks with the entire system compiled for using closures? I'm
> particularly interested in the macro benchmarks.
>
>>>> You should ask Marcus about what the current status exactly is.
>>>> Or Klaus.
>>> It would be a big step if it were possible to recompile Squeak
>>> successfully
>> The NewCompiler images from Marcus do this since a long time ago. See
>> the Recompiler class.
>
> Ah, good.
>
>>> and perhaps even bytecode-identically.
>> Nah, NewCompiler in certain circumstances generates marginally more
>> efficient bytecode.
>
> This may actually be worthwhile "undoing" simply for being able to
> verify correctness.
What we do with Markus is recompiling the complete image with the
newcompiler.
The image remain stable so we are quite sure that the compiler give
correct bytecode.
>
>
>>>>> And, do you know of any energy focused on improving the existing
>>>>> alternatives?
>>>> What alternatives?
>>> The compiler that's actually being used. The one that's 3x
>>> faster ;-)
>> The one that's causing so much trouble in Seaside? The that gives you
>> this cool C++ feeling bugs where you spend two hours trying to find
>> out why your block arguments are all messed up and you think you went
>> crazy? And then suddenly you add a lot of #fixTemps everywhere until
>> it works?
>
> Am I missing a smiley somewhere? You are describing properties that
> apply to NewCompiler just as well if you disable closure compilation
> and there is really no reason whatsoever why a working closure
> solution couldn't be adopted to the current compiler (which would
> mitigate the risk factors of adoption dramatically). Just like I was
> saying in the part you'd snipped away I'd be quite interested in
> adopting a working solution (which doesn't strike me as hard given
> the simplistic nature of the current compiler).
>
> BTW, since you phrase it as such a big deal, is anyone using
> NewCompiler with Seaside? If it is really as problematic as you make
> it above I'd expect to see users of Seaside using it. Do they? If
> so, what's the practical experience?
>
> Cheers,
> - Andreas
>
Mth
More information about the Squeak-dev
mailing list
|