From 62f243cecfe03485de46044b9c053e78c62677cb Mon Sep 17 00:00:00 2001 From: retropikzel Date: Sat, 12 Jul 2025 08:40:54 +0300 Subject: [PATCH] Chibi fixes --- foreign/c/pointer.scm | 3 ++- foreign/c/primitives/chibi.scm | 6 ------ foreign/c/primitives/chibi/foreign-c.stub | 8 ++++++-- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/foreign/c/pointer.scm b/foreign/c/pointer.scm index 70d7ae3..569c417 100644 --- a/foreign/c/pointer.scm +++ b/foreign/c/pointer.scm @@ -86,6 +86,7 @@ (cond-expand (chicken #t) ; FIXME (kawa #t) ; FIXME + ;(chibi #t) (else (define make-c-null (lambda () (cond-expand (stklos (let ((pointer (make-c-bytevector 1))) @@ -96,7 +97,7 @@ (cond-expand (chicken #t) ; FIXME (kawa #t) ; FIXME - (chibi (define c-null? pointer?)) + (chibi #t) (else (define c-null? (lambda (pointer) (if (c-bytevector? pointer) diff --git a/foreign/c/primitives/chibi.scm b/foreign/c/primitives/chibi.scm index e9ffc95..d6fed7c 100644 --- a/foreign/c/primitives/chibi.scm +++ b/foreign/c/primitives/chibi.scm @@ -69,12 +69,6 @@ (let ((c-function (dlsym shared-object c-name)) (maybe-dlerror (dlerror))) (lambda arguments - (display "NAME: ") - (display c-name) - (newline) - (display "ARGS: ") - (write arguments) - (newline) (let* ((return-pointer (internal-ffi-call (length argument-types) (type->libffi-type-number return-type) diff --git a/foreign/c/primitives/chibi/foreign-c.stub b/foreign/c/primitives/chibi/foreign-c.stub index c332acc..63308f7 100644 --- a/foreign/c/primitives/chibi/foreign-c.stub +++ b/foreign/c/primitives/chibi/foreign-c.stub @@ -10,6 +10,10 @@ (c-declare "void* make_c_null() { return NULL; }") (define-c (maybe-null pointer void*) make-c-null ()) +;; c-null? +(c-declare "sexp is_null(void* pointer) { if(pointer == NULL) { return SEXP_TRUE; } else { return SEXP_FALSE; } }") +(define-c sexp (c-null? is_null) ((maybe-null pointer void*))) + ;; c-type-size (c-declare " int size_of_int8_t() { return sizeof(int8_t); } @@ -109,9 +113,9 @@ double vals18[nargs]; void* vals20[nargs]; - printf(\"nargs: %i\\n\", nargs); + //printf(\"nargs: %i\\n\", nargs); for(int i = 0; i < nargs; i++) { - printf(\"i: %i\\n\", i); + //printf(\"i: %i\\n\", i); void* arg = NULL; switch(atypes[i]) { case 1: