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
1e10ab5d8b
Fixed optimization of structure references.
2003-08-07 12:24:38 +00:00
jjgarcia
fed2994f14
Fixed processing of FTYPE declarations/proclamations
2003-08-07 12:24:03 +00:00
jjgarcia
faa7989599
Fixnums are valid locations
2003-08-07 12:23:39 +00:00
jjgarcia
b59de87d9f
Fixed typo
2003-08-07 12:23:13 +00:00
jjgarcia
b133c36590
Avoid using cl_va_list, cl_va_arg when the number of arguments is small (<32)
...
and we know that no value will be stored on the stack.
2003-08-06 08:51:51 +00:00
jjgarcia
ee391629b6
New bytecodes compiler and interpreter, which use 8-bits large bytecodes and
...
16-bits large arguments.
Macros are implemented as two-argument functions, leaving argument checking
to funcall() and apply() and thus saving space.
AND, WHEN and OR are plain macros. No optimizer is required in the bytecodes
compiler.
2003-08-05 10:01:57 +00:00
jjgarcia
8417f93d2e
FORMATTER implemented. FORMAT ported from CMUCL and optionally included when --with-cmuformat is used at configuration time.
2003-07-31 16:37:46 +00:00
jjgarcia
e5072a82d9
Use user-supplied DPP to build the C files. machines.h is no longer required.
2003-07-23 13:09:37 +00:00
jjgarcia
a2ab24e4d8
Remove wrong inline form.
2003-07-16 12:43:24 +00:00
jjgarcia
5edc1bb191
Parse properly filenames with a leading dot, like ~/.ecl.lsp or ~/.eclrc
2003-06-27 16:16:26 +00:00
jjgarcia
3b861d5e3b
Second version of the inliner for LAMBDA forms.
2003-06-09 12:40:46 +00:00
jjgarcia
9ff486f0ba
Implemented inlining of LAMBDA expressions when they appear in the place of a function, such as the beginning of a list, or as a first argument to APPLY and FUNCALL. We can now safely remove the mechanism CALL-LAMBDA which inlines LAMBDA forms when the C code is being produced.
2003-06-09 12:19:39 +00:00
jjgarcia
a381a7ee09
Merge NEW_COMPILER 25.05.03
2003-05-26 09:49:50 +00:00
jjgarcia
35040b43ef
In closures and local functions, the environment and the lexical variables
...
should not count as arguments. Not a fix, but makes code more readable.
2003-05-03 17:20:42 +00:00
jjgarcia
c81925fa7f
Fix type proclamation for MEMBER1.
2003-05-03 17:16:17 +00:00
jjgarcia
1791e09a68
Directly call several functions in CLOS which are frequently used.
2003-05-02 10:07:25 +00:00
jjgarcia
c2ce3bd2d8
Write an efficiency note when cl_fdefinition() has to be used.
2003-05-02 09:59:30 +00:00
jjgarcia
a6a4a3f919
Proclaim as directly callable a couple of frequently used functions.
2003-04-30 20:08:24 +00:00
jjgarcia
e70961b8cf
Allow structures to have :TYPE (VECTOR BIT), (VECTOR CHARACTER), etc,
...
and make use of that sequence type instead of the general one (VECTOR T).
2003-04-30 11:47:59 +00:00
jjgarcia
d243d6b091
Fix inline expanders for = and /=.
2003-04-30 08:01:54 +00:00
jjgarcia
0432664a61
The inline expansions for = and /= were completely wrong.
2003-04-30 07:46:44 +00:00
jjgarcia
10d095dc9b
In destructuring lambda lists, when &ALLOW-OTHER-KEYS is supplied, the number of
...
arguments needs not be double checked. New function CHECK-ARG-LENGTH embeds bot
h the checking of the number of arguments and the possible error message.
2003-04-29 08:25:06 +00:00
jjgarcia
de2176ff11
In destructuring lambda lists, &WHOLE may be accompanied by a
...
destructuring form.
2003-04-28 17:50:53 +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
f20736084b
Add more symbols to src/c/symbols_list.h, and resolve associated conflicts.
2003-04-28 09:25:58 +00:00
jjgarcia
02622043bc
New implementation of SUBTYPEP.
2003-04-10 14:32:02 +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
8bb27d3094
Remove public function putprop(); use si_putprop() instead.
...
Removed public functions FEtype_error_plist().
Low level function getf() and get() renamed as ecl_get[f]().
Simplified the loops which deal with property lists.
Assertions ASSERT and CHECK-TYPE moved from conditions.lisp to assert.lisp; old definitions removed.
2003-03-21 09:24:37 +00:00
jjgarcia
aabafc3c6c
Remove public functions remf() and remprop().
2003-03-20 15:47:44 +00:00
jjgarcia
41c0868469
Bunch of fixes. See CHANGELOG.
2003-03-17 10:39:08 +00:00
jjgarcia
b7ced3d4ba
Change the way Cblocks are created. Now, within a DLL, several Cblocks may
...
be created for the different components, but in the end they are chained together
and point to a main Cblock with the handle of the library.
2003-03-13 11:10:35 +00:00
jjgarcia
5478bbe21b
DLLs and files have now termination procedures, which unload the DLL or close
...
the file, when these objects are garbage collected.
2003-03-12 10:05:42 +00:00
jjgarcia
94f70da47b
Remove debug statement.
2003-03-11 18:22:51 +00:00
jjgarcia
e10ee7808b
When dealing with compiler-macros, ECL may enter an infinite loop.
2003-03-11 14:56:48 +00:00
jjgarcia
5f6f65b407
Bunch of fixes inspired by the ANSI test suite of GCL.
2003-03-10 09:10:13 +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
b0e60245a4
c::*funs* may contain symbols (like CB marking closure boundary),
...
function structures (marking function definitions), or lists with the
format (fname MACRO interpreted-function), to denote MACROLET
expansions.
2002-12-17 10:45:36 +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
73447f1b3e
Set safe compilation as default.
2002-12-14 15:44:47 +00:00
jjgarcia
912a7fb03c
The declaration specifier for functions is FTYPE, not FUNCTION.
2002-12-14 15:37:29 +00:00
jjgarcia
62141f9f5d
Replace int -> cl_fixnum, cl_index, to avoid problems with 64-bit archit.
...
Make sure that structure/instance slots may be indexed with a simple integer.
2002-12-09 12:10:33 +00:00
jjgarcia
451ed9087d
When coercing the output of INLINE-ARGS, and found a (FIXNUM (T some-location)),
...
recognize that the "some-location" variable is NOT unboxed.
2002-12-05 09:52:07 +00:00
jjgarcia
f589ddf587
When compiling a (VALUES ...) form, put the result in VALUES; do not use
...
value0, because then the compiler assumes only one value is produced.
2002-12-05 09:48:52 +00:00
jjgarcia
de9f5afdaf
In MAYBE-PUSH-ARGS, a C variable was used initialized.
2002-12-05 09:45:38 +00:00
jjgarcia
151cf73044
Fix the names of the optimizers for SHIFT<< and SHIFT>>.
2002-12-05 09:42:58 +00:00
jjgarcia
69712a6b5a
More explicit error message at end of compilation time.
2002-11-28 09:43:19 +00:00
jjgarcia
7489558f2b
Do not use linking-calls when compiling PCL, because it is a waste of space and time, due to the use of generic functions.
2002-11-18 12:57:14 +00:00