[ANN] Exupery 0.14 is released

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
10 messages Options
Reply | Threaded
Open this post in threaded view
|

[ANN] Exupery 0.14 is released

Bryce Kampjes

The major improvement is to the speed of register allocation. I've
fixed a couple of major performance problems so register allocation
takes 50% of compilation time even for the largest methods. Register
allocation now appears to take roughly linear time.

There's still plenty of room to improve compilation time. Every stage
copies the entire intermediate graph to produce the input to the next
stage which is redundant, most stages only change a few places. The
register allocator's liveness analyser still uses Sets to represent
which variables are live rather than bit vectors.

This release can compile cascades, the last missing core language
feature. Exupery still can only compile a handful of the core
primitives, it only compiles #at: for pointer objects. Cascades were
added because they were used more in 3.10, the choice was either
delete 2 system tests or add cascades. I delayed the release to add
cascades.

There's a few bug fixes of old bugs but this release is not noticeably
more reliable than the previous release. It should be a bit more
reliable though, especially when running the new Exupery VM. The new
Exupery VM just has a single bug fix in it.

Here's the benchmarks:
  arithmaticLoopBenchmark 414 compiled  94 ratio: 4.404
  bytecodeBenchmark       726 compiled 264 ratio: 2.750
  sendBenchmark           707 compiled 454 ratio: 1.557
  doLoopsBenchmark        388 compiled 398 ratio: 0.975
  pointCreation           433 compiled 423 ratio: 1.024
  largeExplorers          257 compiled 258 ratio: 0.996
  compilerBenchmark       248 compiled 249 ratio: 0.996
  Cumulative Time         419 compiled 275 ratio  1.519

  ExuperyBenchmarks>>arithmeticLoop              105ms
  SmallInteger>>benchmark                        362ms
  InstructionStream>>interpretExtension:in:for: 6051ms
  Average 612.691

The key benchmark for this release is the last one, compiling
interpretExtension:in:for: which now only takes 6 seconds. With
previous version of the compiler it used to take over 2 minutes
to compile.

The change in times in the other benchmarks are mostly due to
me upgrading from an Athlon 64 2.2GHz to a Core 2 3.0GHz. The
register allocator should be slightly more efficient especially
when compiling send heavy code.

Reliability and compile time performance has dominated the
last few releases. Now run time performance and reliability are
the biggest issues. Exupery still can crash after about an hour's
active use depending on what's being done.

Bryce

P.S. I don't think it'll be that useful to have VMs for all
platforms. The old VM 0.12 should be fine for messing around.
The new VM would be useful if anyone felt like trying to capture
bugs though.  

If anyone want's to rebuild the VM for non-linux platforms, I'll delay
announcing the release for a few days. I doubt it's worth the effort
of re-creating a VM build environment though. I suspect that the major
remaining bug has to do with de-compilation of contexts and may
require VM changes to fix.
_______________________________________________
Exupery mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/exupery
Reply | Threaded
Open this post in threaded view
|

Re: [ANN] Exupery 0.14 is released

Markus Fritsche
[hidden email] schrieb:

> P.S. I don't think it'll be that useful to have VMs for all
> platforms. The old VM 0.12 should be fine for messing around.
> The new VM would be useful if anyone felt like trying to capture
> bugs though.  

An exupery windows VM is available for download at:

http://mfrouter.dyndns.org/Exupery_VM.7z

This was compiled with the windows gcc-2.95.2 build environment found
across the squeak wiki pages about building vm. There is no guarantee
this works and the vm crashes if you're trying to compile (for instance)
the OmniBrowser-categories.

All standard plugins except FFI interned.

Bryce, if you want to put this somewhere on your space for testing
reasons, please do so.

It took me a day to get everything in place ;-) no wonder people chose a
good build environment with commonly supported tools like *nix rather
MSFT ;-)

_______________________________________________
Exupery mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/exupery
Reply | Threaded
Open this post in threaded view
|

Re: [ANN] Exupery 0.14 is released

Bryce Kampjes
Markus Fritsche writes:
 > [hidden email] schrieb:
 >
 > > P.S. I don't think it'll be that useful to have VMs for all
 > > platforms. The old VM 0.12 should be fine for messing around.
 > > The new VM would be useful if anyone felt like trying to capture
 > > bugs though.  
 >
 > An exupery windows VM is available for download at:
 >
 > http://mfrouter.dyndns.org/Exupery_VM.7z
 >
 > This was compiled with the windows gcc-2.95.2 build environment found
 > across the squeak wiki pages about building vm. There is no guarantee
 > this works and the vm crashes if you're trying to compile (for instance)
 > the OmniBrowser-categories.

Do you mean compile with Exupery?

If so could you check to see if this happens using the latest Exupery
VMMaker and Exupery code from SqueakSource?

Also a build using the latest VMMaker from Exupery's SqueakSource
would be useful for the Pharo people as it'll have the closure
bytecodes. Especially if you can also manage to build with Freetype,
but even without Freetype it should be useful as the plugin can be
downloaded separately.

Bryce
_______________________________________________
Exupery mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/exupery
Reply | Threaded
Open this post in threaded view
|

Re: [ANN] Exupery 0.14 is released

