summaryrefslogtreecommitdiff
path: root/src/runtime.c
diff options
context:
space:
mode:
authorLLLL Colonq <llll@colonq>2026-06-09 20:12:45 -0400
committerLLLL Colonq <llll@colonq>2026-06-09 20:12:45 -0400
commit05117cef2423ddc5deedf5dd51df28806065d0c8 (patch)
tree5e4140c5679122b1c37253e3843667c254934f46 /src/runtime.c
parent2bed368821af4fcb06435bfe849332f5a813e470 (diff)
Make floating-point optional
Diffstat (limited to 'src/runtime.c')
-rw-r--r--src/runtime.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/runtime.c b/src/runtime.c
index 33c9db6..c382306 100644
--- a/src/runtime.c
+++ b/src/runtime.c
@@ -67,7 +67,11 @@ i64 pit_dump(pit_runtime *rt, char *buf, i64 len, pit_value v, bool readable) {
if (len <= 0) return 0;
switch (pit_value_sort(v)) {
case PIT_VALUE_SORT_DOUBLE:
+ #ifndef PIT_NO_DOUBLE
return pit_string_snprintf(buf, (size_t) len, "%lf", pit_as_double(rt, v));
+ #else
+ return pit_string_snprintf(buf, (size_t) len, "<unsupported double>");
+ #endif
case PIT_VALUE_SORT_INTEGER:
return pit_string_snprintf(buf, (size_t) len, "%ld", pit_as_integer(rt, v));
case PIT_VALUE_SORT_SYMBOL: {
@@ -194,6 +198,7 @@ pit_value pit_value_new(pit_runtime *rt, enum pit_value_sort s, u64 data) {
| (data & 0x1ffffffffffff);
}
+#ifndef PIT_NO_DOUBLE
double pit_as_double(pit_runtime *rt, pit_value v) {
if (pit_value_sort(v) != PIT_VALUE_SORT_DOUBLE) {
pit_error(rt, "invalid use of value as double");
@@ -208,6 +213,7 @@ pit_value pit_double_new(pit_runtime *rt, double d) {
x.dval = d;
return pit_value_new(rt, PIT_VALUE_SORT_DOUBLE, x.ival);
}
+#endif
i64 pit_as_integer(pit_runtime *rt, pit_value v) {
if (pit_value_sort(v) != PIT_VALUE_SORT_INTEGER) {