Commit graph

2746 commits

Author SHA1 Message Date
jjgarcia
b2dd8e9e3a 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-15 16:44:04 +00:00
jjgarcia
8df91fc44b PROBE-FILE would not translate logical pathnames. 2001-10-15 16:35:28 +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
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
29dcac3ccc New utility function c_string_to_object(). 2001-09-29 11:01:37 +00:00
jjgarcia
c167982060 :UNSPECIFIC is now understood. Plus "c:/my/path" and "//c/my/path" now work. 2001-09-29 11:01:04 +00:00
jjgarcia
8ab16a1af9 Commit port to Cygwin. 2001-09-08 17:06:38 +00:00
jjgarcia
8185cda979 Use <float.h> to determine the system limits. 2001-09-06 15:54:54 +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
528810f1f0 Allow realloc(NULL,size). 2001-08-22 22:42:19 +00:00
jjgarcia
fed67561d8 If rlimit values are too high, the stack-boundary pointer in ecls might wrap around. 2001-08-22 22:41:32 +00:00
jjgarcia
5d6c9b0fae gc.h is now located on a different place. 2001-08-22 21:34:19 +00:00
jjgarcia
e090dfbc86 Avoid passing files throug the preprocessor, as it corrupts paths. For
instance, when cross-compiling from FreeBSD to Linux, /compat/linux
gets converted into "/compat/ 1 " which is obviously bogus.
2001-08-18 10:55:10 +00:00
jjgarcia
1dc8ef2c96 Fix typo, corrupt_hashtable -> corrupt_hash 2001-08-18 10:12:53 +00:00
jjgarcia
f6858838f4 Refer allocation, not to a fixed DATA_START, which could change any time,
but to the dynamically determined "heap_start".
Define pointer types and macros to handle pointer arithmetic properly.
Replace calls to clLfuncall in interpreted code with OP_FCALL/OP_PFCALL.
Fix OP_PFCALL/OP_FCALL so that it looks for symbols in the global environment.
Take care of stack growth direction in mark_stack_conservative().
2001-08-12 14:49:14 +00:00
jjgarcia
e707fdb744 va_APPLY() and va_APPLY_closure() contained absurd, stupid and useless code. 2001-08-11 13:31:08 +00:00
jjgarcia
a5e550dce9 Fix va_lambda_apply() and add va_gcall(). 2001-08-11 13:30:29 +00:00
jjgarcia
1eaf1d3999 Remove nonportable use of va_list. 2001-08-06 23:05:13 +00:00
jjgarcia
8218528ffb Fixnum product would overflow.
Bit fiddling operations with negative fixnums now work.
Remove unportable code of the type va_list d = cs.
Simplify gathering of &rest and &key arguments in compiled code.
2001-08-06 22:14:31 +00:00
jjgarcia
b6fc855410 Bit fiddling functions (boolean, logand, logbit, etc) now work with negative bignums. 2001-08-01 16:47:19 +00:00
jjgarcia
16668c218d When using Boehm's GC, protect data in shared libraries from garbage collection. 2001-07-30 16:09:29 +00:00
jjgarcia
ef28e8a279 Remove references to heap_{start,end}. They do not exist when linking against Boehm's GC. 2001-07-29 16:33:34 +00:00
jjgarcia
77c8cc4ebf Fix typo. 2001-07-29 16:25:10 +00:00
jjgarcia
eadd74cbba Define CHAR_BIT as number of bits in a character. 2001-07-29 16:13:12 +00:00
jjgarcia
af2d5baf84 parse_key is now named va_parse_key 2001-07-29 15:51:08 +00:00
jjgarcia
7c2af5c4ca Add {va_}parse_key, which is needed for inlined lambda code. 2001-07-29 15:45:11 +00:00
jjgarcia
df51d3c0ec Remove siLuniversal_error_handler from C library. 2001-07-29 11:08:58 +00:00
jjgarcia
126c99b6fb In fixnnint(), retrieve unsigned long from bignum, instead of signed long. 2001-07-29 10:55:32 +00:00
jjgarcia
0393f4d618 Implement accessor ROW-MAJOR-AREF.
Implement special form COMPILER-LET.
2001-07-28 10:47:17 +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
2dbdc71318 Define tanhf for systems that do not have it. 2001-07-23 10:56:18 +00:00
jjgarcia
9f01940912 Use finite() instead of isinf(), which does not exist in Solaris. 2001-07-23 10:55:47 +00:00
jjgarcia
eb8a59107f Use isdigit() instead of isnumber() 2001-07-23 10:20:07 +00:00
jjgarcia
acc3404d71 Use isdigit() instead of isnumber() 2001-07-23 09:31:59 +00:00
jjgarcia
35a9b11d37 Rewrite the binary code loader to work with dlopen() instead of dld() 2001-07-23 08:49:01 +00:00
jjgarcia
da1c522cbc Merge tcp.d and ../crs/socket.c. 2001-07-23 08:45:37 +00:00
jjgarcia
e537b5fe36 Use lisp integers, not just fixnums, to store addresses. 2001-07-23 08:43:48 +00:00
jjgarcia
63fb67ed0c Generalize fixint/fixnnint and create make_integer/make_unsigned_integer so
that C long integers which exceed the fixnum representation are promoted
to bignums. This is particularly important when exporting addresses to lisp code.
2001-07-23 08:43:05 +00:00
jjgarcia
e8d4cf7438 write_addr() would only output the first digit of any number. 2001-07-23 08:38:02 +00:00
jjgarcia
8563a1fc1c Fix the compiler so that when it finds LOCALLY, MACROLET or SYMBOL-MACROLET
at the top level, it processes their bodies as top level forms as well. For
instance, (LOCALLY (EVAL-WHEN (:COMPILE-TOPLEVEL) (PRINT "HELLO"))), now works.
2001-07-19 15:33:46 +00:00
jjgarcia
c8c446db10 Remove variable si::*system-directory* and use logical hostname "SYS:" instead. 2001-07-19 07:45:02 +00:00
jjgarcia
ea010dee34 Add new declaration, si::c-export-fname, which produces lisp compiled files with
meaningful names for the exported functions. For instance,
	(proclaim '(si::c-export-fname union))
is used to produce a C function with name clLunion, which can be directly used
in other compiled files. This feature has been applied to almost all functions
in the Lisp runtime.
2001-07-12 16:32:15 +00:00
jjgarcia
f2da18a591 Add a name mangler to the lisp runtime. Use this mangler in the compiler to
optimize access to symbols and functions which are defined in the C runtime.
2001-07-05 10:08:52 +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