Daniel Kochmański
097fa96ae0
cmp: coerce: resolve fixme for atomic complex specifier
...
it is not true, that
(type= '(complex) '(complex double-float)) == T
so we may put complex in +coercion-table+.
2019-04-20 17:14:14 +02:00
Daniel Kochmański
d7c351c76a
predlib: type= doesn't yield T for complex types
...
TYPE= is only used from cmpopt's typep compiler macro which optimizes
atomic complex types by other means. Compound complex types are
handled differently for subtypep and typep (the first relies on
upgraded type and the second relies on the actual types), so we can't
rely in this case on SAFE-CANONICAL-TYPE.
2019-04-20 17:13:17 +02:00
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
80533261a1
cosmetic: indent
2017-01-20 11:27:10 +01:00
Daniel Kochmański
d0534990a3
dolist: do the right thing™
...
Also in bootstrap code. Fixes #348 .
2017-01-20 09:36:35 +01:00
Daniel Kochmański
0f9f7e9697
cosmetic: indent
2017-01-20 09:36:03 +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
a2ceed9cb3
deftype: use destructure directly, remove unused arg
...
Removes ENV arg, which were ignored by using destructure directly.
Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
2015-08-18 15:39:29 +02:00
Daniel Kochmański
0359b79c81
deftype: make deftype accept macro lambda-lists
...
Fixes #86 .
Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
2015-08-18 12:06:03 +02: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
89a8201b0b
New functions RATIOP, {SINGLE,SHORT,DOUBLE,LONG}-FLOAT-P help avoid consing in TYPEP
2013-01-12 21:15:35 +01:00
Juan Jose Garcia Ripoll
e0cfa8028d
Remove a statement that prevented TYPEP from being optimized for SATISFIES and other complicated types (S. Boukarev)
2013-01-12 19:49:10 +01:00
Juan Jose Garcia Ripoll
d1ee053ccd
Fix further uses of CONSTANTP+EVAL, replacing them with CONSTANT-FORM-VALUE and using the environment.
2013-01-11 22:55:49 +01:00
Juan Jose Garcia Ripoll
22d8ff707c
FLOAT optimizer is now a bit more clever and returns a typed output with inlined forms
2012-06-02 09:51:08 +02:00
Juan Jose Garcia Ripoll
ca0222fd19
Implemented EXT:TRULY-THE and made THE expand to either EXT:TRULY-THE or EXT:CHECKED-VALUE depending on the optimization settings.
2011-12-31 19:37:13 +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
ad0c81bff4
The macro expander for DOLIST in the compiler is now a compiler macro. It also uses an implicit TAGBODY around the body of the DOLIST.
2011-12-26 09:47:00 +01:00
Juan Jose Garcia Ripoll
3067537c33
When TYPEP receives an unknown type, or a contradictory type, it can not ignore it.
2011-12-24 17:04:58 +01:00
Juan Jose Garcia Ripoll
02db89a9bc
The macro expander for DOLIST uses only LET, not SETQ. This way the type declarations are not incompatible with the initial values of the loop.
2011-12-23 19:41:39 +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
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
4a82e0ab54
Missing LET variable definition in EXPAND-TYPEP (J. James).
2011-01-24 22:27:13 +01:00
Juan Jose Garcia Ripoll
e83bd3dfb4
Unboxed type SHORT-FLOAT removed from the core.
2010-08-17 19:47:14 +02:00
Juan Jose Garcia Ripoll
2cacf0aefc
Simplifications in compiler macro for TYPEP
2010-06-28 21:37:07 +02:00
Juan Jose Garcia Ripoll
18928c0b1f
Activate the compiler macro expansion for TYPEP
2010-05-13 21:08:15 +02:00
Juan Jose Garcia Ripoll
01574b68bb
Replace the C1 processor for COERCE with a compiler macro that is now activated, and in this case add a new coercion function for simple arrays.
2010-05-13 20:45:42 +02:00
Juan Jose Garcia Ripoll
b129433812
Added SATISFIES to the kind of types that TYPE can inline
2010-05-10 16:00:07 +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
b04a647c2e
Replace cmp-env-optimization with compiler policies.
2010-05-09 09:59:53 +02:00
Juan Jose Garcia Ripoll
a701663b62
Compiler policies are now defined as flags
2010-05-08 13:31:40 +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
f00fafe95a
Changed the prototype of functions that take a fixed number of arguments
2009-12-26 15:40:08 +01:00
Juan Jose Garcia Ripoll
bc302c2acf
The optimizer for TYPEP did not work when passed three arguments.
2009-11-29 22:40:45 +01:00
Juan Jose Garcia Ripoll
65635f1452
Minor read-only annotations in cmpopt.lsp
2009-07-09 23:31:50 +02:00
Juan Jose Garcia Ripoll
6446cde7c3
An attempt at providing a unifor and simpler framework for optimizing array access.
2009-07-04 17:17:46 +02:00
Juan Jose Garcia Ripoll
005dc07061
Added the possibility of bytecompiling forms and saving them. New module bytecmp uses this to implement COMPILE and COMPILE-FILE.
2009-04-01 02:29:48 +02:00
Juan Jose Garcia Ripoll
19440df458
The local optimizations for TYPEP take precedence over the expansions dictated by DEFTYPE
2008-11-08 21:56:53 +01:00
Juan Jose Garcia Ripoll
62cc1fbfe0
A wrong optimization of (COERCE x 'INTEGER) caused the form X to be evaluated twice.
2008-11-02 12:02:33 +01:00
Juan Jose Garcia Ripoll
ec23122149
type= thinks all subtypes of complex are the same. this breaks down the optimizer for coerce.
2008-10-26 20:21:34 +01:00
Juan Jose Garcia Ripoll
edb7390a0f
Implemented compiler conditions
2008-08-19 23:57:36 +02:00
Juan Jose Garcia Ripoll
57efb13391
The optimizer for COERCE may enter an infinite loop with integer ranges
2008-08-19 12:22:42 +02:00
Juan Jose Garcia Ripoll
8a26f905fe
The optimizer for COERCE now uses specialized functions for sequence types instead of open coding it every time.
2008-05-29 00:11:26 +02:00
Juan Jose Garcia Ripoll
36ec12419b
Implemented an optimizer for COERCE and improved the one for TYPEP, which did not handle sequence types.
2008-05-28 23:19:10 +02:00
jgarcia
4b753ce2e7
In the compiler, let the macro DOLIST generate better type declarations
2008-05-12 08:14:52 +00:00
jgarcia
f3b1febf4e
Merged in changes from sealed_slot branch
2008-05-09 09:48:29 +00:00