From: Tito L. <tit...@gm...> - 2013-07-02 20:49:22
|
On Tue, Jul 02, 2013 at 01:25:38PM -0400, Martin Cracauer wrote: > Tito Latini wrote on Tue, Jul 02, 2013 at 08:41:47AM +0200: > > Martin Cracauer wrote: > > > As said, forking, compiling in the child and then loading the fasl in > > > the parent, is an option. > > > > ok, useful to know there aren't esoteric techniques to resolve this > > problem. I'll weigh the sacrifice of the portability and the size of > > the dynamic space in the choice of the strategy. To avoid the use of > > the disk will be a priority. > > Where does the disk come in as a problem? The garbage from compilation > will stop your world via the global GC. Are you running the compiler > in a separate thread? There is a rt-thread, a nrt-thread, a fast-nrt-thread and a thread for the REPL. The communication with the rt-thread is lock-free. The expansion of DEFSYNTH is a big block and the compiler triggers the gc that stops the world. A possibility to reduce the effect of the gc is to use a separate instance of SBCL to compile the monster, avoiding the use of the disk to save/load the fasl. I deduced there is not a common recipe for this task, therefore I can use what I want. I appreciated all the replies, now it is the time to think. Tito Latini |