From 1faf874fff76fb81de60b19b09f3fb340eeb2e36 Mon Sep 17 00:00:00 2001 From: Justin Ethier Date: Sat, 16 May 2020 19:48:21 -0400 Subject: [PATCH] Add missing C types --- libs/cyclone/foreign.sld | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/libs/cyclone/foreign.sld b/libs/cyclone/foreign.sld index 06d077fa..6831bfc1 100644 --- a/libs/cyclone/foreign.sld +++ b/libs/cyclone/foreign.sld @@ -164,11 +164,21 @@ "make_utf8_string(data," var ", " ,code ");") (string-append "&" var) ))) -TODO: -; /*bytevector_tag */ , "bytevector" -; /*c_opaque_tag */ , "opaque" -; /*bignum_tag */ , "bignum" -; /*symbol_tag */ , "symbol" + ((bytevector) + (let ((var (mangle (gensym 'var)))) + (cons + (string-append + "make_empty_bytevector(data," var ");" + var "->data = " ,code ";") + (string-append "&" var) + ))) + ((opaque) + (let ((var (mangle (gensym 'var)))) + (cons + (string-append + "make_c_opaque(data," var ", " ,code ");") + (string-append "&" var) + ))) (else (error "c->scm unable to convert C object of type " ,type)))))))