From 936d250b3c87c88776c7f7faaa30816e5a4fe2bf Mon Sep 17 00:00:00 2001 From: retropikzel Date: Thu, 26 Jun 2025 20:16:54 +0300 Subject: [PATCH] Chibi fixes --- Makefile | 7 ++-- README.md | 13 ++++++-- documentation/foreign-c.html | 39 +++++++++++++++++----- documentation/foreign-c.pdf | Bin 45702 -> 46044 bytes foreign/c.sld | 14 ++++++-- foreign/c/libc.scm | 9 ++--- foreign/c/pointer.scm | 16 +++++++-- foreign/c/primitives/chibi/foreign-c.stub | 3 +- foreign/c/primitives/gambit.scm | 15 ++++----- foreign/c/primitives/mit-scheme.scm | 0 10 files changed, 80 insertions(+), 36 deletions(-) create mode 100644 foreign/c/primitives/mit-scheme.scm diff --git a/Makefile b/Makefile index 1801621..cf3dcaf 100644 --- a/Makefile +++ b/Makefile @@ -47,12 +47,9 @@ test-compile-r7rs-wine: LD_LIBRARY_PATH=. \ wine ./${TESTNAME}.bat -test-compile-r7rs-docker-old: - docker build --build-arg COMPILE_R7RS=${COMPILE_R7RS} --tag=r7rs-pffi-test-${COMPILE_R7RS} -f Dockerfile.test . - docker run -v "${PWD}:/workdir" -w /workdir -t r7rs-pffi-test-${COMPILE_R7RS} sh -c "make COMPILE_R7RS=${COMPILE_R7RS} TESTNAME=${TESTNAME} test-compile-r7rs" - test-compile-r7rs-docker: - docker run -v "${PWD}:/workdir" -w /workdir retropikzel1/compile-r7rs:${COMPILE_R7RS} sh -c "make test-compile-r7rs COMPILE_R7RS=${COMPILE_R7RS} TESTNAME=${TESTNAME}" + docker build --build-arg COMPILE_R7RS=${COMPILE_R7RS} --tag=r7rs-pffi-test-${COMPILE_R7RS} -f dockerfiles/Dockerfile.test . + docker run -it -v "${PWD}:/workdir" -w /workdir -t r7rs-pffi-test-${COMPILE_R7RS} sh -c "make COMPILE_R7RS=${COMPILE_R7RS} TESTNAME=${TESTNAME} test-compile-r7rs" tmp/test/libtest.o: tests/c-src/libtest.c mkdir -p tmp/test diff --git a/README.md b/README.md index 6d7717b..45d6ced 100644 --- a/README.md +++ b/README.md @@ -85,7 +85,15 @@ to being portable by conforming to some specification. Required versions: +- Gambit >= 4.9.5 - Guile >= 3 +- Kawa >= 3.11 and Java >= 22 + - Needs arguments + - -J--add-exports=java.base/jdk.internal.foreign.abi=ALL-UNNAMED + - -J--add-exports=java.base/jdk.internal.foreign.layout=ALL-UNNAMED + - -J--add-exports=java.base/jdk.internal.foreign=ALL-UNNAMED + - -J--enable-native-access=ALL-UNNAMED + - -J--enable-preview - STklos > 2.10 ### Primitives 1 table @@ -94,12 +102,13 @@ Required versions: |------------------|:------------:|:--------------------:|:------------------:|:-------------------:|:-------------:|:-------------------:| | **Chibi** | X | X |X | X | X | X | | **Chicken** | X | X |X | X | X | X | +| Gambit | X | X |X | X | X | X | | **Gauche** | X | X |X | X | X | X | | **Guile** | X | X |X | X | X | X | | **Kawa** | X | X |X | X | X | X | | **Mosh** | X | X |X | X | X | X | | **Racket** | X | X |X | X | X | X | -| **Saggittarius** | X | X |X | X | X | X | +| **Sagittarius** | X | X |X | X | X | X | | **STklos** | X | X |X | X | X | X | | **Ypsilon** | X | X |X | X | X | X | @@ -135,7 +144,7 @@ Required versions: ## Installation -Eithe download the latest release from +Either download the latest release from [https://git.sr.ht/~retropikzel/foreign-c/refs](https://git.sr.ht/~retropikzel/foreign-c/refs) or git clone, preferably with a tag, and copy the _foreign_ directory to your library directory. diff --git a/documentation/foreign-c.html b/documentation/foreign-c.html index 5a94dc3..7d21b37 100644 --- a/documentation/foreign-c.html +++ b/documentation/foreign-c.html @@ -102,7 +102,19 @@ Schemes - 0.10.0 tables

