0.9.17.8:
MORE THREADSAFE FUNCALLABLE-INSTANCE ... in a threaded world, we can't set the function and lexenv of a funcallable instance separately, because some other thread might inconveniently funcall the object 'twixt the one and the other. ... instead, make the funcallable-instance-function a fully-fledged slot, and give a funcallable-instance a trampoline which knows how to call it. ... which means implementing this strategy for $n$ architectures. Tested on x86, x86-64, ppc, alpha and sparc; completely untested on mips, and unimplemented on hppa. This removes some of the complexity in calling closures (the closure-self slot is now redundant, as is the extra indirection). Other miscellaneous fixes: * extract-fun-type worked only by accident; * new magic :init :funcallable-instance-tramp for primitive objects * verify_space() need no longer worry its little brain about undefined_tramp and closure_tramp (I think) * test case for threaded funcallable-instance interaction.
Loading
Please sign in to comment