Commit graph

38 commits

Author SHA1 Message Date
jjgarcia
3d968c077a ffi::definline has a bogus definition in ffi.lsp. 2002-02-12 16:06:18 +00:00
jjgarcia
af0504410d Instead of producing a call to object_to_int, defCbody should call object_to_fixnum 2002-02-12 16:05:35 +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
9b4bd625f4 +The compiler produced wrong code for RETURN-FROM forms inside an UNWIND-PROTECT.
+Deftype BIT-VECTOR would not expand to a vector type.
+Each compiled file has an entry point whose name is either
 init_CODE() or another name based on the name of the source file.
 The algorithm for computing these names has been slightly changed
 so that the entry points of ECLS's own library do not conflict with
 user defined entry points.
+A LET/LET* form in which the initializers for a variable have not
 the expected type produce a warning, but the code is accepted. For
 instance (LET (V) (DECLARE (TYPE FIXNUM V)) (SETQ V 1)) now
 compiles.
+(SETF name), where name is a symbol, is now a valid function name in all
 contexts. It is accepted by DEFUN, FUNCTION, FBOUNDP, FMAKUNBOUND, etc,
 and it can be the on the function position in any form.
+New specialized arrays for (UNSIGNED-BYTE 8) and (SIGNED-BYTE 8).
2001-11-17 11:02:12 +00:00
jjgarcia
4a5ff5cb15 A bug in the compiler lead to wrong output for CATCH forms in which the tag is not constant. 2001-10-20 15:57:52 +00:00
jjgarcia
c63e81c4f5 Simplified compilation of &aux parameters in lambda lists.
Fixed bug in the compiler for MULTIPLE-VALUE-BIND: resulting code would not
undo bindings of special variables.
Optimized statements like (let ((*special-var* *special-var*)) ...) where
*special-var* is a special variable.
2001-10-19 22:16:49 +00:00
jjgarcia
8e29a86094 Symbolics' LOOP macro incorporated. 2001-10-17 18:42:44 +00:00
jjgarcia
101cddc1b1 When compiling PSETQ, the arguments would be evaluated in the wrong order. 2001-10-17 18:41:17 +00:00
jjgarcia
7957040185 New interface for building standalone programs and libraries. 2001-10-17 16:40:22 +00:00
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
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
0b8bb53770 Change the interface of C::BUILD-ECLS 2001-10-04 16:29:07 +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
2c35fb9a2c (DECLARE (OPTIMIZE DEBUG)) is ignored, but no warning is issued. 2001-09-29 11:02:40 +00:00
jjgarcia
8ab16a1af9 Commit port to Cygwin. 2001-09-08 17:06:38 +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
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
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
16668c218d When using Boehm's GC, protect data in shared libraries from garbage collection. 2001-07-30 16:09:29 +00:00
jjgarcia
7c2af5c4ca Add {va_}parse_key, which is needed for inlined lambda code. 2001-07-29 15:45:11 +00:00
jjgarcia
a910aa351d Remove debugging statement. 2001-07-29 09:46:15 +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
983975dbd9 Rewrite the compiler, tests and auxiliary files using the new binary loader. 2001-07-23 09:08:02 +00:00
jjgarcia
c714dc74ca Optimizer for SCHAR + SYMBOL-NAME makes no longer sense. 2001-07-23 07:55:38 +00:00
jjgarcia
4ac52f9948 Declare variable special even if it is given no value. 2001-07-23 07:54:35 +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
b4a5edcce4 Remove variable si::*not-compile-time* which was redundant with si::*compile-time-too*
PROCLAIM is no longer processed at compile time.
Replace most uses of PROCLAIM with DECLAIM, so that it is taken into account at compile time.
2001-07-19 09:05:23 +00:00
jjgarcia
d37bba1b7a DEFTYPE, DEFSTRUCT and DEFSETF need not be treated specially by the compiler. 2001-07-19 08:46:27 +00:00
jjgarcia
d886edda9f Remove property 'CFUN which was not used anywhere. 2001-07-19 08:14:24 +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