Commit graph

36 commits

Author SHA1 Message Date
jjgarcia
01cfc8dc8f Reactivate deletion of temporary files. 2003-11-06 08:35:37 +00:00
jjgarcia
158997357b In the compiling process, we differentiate between registration of a constant, and dumping of the database of constants. The later being improved with support for a common storage space. Also, complex numbers may now be read that use #n# and #n=. 2003-11-03 08:57:01 +00:00
jjgarcia
16253ef7dc -lgmp is already included in CLIBS 2003-10-31 10:34:56 +00:00
jjgarcia
d44bc4ae09 Repair broken build process for statically linked ECL. 2003-10-30 16:27:52 +00:00
jjgarcia
540e4140f4 Forms are now stored as structures. 2003-10-16 07:38:17 +00:00
jjgarcia
e3473825d2 Bunch of fixes to allow loaded files to be garbage collected. New file naming conventions. 2003-10-06 09:40:32 +00:00
jjgarcia
df97ca1b92 Fixed bug that prevented compilation under windows. ECL is now built as a single shared library on systems which support it. The compiler is being rewritten using higher level, more expressive functions. 2003-09-08 16:53:29 +00:00
jjgarcia
5edc1bb191 Parse properly filenames with a leading dot, like ~/.ecl.lsp or ~/.eclrc 2003-06-27 16:16:26 +00:00
jjgarcia
a381a7ee09 Merge NEW_COMPILER 25.05.03 2003-05-26 09:49:50 +00:00
jjgarcia
c2aa136143 Various minor fixes, and an important set of changes to teach the compiler
and the interpreter to understand (SETF fname) function names, and to handle
them without creating auxiliary symbols.
2003-04-28 15:55:22 +00:00
jjgarcia
02622043bc New implementation of SUBTYPEP. 2003-04-10 14:32:02 +00:00
jjgarcia
6b76d155ee Create new functions SI::{GET,PUT,REM}-SYSPROP to handle vital information
about functions, SETF forms, DEFTYPEs, etc. Property lists are no longer
used for this task.
2003-03-21 14:18:56 +00:00
jjgarcia
41c0868469 Bunch of fixes. See CHANGELOG. 2003-03-17 10:39:08 +00:00
jjgarcia
b7ced3d4ba Change the way Cblocks are created. Now, within a DLL, several Cblocks may
be created for the different components, but in the end they are chained together
and point to a main Cblock with the handle of the library.
2003-03-13 11:10:35 +00:00
jjgarcia
5478bbe21b DLLs and files have now termination procedures, which unload the DLL or close
the file, when these objects are garbage collected.
2003-03-12 10:05:42 +00:00
jjgarcia
5f6f65b407 Bunch of fixes inspired by the ANSI test suite of GCL. 2003-03-10 09:10:13 +00:00
jjgarcia
451ed9087d When coercing the output of INLINE-ARGS, and found a (FIXNUM (T some-location)),
recognize that the "some-location" variable is NOT unboxed.
2002-12-05 09:52:07 +00:00
jjgarcia
69712a6b5a More explicit error message at end of compilation time. 2002-11-28 09:43:19 +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
b0ce08d0ea Changes towards 0.7b comprise naming and calling conventions. See CHANGELOG. 2002-11-04 14:08:24 +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
8e29a86094 Symbolics' LOOP macro incorporated. 2001-10-17 18:42:44 +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
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
8ab16a1af9 Commit port to Cygwin. 2001-09-08 17:06:38 +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
c8c446db10 Remove variable si::*system-directory* and use logical hostname "SYS:" instead. 2001-07-19 07:45:02 +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
2d8d0cd44b Initial revision 2001-06-26 17:14:44 +00:00