Commit graph

134 commits

Author SHA1 Message Date
jjgarcia
bdb7be296f DISASSEMBLE should not signal an error when a form cannot be disassembled, and it should always return NIL. 2003-12-08 11:01:11 +00:00
jjgarcia
48740191e6 Local functions whose name appears in a FUNCTION special form must be converted into an object. This is marked by setting FUN-REF-CCB to true. 2003-12-08 09:37:47 +00:00
jjgarcia
b55dafa58d Finished the port to MingW32. 2003-12-01 11:21:47 +00:00
jjgarcia
c09dd1a588 *** empty log message *** 2003-11-24 16:39:04 +00:00
jjgarcia
686de488d2 Define the macros WITH-LOCK and WITHOUT-INTERRUPTS also for single-threaded lisps. 2003-11-24 14:03:32 +00:00
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