Commit graph

96 commits

Author SHA1 Message Date
Daniel Kochmanski
15640a79e4 cmp: refactor: qualify package of *-prop interface
Usage was mixed, once it is si:put-sysprop, once just put-sysprop. Add
full package qualifiers to put-sysprop/get-sysprop/rem-sysprop.
2017-04-28 11:48:15 +02:00
Daniel Kochmański
31871dc903 cmpcall: remove unused parts 2017-04-28 11:14:56 +02:00
Daniel Kochmański
939f068390 compiler: fix aux_closure creation
Bug was probably introduced in a1bc92b05c

Fixes #128 and and misc.319 from ANSI tests.
2016-03-10 14:22:10 +01:00
Matthew Mondor
8f07cd58d8 The ECL code no longer uses tabulator characters, they were replaced
by spaces.

A custom script was used to insert/replace Emacs and ViM per-file editor
settings according to their type and the new ECL coding style.
2015-09-03 07:35:47 -04:00
Daniel Kochmański
4d19a27424 cosmetic: untabify
Signed-off-by: Daniel Kochmański <dkochmanski@turtle-solutions.eu>
2015-06-21 14:38:20 +02:00
Juan Jose Garcia Ripoll
d9731f9527 Add spaces after commas in compiled function calls. 2012-12-02 00:55:37 +01:00
Juan Jose Garcia Ripoll
62d3dd9731 Do not write C comments when the name of the invoked function is evident from the C code 2012-12-02 00:50:38 +01:00
Juan Jose Garcia Ripoll
18abdba4e1 The CALL-NORMAL location in the compiler now remembers the type of its output (needed by wt-coerce-loc) 2012-06-02 10:54:43 +02:00
Juan Jose Garcia Ripoll
d5fd199116 Added some IGNORE declarations and fixed some references to undefined variables. 2011-12-28 16:33:27 +01:00
Juan Jose Garcia Ripoll
a097641aff In C2CALL-GLOBAL use the form primary type as expected type. 2011-12-28 15:59:13 +01:00
Juan Jose Garcia Ripoll
d9d6d6864d C2 functions now receive the C1FORM as an argument. 2011-12-28 12:00:01 +01:00
Juan Jose Garcia Ripoll
c2e2171dc0 Avoid recursive invocation of C1EXPR by allowing the C1 processors to act like macros, returning new forms to be processed. Remove also the CATCH for compiler errors, since we now rely on conditions for signal handling. 2011-12-27 12:36:52 +01:00
Juan Jose Garcia Ripoll
24debdf161 Fix additional warnings about unused variables and variables which are assumed global in the compiler. 2011-12-26 17:59:16 +01:00
Juan Jose Garcia Ripoll
4496a85039 More fixes to remove warnings about unused variables 2011-12-23 22:36:32 +01:00
Juan Jose Garcia Ripoll
ef963a7b18 (SETF ...) function names did not undergo the process of checking for compiler macros and inline forms. Now this all is unified under C1CALL 2011-12-18 21:31:40 +01:00
Juan Jose Garcia Ripoll
755d9c3f96 Fixed indentation of CALL-UNKNOWN-GLOBAL-LOC. 2011-12-13 20:58:04 +01:00
Juan Jose Garcia Ripoll
e27974cf76 Unknown FUNCALL forms must be tagged as side-effect full 2010-10-23 00:53:35 +02:00
Juan Jose Garcia Ripoll
1ca77df9bc Changed the way INLINE-ARGUMENTS works: temporary variables are now created based on the representation type of the inlined value, not on its expected types. Furthermore, expected types are no longer an argument to INLINE-ARGUMENTS. 2010-05-27 23:49:47 +02:00
Juan Jose Garcia Ripoll
910e79852e Instead of using system property lists, create dispatch tables for handling the C1, T1, C2 forms and others. 2010-05-26 12:12:57 +02:00
Juan Jose Garcia Ripoll
2495ae0b8e Toplevel DEFMACRO forms are processed differently and stored by the compiler in a local table. These definitions do not propagate beyond the currently compiled file. 2010-05-07 22:20:14 +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
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
99cdc4dae7 CALL-GLOBAL-LOC used the values type of a c1form instead of the primary type and thus no safe inline form from sysfun.lsp matched any reasonable expansion. 2009-07-13 12:06:01 +02:00
Juan Jose Garcia Ripoll
759fa298ab Remove a debug assertion. 2009-07-08 23:02:34 +02:00
Juan Jose Garcia Ripoll
0ea425866c Organize the code in INLINE-ARGS, factoring out parts that can be used in call-global-loc and allowing the use of temporary variables which are not of type :cl-object. 2009-07-04 17:17:50 +02:00
Juan Jose Garcia Ripoll
d73d12ae35 Replaced some calls to ERROR with CMPERR so that they can be trapped by the user. Changed the implementation of WITH-COMPILER-ENV to avoid that all COMPILER-ERRORs are re-signaled as compiler internal errors. 2009-06-25 11:01:41 +02:00
Juan Jose Garcia Ripoll
0424caf763 Do not pass a location to CALL-UNKNOWN-GLOBAL when we do not have a function object. 2009-04-02 15:20:56 +02:00
Juan Jose Garcia Ripoll
00892c7569 In wt-call, coerce directly to cl_object so that C++ compiler dos not complain. 2009-03-28 23:06:27 +01:00
Juan Jose Garcia Ripoll
d4c9460c32 Fix the criteria for using inlined expansions from sysfun.lsp. 2009-03-06 23:51:17 +01:00
Juan Jose Garcia Ripoll
83e6a0f77e Simplified the C code for fast function calls. 2009-02-16 12:44:28 +01:00
Juan Jose Garcia Ripoll
a475d5bcba Simplified c2call-global by taking the type propagation for (SETF AREF)/AREF into separate functions 2009-02-15 23:53:03 +01:00
Juan Jose Garcia Ripoll
21ab17c30b During compilation of function calls, the NARG parameter is useless, since it can be calculated. 2009-02-15 20:05:53 +01:00
Juan Jose Garcia Ripoll
ed0a29b5b9 Simplified C2FUNCALL eliminating unused code 2009-02-15 19:40:17 +01:00
Juan Jose Garcia Ripoll
afdd5b9831 Small typo. 2009-02-15 18:58:23 +01:00
Juan Jose Garcia Ripoll
85cf59cee6 Fixed typo. 2009-02-15 13:19:04 +01:00
Juan Jose Garcia Ripoll
75d0ea3434 Allow calling a function object directly by the entry pointer. 2009-02-15 13:10:24 +01:00
Juan Jose Garcia Ripoll
a1bc92b05c Changed the way closures are invoked, to make them similar to generic functions and bytecodes 2009-02-15 12:05:56 +01:00
Juan Jose Garcia Ripoll
f35ca512a2 Code for directly using the pointers in function objects. 2009-02-15 00:06:49 +01:00
Juan Jose Garcia Ripoll
9f42309fbd Finished the new dispatch code. 2009-02-14 00:01:57 +01:00
Juan Jose Garcia Ripoll
f096fdac51 Initial changes for a common dispatch function 2009-02-13 17:05:21 +01:00
Juan Jose Garcia Ripoll
7c5ab4f1fb Some functions now take a cl_env_ptr argument, becoming better isolated. 2008-10-11 22:32:54 +02:00
Juan Jose Garcia Ripoll
325b1069d8 Fixed typos 2008-09-04 23:12:53 +02:00
Juan Jose Garcia Ripoll
e10d4340c5 Speed up calling unknown functions by having a local frame that we reuse 2008-06-29 02:32:01 +02:00
Juan Jose Garcia Ripoll
0ef7fe2609 Fixed typo 2008-06-28 20:06:56 +02:00
Juan Jose Garcia Ripoll
ff1a3fd144 Reuse code for long function calls 2008-06-28 19:31:14 +02:00
jgarcia
8f28327ddf Simplifed MAKE-ARRAY. Deactivated the old garbage collector. New optimizers for MAKE-ARRAY and VECTOR-PUSH*. Declarations are now held in *cmp-env* instead of in global variables. 2008-05-18 20:08:39 +00:00
jgarcia
504fe5df73 LOAD-TIME-VALUE is no longer a macro 2008-04-24 11:15:34 +00:00
jgarcia
52f4df1901 Merged the new function call code 2008-02-16 10:28:32 +00:00
jgarcia
9db24c5617 If DEBUG >= 2, do not use direct calls to exported functions. 2008-02-09 20:17:36 +00:00
jgarcia
fadcaf2d0c Calls to functions defined later in the same file were still done directly 2008-02-09 19:38:50 +00:00