Commit graph

85 commits

Author SHA1 Message Date
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
f20736084b Add more symbols to src/c/symbols_list.h, and resolve associated conflicts. 2003-04-28 09:25:58 +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
8bb27d3094 Remove public function putprop(); use si_putprop() instead.
Removed public functions FEtype_error_plist().
Low level function getf() and get() renamed as ecl_get[f]().
Simplified the loops which deal with property lists.
Assertions ASSERT and CHECK-TYPE moved from conditions.lisp to assert.lisp; old definitions removed.
2003-03-21 09:24:37 +00:00
jjgarcia
aabafc3c6c Remove public functions remf() and remprop(). 2003-03-20 15:47:44 +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
94f70da47b Remove debug statement. 2003-03-11 18:22:51 +00:00
jjgarcia
e10ee7808b When dealing with compiler-macros, ECL may enter an infinite loop. 2003-03-11 14:56:48 +00:00
jjgarcia
5f6f65b407 Bunch of fixes inspired by the ANSI test suite of GCL. 2003-03-10 09:10:13 +00:00
jjgarcia
9771e91572 + New implementation of DESTRUCTURING-BIND
+ The bytecodes compiler now alloes a lambda list with &key and no keywords
+ WITH-HASHTABLE-ITERATOR implemented
+ QUIT is now silent
+ In MAKE-PATHNAME, values supplied with a value of NIL would be overwritten
  by the content of :DEFAULTS.
2003-03-04 16:35:03 +00:00
jjgarcia
b0e60245a4 c::*funs* may contain symbols (like CB marking closure boundary),
function structures (marking function definitions), or lists with the
format (fname MACRO interpreted-function), to denote MACROLET
expansions.
2002-12-17 10:45:36 +00:00
jjgarcia
d21a1fd389 Previous fixed removed. Hopefully this time I got FTYPE declarations
correct: they are restricted to (FTYPE (FUNCTION (arg-types*) ret-type*) name*)
2002-12-17 09:53:04 +00:00
jjgarcia
8852166529 FTYPE should accept two types of declarations: the ones with a formal type
(FTYPE (FUNCTION (T T) T) MY-FUN1 MY-FUN2)
and the abbreviated ones
	(FTYPE MY-FUN1 (T T) T)
2002-12-17 09:15:37 +00:00
jjgarcia
73447f1b3e Set safe compilation as default. 2002-12-14 15:44:47 +00:00
jjgarcia
912a7fb03c The declaration specifier for functions is FTYPE, not FUNCTION. 2002-12-14 15:37:29 +00:00
jjgarcia
62141f9f5d Replace int -> cl_fixnum, cl_index, to avoid problems with 64-bit archit.
Make sure that structure/instance slots may be indexed with a simple integer.
2002-12-09 12:10:33 +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
f589ddf587 When compiling a (VALUES ...) form, put the result in VALUES; do not use
value0, because then the compiler assumes only one value is produced.
2002-12-05 09:48:52 +00:00
jjgarcia
de9f5afdaf In MAYBE-PUSH-ARGS, a C variable was used initialized. 2002-12-05 09:45:38 +00:00
jjgarcia
151cf73044 Fix the names of the optimizers for SHIFT<< and SHIFT>>. 2002-12-05 09:42:58 +00:00
jjgarcia
69712a6b5a More explicit error message at end of compilation time. 2002-11-28 09:43:19 +00:00
jjgarcia
7489558f2b Do not use linking-calls when compiling PCL, because it is a waste of space and time, due to the use of generic functions. 2002-11-18 12:57:14 +00:00
jjgarcia
63b1ed0e31 Move all si::c-export-fname proclamations to the sysfun.lsp file, because they are only required when compiling files. 2002-11-18 12:52:31 +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
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
541842cc98 When binding optional values, we use two calls to BIND. This means
'BDS-BIND is pushed twice on *unwind-exit*, which results in two calls
to bds_unwind1, which is wrong.
2002-11-15 19:26:50 +00:00
jjgarcia
8ddd9acbbd Fixed a typo. 2002-11-15 19:00:47 +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
c3dbc31900 siSpretty_print_format does not exist. Use ADD-SYMBOL to refer to this
symbol and optimize run-time access via MANGLE-NAME.
2002-11-12 09:45:29 +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
569a5ef6f4 When compiling (function (lambda-block f (x) ...)), a block definition is missing. 2002-11-05 13:29: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
9f4a649747 Source code broke with last commit :-( 2002-10-22 12:28:22 +00:00
jjgarcia
a682c5accb Make MAYBE-PUSH-ARGS smaller. 2002-10-21 12:29:44 +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
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
308ca50f5d Export build-program as well. 2002-10-07 07:17:39 +00:00
jjgarcia
e6922fb76c Function SI:NANI has been removed. Its purpose was to provide an
object which could not be printed or readed so that it could be
used to mark unbound slots in classes. Now the function SI:UNBOUND
performs the same task
2002-05-22 13:40:38 +00:00
jjgarcia
37ff2b9644 Removed INT-CHAR. Use CODE-CHAR instead. 2002-05-13 13:52:45 +00:00
jjgarcia
6f10f3e925 Fix typo. 2002-05-13 07:24:10 +00:00
jjgarcia
6ec3b91890 Implement DEFINE-COMPILER-MACRO and COMPILER-MACRO-FUNCTION 2002-05-10 07:41:15 +00:00
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