jjgarcia
cdff225681
Implemented locking on hash tables and packages. Fixed several floating point contagion bugs in +, -, /, *, and ROUND.
2003-11-24 11:27:28 +00:00
jjgarcia
4eac79774e
Preliminary support for POSIX threads.
2003-11-18 11:23:07 +00:00
jjgarcia
3f30e465fe
Some newline characters make output more readable.
2003-11-13 08:39:23 +00:00
jjgarcia
f7c7d6c88f
When the user supplies a value for LDFLAGS, include it in SHARED_LDFLAGS and BUNDLE_LDFLAGS. The GMP library and the Boehm-Weiser garbage collector need not be included in CLIBS.
2003-11-10 08:55:06 +00:00
jjgarcia
6c7e48efb6
Support for making and loading FASL files under OSX.
2003-11-08 16:53:22 +00:00
jjgarcia
01cfc8dc8f
Reactivate deletion of temporary files.
2003-11-06 08:35:37 +00:00
jjgarcia
9292714179
LDB1 did not get inlined if the expected output was not a fixnum.
2003-11-06 08:35:17 +00:00
jjgarcia
38134ccfdc
When a variable has a lexical reference from a local function, this varible
...
must be stored in a vector. The number of these vectors (i.e. the "lexical
level") was not properly computed: sample bogus code
(funcall
(compile nil
'(lambda (b)
(labels ((%f8 nil -39011))
(flet ((%f4 (f4-1 f4-2 &optional (f4-3 (%f8)) (f4-4 b))
(%f8)))
(%f4 -260093 -75538 -501684 (let ((v9 (%f8))) -3))))))
2003-11-06 08:34:32 +00:00
jjgarcia
d45438dce9
Sending arguments via the lisp stack to a local function with lexical
...
and closure environments did not work. Example of failed code
(funcall
(compile nil
'(lambda (a b c)
(labels ((%f6 (f6-1 f6-2) c))
(multiple-value-call #'%f6 (values a c)))))
0 10 20)
2003-11-05 17:32:45 +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
16253ef7dc
-lgmp is already included in CLIBS
2003-10-31 10:34:56 +00:00
jjgarcia
d44bc4ae09
Repair broken build process for statically linked ECL.
2003-10-30 16:27:52 +00:00
jjgarcia
19be68f9bc
Merge calls to FUNCALL + FDEFINITION whenever possible.
2003-10-30 10:27:47 +00:00
jjgarcia
83f2c6f1f1
LOAD-TIME-VALUE was broken
2003-10-23 11:50:31 +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
e3473825d2
Bunch of fixes to allow loaded files to be garbage collected. New file naming conventions.
2003-10-06 09:40:32 +00:00
jjgarcia
b9259ebf6c
Fixed typo: 'fixnum' is the old name of the 'cl_fixnum' type.
2003-09-23 08:03:55 +00:00
jjgarcia
018224ae87
Fixed typo
2003-09-22 07:51:34 +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
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