Bryce Kampjes
[hidden email] writes:
 > Markus Fritsche writes:
 >  > [hidden email] schrieb:
 >  >
 >  > > P.S. I don't think it'll be that useful to have VMs for all
 >  > > platforms. The old VM 0.12 should be fine for messing around.
 >  > > The new VM would be useful if anyone felt like trying to capture
 >  > > bugs though.  
 >  >
 >  > An exupery windows VM is available for download at:
 >  >
 >  > http://mfrouter.dyndns.org/Exupery_VM.7z
 >  >
 >  > This was compiled with the windows gcc-2.95.2 build environment found
 >  > across the squeak wiki pages about building vm. There is no guarantee
 >  > this works and the vm crashes if you're trying to compile (for instance)
 >  > the OmniBrowser-categories.
 >
 > Do you mean compile with Exupery?
 >
 > If so could you check to see if this happens using the latest Exupery
 > VMMaker and Exupery code from SqueakSource?
 
If you can tell me how to easily reproduce it, I'll try to debug
it. I think there's only a few more bugs left, so any reproducable
bug reports are valuable as they're fixable.

Bryce
_______________________________________________
Exupery mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/exupery
Reply | Threaded
Open this post in threaded view
|

Re: [ANN] Exupery 0.14 is released

Markus Fritsche
[hidden email] schrieb:

>  >  > this works and the vm crashes if you're trying to compile (for instance)
>  >  > the OmniBrowser-categories.

>  > Do you mean compile with Exupery?

>  > If so could you check to see if this happens using the latest Exupery
>  > VMMaker and Exupery code from SqueakSource?

I used the Exupery-0.14 from Universe (Exupery-wbk.321) and VMMaker-wbk.80

> If you can tell me how to easily reproduce it, I'll try to debug
> it. I think there's only a few more bugs left, so any reproducable
> bug reports are valuable as they're fixable.

I can supply the compile-log and the crash.dmp file if that helps

_______________________________________________
Exupery mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/exupery
Reply | Threaded
Open this post in threaded view
|

Re: [ANN] Exupery 0.14 is released

Bryce Kampjes
Markus Fritsche writes:
 > [hidden email] schrieb:
 >
 > >  >  > this works and the vm crashes if you're trying to compile (for instance)
 > >  >  > the OmniBrowser-categories.
 >
 > >  > Do you mean compile with Exupery?
 >
 > >  > If so could you check to see if this happens using the latest Exupery
 > >  > VMMaker and Exupery code from SqueakSource?
 >
 > I used the Exupery-0.14 from Universe (Exupery-wbk.321) and VMMaker-wbk.80
 >
 > > If you can tell me how to easily reproduce it, I'll try to debug
 > > it. I think there's only a few more bugs left, so any reproducable
 > > bug reports are valuable as they're fixable.
 >
 > I can supply the compile-log and the crash.dmp file if that helps

It may do, send it to me privately.
_______________________________________________
Exupery mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/exupery
Reply | Threaded
Open this post in threaded view
|

Re: [ANN] Exupery 0.14 is released

Markus Fritsche
In reply to this post by Bryce Kampjes
[hidden email] schrieb:

> Also a build using the latest VMMaker from Exupery's SqueakSource
> would be useful for the Pharo people as it'll have the closure
> bytecodes. Especially if you can also manage to build with Freetype,
> but even without Freetype it should be useful as the plugin can be
> downloaded separately.

Do you mean VMMaker-wbk.88? So far, I had no luck, but I can redo it and
supply the gcc errors.

_______________________________________________
Exupery mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/exupery
Reply | Threaded
Open this post in threaded view
|

Re: [ANN] Exupery 0.14 is released

Bryce Kampjes
In reply to this post by Markus Fritsche
Markus Fritsche writes:
 > [hidden email] schrieb:
 >
 > >  >  > this works and the vm crashes if you're trying to compile (for instance)
 > >  >  > the OmniBrowser-categories.
 >
 > >  > Do you mean compile with Exupery?
 >
 > >  > If so could you check to see if this happens using the latest Exupery
 > >  > VMMaker and Exupery code from SqueakSource?
 >
 > I used the Exupery-0.14 from Universe (Exupery-wbk.321) and VMMaker-wbk.80

Thanks, I've uploaded the VM to the usual place and updated
the Wiki links to point to it.

Bryce
_______________________________________________
Exupery mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/exupery
Reply | Threaded
Open this post in threaded view
|

Re: [ANN] Exupery 0.14 is released

Bryce Kampjes
In reply to this post by Markus Fritsche
Markus Fritsche writes:
 > [hidden email] schrieb:
 >
 > > Also a build using the latest VMMaker from Exupery's SqueakSource
 > > would be useful for the Pharo people as it'll have the closure
 > > bytecodes. Especially if you can also manage to build with Freetype,
 > > but even without Freetype it should be useful as the plugin can be
 > > downloaded separately.
 >
 > Do you mean VMMaker-wbk.88? So far, I had no luck, but I can redo it and
 > supply the gcc errors.

Yes, try sending the errors. Not sure I'll be able to see the
problem but it's possible. What version of the C sources are you
using? 88 is built from the latest C sources in subversion, previously
it was using rather old C sources.

Bryce
_______________________________________________
Exupery mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/exupery
Reply | Threaded
Open this post in threaded view
|

Re: [ANN] Exupery 0.14 is released

Markus Fritsche
[hidden email] schrieb:

> What version of the C sources are you
> using? 88 is built from the latest C sources in subversion, previously
> it was using rather old C sources.

I used
http://www.squeakvm.org/win32/release/SqueakVM-Win32-3.10.7-src.zip
since I was (shame on me) too lazy to setup a win32-svn-environment.

_______________________________________________
Exupery mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/exupery