Add support for dynamic variables in the arglist of LAMBDA.
This inserts a FluidLetExp around the body of a lambda if some argument is a dynamic variable.
I'm not sure what the intented meaning of the IS_DYNAMIC, IS_FLUID, and INDIRECT_BINDING flags is. My interpretation is that IS_DYNAMIC is set by DEFVAR and that IS_FLUID is some auxilary flag used by fluid-let. Not sure what role INDIRECT_BINDING plays here. Maye be you can have a look to see if I used the flags correctly.
-
gnu/commonlisp/lang/OrdinaryLambda.java (rewriteFormals): Detect dynamic variables and set the IS_FLUID flag and decl.base. (auxillaryRewrite): Insert a FluidLetExp if needed. (bindDynamicVars): New helper.
-
gnu/commonlisp/testsuite/lang-test.lisp: Add tests for dynamic variables in lambda lists.