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
77afbfd6da
Slightly more compact format for proclamations / sysfun
2010-04-30 23:44:17 +02:00
Juan Jose Garcia Ripoll
840140d447
Remove from sysfun.lsp types which are already defined in proclamations.lsp.
2010-04-30 17:25:23 +02:00
Juan Jose Garcia Ripoll
8007ff56b4
The inline declarations were not properly inserted in the code.
2010-04-30 15:56:04 +02:00
Juan Jose Garcia Ripoll
8b7c9a7580
Merge sysfun.lsp and proclamations.lsp into the compiled file cmp.fas
2010-04-30 14:57:16 +02:00
Juan Jose Garcia Ripoll
3f0cda1ee3
Undo the previous change to SUBTYPEP and eliminate recursive types from proclamations.lsp
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
de2602da46
DEFCALLBACK was not properly compiled when the return type was :VOID
2010-04-26 14:52:02 +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
a588dcb62c
Callback functions must appear in the headers so that they can be called by other compiled functios.
2010-04-24 10:39:22 +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
Trail@.(none)
48e066f45b
Reinstate missing quoting of commands fed to SI:SYSTEM.
2010-04-05 22:33:14 +02:00
Juan Jose Garcia Ripoll
ebf1d5f9a4
The code that adds declarations to symbol macros did not process properly the resulting records.
2010-04-04 03:35:20 +02:00
Juan Jose Garcia Ripoll
384daa770b
A bug in the declaration interpreter can induce an infinite recursion when finding a symbol macro
2010-04-01 22:27:20 +02:00
Juan Jose Garcia Ripoll
8bd09af0fb
Reorder functions in cmpenv.lsp, needed to complete the last change.
2010-03-28 21:32:32 +02:00
Juan Jose Garcia Ripoll
efe893efe7
ECL did not understand type declarations that involved symbol macros.
2010-03-28 20:11:20 +02:00
Juan Jose Garcia Ripoll
322064aacb
ECL can build again itself using a C++ compiler (--with-cxx thus works).
2010-03-19 22:04:27 +01:00
Juan Jose Garcia Ripoll
6e55e9c3b5
After loading the compiler, lock again the COMMON-LISP package
2010-03-19 19:40:11 +01:00
Juan Jose Garcia Ripoll
cbc50ceab2
The newline character has to be _before_ each string in clines
2010-03-13 09:46:36 +01:00
Juan Jose Garcia Ripoll
3102c32ef4
FFI:CLINES admits @lisp-object notation in the strings.
2010-03-13 01:16:50 +01:00
Juan Jose Garcia Ripoll
87f60d3db1
Source offsets were not used in cmpdefs.lsp
2010-03-04 20:39:32 +01:00
Juan Jose Garcia Ripoll
035a52823c
Replaced many uses of type_of() with specialized macros (ECL_BIT_VECTOR_P, ECL_BASE_STRING_P, etc), now in the compiler as well.
2010-02-28 01:20:26 +01:00
Juan Jose Garcia Ripoll
d7aff31c8a
Use ecl_unlikely() in the expansion of RPLACA/D
2010-02-27 20:01:05 +01:00
Juan Jose Garcia Ripoll
48d816b039
Added the possibility of specifying a different name for the source location stored in compiled files.
2010-02-25 23:36:56 +01:00
Juan Jose Garcia Ripoll
2fc236ba80
Format undefined variable warnings as the rest of compiler messages (T. Rittweiler)
2010-02-25 11:24:21 +01:00
Juan Jose Garcia Ripoll
b3846425be
New declaration C::POLICY-DEBUG-IHS-FRAME
2010-02-24 16:38:49 +01:00
Juan Jose Garcia Ripoll
7f52387b73
Do not complain when a global function is closed over.
2010-02-23 16:52:01 +01:00
Juan Jose Garcia Ripoll
ec9727f9f5
Safer inline expansion for BOUNDP
2010-02-20 22:04:50 +01:00
Juan Jose Garcia Ripoll
ed770c2bfb
Remove tail recursion compiler note, turning it into a compiler debug note.
2010-02-19 20:12:09 +01:00
Juan Jose Garcia Ripoll
4d1a14fe44
Accidentally deleted a character.
2010-02-19 18:01:14 +01:00
Juan Jose Garcia Ripoll
d47c766a13
Add empty lines around messages at the beginning of COMPILE-FILE, also at the end, and after a note from SAFE-SYSTEM.
2010-02-19 17:24:04 +01:00
Juan Jose Garcia Ripoll
21057b19bd
The old and new compilers now share cmputil.lsp. Toplevel forms are stored both in macroexpanded and non-macroexpanded forms, and the compiler messages print only the innermost form that was not macroexpanded. Improve readability of compiler messages.
2010-02-19 17:16:32 +01:00
Juan Jose Garcia Ripoll
2ac581980b
src/cmp/cmpname is now shard by the old and new compilers.
2010-02-19 17:04:46 +01:00
Juan Jose Garcia Ripoll
9b328aea2f
Remove useless compiler notes.
2010-02-19 16:57:45 +01:00
Juan Jose Garcia Ripoll
6a550ec8ab
COMPILE-FILE-PATHNAME accepts the :EXTERNAL-FORMAT keyword argument.
2010-02-18 09:02:12 +01:00
Juan Jose Garcia Ripoll
32c75cd640
COMPILE-FILE admits the keyword argument :EXTERNAL-FORMAT.
2010-02-17 19:48:33 +01:00
Juan Jose Garcia Ripoll
3cd3fbc342
Replace old function declarations for IHS-*, FRS-*, BDS-*
2010-02-17 00:01:40 +01:00
Juan Jose Garcia Ripoll
cee6703602
COMPILE-FILE only outputs NIL when there were serious errors
2010-02-16 22:31:54 +01:00
Juan Jose Garcia Ripoll
c85f220a46
Remove bogus inline forms for FLOOR and TRUNCATE
2010-02-08 14:26:52 +01:00
Juan Jose Garcia Ripoll
9d1b7c8f7d
ECL accepts FTYPE proclamations for SETF-functions.
2010-02-08 11:47:30 +01:00
Juan Jose Garcia Ripoll
8a923695e3
Turn warnings about ECL not being able to cope with certain types into compiler notes.
2010-02-07 21:05:15 +01:00
Juan Jose Garcia Ripoll
e368e4279b
In compiler-debugger, do not muffle errors because they might be caused by user handlers. Ideally internal errors should have been already muffled by handle-compiler-internal-error
2010-02-07 16:31:06 +01:00
Juan Jose Garcia Ripoll
6e01a0fc67
Export *SUPPRESS-COMPILER-{NOTES,WARNINGS,MESSAGES}*
2010-02-07 12:47:01 +01:00
Juan Jose Garcia Ripoll
38f4c03a35
Decrease verbosity in compiler note printing.
2010-02-07 12:17:53 +01:00
Juan Jose Garcia Ripoll
96c8e09112
In compiler messages, print the actual toplevel form, not the macroexpanded version
2010-02-07 11:57:34 +01:00
Juan Jose Garcia Ripoll
c72aaa5723
Remove useless compiler note about keywords being reused
2010-02-07 11:20:41 +01:00
Juan Jose Garcia Ripoll
d013d603f0
Fixed typo in the implementation of THE.
2010-02-07 11:13:37 +01:00
Juan Jose Garcia Ripoll
6801d9de04
Remove debug statement
2010-02-07 11:08:35 +01:00