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.
Bryce
(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@lists.squeakfoundation.org