Required versions:

Primitives 1 table

@@ -147,6 +159,15 @@ Schemes - 0.10.0 X + Gambit + X + X + X + X + X + X + + Gauche X X @@ -155,7 +176,7 @@ Schemes - 0.10.0 X X - + Guile X X @@ -164,7 +185,7 @@ Schemes - 0.10.0 X X - + Kawa X X @@ -173,7 +194,7 @@ Schemes - 0.10.0 X X - + Mosh X X @@ -182,7 +203,7 @@ Schemes - 0.10.0 X X - + Racket X X @@ -191,8 +212,8 @@ Schemes - 0.10.0 X X - - Saggittarius + + Sagittarius X X X @@ -200,7 +221,7 @@ Schemes - 0.10.0 X X - + STklos X X @@ -209,7 +230,7 @@ Schemes - 0.10.0 X X - + Ypsilon X X @@ -345,7 +366,7 @@ Schemes - 0.10.0

Installation

-

Eithe download the latest release from Either download the latest release from https://git.sr.ht/~retropikzel/foreign-c/refs or git clone, preferably with a tag, and copy the foreign directory to your library directory.

diff --git a/documentation/foreign-c.pdf b/documentation/foreign-c.pdf index ace1c8bb345dc0d90da231f08f10dd66808f6009..b99ec83d84b8a55527c47f5eecb0bcacc7ddd0b7 100644 GIT binary patch delta 42342 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 delta 42080 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 diff --git a/foreign/c.sld b/foreign/c.sld index f70fa19..444c287 100644 --- a/foreign/c.sld +++ b/foreign/c.sld @@ -33,7 +33,7 @@ (scheme process-context) (cyclone foreign) (scheme cyclone primitives))) - #;(gambit + (gambit (import (scheme base) (scheme write) (scheme char) @@ -77,6 +77,13 @@ (scheme file) (scheme inexact) (scheme process-context))) + (mit-scheme + (import (scheme base) + (scheme write) + (scheme char) + (scheme file) + (scheme inexact) + (scheme process-context))) #;(larceny (import (scheme base) (scheme write) @@ -304,11 +311,12 @@ (include "c/primitives/chicken.scm")) (chicken-6 (include-relative "c/primitives/chicken.scm")) ;(cyclone (include "c/primitives/cyclone.scm")) - ;(gambit (include "c/primitives/gambit.scm")) + (gambit (include "c/primitives/gambit.scm")) (gauche (include "c/primitives/gauche/define-c-procedure.scm")) ;(gerbil (include "c/primitives/gerbil.scm")) - (guile (include "./c/primitives/guile.scm")) + (guile (include "c/primitives/guile.scm")) (kawa (include "c/primitives/kawa.scm")) + (mit-scheme (include "c/primitives/mit-scheme.scm")) ;(larceny (include "c/primitives/larceny.scm")) (mosh (include "c/primitives/mosh.scm")) (racket (include "c/primitives/racket.scm")) diff --git a/foreign/c/libc.scm b/foreign/c/libc.scm index 661a5bf..45cc695 100644 --- a/foreign/c/libc.scm +++ b/foreign/c/libc.scm @@ -1,8 +1,9 @@ (cond-expand - (windows (define-c-library libc - '("stdlib.h" "stdio.h" "string.h") - "ucrtbase" - '())) + (windows + (define-c-library libc + '("stdlib.h" "stdio.h" "string.h") + "ucrtbase" + '())) (else (define c-library "c") (when (get-environment-variable "BE_HOST_CPU") diff --git a/foreign/c/pointer.scm b/foreign/c/pointer.scm index 774860f..bbb95cc 100644 --- a/foreign/c/pointer.scm +++ b/foreign/c/pointer.scm @@ -1,11 +1,23 @@ (define-c-procedure c-calloc libc 'calloc 'pointer '(int int)) (cond-expand - (chicken (define c-memset-address->pointer + (gambit + (define c-memset-address->pointer + (c-lambda (unsigned-int64 unsigned-int8 int) + (pointer void) + "___return(memset((void*)___arg1, ___arg2, ___arg3));"))) + (chicken + (define c-memset-address->pointer (lambda (address value offset) (address->pointer address)))) - (else (define-c-procedure c-memset-address->pointer libc 'memset 'pointer '(uint64 uint8 int)))) + (else + (define-c-procedure c-memset-address->pointer libc 'memset 'pointer '(uint64 uint8 int)))) (cond-expand + (gambit + (define c-memset-pointer->address + (c-lambda ((pointer void) unsigned-int8 int) + unsigned-int64 + "___return((uint64_t)memset(___arg1, ___arg2, ___arg3));"))) (chicken (define c-memset-pointer->address (lambda (pointer value offset) (pointer->address pointer)))) diff --git a/foreign/c/primitives/chibi/foreign-c.stub b/foreign/c/primitives/chibi/foreign-c.stub index bde411e..a0fa720 100644 --- a/foreign/c/primitives/chibi/foreign-c.stub +++ b/foreign/c/primitives/chibi/foreign-c.stub @@ -1,11 +1,10 @@ ; vim: ft=scheme -(c-link "ffi") - (c-system-include "stdint.h") (c-system-include "dlfcn.h") (c-system-include "stdio.h") (c-system-include "ffi.h") +(c-link "ffi") ;; c-type-size (c-declare " diff --git a/foreign/c/primitives/gambit.scm b/foreign/c/primitives/gambit.scm index 11d3e4d..49432ad 100644 --- a/foreign/c/primitives/gambit.scm +++ b/foreign/c/primitives/gambit.scm @@ -47,14 +47,11 @@ (else (error "Can not get size of unknown type" type))))) (define-macro - (define-c-library name headers object-name . options) - (begin - (let ((c-code (apply string-append - (map - (lambda (header) - (string-append "#include <" header ">" (string #\newline))) - (car (cdr headers)))))) - `(begin (define ,name #t) (c-declare ,c-code))))) + (define-c-library name headers object-name options) + (append (list `(define ,name #t) + (map (lambda (header) + `(c-declare ,(string-append "#include <" header ">"))) + (car (cdr headers)))))) (define pointer? (c-lambda ((pointer void)) bool "___return(1);")) @@ -66,7 +63,7 @@ (lambda (x) #f) (lambda () (pointer? object))))))) -#;(define c-bytevector-u8-set! (c-lambda ((pointer void) int unsigned-int8) void "*(uint8_t*)((char*)___arg1 + ___arg2) = ___arg3;")) +(define c-bytevector-u8-set! (c-lambda ((pointer void) int unsigned-int8) void "*(uint8_t*)((char*)___arg1 + ___arg2) = ___arg3;")) (define c-bytevector-u8-ref (c-lambda ((pointer void) int) unsigned-int8 "___return(*(uint8_t*)((char*)___arg1 + ___arg2));")) (define pointer-set-c-int8_t! (c-lambda ((pointer void) int int8) void "*(int8_t*)((char*)___arg1 + ___arg2) = ___arg3;")) diff --git a/foreign/c/primitives/mit-scheme.scm b/foreign/c/primitives/mit-scheme.scm new file mode 100644 index 0000000..e69de29