Commit b9e94e32 authored by Christophe Rhodes's avatar Christophe Rhodes
Browse files

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.
parent 1a3143cc
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment