Greetings! Here is an example of the stack allocation in the child idea: >(defvar *a* '( 1 2 3 4 5 6 7))
*A* >(defun bar nil (si::p-let ((a (member 3 *a*)) (b (member 6 *a*))) (values a >b))) BAR >(compile 'bar) ;; Compiling ./gazonk11.lsp. ;; End of Pass 1. ;; End of Pass 2. ;; OPTIMIZE levels: Safety=0 (No runtime error checking), Space=0, Speed=3, (Debug quality ignored) ;; Finished compiling ./gazonk11.o. Loading /fix/t1/camm/debian/gcl/tmp/tmp/foo/unixport/gazonk11.o start address -T 0x1193ff0 Finished loading /fix/t1/camm/debian/gcl/tmp/tmp/foo/unixport/gazonk11.o #<compiled-function BAR> NIL NIL >(bar) got (nil) got (nil) (3 4 5 6 7) (6 7) >(let ((si::*child-stack-alloc* 10)) (bar)) got 0x196dea8 got 0x196de68 (3 4 5 6 7) (6 7) >si::*child-stack-alloc* NIL >(eq (member 3 *a*) (bar)) got (nil) got (nil) NIL >(equal (member 3 *a*) (bar)) got (nil) got (nil) T >(eq (member 3 *a*) (let ((si::*child-stack-alloc* 10)) (bar))) got 0x196dea8 got 0x196de68 T > More testing needed. Take care, -- Camm Maguire [EMAIL PROTECTED] ========================================================================== "The earth is but one country, and mankind its citizens." -- Baha'u'llah _______________________________________________ Gcl-devel mailing list [email protected] http://lists.gnu.org/mailman/listinfo/gcl-devel
