Commit graph

110 commits

Author SHA1 Message Date
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