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 |
[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 |
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 |
[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 |
[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 |
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 |
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 |
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 |
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 |
[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 |
Free forum by Nabble | Edit this page |