jgarcia
6edcd2cfeb
Fixed typo.
2007-12-02 13:53:02 +00:00
jgarcia
e0f5c66ebe
Improved code for handling function proclamations.
2007-11-30 23:49:25 +00:00
jgarcia
71cf239d31
Declaration SI::C-EXPORT-FNAME allows specifying the C name of the function
2007-01-06 16:07:15 +00:00
jgarcia
f21de12a27
Reimplement C1MACROLET using the facilities from the bytecodes compiler.
2006-06-17 16:05:26 +00:00
jgarcia
a2fdf244f7
Make MACROLET a bit safer -- a least in the C compiler.
2006-06-17 16:01:04 +00:00
jgarcia
fd3aeae14a
MACROLET functions are created in an environment that contains enclosing MACROLET and SYMBOL-MACRO DEFINITIONS.
2006-06-17 16:00:08 +00:00
jgarcia
022fda6f95
Integrated variables into the compiler environment. Variable *VARS* disappears.
2006-06-12 08:52:28 +00:00
jgarcia
7305f018b3
Incorporate tags in the environment.
2006-06-12 08:52:06 +00:00
jgarcia
d7c23c3ad5
Additional functions for the environment.
2006-06-12 08:52:02 +00:00
jgarcia
b03e07bd12
Replaced global variable *funs* by the new compiler environment.
2006-06-12 08:51:56 +00:00
jgarcia
6b406c1d83
Now the compiler can externalize constants with circular references
2006-05-17 15:17:29 +00:00
jgarcia
ee50a03ea4
Use MAKE-LOAD-FORM to compile constants that do not have a readable printed representation (Brian Spilsbury)
2006-05-16 16:18:39 +00:00
jgarcia
d544ad51f4
Remove list. The test with valid-type-specifier suffices and is almost as fast.
2006-04-24 08:44:56 +00:00
jgarcia
5e31168db1
Improved identification of wrong declarations. Simplified code for that.
2006-04-24 08:44:44 +00:00
jjgarcia
6055075b78
Separate temporary and permanent data in a compiled file
2006-02-16 11:04:55 +00:00
jjgarcia
c6df05f4d8
Remove unused function and variable
2006-02-06 10:11:01 +00:00
jjgarcia
4c146bc8c1
Simple implementation of callbacks, much like CFFI does.
2005-10-11 09:01:25 +00:00
japhie
14864f4b6d
- Bugfix: make C::GET-RETURN-TYPE return function's return type, not
...
argument type list.
2005-09-14 11:57:40 +00:00
jjgarcia
7b762a99c4
New functions for performing type inference.
...
Arithmetic operators *,+,/,- now have simple optimizers.
Fixed several "bugs" in the C code to let ECL compile with GCC 4.0
2005-08-12 15:23:10 +00:00
jjgarcia
f76c1888c6
- The T1 and T3 forms of the compiler have been almost removed. Now, handling of
...
DEFUN as a toplevel form is made via some new declaration C-GLOBAL and some
magic both in the optimizer for FSET and in the compiler C1COMPILE-FUNCTION.
- CLINES is now handled with a macro and all lines from CLINES are written
together in the header.
- It is now illegal to have SI::C-LOCAL inside a macro function.
2005-07-04 09:20:24 +00:00
jjgarcia
85815eb157
DECLARATION names cannot be type names and viceversa
2005-06-09 08:05:17 +00:00
japhie
ef15c97154
Generated C functions now have readable names corresponding to
...
appropriate Lisp function names (makes gdb backtraces much more
readable).
2005-05-29 15:23:47 +00:00
jjgarcia
127d575ade
The special declarations of &aux variables were ignored. Example:
...
(defun f1 (x &aux y)
(declare (special y))
(list (f2 x) y))
(defun f2 (x)
(declare (special y))
(setq y 'y)
(list x y))
2005-05-18 12:13:57 +00:00
jjgarcia
1dd06c78a8
Do not preserve the special proclamations between compiler sessions
2005-05-12 15:45:02 +00:00
jjgarcia
172351b72f
Fix typo
2005-01-11 18:04:59 +00:00
jjgarcia
e4aa8f5df0
Allow (SETF ...) function names to appear in proclamations
2005-01-11 17:43:34 +00:00
jjgarcia
ea7b544af3
Xmas fixes. See CHANGELOG for list of changes.
2005-01-07 11:51:23 +00:00
jjgarcia
e4fa9f4e73
Merged in the new compiler structure doubly linked list.
2004-12-16 15:56:54 +00:00
jjgarcia
24688d57f8
Teach the compiler how to produce C functions with a fixed number of arguments when the corresponding lisp function does not have any &optional, &rest, &key. Teach it also how to produce slimmer code for MULTIPLE-VALUE-SETQ/BIND. The type of a C1FORM can now be a (VALUES ...) expression, the first value being obtained with C1FORM-PRIMARY-TYPE.
2004-05-17 07:32:52 +00:00
jjgarcia
3e1a75f49e
Unify the routines that emit calls to functions, so that they work with function objects and handle functions with fixed and variable number of arguments
2004-05-13 16:28:13 +00:00
jjgarcia
403511c488
The portable CLX library has been incorporated.
2004-03-25 09:02:27 +00:00
jjgarcia
630bfdf4f4
Clean up the package CL from non-standard symbols and move them into the EXT package, which is a nickname for SYSTEM.
2003-12-11 17:16:48 +00:00
jjgarcia
158997357b
In the compiling process, we differentiate between registration of a constant, and dumping of the database of constants. The later being improved with support for a common storage space. Also, complex numbers may now be read that use #n# and #n=.
2003-11-03 08:57:01 +00:00
jjgarcia
fc8deffa71
src/c
2003-10-22 07:27:44 +00:00
jjgarcia
540e4140f4
Forms are now stored as structures.
2003-10-16 07:38:17 +00:00
jjgarcia
df97ca1b92
Fixed bug that prevented compilation under windows. ECL is now built as a single shared library on systems which support it. The compiler is being rewritten using higher level, more expressive functions.
2003-09-08 16:53:29 +00:00
jjgarcia
3af358280a
Do not coalesce constants using #'EQUALP because it does not distinguish between #\c and #\C.
2003-08-07 13:51:49 +00:00
jjgarcia
fed2994f14
Fixed processing of FTYPE declarations/proclamations
2003-08-07 12:24:03 +00:00
jjgarcia
a381a7ee09
Merge NEW_COMPILER 25.05.03
2003-05-26 09:49:50 +00:00
jjgarcia
c2aa136143
Various minor fixes, and an important set of changes to teach the compiler
...
and the interpreter to understand (SETF fname) function names, and to handle
them without creating auxiliary symbols.
2003-04-28 15:55:22 +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
9771e91572
+ New implementation of DESTRUCTURING-BIND
...
+ The bytecodes compiler now alloes a lambda list with &key and no keywords
+ WITH-HASHTABLE-ITERATOR implemented
+ QUIT is now silent
+ In MAKE-PATHNAME, values supplied with a value of NIL would be overwritten
by the content of :DEFAULTS.
2003-03-04 16:35:03 +00:00
jjgarcia
d21a1fd389
Previous fixed removed. Hopefully this time I got FTYPE declarations
...
correct: they are restricted to (FTYPE (FUNCTION (arg-types*) ret-type*) name*)
2002-12-17 09:53:04 +00:00
jjgarcia
8852166529
FTYPE should accept two types of declarations: the ones with a formal type
...
(FTYPE (FUNCTION (T T) T) MY-FUN1 MY-FUN2)
and the abbreviated ones
(FTYPE MY-FUN1 (T T) T)
2002-12-17 09:15:37 +00:00
jjgarcia
912a7fb03c
The declaration specifier for functions is FTYPE, not FUNCTION.
2002-12-14 15:37:29 +00:00
jjgarcia
b0ce08d0ea
Changes towards 0.7b comprise naming and calling conventions. See CHANGELOG.
2002-11-04 14:08:24 +00:00
jjgarcia
c479d71051
Reader macro #, is now unsupported. Instead we have implemented
...
LOAD-TIME-VALUE both in the interpreter and in the compiler. Type error
messages from the compiler have been also improved.
2001-10-07 20:01:50 +00:00
jjgarcia
2c35fb9a2c
(DECLARE (OPTIMIZE DEBUG)) is ignored, but no warning is issued.
2001-09-29 11:02:40 +00:00
jjgarcia
8563a1fc1c
Fix the compiler so that when it finds LOCALLY, MACROLET or SYMBOL-MACROLET
...
at the top level, it processes their bodies as top level forms as well. For
instance, (LOCALLY (EVAL-WHEN (:COMPILE-TOPLEVEL) (PRINT "HELLO"))), now works.
2001-07-19 15:33:46 +00:00
jjgarcia
ea010dee34
Add new declaration, si::c-export-fname, which produces lisp compiled files with
...
meaningful names for the exported functions. For instance,
(proclaim '(si::c-export-fname union))
is used to produce a C function with name clLunion, which can be directly used
in other compiled files. This feature has been applied to almost all functions
in the Lisp runtime.
2001-07-12 16:32:15 +00:00