Floating point support todo list - qtxie/red GitHub Wiki
Todo list for supporting floating point datatype in Red/System. The work on floats has been split in two branches, the float-partial
branch has been almost finished, while the float-full
branch has been postponed and not scheduled yet. The initial float support is meant for making possible the interfacing with some external libraries.
-
Loader: extend it to accept decimal! type (using REBOL's LOAD native).(was not required finally) Add definitions in compiler for recognizing float!, float32!, float64! types.Add FPU specific initialization routine (when required, like for IA-32).64-bit support in all stack-related calculations (currently limited to 32-bit).Add support for floats in structs.Add support for floats in pointers.Add support for floats in variadic and typed functions.-
Write a new 'emit-operation backend function for math operations involving floats.Support float!/float! math ops.Support float32!/float32! math ops.Support float32! to float! type casting.Support float! to float32! type casting.Support integer! to float32! type casting.Support float32! to integer! type casting.
Add float datatypes description to language specification document.Add float support to ARM backend.
- Support mixed integers/floats math ops.
- Improve IA-32 float support code relying more on
width
instead of types testing. - Add float support to
stack/push
andstack/pop
functions. Add read/write FPU and floats settings tosystem
structure.- Provide a good Ulp-based
almost-equal
operator. - Decide on how to handle NaN and INFs.
- Add type conversion routines to runtime.
- Add float constants to runtime.
- Add support for decimal! in virtual-struct library (compiler helping lib).
- Write enough unit tests to cover all edge cases (NaNs, INFs, +/-0.0, comparisons,...)