diff --git a/.gitignore b/.gitignore index 2fb117a..f66d718 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,8 @@ !include/pffi-gauche.h !include/libtest.h *.c +!tests/c-src/*.c +!tests/c-include/*.h !src/libtest.c !src/gauche/pffi.c *.swp @@ -39,10 +41,7 @@ dockerfiles/build .scheme_testrunner core testfile.test -tests/compliance -tests/retropikzel *.rkt testfile.test -tests/testfile.test snow foreign/c/lib diff --git a/dockerfiles/build-chibi b/dockerfiles/build-chibi deleted file mode 100644 index e5e5d11..0000000 --- a/dockerfiles/build-chibi +++ /dev/null @@ -1,2 +0,0 @@ -FROM schemers/chibi -RUN apt-get update && apt-get install -y build-essential diff --git a/dockerfiles/jenkins b/dockerfiles/jenkins deleted file mode 100644 index e6ec566..0000000 --- a/dockerfiles/jenkins +++ /dev/null @@ -1,2 +0,0 @@ -FROM debian:trixie -RUN apt update && apt install -y docker.io make bash curl zip unzip openjdk-22-jdk build-essential diff --git a/foreign/c.sld b/foreign/c.sld index 4668b9e..32f60fa 100644 --- a/foreign/c.sld +++ b/foreign/c.sld @@ -143,44 +143,8 @@ cpointer-null? cpointer-data cpointer-data-set! - ;c-bytevector-s8-set! - ;c-bytevector-s8-set! - cpointer-set-int8! - cpointer-ref-int8 - cpointer-set-uint8! - cpointer-ref-uint8 - cpointer-set-int16! - cpointer-ref-int16 - cpointer-set-uint16! - cpointer-ref-uint16 - cpointer-set-int32! - cpointer-ref-int32 - cpointer-set-uint32! - cpointer-ref-uint32 - cpointer-set-int64! - cpointer-ref-int64 - cpointer-set-uint64! - cpointer-ref-uint64 - cpointer-set-char! - cpointer-ref-char - cpointer-set-short! - cpointer-ref-short - cpointer-set-unsigned-short! - cpointer-ref-unsigned-short - cpointer-set-int! - cpointer-ref-int - cpointer-set-unsigned-int! - cpointer-ref-unsigned-int - cpointer-set-long! - cpointer-ref-long - cpointer-set-unsigned-long! - cpointer-ref-unsigned-long - cpointer-set-float! - cpointer-ref-float - cpointer-set-double! - cpointer-ref-double - cpointer-set-pointer! - cpointer-ref-pointer + cpointer-set! + cpointer-ref void?)) (export ; calculate-struct-size-and-offsets ;struct-make diff --git a/foreign/c/primitives/stklos.scm b/foreign/c/primitives/stklos.scm index 36c899a..424ed29 100644 --- a/foreign/c/primitives/stklos.scm +++ b/foreign/c/primitives/stklos.scm @@ -93,10 +93,21 @@ ((equal? type 'double) 8) ((equal? type 'pointer) 8)))) -(define c-bytevector-u8-set! cpointer-set-uint8!) -(define c-bytevector-u8-ref cpointer-ref-uint8) -(define c-bytevector-pointer-set! cpointer-set-pointer!) -(define c-bytevector-pointer-ref cpointer-ref-pointer) +(define c-bytevector-u8-set! + (lambda (pointer offset value) + (cpointer-set! pointer :uint8 value offset))) + +(define c-bytevector-u8-ref + (lambda (pointer offset) + (cpointer-ref pointer :uint8 offset))) + +(define c-bytevector-pointer-set! + (lambda (pointer offset value) + (cpointer-set! pointer :pointer value offset))) + +(define c-bytevector-pointer-ref + (lambda (pointer offset) + (cpointer-ref pointer :pointer offset))) #;(define pffi-pointer-set! (lambda (pointer type offset value)