Commit graph

173 commits

Author SHA1 Message Date
jjgarcia
a6fea4e63e After reading an object, READ should skip whitespaces until it fints the
beginning of a new line, the EOF, or a new token. This way (READ-LINE)
at the prompt, produces the expected result instead of an empty line.
2002-11-23 15:42:09 +00:00
jjgarcia
7a58f94bd0 We need machines.h do define unix.h. 2002-11-21 13:41:22 +00:00
jjgarcia
cfb16c1920 + The tests for the type and size of cl_fixnum have been grouped.
FIXNUM_BITS and CHAR_BIT do not rely now on "char" being 8-bit
  large.
+ All configuration settings are now grouped in config.h. This file
  has two parts, and the second one, containing flags which are only
  needed during the build process, is deleted when installing ECL.
+ File critical.h merged into lwp.h.
2002-11-20 17:26:21 +00:00
jjgarcia
7b4be96812 Remove more unused entries in external.h. 2002-11-18 17:28:02 +00:00
jjgarcia
05950d2eb9 ecl_boot=1 is required before init_CLOS() so that clear_compiler_properties()
works.
2002-11-18 12:59:19 +00:00
jjgarcia
a1cb0392e0 Make DISPATCH-FUNCTION a valid type. 2002-11-18 12:55:22 +00:00
jjgarcia
c08c51ab4a Instead of defining cl_alloc* stuff, make them alias of functions in the Boehm-Weiser garbage collector, to save space. 2002-11-18 12:50:54 +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
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
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
da477db1ea Introduce function coerce_to_simple_string() to ensure that C functions get a null-terminated string 2002-11-18 11:26:33 +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
a60d37ade4 Replace static C variable backq_level with special variable si::*backq-level* 2002-11-18 11:20: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
12ba5b9035 FILE-NAMESTRING coerced pname to a string, instead of to a pathname. 2002-11-14 17:11:27 +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
e2f5ecd373 Lambda lists of interpreted functions should have no limitation. 2002-11-08 11:01:46 +00:00
jjgarcia
aff037d412 Remove unportable hacks in BWGC, just in case someone wishes to an already
installed version.
2002-11-05 13:14:57 +00:00
jjgarcia
d77e370f56 In systems without DLOPEN, the list of *load-hooks* was corrupt. 2002-11-05 10:58:13 +00:00
jjgarcia
b0ce08d0ea Changes towards 0.7b comprise naming and calling conventions. See CHANGELOG. 2002-11-04 14:08:24 +00:00
jjgarcia
7b7b05bfc3 Build a the internet address properly. One cannot just pass the
unsigned long on architectures with "wrong" endianness.
2002-10-25 09:33:17 +00:00
jjgarcia
e819427147 Enforce strict typechecking on all functions. 2002-10-22 12:52:52 +00:00
jjgarcia
32db83b88a The stack pointer in args[0].sp should point to the first value which
is not passed on the C stack.
2002-10-22 07:09:17 +00:00
jjgarcia
84e4a9bb92 Fix typo. 2002-10-21 12:33:43 +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
5f92465b08 SI::LOOKUP-HOST-ENTRY should not signal an error when the host is not found. 2002-10-16 07:15:58 +00:00
jjgarcia
9724cc060a Remove unused function object_to_string(). 2002-10-16 07:06:37 +00:00
jjgarcia
e919dcd6c7 Remove unused function make_list() 2002-10-16 06:59:50 +00:00
jjgarcia
874affc400 SUBSEQ should also work with vectors of bytes. 2002-10-16 06:56:47 +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
0912497863 Simplify use of local variables, eliminating the redundant symbol from the
bytecodes.
2002-10-13 17:05:40 +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
a5aaa3edf3 Use abs_{srcdir,builddir,top_srcdir}, to avoid problems with latest autoconf. 2002-10-13 16:02:23 +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
1897e278d6 *standard-output* and *terminal-io* are always bound to something. 2002-10-08 16:32:13 +00:00
jjgarcia
7a4c7788bf Small optimization for APPLY[_closure]. 2002-10-07 09:27:23 +00:00
jjgarcia
e2d71f3f18 default_dispatch_macro should be private. 2002-10-04 15:47:34 +00:00
jjgarcia
15b66bff98 Remove global variable read_VV_block. Use special variable instead. 2002-10-04 15:42:57 +00:00