[Openmcl-devel] process-run-function and "dynamic vs lexical"
John McAleely
john at mcaleely.com
Thu Oct 22 11:20:42 PDT 2009
> let creates new variable binding for the names x and y and these
> bindings are lexical unless they are declared special.
OK. I think this is where the mistake in your reasoning occurs, since
you appeal only to the CL spec.
My understanding is that the closure you create will bind x and y in
the thread it executes in.
When you jump into another thread via process-run-function, the
lexical binding created by your let is no longer visible.
My further understanding is that the CL spec does not define this
multi-threaded behaviour, and that implementation conventions in this
area tend to appeal back to implementations on the Lisp Machine that
proved convenient.
So your attempt to understand the behaviour of process-run-function
only by appeal to the CL spec is where you have made the mistake in
your reasoning.
J
More information about the Openmcl-devel
mailing list