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
Juan Jose Garcia Ripoll
75d1867293
Fixed offset problems in READ/WRITE-SEQUENCE.
2010-03-11 00:07:36 +01:00
Juan Jose Garcia Ripoll
9e8d89f55b
*SOURCE-LOCATION* is set to *LOAD-PATHNAME* not to *LOAD-TRUENAME*
2010-03-11 00:01:57 +01:00
Juan Jose Garcia Ripoll
6d5084fa8d
The asynchronous signal handling thread was not started by ECL.
2010-03-07 23:59:19 +01:00
Juan Jose Garcia Ripoll
81717203ea
Fixed typo.
2010-03-02 10:39:37 +01:00
Juan Jose Garcia Ripoll
e3ef43b906
Fix some warnings about noreturn functions that actually return (M. Kocic)
2010-03-01 18:48:07 +01:00
Juan Jose Garcia Ripoll
d0a8c5c462
Fixed typo in dpp.c at the generation of #arg assertions.
2010-03-01 18:44:16 +01:00
Juan Jose Garcia Ripoll
566cd5137e
Fixed typo in string.d
2010-03-01 11:25:37 +01:00
Juan Jose Garcia Ripoll
aa7f628a75
Fixed typo.
2010-03-01 10:52:39 +01:00
Juan Jose Garcia Ripoll
dfe4e74738
Added more unlikely_if() to file.d
2010-02-28 12:56:36 +01:00
Juan Jose Garcia Ripoll
86fd17197c
Function get_string_start_end() rewritten to provide more useful error messages
2010-02-28 12:00:53 +01:00
Juan Jose Garcia Ripoll
01e227c402
Replaced many uses of type_of() with specialized macros (ECL_BIT_VECTOR_P, ECL_BASE_STRING_P, etc)
2010-02-28 01:09:13 +01:00
Juan Jose Garcia Ripoll
d84e7aa840
Improve redability of error messages in print.d
2010-02-27 20:14:58 +01:00
Juan Jose Garcia Ripoll
fcf8046f99
Improve readability in errors related to *READ-BASE* and *READ-DEFAULT-FLOAT-FORMAT*
2010-02-27 20:01:30 +01:00
Juan Jose Garcia Ripoll
a3ad77d5a8
New macro unlikely_if improves readability of C code.
2010-02-27 18:36:47 +01:00
Juan Jose Garcia Ripoll
89b9a561ea
Replaced ecl_fixnum_in_range() with explicit checks in the functions, which are cheaper and, thanks to ecl_unlikely, faster.
2010-02-27 16:23:21 +01:00
Juan Jose Garcia Ripoll
bc0fcb8f9e
New macros for checking stream types.
2010-02-27 11:26:39 +01:00
Juan Jose Garcia Ripoll
3d5a6aed3d
Remove unused function FEtype_error_stream
2010-02-27 09:49:57 +01:00
Juan Jose Garcia Ripoll
86c211a6a1
Optimize ecl-inl.h for small cons and use of ecl_unlikely. New macros ECL_CONSP, ECL_LISTP, ECL_ATOM, ECL_SYMBOLP
2010-02-27 09:47:05 +01:00