Copyright (c) 1997 - 2004 Harold Carr This work is licensed under the Creative Commons Attribution License. To view a copy of this license, visit http://creativecommons.org/licenses/by/2.0/ or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA. ------------------------------------------------------------------------------ Created : 1999 Dec 18 (Sat) 17:14:40 by Harold Carr. Last Modified : 2004 Dec 08 (Wed) 12:55:03 by Harold Carr. BUGS: * llava is NOT thread-safe (yet). * for-each with multiple lists broke. E.g.: (for-each (lambda (x y) (-println (list x y))) '(1 2) '(3 4)) * # reading when not character: e.g., #160 -> 160 #newline -> 'newline * If you see a message like: Error: java.lang.Exception: setq: not enough arguments it means you defined a macro *AFTER* you referenced it. Example: (begin (require 'org/llava/lib/cl/control/setq) (setq a 34)) That is because Llava is apply the syntax procedure for setq to the list (1 34) but the expander expects two arguments. * Macro handling - right now it seems they must be defined first. * Macros lambdas always get top level environment. SHould get current lexical environment. See SyntaxDefineSyntax.lva (let ((test -1)) (define foo (lambda () foo))) (getSavedFrame foo) (let ((test -1)) (define-syntax bar (lambda () foo))) (getSavedFrame (getMacroLambda bar)) * DII - NullPointerException when static invoke on dynamic method/class: eg: (-si 'getFullNameNamespaceMapKeys 'org.llava.impl.runtime.NamespaceImpl) ;; End of file.