Commit graph

25 commits

Author SHA1 Message Date
jjgarcia
0772b295cc Signal also an arithmetic error when dividing by a floating point 0 2003-12-19 13:00:29 +00:00
jjgarcia
c5ec810687 Division by integer 0 signal a DIVIDE-BY-ZERO error. (- (- MOST-NEGATIVE-FIXNUM)) now works. Fixed CEILING and FLOOR with arguments MOST-NEGATIVE-FIXNUM (- MOST-NEGATIVE-FIXNUM). (EXPT x y) now returns 1 coerced to the right type when (ZEROP y)=>T. 2003-12-09 09:34:33 +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
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
1af46c7c39 Use the READER-ERROR condition to signal errors in the reader. 2003-04-10 17:40:34 +00:00
jjgarcia
41c0868469 Bunch of fixes. See CHANGELOG. 2003-03-17 10:39:08 +00:00
jjgarcia
1b64032b99 We need string.h for strerror(). 2002-12-09 12:49:49 +00:00
jjgarcia
ffbfd24425 When illegally trying to access a closed stream, signal an error of type
STREAM-ERROR. Also, check operations from the C library for possible errors
and use FElibc_error() when these input/output operations fail.
2002-11-27 15:54:25 +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
aefdb1995b Introduce ecl_register_static_root() to register C static variables as containing pointers for garbage collection. Make ecl_register_static_root() do nothing in the Boehm-Weiser GC, because it already scans the whole data segment. 2002-11-18 12:48:58 +00:00
jjgarcia
2e6482b0a1 Rewrite the checking of # of arguments, so that the error message gets the name of the function whenever possible. 2002-11-18 11:29:21 +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
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
ac940d1cf2 <signal.h> has to be included so that SIGIOT may be restored before aborting.
A temporary error handler is also installed, which simply exits.
2002-09-16 12:20:24 +00:00
jjgarcia
23ee878e59 All symbols belonging to the LISP package and to the C core, are
kept in a single array, "cl_symbols". The translator "dpp" and the
routine SI::MANGLE-NAME, output the right name for any symbol
which is in this array.
2002-09-15 13:29:05 +00:00
jjgarcia
d6452b708e Implement si::mkdir and FEfilesystem_error. Simplify other error handlers. 2001-12-20 17:20:18 +00:00
jjgarcia
c9b91f9618 Minimal patches for C++ compatibility 2001-12-20 09:17:51 +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
c479d71051 Reader macro #, is now unsupported. Instead we have implemented
LOAD-TIME-VALUE both in the interpreter and in the compiler. Type error
messages from the compiler have been also improved.
2001-10-07 20:01:50 +00:00
jjgarcia
5f0dbbf1d1 - Remove function_entry_table.
- The value of *package* is correctly set and restored while loading
  compiled code. This way, 'ecls -eval "(print *package*)"' produces
  the expected result #<"COMMON-LISP-USER" package>
- COMPILE-FILE now outputs three values.
- The value of si::*keep-definitions* determines whether the
  interpreter keeps the source of defined functions, for later use
  with COMPILE and DISASSEMBLE. For instance,
	> (set si::*keep-definitions* t)
	> (defun foo (x) (1+ x))
	> (compile 'foo)
	> (foo 2)
	3
	> (compile 'foo)
	;;; Error ....
  These definitions are lost once the function is compiled, hence
  the second error message.
2001-10-03 16:30:15 +00:00
jjgarcia
df51d3c0ec Remove siLuniversal_error_handler from C library. 2001-07-29 11:08:58 +00:00
jjgarcia
0dc4df6002 Add a name mangler to "dpp" so that it translates symbol names as
@'si:symbol-name' @'other-symbol*' into the appropiate C name. All
symbol names and function names have been rewritten using this convention.
2001-07-02 17:11:28 +00:00
jjgarcia
2d8d0cd44b Initial revision 2001-06-26 17:14:44 +00:00