Commit graph

32 commits

Author SHA1 Message Date
jjgarcia
28e3a1c47f The build system has been cleaned. The --with-system-* options now can automatically detect the existence of GMP and Boehm-Weiser libraries 2005-04-12 11:59:26 +00:00
jjgarcia
670fc93325 Everywhere in FORMAT, ints are use, which means that the limits for format arguments can be different from those of fixnums on 64-bit architectures 2005-03-15 14:23:14 +00:00
jjgarcia
615200a550 First steps towards support of binary streams 2004-12-16 11:21:20 +00:00
jjgarcia
a36d4310da Check that the argument list of a directive is a proper list. 2004-12-01 12:53:11 +00:00
jjgarcia
27c5b1f2f5 FORMAT returns NIL when stream argument is not nil (M.Goffioul) 2004-11-29 16:49:24 +00:00
jjgarcia
2b6e16ad98 Allow ~...,V,... arguments to also be big integers 2004-10-29 13:48:47 +00:00
jjgarcia
d70236c84c Allow integer arguments to be bignums, though truncate their values to fixnumes 2004-10-25 16:29:43 +00:00
jjgarcia
cca49cd1c7 Removed attribute "noreturn" because GCC does not take into account the
possibility of longjmp into the function that called a noreturn function.
Simplified the FORMAT routine abstracting the operations on arguments,
so that they can be easily reimplemented when the type of stack changes.
FORMAT does no longer use the lisp stack, but builds lists of arguments.
2004-10-11 08:02:21 +00:00
jjgarcia
3246405dcc Imported the PRETTY-PRINTER from CMUCL and integrated it with the previously commited format.lsp. The old pretty printer remains merged in and is used by default. 2004-05-12 08:07:53 +00:00
jjgarcia
860dbd69ec Fixes due to type sizes, updates of the old garbage collector and the terrible bug with hash tables merged into main trunk 2004-02-29 15:47:01 +00:00
jjgarcia
02ed9d6468 Fixed several typos. 2004-01-09 12:30:39 +00:00
jjgarcia
4eac79774e Preliminary support for POSIX threads. 2003-11-18 11:23:07 +00:00
jjgarcia
a8e972d96a Try to initialize variables and constants in all_symbols.d. 2003-08-06 13:23:22 +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
9667a63a60 Fix FORMAT control ~C so that ~C behaves as WRITE-CHAR. 2003-05-27 12:33:59 +00:00
jjgarcia
41c0868469 Bunch of fixes. See CHANGELOG. 2003-03-17 10:39:08 +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
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
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
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
441354af45 Make format.d use only stack allocated data, to make it reentrant. 2002-09-09 07:15:57 +00:00
jjgarcia
2e439d23ad FORMAT should not accept more than 7 parameters per directive. Also,
avoid the use of pointers in fmt_set_param[_positive]().
2002-09-08 10:00:07 +00:00
jjgarcia
0d168a1aa5 Remove pointer write_ch_fun. Clean up a bit the procedure for preparing the
printer and printing circular objects.
2002-09-07 15:12:39 +00:00
jjgarcia
1179c35043 The interface for CLOS streams is cleared. First, output_ch_fun and read_ch_fun
disappear. All code pertaining CLOS streams is moved to file.d. This code
allows the user to supply an arbitrary object instead of a stream. The object
must have the following methods defined: STREAM-READ-CHAR, STREAM-UNREAD-CHAR,
STREAM-LISTEN, STREAM-CLEAR-INPUT, STREAM-WRITE-CHAR, STREAM-CLEAR-OUTPUT,
STREAM-FORCE-OUTPUT, STREAM-CLOSE. With these methods it can be used for
input and output. This implementation of streams is enabled with the flag
--with-clos-streams during configuration phase.
2002-08-27 13:46:04 +00:00
jjgarcia
d5531d7a3f Add support for Mac OSX, which means
- Enable simple allocator to use mmap()
- Rewrite cmpwt.lsp so that it produces files with short lines and ANSI strings
- Fix mkdir so that it accepts a parameter for the mode
2001-12-25 16:13: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
b979ad8b0b Changes in the names of macros related to fixnums, characters and arrays. 2001-10-11 17:44:57 +00:00
jjgarcia
9c09789e75 The interpreter, the printer and the compiler now share a common stack.
This stack is also used to build the Invocation History records, which keep
track of which functions are called and which are their local environments.
With these changes, the debugger now works to the extend that it inspecting
these Invocation History Records with :backtrace, :up, :down, :variables,
now output the rights values.
2001-09-05 18:09:20 +00:00
jjgarcia
afc2bd70d3 Make the code more portable with respect to changes on the direction of
growth of the stack and in the way va_arg() arguments can be accessed.
Fix the bytecodes compiler so that it handles toplevel forms properly and
so that it understands LOCALLY.
Split configure.in into configure.in+aclocal.m4 and improve the resulting
tests.
2001-07-27 17:01:28 +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