Preparing for Exupery 0.13

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

Preparing for Exupery 0.13

Bryce Kampjes

Exupery now runs Seaside for over a few hours without crashing.  It's
time to release again. (1) I had Exupery and Seaside running for 12
hours on Sunday though only about 2-3 hours were using it solidly.

This release will not need new VMs as there's been no VM changes.

The next release will focus on speeding up compilation. The first
step will be getting the register allocator to allocate each section
of a method separately. Methods are often divided into many sections
that are not connected as each message send exits the method then
re-enters it. Register allocating each section separately should speed
up register allocation, it will make allocation more accurate as it
will ignore register interference in other sections, and it will make
it easier to avoid loading context variables (including the stack)
that are not used in that section.

After register allocating each section separately it's debatable
whether it will be better to continue optimising compilation speed as
a few methods take several minutes to compile or to focus on speeding
up the compiled code by avoiding loading unused stack variables and
moving temporaries and arguments into registers. Making compilation
faster seems like the best option because it will make testing faster
which will speed up development and bug fixing.


(1) You'll need to either use my version of Seaside 2.8 or Seaside
2.9. There's a tiny change required to continuations to allow Exupery
to easily deoptimise contexts before they're serialised.
Exupery mailing list
[hidden email]