From 4ad41f6d5cbc75b716a48a2bdb1cae9e316c6832 Mon Sep 17 00:00:00 2001 From: Justin Ethier Date: Fri, 10 Feb 2017 00:54:18 -0500 Subject: [PATCH] Print bignums --- runtime.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/runtime.c b/runtime.c index 3bd6a7b7..65e29f1b 100644 --- a/runtime.c +++ b/runtime.c @@ -831,6 +831,19 @@ object Cyc_display(void *data, object x, FILE * port) } fprintf(port, ")"); break; + case bignum_tag: { + int bufsz; + char *buf; + + // TODO: check return value + mp_radix_size(&bignum_value(x), 10, &bufsz); + + buf = alloca(bufsz); + // TODO: check return value + mp_toradix_n(&bignum_value(x), buf, 10, bufsz); + fprintf(port, "%s", buf); + break; + } default: fprintf(port, "Cyc_display: bad tag x=%d\n", ((closure) x)->tag); exit(1);