Commit graph

98 commits

Author SHA1 Message Date
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
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
2f2a05798d Replace static C variable sharp_eq_context with special lisp variable si::*sharp-eq-context* 2002-11-18 11:31:53 +00:00
jjgarcia
6b408bad43 Remove pathname_match_p and symbol_name, which are redundant. Clean external.h, removing names of functions which do ot exist. 2002-11-18 11:30:56 +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
3c71ec8ad2 Make use of GCC's __attribute__((regparm)) to simplify calling the error functions. 2002-11-18 11:27:51 +00:00
jjgarcia
b55a0130bc Replace coerce_to_string_designator with cl_string 2002-11-18 11:24:30 +00:00
jjgarcia
bfcc390d7f Merge more functions (copy_tree, copy_list, etc), so that only the lisp version is used and this one takes a fixed number of arguments. 2002-11-18 11:23:52 +00:00
jjgarcia
7ecf198780 Make cl_acons a function with fixed number of arguments. 2002-11-18 11:22:45 +00:00
jjgarcia
1cae8539ff Make reader functions take a fixed number of arguments. 2002-11-18 11:21:06 +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
914f959599 1) Fix error in UNWIND-PROTECT forms: the destination frame nlj_fr has to
be saved, because it may be overwritten by a BLOCK or TAGBODY inside
the normal exit form.
2) Implement Invocation History Stack as a chain of stack-allocated records.
3) In compiled TAGBODY forms, replace tags with numbers to save space.
2002-11-11 12:57: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
feeea3db1a Remove unused functions extended_{mul,div}(). 2002-10-16 07:11:01 +00:00
jjgarcia
9724cc060a Remove unused function object_to_string(). 2002-10-16 07:06:37 +00:00
jjgarcia
f03ef8ae16 Added function SI:OPEN-UNIX-SOCKET-STREAM and SI:LOOKUP-HOST-ENTRY 2002-10-15 13:38:18 +00:00
jjgarcia
39539e5714 Add new operator OP_LFUNCTION and remove OP_CALL/OP_PCALL. This results in
a simplification of the code for OP_FUNCTION, which may assume that the
function to be searched is a global.
2002-10-13 17:13:25 +00:00
jjgarcia
cd6d1e61ef Simplify the bytecodes a bit and add comments describing their use. 2002-10-13 16:57:24 +00:00
jjgarcia
3c7fe4535b Instead of having gcall() work like funcall(), create a function
[va_]compute_method() which computes the method we really want to call,
and use this function inside funcall(), apply(), etc.
2002-10-13 16:05:26 +00:00
jjgarcia
59a26b4751 Use same link_call() with and without CLOS. The use of static variables is
not thread safe.
2002-10-13 16:03:36 +00:00
jjgarcia
29734ae79b New functions SI:SAFE-EVAL and cl_safe_eval() allow the user to evaluate
code with errors without jumping into the debugger. Useful when embedding
ECL in other programs.
2002-10-08 17:40:22 +00:00
jjgarcia
4c6036b3f8 Changed the algorithm of the list reader. A dot which is not escaped is read as
a symbol SI::. which is recognized by LEFT-PARENTHESIS-READER. This avoids
using global variables "in_list_flag" and "dot_flag". No need for function
read_object_recursive(), since read_object() is equivalent to it.
2002-10-08 16:50:28 +00:00
jjgarcia
97dbff8921 New function to undo "n" bindings of special variables. 2002-10-08 16:39:55 +00:00
jjgarcia
e2d71f3f18 default_dispatch_macro should be private. 2002-10-04 15:47:34 +00:00
jjgarcia
d81eb52f3f Remove global variable READtable. Use value of symbol instead. 2002-10-04 14:44:04 +00:00
jjgarcia
15b0a010a6 Remove global variable READsuppress. Use value of symbol instead. 2002-10-04 13:03:06 +00:00
jjgarcia
e69c094119 Remove global variable READdefault_float_format. Use value of symbol instead. 2002-10-04 12:51:21 +00:00
jjgarcia
826bdc6cca Remove global variable READbase. Use value of symbol instead. 2002-10-04 12:36:08 +00:00
jjgarcia
39811b295f Remove global variable READtable. Use the value of the symbol instead.
Prefix standard_readtable, current_readtable() with cl_
2002-10-04 09:55:57 +00:00
jjgarcia
31e4ac5fa1 Remove some extra tokens after #endif. 2002-10-04 08:25:14 +00:00
jjgarcia
6ed993bd85 Replace low level code with cl_string_push_extend(), isalpha(), islower(). 2002-09-26 10:41:24 +00:00
jjgarcia
6288e333b0 Remove extra tokens from #endif 2002-09-25 17:15:19 +00:00
jjgarcia
e33e82eafc Collect function and symbol declarations in the same file: all_symbols.d 2002-09-22 12:19:23 +00:00
jjgarcia
055d71ec73 Remove unused headers. 2002-09-20 09:04:22 +00:00
jjgarcia
50a46e8f60 Replace informative tokens after #endif with comments. 2002-09-17 15:42:51 +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
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
ca4b7822d1 New header for things which are not for the end user. 2002-09-15 13:19:00 +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
eb36d14010 gentemp_prefix and gensym_prefix are now constant static variables and their
value is not modified by calls to GENSYM or GENTEMP.
2002-09-11 14:49:54 +00:00
jjgarcia
74c02ee5b3 Global variables bignum_register[], gc_time, backq_level are no longer public. 2002-09-11 13:39:44 +00:00
jjgarcia
9eb9d3bc88 Hide a lot of functions. Official interface for printer is made of
setupPRINT() and write_object().
2002-09-07 15:30:51 +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
370289ec26 Create new functions for make_string_output_stream_from_string() and
cl_string_push_extend().
2002-09-07 13:40:07 +00:00
jjgarcia
265a23d5ce Remove global variable intern_flag. Add, instead, a new parameter to
intern() and find_symbol().
2002-09-03 14:53:34 +00:00
jjgarcia
098aa5bee4 Remove unused type intUobject. 2002-09-03 14:51:02 +00:00
jjgarcia
3a87ac41f4 Provide declarations for some functions & remove some #include's from ecl.h 2002-09-03 13:39:13 +00:00
jjgarcia
fcdc396b53 Remove useless definitions. 2002-09-03 12:23:11 +00:00