Commit graph

1130 commits

Author SHA1 Message Date
Juan Jose Garcia Ripoll
19f41cdd0f Constant fold only when the output is a simple constant. 2011-12-19 22:41:48 +01:00
Juan Jose Garcia Ripoll
e361ceada2 Check for NaNs among the compiled constants. 2011-12-19 22:41:11 +01:00
Juan Jose Garcia Ripoll
6b4dc0c182 Yet another iteration about where to store the inline form of a function: the storage has to be enclosed by an eval-when form so that it is never executed when the form is in a LET, LAMBDA, or other expression that can potentially create a closure. 2011-12-19 16:52:59 +01:00
Juan Jose Garcia Ripoll
6426a1def7 Inlining LAMBDA forms left out the &aux variables 2011-12-19 16:51:41 +01:00
Juan Jose Garcia Ripoll
9f992d3d32 Prevent MAPC from being expanded in DECLAIM. 2011-12-18 21:46:16 +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
acf582cbd6 In src/cmp/cmpopt-clos.lsp, add missing references to the CLOS package. 2011-12-18 20:58:41 +01:00
Juan Jose Garcia Ripoll
f12e4933a1 Fixed typo in C:PROCLAIM-INLINE. 2011-12-18 19:11:46 +01:00
Juan Jose Garcia Ripoll
3e1fcb7a2c New functions DECLARED-{INLINE,NOTINLINE}-P introduce some clarity in the inline process. 2011-12-18 18:49:27 +01:00
Juan Jose Garcia Ripoll
d4f3d0d330 FLET and LABELS functions may now be inlined when they are declared so. 2011-12-18 18:33:10 +01:00
Juan Jose Garcia Ripoll
480d1dedfd Detect recursive inline functions 2011-12-18 18:20:29 +01:00
Juan Jose Garcia Ripoll
6512337535 Inline forms can be stored locally (if the function was DECLAIM'ed) or globally (if PROCLAIM'ed) 2011-12-18 18:08:10 +01:00
Juan Jose Garcia Ripoll
f0b11d639c Silence the compiler notes about inlined functions 2011-12-18 16:59:22 +01:00
Juan Jose Garcia Ripoll
a0873b2157 ECL now stores the inline form of functions that were declared so 2011-12-18 14:23:07 +01:00
Juan Jose Garcia Ripoll
f6f0a7a0ed The sealed slot accessor does not allow generic function extension 2011-12-17 10:54:34 +01:00
Juan Jose Garcia Ripoll
ae1aee40a7 Fixed typo in cmpopt-clos.lsp 2011-12-17 09:49:48 +01:00
Juan Jose Garcia Ripoll
f2915ba419 In the macroexpander for TYPEP, optimize forms in which the value is a variable with a declared type. 2011-12-17 09:48:28 +01:00
Juan Jose Garcia Ripoll
f4a9351e4a Inline slot access over sealed classes 2011-12-17 09:27:39 +01:00
Juan Jose Garcia Ripoll
0fc50d64dd More efficient expansion of TYPE with interval types 2011-12-17 01:13:20 +01:00
Juan Jose Garcia Ripoll
65c1b636fa In TYPEP, optimization of OR and AND types was disabled due to a missing assignment in the compiler macro code. 2011-12-17 00:13:39 +01:00
Juan Jose Garcia Ripoll
2c92c946a3 The built-in classes vector is now a constant 2011-12-16 23:38:00 +01:00
Juan Jose Garcia Ripoll
d21ba1d9aa Some inline forms must distinguish whether they have to output multiple values or not 2011-12-15 18:34:03 +01:00
Juan Jose Garcia Ripoll
c0f1d43b60 Improve inliners for SI:INSTANCE-CLASS and SI:INSTANCE-REF 2011-12-15 11:14:13 +01:00
Juan Jose Garcia Ripoll
17ab9cecf0 Keep a SETF location object in the compiled code, to speed up the lookup of #'(SETF fname) functions. Also, store a closure in that object for the cases in which we fmakunbound it. 2011-12-14 00:24:09 +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
b72823aeab SETF functions are now stored in a separate hash table. 2011-12-13 20:53:44 +01:00
Juan Jose Garcia Ripoll
b8b93a4a07 Removed unused files 2011-12-13 14:50:50 +01:00
Juan Jose Garcia Ripoll
42a9abf551 Eliminated SETF-LAMBDA functions, replacing them with a wrapper that transforms them into SETF-METHODs. 2011-12-13 00:32:34 +01:00
Juan Jose Garcia Ripoll
216408a298 Output a comment with the name of the function/macro besides ecl_cmp_def{un,macro} 2011-12-11 21:41:20 +01:00
Juan Jose Garcia Ripoll
010509f01a Newline in a warning for readability 2011-12-11 18:43:35 +01:00
Juan Jose Garcia Ripoll
b213762774 Remove some redundant proclamations from sysfun.lsp 2011-12-11 18:43:02 +01:00
Juan Jose Garcia Ripoll
6d3302ccab When a compiler macro aborts with an error, ECL just recovers, issues a warning and continues. 2011-12-11 18:20:29 +01:00
Juan Jose Garcia Ripoll
eb0082fd83 DEFCLASS now expands in terms of LOAD-DEFCLASS, saving some bytes. 2011-12-11 16:00:11 +01:00
Juan Jose Garcia Ripoll
4b2eca745a Replace more uses of DEFVAR with DEFPARAMETER 2011-12-10 20:12:14 +01:00
Juan Jose Garcia Ripoll
1e0cfe9174 Simplified the compiler macro for NTH and NTHCDR. 2011-12-03 23:43:06 +01:00
Juan Jose Garcia Ripoll
08caf83740 Compiler macro for REST, removing C-inline forms. 2011-12-03 23:38:26 +01:00
Juan Jose Garcia Ripoll
7a2678acb2 Compiler macros optimize first, second,... 2011-12-03 23:34:09 +01:00
Juan Jose Garcia Ripoll
f26a13885e Removed unused location types and replaced CAR/CDR uses with C inline functions in src/cmp 2011-12-03 22:43:48 +01:00
Juan Jose Garcia Ripoll
bb0ca9163f FIRST, SECOND, THIRD, FOURTH and REST inlined using the new functions in cons.h 2011-12-03 21:42:05 +01:00
Juan Jose Garcia Ripoll
b857c4836d Use the new functions [_]ecl_c[ad]+r() functions in the Lisp2C compiler 2011-12-03 21:08:34 +01:00
Juan Jose Garcia Ripoll
27c01f4847 Optimize POP using a compiler macro. 2011-12-03 11:29:59 +01:00
Juan Jose Garcia Ripoll
7690ab6a16 DESTRUCTURE now runs over the argument list using CAR and CDR, and producing slightly faster code. 2011-12-03 09:11:15 +01:00
Juan Jose Garcia Ripoll
7e2a861fbf Remove :PURE attribute from some functions that construct new objects or return non-externalizable objects 2011-12-01 23:22:10 +01:00
Juan Jose Garcia Ripoll
0372c80ce2 Evaluate pure functions when their arguments are all constant (src/cmp/cmpeval.lsp) 2011-12-01 23:04:21 +01:00
Juan Jose Garcia Ripoll
e2fbe37fcd LOC-IMMEDIATE-VALUE-P did not return the appropriate value for character locations 2011-12-01 22:56:23 +01:00
Juan Jose Garcia Ripoll
c724eacb24 New function c1form-constant-p in src/cmp/cmpform.lsp 2011-12-01 22:25:39 +01:00
Juan Jose Garcia Ripoll
5496db2b94 SAFE-LIST-LENGTH rewritten to avoid use of HANDLER-CASE 2011-12-01 22:25:13 +01:00
Juan Jose Garcia Ripoll
702a4c6e3c Fixed the first argument to SEQ-OPT-PARSE-ARGS in cmpopt-sequence.lsp 2011-12-01 21:00:48 +01:00
Juan Jose Garcia Ripoll
eb884293c7 Fixed inliner for ASH. 2011-11-19 19:07:07 +01:00
Juan Jose Garcia Ripoll
3dc9c5a8a0 Remove function types from those in the automatic type checks. 2011-11-19 16:48:20 +01:00