Commit graph

70 commits

Author SHA1 Message Date
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
1e1efa7a7c Use VECTORP to detect whether the output sequence of MAP-INTO is a vector,
and take the fill-pointer into account, if it exists.
2003-04-28 09:32:34 +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
1fe35cfb5b TYPEP for array types failed to check the array dimensions properly. 2003-04-10 20:40:08 +00:00
jjgarcia
6a7c791985 The UPGRADED-* functions take an optional argument -- which we ignore. 2003-04-10 19:51:05 +00:00
jjgarcia
88563164b1 LOOP-DO-REPEAT has to be a public function. 2003-04-10 19:21:54 +00:00
jjgarcia
54487f34f7 Fix the LOOP macroexpander to support "BY" keyword and better destructuring
(For instance (LOOP FOR NIL ...)). Changes taken from CMUCL.
2003-04-10 18:41:44 +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
41c0868469 Bunch of fixes. See CHANGELOG. 2003-03-17 10:39:08 +00:00
jjgarcia
a767dd4939 Symbol GC moved from package COMMON-LISP to SYSTEM (and imported into CL-USER). 2003-03-13 13:10:15 +00:00
jjgarcia
a627819a71 Typo fixed. 2003-03-10 14:02:44 +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
8209fc021e Write FTYPE declarations correctly. 2002-12-17 09:53:52 +00:00
jjgarcia
912a7fb03c The declaration specifier for functions is FTYPE, not FUNCTION. 2002-12-14 15:37:29 +00:00
jjgarcia
671d9db39a Fix typo. 2002-12-04 19:08:12 +00:00
jjgarcia
bf8a3c21a9 Replaced LET -> LET* to make C code smaller, wherever it is possible. 2002-12-04 15:40:42 +00:00
jjgarcia
d20cde0cd9 New definition for SI:DESTRUCTURE uses SI::PROCESS-LAMBDA-LIST to parse
the destructuring list, for both DEFMACRO and DESTRUCTURING-BIND forms.
This results in smaller code.
2002-12-04 09:34:32 +00:00
jjgarcia
b68c2036f6 New expansion for DO/DO* produces smaller code. 2002-12-04 09:32:47 +00:00
jjgarcia
0cb11a2aad Global variables preserving_whitespace, detect_eos_flag, escape_flag and
delimiter_char removed. Function readc_stream and unreadc_stream renamed
to ecl_getc and ecl_ungetc. They now have a C-like behavior, do not
complain about EOF and return the special value EOF when the end of the
file is reached.
2002-11-24 15:52:15 +00:00
jjgarcia
a1cb0392e0 Make DISPATCH-FUNCTION a valid type. 2002-11-18 12:55:22 +00:00
jjgarcia
63b1ed0e31 Move all si::c-export-fname proclamations to the sysfun.lsp file, because they are only required when compiling files. 2002-11-18 12:52:31 +00:00
jjgarcia
fcb923948d Removed si::clear-compiler-properties from the core library. It is defined later in the compiler. 2002-11-18 12:46:32 +00:00
jjgarcia
632312cfcb Removed si::*inhibit-macro-special*. 2002-11-18 12:45:41 +00:00
jjgarcia
72ceea3d3c Fixed FILE-NAMESTRING, implemented ENSURE-DIRECTORIES-EXIST, and added a
WITH-COMPILATION-UNIT which does nothing.
2002-11-14 18:38:34 +00:00
jjgarcia
9bdb35ee31 Make the behavior of "**" in logical pathnames more intuitive. For
instance, now "HOME:FOO.LISP" matches the translation rule
("**/*.*" "~/**/*.*"), which formerly it did not. Also, add a logical
hostname for the home directory.
2002-11-14 16:32:18 +00:00
jjgarcia
804380bb4f Fix a typo. 2002-11-14 09:48:58 +00:00
jjgarcia
b0ce08d0ea Changes towards 0.7b comprise naming and calling conventions. See CHANGELOG. 2002-11-04 14:08:24 +00:00
jjgarcia
a9e4edf4d0 The calling conventions have been changed. SI::C-ARGUMENTS-LIMIT and
LAMBDA-PARAMETERS-LIMIT are both 64. Up to C-ARGUMENTS-LIMIT may be
passed to a function using C calling conventions. If the function is
to retrieve more arguments, (for instance through a &rest variable),
this can be done, but then the arguments have to be pushed on the lisp
stack. This method allows us to raise the CALL-ARGUMENTS-LIMIT up to
MOST-POSITIVE-FIXNUM. From a users point of view, there is no visible
change, excep the fact that a function may receive more arguments.

