Commit graph

13 commits

Author SHA1 Message Date
jgarcia
a59f90871a Emacs modelines for better editing 2008-02-02 19:14:05 +00:00
jjgarcia
986198842f Removed useless variable \*special-binding\*. C1ADD-GLOBAS is now properly renamed C1DECLARE-SPECIALS and does the right thing: to push the special variable declarations onto the \*VARS\* stack and not to add them to the global proclamations. 2005-05-13 11:43:22 +00:00
jjgarcia
3009791f9f The code for handling closure variables has been changed and now encloses the whole of the function in a C block 2005-05-02 16:55:00 +00:00
jjgarcia
aaad2c184f Disable _ARGS() in external.h and use precise prototypes 2004-12-20 08:56:13 +00:00
jjgarcia
9b19bc22c0 When the value of a LET* variable is a closure, the size of the lexical environment was not properly captured 2004-12-17 14:26:05 +00:00
jjgarcia
e4fa9f4e73 Merged in the new compiler structure doubly linked list. 2004-12-16 15:56:54 +00:00
jjgarcia
fc8deffa71 src/c 2003-10-22 07:27:44 +00:00
jjgarcia
a381a7ee09 Merge NEW_COMPILER 25.05.03 2003-05-26 09:49:50 +00:00
jjgarcia
6b76d155ee Create new functions SI::{GET,PUT,REM}-SYSPROP to handle vital information
about functions, SETF forms, DEFTYPEs, etc. Property lists are no longer
used for this task.
2003-03-21 14:18:56 +00:00
jjgarcia
a9e4edf4d0 The calling conventions have been changed. SI::C-ARGUMENTS-LIMIT and
LAMBDA-PARAMETERS-LIMIT are both 64. Up to C-ARGUMENTS-LIMIT may be
passed to a function using C calling conventions. If the function is
to retrieve more arguments, (for instance through a &rest variable),
this can be done, but then the arguments have to be pushed on the lisp
stack. This method allows us to raise the CALL-ARGUMENTS-LIMIT up to
MOST-POSITIVE-FIXNUM. From a users point of view, there is no visible
change, excep the fact that a function may receive more arguments.

The function apply() has been replaced with cl_apply_from_stack().
The former took a pointer to the list of arguments. The latter assumes
that the last "narg" elements on the lisp stack are the arguments of
the function.
2002-10-21 09:27:58 +00:00
jjgarcia
c63e81c4f5 Simplified compilation of &aux parameters in lambda lists.
Fixed bug in the compiler for MULTIPLE-VALUE-BIND: resulting code would not
undo bindings of special variables.
Optimized statements like (let ((*special-var* *special-var*)) ...) where
*special-var* is a special variable.
2001-10-19 22:16:49 +00:00
jjgarcia
f2da18a591 Add a name mangler to the lisp runtime. Use this mangler in the compiler to
optimize access to symbols and functions which are defined in the C runtime.
2001-07-05 10:08:52 +00:00
jjgarcia
2d8d0cd44b Initial revision 2001-06-26 17:14:44 +00:00