Finish float printing

This commit is contained in:
2026-08-13 03:51:55 -07:00
parent 7b854c1559
commit 20aed63851
4 changed files with 31 additions and 145 deletions
+6 -14
View File
@@ -23,24 +23,16 @@ typedef intptr_t fixnum_t;
# define LISP_FLOAT_SCANF "f"
# define LISP_FLOAT_PRINTF "f"
typedef lisp_float32_t lisp_float_t;
typedef lisp_float32_parts lisp_float_parts_t;
# define LISP_FLOAT_MIN_EXP FLOAT32_MIN_EXP
# define LISP_FLOAT_MAX_EXP FLOAT32_MAX_EXP
# define LISP_FLOAT_MAX_PRECISION FLOAT32_MAX_PRECISION
# define LISP_FLOAT_NAN LISP_FLOAT32_NAN()
# define LISP_FLOAT_POS_INF LISP_FLOAT32_INF(false)
# define LISP_FLOAT_NEG_INF LISP_FLOAT32_INF(true)
# define LISP_FLOAT_INF LISP_FLOAT32_INF()
# define LISP_FLOAT_MAX_PRECISION FLOAT32_MAX_PRECISION
#else
# define LISP_FLOAT_SCANF "lf"
# define LISP_FLOAT_PRINTF "f"
typedef lisp_float64_t lisp_float_t;
typedef lisp_float64_parts lisp_float_parts_t;
# define LISP_FLOAT_MIN_EXP FLOAT64_MIN_EXP
# define LISP_FLOAT_MAX_EXP FLOAT64_MAX_EXP
# define LISP_FLOAT_MAX_PRECISION FLOAT64_MAX_PRECISION
# define LISP_FLOAT_NAN LISP_FLOAT64_NAN()
# define LISP_FLOAT_POS_INF LISP_FLOAT64_INF(false)
# define LISP_FLOAT_NEG_INF LISP_FLOAT64_INF(true)
# define LISP_FLOAT_INF LISP_FLOAT64_INF()
# define LISP_FLOAT_MAX_PRECISION FLOAT64_MAX_PRECISION
#endif
#define MOST_POSITIVE_FIXNUM ((intptr_t) ((INTPTR_MAX & ~(intptr_t) 3) >> 2))
@@ -92,8 +84,8 @@ static ALWAYS_INLINE LispVal *MAKE_LISP_FLOAT(lisp_float_t flt) {
}
#define LISP_NAN MAKE_LISP_FLOAT(LISP_FLOAT_NAN)
#define LISP_POS_INF MAKE_LISP_FLOAT(LISP_FLOAT_POS_INF)
#define LISP_NEG_INF MAKE_LISP_FLOAT(LISP_FLOAT_NEG_INF)
#define LISP_POS_INF MAKE_LISP_FLOAT(LISP_FLOAT_INF)
#define LISP_NEG_INF MAKE_LISP_FLOAT(-LISP_FLOAT_INF)
// ###############
// # Other types #