[Openmcl-devel] process-run-function and "dynamic vs lexical"
john at mcaleely.com
Thu Oct 22 18:20:42 UTC 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
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
More information about the Openmcl-devel