Daniel Kochmański
ea87100a06
long-float: remove conditionalization
...
Many parts of the source code were bent backward to support builds
without long floats which are always present given we depend expect
c99 compiler.
The corresponding C macros (ECL_LONG_FLOAT) and the *feature*
entry (:long-float) are marked as deprecated in the documentation.
2019-05-24 21:04:59 +00:00
Daniel Kochmański
8cc0ae7222
complex float: add compiler optimizations and ffi definitions
...
- add ffi implementation for long-float
- add ffi implementation for (complex float) types
- add compiler optimizations and definitions for complex float
We do not add c?float common constants (long-float i.e has optimizer
for 0.0 and -0.0), because we don't know if they are common at all and
if we think about it each would have four entries counting signed
zeros).
Also add informative comment about global-entries.
2019-05-15 16:35:16 +02:00
Marius Gerbershagen
60870ae9b0
use correct unnormalized values for minimum float constants
...
Fixes #470 .
2019-02-13 20:24:26 +01:00
Daniel Kochmański
ed5ecd03eb
ieee-floats: fix builds with --with-ieee-fp=no
...
Functions to print (nan,float)-to-string and and predicates are still
available, but ext:*-float-*-infinity aren't available if ECL is built
with option `--with-ieee-fp=no`.
2016-08-11 22:38:30 +02:00
Daniel Kochmański
899f51106e
cmpc: when infinity is used, emit macro "INFINITY"
...
and "-INFINITY" for negative infinity. These corner-cases lead to
compilation error, so no regression will be imposed even against
non-c99 compilers.
INFINITY and NAN macros are introduced by C99 standard, so such code
requires C-backend to support this math extension. Fixes #156 .
Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
2015-09-04 21:32:08 +02: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
e92f8c418f
Added a 'machine' object that represents the features of a cross compilation target in the compiler. Inline forms now are created with one such machine on mind, and recreated if the machine changes.
2013-06-02 22:49:54 +02: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
e361ceada2
Check for NaNs among the compiled constants.
2011-12-19 22:41:11 +01:00
Alexander Gavrilov
f38e3d3d67
Use a c-inline transformation to represent SSE constants in code.
2011-05-22 19:39:00 +02:00
Juan Jose Garcia Ripoll
ab8b15069d
Small hack to allow cmpct.lsp be compiled by the bytecodes compiler.
2011-05-21 16:25:10 +02:00
Juan Jose Garcia Ripoll
e466268348
In cmpct.lsp, 0.0l0 was being compiled as -0.0l0
2010-11-01 19:31:39 +01:00
Juan Jose Garcia Ripoll
0abe27afb1
The object associated to the VV location is now stored in it
2010-06-05 23:16:17 +02:00
Juan Jose Garcia Ripoll
524f0792a5
VV/VV-TEMP locations are now structures
2010-06-05 21:39:20 +02:00
Juan Jose Garcia Ripoll
9ede271245
In cmpct.lsp, locations VV were nested (VV (VV index)).
2010-05-15 21:52:47 +02:00
Juan Jose Garcia Ripoll
d8dac21c8f
The c1form-parents field is now a list of the nodes above the current one. We provide functions to rewrite the list when moving the node and speed up FIND-NODE-IN-LIST using this list.
2010-05-11 17:25:16 +02:00
Juan Jose Garcia Ripoll
854349437f
Constants are always produced as fresh new locations so that we do not overwrite the parent and other fields
2010-05-11 16:45:12 +02:00
Juan Jose Garcia Ripoll
27dfba57f1
The list of generated constants is no longer just floats.
2009-06-19 11:24:53 +02:00
Juan Jose Garcia Ripoll
4d4bd1ed16
The compiler now also uses the cl_core.*_package constants
2009-06-19 11:24:01 +02:00
Juan Jose Garcia Ripoll
f312a7d051
The compiler can now access cl_core for other system wide constants. Currently applied to standard readtable only.
2009-06-19 11:20:30 +02:00
Juan Jose Garcia Ripoll
aee567aeb2
Fixed the inline form of long-float constants in cmpct.lsp
2009-06-15 00:38:38 +02:00
Juan Jose Garcia Ripoll
0b0e026664
Create constants in cl_core for variants of -0.0 and use them in compiled code. IMAGPART now produces signed zeros for negative real numbers.
2009-06-14 11:48:04 +02:00
Juan Jose Garcia Ripoll
037e2776b6
Added support for long double types in the compiler
2008-08-02 20:29:27 +02:00
jgarcia
a59f90871a
Emacs modelines for better editing
2008-02-02 19:14:05 +00:00
jgarcia
406be1454e
Reduced the number of headers globally included.
2006-10-23 21:13:14 +00:00
jgarcia
a8ba6f5c01
Initital support for long double and immediate short floats.
2006-10-13 17:28:51 +00:00
jgarcia
12799c7305
Move from short/long-float to single/double-float (by L. Brinkhoff)
2006-09-01 15:15:57 +00:00
jgarcia
ee50a03ea4
Use MAKE-LOAD-FORM to compile constants that do not have a readable printed representation (Brian Spilsbury)
2006-05-16 16:18:39 +00:00
jjgarcia
9e747f5fc3
*** empty log message ***
2005-05-04 09:32:03 +00:00