Nov 2017 -------- - updated: distribution list - fixed: file not found errors show file name - fixed: (unless) & (when) testing condition - fixed: some const correctness for types in LispModule methods - fixed: added some missing methods to LispModule - fixed: = < > /= <= >= return expected results - tests added - fixed: (+1 ...) and (-1 ...) functions were pointing to wrong function - changed: updated copyright notice for 2017 - changed: examples/runlisp.bas has new command line options - changed: examples/runlisp.bas uses LispModule.Load() to preserve context - added: (lexer-lineno) function to expose current lexer line number - added: (lexer-file) function to expose current lexer filename - added: examples/lispdemo.bas (WIP) - added: (eql ...) function - added: (equalp ...) function - added: reorganized and added many tests in 'tests/tests.lsp' - added: = < > /= <= >= functions test for numeric type - changed: symbol names can have prefix numbers (e.g. "1+") and dots (e.g. "a...b") Mar 2015 -------- [Fixed] - non-identifiers (e.g. numbers) could be bound to forms - (eq) now only checks for identical object - (equal) compares cons'es - LISP_MODULE was hanging when parser reads unrecognized character - (defun ...) was allowing non-identifers for names - CR/LF and line counting was not handled correctly - internal: copy_object() was not copying conses correctly - (append ...) was not working correctly [Changed] - LISP_EVAL::execute() method renamed to call_by_name() - runtime macro _CALL renamed to _CALL_BY_NAME - internal: moved all code from LISP_MODULE to LISP_CTX - internal: re-organized runtime library modules - internal: LISP_LEXER can push/pop current state [Added] - added (load "filename" ) function - runtime macro call_lisp_function() Dec 23, 2008 ------------ [Fixed] - lexer was not handling CRLF pairs - (length) was returning incorrect result - ICE when printing dotted pair cons'es - lexer was not allowing floats having no leading zero (e.g. .123) - rel-ops (= < > <= >= /=) were returning incorrect results for more than 2 arguments - error if trying to redefine a built-in function [Changed] - _LENGTH runtime macro returns integer instead of LISP_OBJECT - runlisp.bas example with no command line arguments immediately goes to interactive LISP shell - runtime macro _OBJ(p) now allows pointer arrays - _OBJ(p)(0 to n) [Added] - added (append ...) - added (apply [list]) - added (mapcar ) - added (elt ) - added (nth ) - added (last ) - added (consp ) - added (integerp ) - added (numberp ) - added (zerop ) - added (listp ) - added (stringp ) - LispModule.SetPrintCallBack() and LispModule.GetPrintCallBack() - LispModule.PrintOut(string) for printing (uses the call back) - runtime macro _COPY to copy a LISP_OBJECT - runtime macro _PRINT - runtime macro _IS_IDENTIFIER