CVSROOT: /home/x-cvs
Module name: xc
Changes by: [EMAIL PROTECTED] 02/11/10 08:29:11
Log message:
o Renamed all macros in the format ERROR_CHECK_... to CHECK_...
o Renamed all macros in the format ..._P to ...P.
o Now not all objects are pointers to a LispObj structure, so
there are several new macros to get/check the type or value of
an object. macros in the format X...P assume that basic error
checking was already done and that the value is a real pointer,
for example:
#define XSTRINGP(object) ((object)->type == LispString_t)
#define STRINGP(object) (POINTERP(object) && XSTRINGP(object))
o Now there is 3 types of integers (in a 32 bits computer):
o fixnum => values that fit in 28 bits
o longint => values that fit in 32 bits
o bignum => values that don't fit in 32 bits
o Type LispCharacter_t was renamed to LispSChar_t, to clarify that
currently only simple 8 bit characters are supported.
o Type LispReal_t was renamed to the more proper name LispDFloat_t.
o Type LispBigInteger_t was renamed to LispBignum_t and LispBigRatio_t
to LispBigratio_t.
o Type LispTrue_t was removed, as now NIL, T and #<DOT> are constants,
and all of them have type LispNil_t.
o All ocurrences of the macro STRPTR were replaced by the equivalent
macro ATOMID.
o New math driver, now almost everything is done in mathimp.c, and only
very simple functions are implemented directly in math.c.
Note that mathimp.c was rewritten from scratch, with very few cut&paste
from the old version. Now it uses an intermediate structure, that must
be allocated in the stack, and this structure can hold any supported
number type, so the number type can change freely during the
calculations.
There is also a major cleanup in the math code, now only a few
"integer binop integer" functions are inline.
o Code that uses integer math extensively should now show a significant
better performance since integers don't trigger gc.
This patch is the integration of the new math driver and the code to
allow different sized objects. It is not yet what should be called the
final version as there is a lot of optimizations that can be done.
One major change still missing is true vectors, as well as a cleanup
in the current buggy vector/array code.
String handling should also be optmized, and cleaned. All strings must
end with a '\0' characters, to be safe to use with libc functions, and
even then, should check all code that handles strings internally to
properly handle strings with embeded nuls.
Due to the large size of the changes, probably there are still bugs in
the new math driver, and there may be unsafe code that will crash when
trying to deference NIL or a fixnum to check the object type.
I hope this is the last "huge patch".
Modified files:
xc/programs/xedit/lisp/:
README bytecode.c compile.c core.c debugger.c format.c
hash.c helper.c helper.h internal.h io.c io.h lisp.c
math.c mathimp.c package.c pathname.c private.h read.c
regex.c require.c stream.c string.c struct.c struct.h
write.c xedit.c
xc/programs/xedit/lisp/modules/:
indent.lsp psql.c x11.c xaw.c xt.c
Revision Changes Path
1.11 +18 -34 xc/programs/xedit/lisp/README
1.10 +65 -80 xc/programs/xedit/lisp/bytecode.c
1.6 +150 -149 xc/programs/xedit/lisp/compile.c
1.55 +469 -504 xc/programs/xedit/lisp/core.c
1.23 +42 -40 xc/programs/xedit/lisp/debugger.c
1.25 +67 -72 xc/programs/xedit/lisp/format.c
1.3 +43 -44 xc/programs/xedit/lisp/hash.c
1.41 +169 -166 xc/programs/xedit/lisp/helper.c
1.13 +5 -5 xc/programs/xedit/lisp/helper.h
1.36 +287 -199 xc/programs/xedit/lisp/internal.h
1.11 +12 -14 xc/programs/xedit/lisp/io.c
1.5 +3 -3 xc/programs/xedit/lisp/io.h
1.67 +361 -395 xc/programs/xedit/lisp/lisp.c
1.17 +498 -617 xc/programs/xedit/lisp/math.c
1.10 +4225 -3903xc/programs/xedit/lisp/mathimp.c
1.16 +42 -45 xc/programs/xedit/lisp/package.c
1.14 +51 -34 xc/programs/xedit/lisp/pathname.c
1.33 +2 -6 xc/programs/xedit/lisp/private.h
1.24 +300 -306 xc/programs/xedit/lisp/read.c
1.7 +15 -14 xc/programs/xedit/lisp/regex.c
1.15 +11 -7 xc/programs/xedit/lisp/require.c
1.15 +43 -46 xc/programs/xedit/lisp/stream.c
1.16 +86 -102 xc/programs/xedit/lisp/string.c
1.18 +40 -40 xc/programs/xedit/lisp/struct.c
1.6 +3 -1 xc/programs/xedit/lisp/struct.h
1.16 +47 -44 xc/programs/xedit/lisp/write.c
1.8 +69 -74 xc/programs/xedit/lisp/xedit.c
1.2 +4 -3 xc/programs/xedit/lisp/modules/indent.lsp
1.11 +28 -28 xc/programs/xedit/lisp/modules/psql.c
1.9 +39 -36 xc/programs/xedit/lisp/modules/x11.c
1.13 +31 -34 xc/programs/xedit/lisp/modules/xaw.c
1.18 +40 -41 xc/programs/xedit/lisp/modules/xt.c
_______________________________________________
Cvs-commit mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/cvs-commit