Commit graph

15 commits

Author SHA1 Message Date
Juan Jose Garcia Ripoll
910e79852e Instead of using system property lists, create dispatch tables for handling the C1, T1, C2 forms and others. 2010-05-26 12:12:57 +02:00
Juan Jose Garcia Ripoll
70c64f9652 The macros/functions for accessing and changing symbol values require an environment value. 2008-10-12 16:44:29 +02:00
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