CVSROOT: /home/x-cvs
Module name: xc
Changes by: [EMAIL PROTECTED] 02/11/24 18:35:32
Log message:
o Better handling of multiple values, if a function/macro uses
multiple values, the counter is reset before calling it, else
reset after calling it.
o Extended a bit the SeqInfo structure and added an initial
macro to initialize it. This should be extended and generalized
more, and will be mandatory as soon as more complete vector
data start being supported/required.
o Added a few new lisp functions, including defparameter,
nset-exclusive-or, psetq and psetf.
o Setf rewritten for slightly faster performance, but it the bytecode
compiler should soon compile it, for true reasonable performance,
and for interpreted code, LispFuncall should be extended to accept
an extra argument, so that Lisp_Setf does not need to allocate
a list to build function arguments, and this way, avoiding
unnecessary gc time.
o Changed way hash-tables are marked, if a hash table key or value
was the hash-table itself, it would enter an infinite loop.
o Progv reimplemented to follow the specification, and bind the
symbols dynamically, and reset the state once the progv block is
finished.
o Search reimplemented as a model for the use of the SeqInfo structure
and to make only one vector copy when :from-end != nil.
o Removed the internal function lisp::set-symbol-value, just lisp::set
is enough as now it has the correct behavior.
o String*-trim reimplemented to work properly with strings containing
nuls and this new implementation should be slightly faster/cleaner.
o Made all string comparison functions be implemented in a single
function called LispStringCompare, and also this new implementation
should correctly handle strings with nuls.
o String-{upcase,downcase,capitalize} reimplemented, as well as the
inplace version of the functions added, this new version should
be slightly faster and properly handle strings with nuls.
o Added several new tests to test/list.lsp, these new tests allowed
triggering several problems in the interpreter, and the problems
are now fixed.
The last patches are not optimization patches, but correctness
updates, some incorrect optimizations were removed, but they can be
readded, as they only do not work in a few cases, that are known
and can be a flag set in the LispBuiltin structure.
Modified files:
xc/programs/xedit/lisp/:
bytecode.c core.c core.h helper.c helper.h lisp.c
string.c string.h
xc/programs/xedit/lisp/modules/:
lisp.lsp
xc/programs/xedit/lisp/modules/progmodes/:
c.lsp
xc/programs/xedit/lisp/re/:
rep.h
xc/programs/xedit/lisp/test/:
list.lsp
Revision Changes Path
1.14 +15 -5 xc/programs/xedit/lisp/bytecode.c
1.63 +556 -227 xc/programs/xedit/lisp/core.c
1.32 +5 -2 xc/programs/xedit/lisp/core.h
1.46 +2 -94 xc/programs/xedit/lisp/helper.c
1.15 +1 -8 xc/programs/xedit/lisp/helper.h
1.77 +53 -39 xc/programs/xedit/lisp/lisp.c
1.20 +357 -259 xc/programs/xedit/lisp/string.c
1.11 +7 -1 xc/programs/xedit/lisp/string.h
1.6 +2 -2 xc/programs/xedit/lisp/modules/lisp.lsp
1.21 +6 -1 xc/programs/xedit/lisp/modules/progmodes/c.lsp
1.3 +2 -2 xc/programs/xedit/lisp/re/rep.h
1.4 +400 -1 xc/programs/xedit/lisp/test/list.lsp
_______________________________________________
Cvs-commit mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/cvs-commit