Juan Jose Garcia Ripoll
3c8b734b61
Simplify ASSERT making it cheaper.
2010-05-27 20:04:58 +02:00
Juan Jose Garcia Ripoll
e33fb2f3c2
New special form EXT:COMPILER-TYPECASE used to create compiler macros that select code based on the types of expressions.
2010-05-25 22:16:46 +02:00
Juan Jose Garcia Ripoll
b5d5cacbde
Use a hash to seek the compilation strategies in the interpreter
2010-05-25 19:42:44 +02:00
Juan Jose Garcia Ripoll
d4f96996e3
The CONS-CDR/CAR optimization was not working fully because the interpreter did not support it and because there were macros shadowing the actual functions.
2010-05-23 22:47:36 +02:00
Juan Jose Garcia Ripoll
c60112a470
New auxiliary functions CONS-CAR/CONS-CDR help in optimizing loops
2010-05-23 16:31:45 +02:00
Juan Jose Garcia Ripoll
5141fad5e0
SEQUENCE-START-END now returns also the length of the sequence
2010-05-21 23:27:49 +02:00
Juan Jose Garcia Ripoll
61b86312e4
Reimplemented REMOVE using specialized vector and list operations.
2010-05-21 21:05:22 +02:00
Juan Jose Garcia Ripoll
4be12cb2c0
New C functions for copy-seq and subseq
2010-05-21 11:24:17 +02:00
Juan Jose Garcia Ripoll
909ed7f1c5
Export the utility function SEQUENCE-COUNT
2010-05-20 23:33:16 +02:00
Juan Jose Garcia Ripoll
04f6b655d1
Fixed typos in error messages from sequence-start-end
2010-05-20 14:57:40 +02:00
Juan Jose Garcia Ripoll
ec0ddc1174
New function SEQUENCE-START-END
2010-05-20 12:30:52 +02:00
Juan Jose Garcia Ripoll
f7ad326bee
Changed the order of arguments in ASET to simplify the resulting SETF forms
2010-05-19 10:22:38 +02:00
Juan Jose Garcia Ripoll
38d0b5fa47
New symbol COMPLEX-ARRAY needed by the type ladder
2010-05-18 12:24:54 +02:00
Juan Jose Garcia Ripoll
dbde7df2b7
Add SIGNAL-TYPE-ERROR also to symbols_list2
2010-05-16 17:31:55 +02:00
Juan Jose Garcia Ripoll
5b53ee01df
New function SI:SIGNAL-TYPE-ERROR
2010-05-15 16:48:10 +02:00
Juan Jose Garcia Ripoll
1d4f8ac75d
Define a new built-in type ANSI-STREAM in the EXT package and used it in predlib, builtin.lsp and in the Gray streams package
2010-05-09 22:19:22 +02:00
Juan Jose Garcia Ripoll
6ae9d38bdb
New type, ARRAY-INDEX, exported from EXT.
2010-05-09 20:28:01 +02:00
Juan Jose Garcia Ripoll
9e46f3d357
Introduce policy aliases, interned some declaration names in EXT and replaced some of those names with more meaningful ones.
2010-05-09 19:41:04 +02:00
Juan Jose Garcia Ripoll
1b808f2290
Compiler macros that open code AREF/ASET using cheap checks written in C
2010-05-05 23:52:25 +02:00
Juan Jose Garcia Ripoll
557474044f
FEwrong_dimensions() did not invoke cl_make_list() with enough arguments.
2010-05-05 23:01:12 +02:00
Juan Jose Garcia Ripoll
6a91d3b45a
Refactored code so that it is shared by cmp and new-cmp:
...
* Use the new proclamations/sysfun.lsp files from the new compiler.
* We split src/cmp/cmpdefs.lsp into cmpdefs, cmppackage, cmptypes and cmpglobals
* Split cmpform.lsp out of cmpmac.lsp
* Merged in {cmp,new-cmp}/cmpc-wt.lsp some of the cmpmac wt routines
* Use functions instead of macros for the WT-* operations
* Split out from *cmp/cmpenv.lsp a file cmppolicy.lsp
* A single file, cmpenv-api.lsp for the manipulation of environments.
* The type comparison functions go into cmptype-arith.lsp and are cached.
* The code that propagates types in function calls goes into cmptype-prop.lsp.
* The remainings of cmpenv go into cmpenv-{declare,proclaim,declaim}.
Associated fixes:
* Fixed typo and wrong proclamation for SI:GET-SYSPROP.
* Fixed typo in SIMPLIFY-ARITHMETIC.
* Explicitely set the debug level when building ECL
* All declarations are stored in the compiler environment.
* Each function and form stores the compilation environment.
* Declaration POLICY-DEBUG-IHS-FRAME is acts only on the function environment.
* Make the definition if ihs_env only happen when it is used.
* Eliminated *notinline*, *inline-functions* and *function-declarations*
* Slightly more efficient creation of accessors in kernel.lsp
* Remove the proxy C2DECL-BODY
* Fix the order of declarations in SI:PROCESS-DECLARATIONS
* Reimplemented C1BODY using SI:PROCESS-DECLARATIONS
* DECLAIM's proclamation do not propagate beyond the compiled file.
2010-05-05 17:36:19 +02:00
Juan Jose Garcia Ripoll
89db75f763
MAKE-STRING-INPUT-STREAM accepted as start NIL, which is not valid.
2010-04-30 14:41:17 +02:00
Juan Jose Garcia Ripoll
e8cecf9935
Declarations for all Common Lisp functions.
...
Split out a new file, proclamations.lsp, with the declarations oof the types of functions in the ANSI specification and in ECL's extensions.
2010-04-30 14:40:36 +02:00
Juan Jose Garcia Ripoll
ed1bdcb0fe
Use C code to guess the alignment of different types.
2010-04-27 13:05:49 +02:00
Juan Jose Garcia Ripoll
71c4114af1
Missing break statements in ecl_foreign_data_set()
2010-04-26 15:40:14 +02:00
Juan Jose Garcia Ripoll
5b2a69c7ed
Move FOREIGN-ELT-TYPE-P into ffi.d, because the list of types in ffi.lsp had become obsolete and difficult to maintain.
2010-04-26 14:17:47 +02:00
Juan Jose Garcia Ripoll
23d8509f6d
EXT:MAKE-FOREIGN-DATA-FROM-ARRAY now supports all unboxed types.
2010-04-25 19:16:41 +02:00
Juan Jose Garcia Ripoll
d400a096eb
Change of syntax in WITH-BACKEND.
...
Using (WITH-BACKEND :BYTECODES form :C/C++ form ...) allows us
to coalesce both possibilities without the output value of
one suppressed form hiding the other one
2010-04-25 14:33:09 +02:00
Juan Jose Garcia Ripoll
f3071cc41e
Implemented WITH-BACKEND and small interpreter fix.
...
- A new special form, EXT:WITH-BACKEND allows us to select the code depending
on whether it is going to be processed by the interpreter or by the C
compiler.
(defun example ()
(ext:with-backend (:bytecodes) (print 3))
(ext:with-backend (:c/c++) (print 2)))
The two currently available backends are :bytecodes and :c/c++. Note that
when the backend does not match the value, the form is replaced with (VALUES).
- Some forms, such as LIST, CONS, etc, when optimized by the interpreter,
compiled their arguments as toplevel forms, causing the right result,
but out of order evaluation.
2010-04-24 10:39:46 +02:00
Juan Jose Garcia Ripoll
905a0bd4d8
Implemented SI:FOREIGN-DATA-P and used it to optimize (and inline) (TYPEP x 'SI:FOREIGN-DATA)
2010-04-23 20:07:48 +02:00
Juan Jose Garcia Ripoll
6a57070b93
ECL defines the feature :LONG-LONG when this type is in the C compiler
2010-04-23 19:39:58 +02:00
Juan Jose Garcia Ripoll
f058165214
GC now allows any number of arguments, ignoring them
2010-04-14 15:02:20 +02:00
Juan Jose Garcia Ripoll
d378f2aaaf
Add .fasb as one of the file extensions understood by LOAD
2010-04-07 20:42:00 +02:00
Trail@.(none)
973090bc55
Use __MINGW32__ instead of mingw32 as preprocessor criterion of MinGW-ness.
2010-04-05 22:31:53 +02:00
Juan Jose Garcia Ripoll
0e2fc917f7
Complete previous fix for weak-pointer.
2010-04-03 15:07:12 +02:00
Juan Jose Garcia Ripoll
e5b22e51cc
Weak pointers do not need finalization when the value is not a pointer.
2010-04-03 11:13:44 +02:00
Juan Jose Garcia Ripoll
525841e298
(SETF STREAM-EXTERNAL-FORMAT) inserted the wrong format type in some cases.
2010-03-29 00:03:43 +02:00
Juan Jose Garcia Ripoll
5844357864
Missing change in symbols_list2.h
2010-03-29 00:03:32 +02:00
Juan Jose Garcia Ripoll
1bb8d0c80d
A new variable EXT:*DEFAULT-EXTERNAL-FORMAT* implements the actual encoding used with :DEFAULT
2010-03-28 22:24:55 +02:00
Juan Jose Garcia Ripoll
36e0122ae9
Add a keyword argument, :external-format, to LOAD
2010-03-28 22:24:33 +02:00
Juan Jose Garcia Ripoll
dbc354ac49
Remove the object finalization queue, now that the garbage collector provides one.
2010-03-20 15:48:59 +01:00
Juan Jose Garcia Ripoll
db9ecc6590
Remove debug statement.
2010-03-20 15:30:14 +01:00
Juan Jose Garcia Ripoll
28e1173507
In ecl_make_stream_from_fd(), complain if fdopen() fails.
2010-03-20 15:29:41 +01:00
Juan Jose Garcia Ripoll
dfa1ad5827
ecl_make_file_stream_from_fd() did not set the right mode in the stream structure
2010-03-20 15:14:30 +01:00
Juan Jose Garcia Ripoll
b540a6c0bb
Fixed typo in the finalizer of weak pointers (A. Gavrilov)
2010-03-20 13:34:10 +01:00
Juan Jose Garcia Ripoll
cdc6ea3363
It is necessary to check that the right symbol is being processed by UNEXPORT2, because blindly proceeding causes slight corruption of the package structure and may result in quite cryptic error messages in loosely connected pieces of code (A. Gavrilov)
2010-03-20 12:12:48 +01:00
Juan Jose Garcia Ripoll
982199e6ee
Introduced a new generic function GRAY:STREAM-FILE-DESCRIPTOR which used by SERVE-EVENT to wait for input on a stream (T. Rittweiler).
2010-03-19 19:55:12 +01:00
Juan Jose Garcia Ripoll
c43a6928e1
Allow SYMBOL-MACROLET be used inside a form that declares the symbol as special, and also allow special declarations inside the SYMBOL-MACROLET, as in
...
(let ((x :special))
(declare (special x))
(symbol-macrolet ((x :symbol-macro))
(values x (locally (declare (special x)) x))))
2010-03-19 18:55:12 +01:00
Juan Jose Garcia Ripoll
82252f6868
The recursive implementation of DIRECTORY with wildcard inferiors forget all inner directories in (DIRECTORY "/foo/**/").
2010-03-13 23:10:49 +01:00
Juan Jose Garcia Ripoll
be0459a37a
Distinguish by name the signal servicing from the signal handling threads.
2010-03-11 00:11:30 +01:00