Exupery and Seaside will not work together at the moment.
The problem will occur if Exupery compiles a method that's then saved in a continuation, then Exupery's code cache is cleared, then the continuation is restored.
Exupery's compiled contexts must be converted back into interpreted contexts before the code cache is cleared. The compiled contexts contain pointers into the code cache. Clearing the code cache without converting the contexts will lead to dangling pointers that should be to machine code. When the context is next entered it'll jump to machine code that's no longer there. Crash.
The problem is Continuation>>initializeFromContext: uses instVarAt: and tempAt: to access the context's state. If Continuation called a serialisation method on the context which Exupery could implement sensibly then there wouldn't be a problem.
I don't think compiled contexts should be stored in Seaside style continuations. The problem is the context and it's instance variables are stored separately and Exupery may need to convert the context to an interpreted context if it needs to clear out the compiled code.
This problem is definitely easily fixable.
Bryce
exupery@lists.squeakfoundation.org