The function apply() has been replaced with cl_apply_from_stack().
The former took a pointer to the list of arguments. The latter assumes
that the last "narg" elements on the lisp stack are the arguments of
the function.
2002-10-21 09:27:58 +00:00
jjgarcia
a5aaa3edf3 Use abs_{srcdir,builddir,top_srcdir}, to avoid problems with latest autoconf. 2002-10-13 16:02:23 +00:00
jjgarcia
a0470a134c Add more symbols from the CL package to symbols_list.h. 2002-09-17 14:53:46 +00:00
jjgarcia
9e8180d8ef Fix interplay between old garbage collector and new method for allocating
symbols. The old GC still has a leak, so disable it.
2002-09-16 16:40:27 +00:00
jjgarcia
2414150f77 Verbose loading of files. Helps in debugging errors in the library. 2002-09-16 16:39:21 +00:00
jjgarcia
356e6b9235 ECL now uses a hashtable to store objects when *PRINT-CIRCLE* is
on. This hashtable is not cleared when calling PRINT-OBJECT, so
that circularities are also detected inside these methods.
2002-09-14 11:30:17 +00:00
jjgarcia
ded8f34629 Code for handling :IMPORT-FROM in DEFPACKAGE was bogus 2002-05-22 13:38:33 +00:00
jjgarcia
7e5cacd38e * Variable *EVAL-WHEN-COMPILE* is no longer used.
* FIND-CLASS belongs to the C library -- it can now be directly called.
* Class BUILT-IN renamed to BUILT-IN-CLASS
* Macro PROG1 slightly optimized
2002-05-17 16:37:21 +00:00
jjgarcia
1be3957ec4 FIND-METHOD should be public in CL. 2002-05-13 12:30:12 +00:00
jjgarcia
acae405641 * DEFSETF now works with functions that take keword arguments. For instance,
(DEFSETF XY (&KEY X Y) (STORE) ...).
* GET-SETF-EXPANSION now avoids generating temporary variables for immediate
  values, such as keywords and integers.
2002-05-13 07:22:06 +00:00
jjgarcia
7c142461af Added new type names for the different forms of streams (ECHO-STREAM, STRING-
STREAM, etc). Now TYPE_OF() returns these more specific names.
2002-05-13 07:21:15 +00:00
jjgarcia
50564327b0 BYTECODES-SPLIT is now called BC-SPLIT 2002-05-13 07:13:04 +00:00
jjgarcia
6ec3b91890 Implement DEFINE-COMPILER-MACRO and COMPILER-MACRO-FUNCTION 2002-05-10 07:41:15 +00:00
jjgarcia
9d936beb41 When displacing array A to B, ADJUST-ARRAY should not copy data from A to B. 2002-05-10 07:37:25 +00:00
jjgarcia
13f65ea3fe Hannu Koivisto:
* define-setf-method -> define-setf-expander,
* get-setf-method -> get-setf-expansion.
* (setf-expand-1) Now relies completely on get-setf-expansion and
  macros are no longer favored over setf expanders.
* Export added reinitialize-instance, shared-initialize and
  update-instance-for-redefined-class
2002-02-18 11:13:19 +00:00
jjgarcia
3d968c077a ffi::definline has a bogus definition in ffi.lsp. 2002-02-12 16:06:18 +00:00
jjgarcia
221162e88c Some changes in the documentation to reflect the merge 2001-11-21 08:33:34 +00:00
jjgarcia
851cd03941 The project name goes back to ECL. Therefore feature #+ECL returns and the
program and libraries are named ecl*. Finally the routine sys::build-ecls
has been renamed sys::build-program.
2001-11-21 08:07:30 +00:00
jjgarcia
9b4bd625f4 +The compiler produced wrong code for RETURN-FROM forms inside an UNWIND-PROTECT.
+Deftype BIT-VECTOR would not expand to a vector type.
+Each compiled file has an entry point whose name is either
 init_CODE() or another name based on the name of the source file.
 The algorithm for computing these names has been slightly changed
 so that the entry points of ECLS's own library do not conflict with
 user defined entry points.
+A LET/LET* form in which the initializers for a variable have not
 the expected type produce a warning, but the code is accepted. For
 instance (LET (V) (DECLARE (TYPE FIXNUM V)) (SETQ V 1)) now
 compiles.
+(SETF name), where name is a symbol, is now a valid function name in all
 contexts. It is accepted by DEFUN, FUNCTION, FBOUNDP, FMAKUNBOUND, etc,
 and it can be the on the function position in any form.
+New specialized arrays for (UNSIGNED-BYTE 8) and (SIGNED-BYTE 8).
2001-11-17 11:02:12 +00:00
jjgarcia
873c9951fc Documentation strings are stored in hash tables, not in property lists.
These hash tables can be dumped to help files which are understood by ECLS.
Most documentation strings have been moved back to the lisp source files
from which "SYS:help.doc" is built.
2001-10-21 13:15:45 +00:00