Small steps towards Chicken 6 support

This commit is contained in:
retropikzel 2024-12-11 20:18:32 +02:00
parent 65dc69abc9
commit 6a04d574bb
2 changed files with 40 additions and 26 deletions

View File

@ -2,7 +2,9 @@ CC=gcc
CHIBI=chibi-scheme -A . CHIBI=chibi-scheme -A .
test-chibi-podman-amd64: test-chibi-podman-amd64:
podman run --arch=amd64 -it -v ${PWD}:/workdir schemers/chicken bash -c "cd /workdir && ${CHIBI} test.scm" podman run --arch=amd64 -it -v ${PWD}:/workdir docker.io/schemers/chibi bash -c "cd /workdir && chibi-ffi retropikzel/r7rs-pffi/r7rs-pffi-chibi.stub"
podman run --arch=amd64 -it -v ${PWD}:/workdir docker.io/schemers/chibi bash -c "cd /workdir && apt update && apt install -y build-essential libffi-dev && ${CC} -o retropikzel/r7rs-pffi/r7rs-pffi-chibi.so -fPIC -shared retropikzel/r7rs-pffi/r7rs-pffi-chibi.c -lchibi-scheme -lffi"
podman run --arch=amd64 -it -v ${PWD}:/workdir docker.io/schemers/chibi bash -c "cd /workdir && ${CHIBI} test.scm"
retropikzel/r7rs-pffi/r7rs-pffi-chibi.c: retropikzel/r7rs-pffi/r7rs-pffi-chibi.c:
chibi-ffi retropikzel/r7rs-pffi/r7rs-pffi-chibi.stub chibi-ffi retropikzel/r7rs-pffi/r7rs-pffi-chibi.stub
@ -10,25 +12,37 @@ retropikzel/r7rs-pffi/r7rs-pffi-chibi.c:
retropikzel/r7rs-pffi/r7rs-pffi-chibi.so: retropikzel/r7rs-pffi/r7rs-pffi-chibi.c retropikzel/r7rs-pffi/r7rs-pffi-chibi.so: retropikzel/r7rs-pffi/r7rs-pffi-chibi.c
${CC} -o retropikzel/r7rs-pffi/r7rs-pffi-chibi.so -fPIC -shared retropikzel/r7rs-pffi/r7rs-pffi-chibi.c -lchibi-scheme -lffi ${CC} -o retropikzel/r7rs-pffi/r7rs-pffi-chibi.so -fPIC -shared retropikzel/r7rs-pffi/r7rs-pffi-chibi.c -lchibi-scheme -lffi
test-chibi: test-chibi: retropikzel/r7rs-pffi/r7rs-pffi-chibi.so
${CHIBI} test.scm ${CHIBI} test.scm
CHICKEN=csc -X r7rs -R r7rs CHICKEN5=csc -X r7rs -R r7rs
CHICKEN_LIB=csc -X r7rs -R r7rs -include-path ./retropikzel -s -J CHICKEN5_LIB=csc -X r7rs -R r7rs -include-path ./retropikzel -s -J
test-chicken-podman-amd65: clean test-chicken5-podman-amd65: clean
cp retropikzel/r7rs-pffi.sld retropikzel.r7rs-pffi.sld cp retropikzel/r7rs-pffi.sld retropikzel.r7rs-pffi.sld
podman run --arch=amd64 -it -v ${PWD}:/workdir schemers/chicken bash -c "cd /workdir && ${CHICKEN_LIB} retropikzel.r7rs-pffi.sld" podman run --arch=amd64 -it -v ${PWD}:/workdir docker.io/schemers/chicken:5 bash -c "cd /workdir && ${CHICKEN5_LIB} retropikzel.r7rs-pffi.sld"
podman run --arch=amd64 -it -v ${PWD}:/workdir schemers/chicken bash -c "cd /workdir && ${CHICKEN} test.scm && ./test" podman run --arch=amd64 -it -v ${PWD}:/workdir docker.io/schemers/chicken:5 bash -c "cd /workdir && ${CHICKEN5} test.scm && ./test"
test-chicken: clean test-chicken5: clean
cp retropikzel/r7rs-pffi.sld retropikzel.r7rs-pffi.sld cp retropikzel/r7rs-pffi.sld retropikzel.r7rs-pffi.sld
${CHICKEN_LIB} retropikzel.r7rs-pffi.sld ${CHICKEN5_LIB} retropikzel.r7rs-pffi.sld
${CHICKEN} test.scm && ./test ${CHICKEN5} test.scm && ./test
CHICKEN6=csc
CHICKEN6_LIB=csc -include-path ./retropikzel -s -J
test-chicken6-podman-amd65: clean
cp retropikzel/r7rs-pffi.sld retropikzel.r7rs-pffi.sld
podman run --arch=amd64 -it -v ${PWD}:/workdir docker.io/schemers/chicken:6 bash -c "cd /workdir && ${CHICKEN6_LIB} retropikzel.r7rs-pffi.sld"
podman run --arch=amd64 -it -v ${PWD}:/workdir docker.io/schemers/chicken:6 bash -c "cd /workdir && ${CHICKEN6} test.scm && ./test"
test-chicken6: clean
cp retropikzel/r7rs-pffi.sld retropikzel.r7rs-pffi.sld
${CHICKEN6_LIB} retropikzel.r7rs-pffi.sld
${CHICKEN6} test.scm && ./test
CYCLONE=cyclone -A . CYCLONE=cyclone -A .
test-cyclone-podman-amd64: clean test-cyclone-podman-amd64: clean
podman run --arch=amd64 -it -v ${PWD}:/workdir schemers/cyclone bash -c "cd /workdir && ${CYCLONE} retropikzel/r7rs-pffi.sld" podman run --arch=amd64 -it -v ${PWD}:/workdir docker.io/schemers/cyclone bash -c "cd /workdir && ${CYCLONE} retropikzel/r7rs-pffi.sld"
podman run --arch=amd64 -it -v ${PWD}:/workdir schemers/cyclone bash -c "cd /workdir && ${CYCLONE} test.scm && ./test" podman run --arch=amd64 -it -v ${PWD}:/workdir docker.io/schemers/cyclone bash -c "cd /workdir && ${CYCLONE} test.scm && ./test"
test-cyclone: clean test-cyclone: clean
${CYCLONE} retropikzel/r7rs-pffi.sld ${CYCLONE} retropikzel/r7rs-pffi.sld
@ -38,9 +52,9 @@ test-cyclone: clean
GAMBIT_LIB=gsc -:search=. GAMBIT_LIB=gsc -:search=.
GAMBIT_CC=gsc -exe ./ -nopreload GAMBIT_CC=gsc -exe ./ -nopreload
test-gambit-podman-amd64: clean test-gambit-podman-amd64: clean
podman run --arch=amd64 -it -v ${PWD}:/workdir schemers/gambit bash -c "cd /workdir && ${GAMBIT_LIB} retropikzel/r7rs-pffi; echo $$?" podman run --arch=amd64 -it -v ${PWD}:/workdir docker.io/schemers/gambit bash -c "cd /workdir && ${GAMBIT_LIB} retropikzel/r7rs-pffi; echo $$?"
podman run --arch=amd64 -it -v ${PWD}:/workdir schemers/gambit bash -c "cd /workdir && ${GAMBIT_CC} test.scm; echo $$?" podman run --arch=amd64 -it -v ${PWD}:/workdir docker.io/schemers/gambit bash -c "cd /workdir && ${GAMBIT_CC} test.scm; echo $$?"
podman run --arch=amd64 -it -v ${PWD}:/workdir schemers/gambit bash -c "cd /workdir && ./test -:search=.; echo $$?" podman run --arch=amd64 -it -v ${PWD}:/workdir docker.io/schemers/gambit bash -c "cd /workdir && ./test -:search=.; echo $$?"
test-gambit: clean test-gambit: clean
${GAMBIT_LIB} retropikzel/r7rs-pffi; echo $$? ${GAMBIT_LIB} retropikzel/r7rs-pffi; echo $$?
@ -53,50 +67,50 @@ test-gauche:
GERBIL_LIB=gxc -O GERBIL_LIB=gxc -O
GERBIL=GERBIL_LOADPATH=. gxi --lang r7rs GERBIL=GERBIL_LOADPATH=. gxi --lang r7rs
test-gerbil-podman-amd64: test-gerbil-podman-amd64:
podman run --arch=amd64 -it -v ${PWD}:/workdir schemers/gerbil bash -c "cd /workdir && ${GERBIL_LIB} retropikzel/r7rs-pffi.sld" podman run --arch=amd64 -it -v ${PWD}:/workdir docker.io/schemers/gerbil bash -c "cd /workdir && ${GERBIL_LIB} retropikzel/r7rs-pffi.sld"
podman run --arch=amd64 -it -v ${PWD}:/workdir schemers/gerbil bash -c "cd /workdir && ${GERBIL} test.scm" podman run --arch=amd64 -it -v ${PWD}:/workdir docker.io/schemers/gerbil bash -c "cd /workdir && ${GERBIL} test.scm"
test-gerbil: test-gerbil:
gxi --lang r7rs test.scm gxi --lang r7rs test.scm
GUILE=guile --r7rs --fresh-auto-compile -L . GUILE=guile --r7rs --fresh-auto-compile -L .
test-guile-podman-amd64: test-guile-podman-amd64:
podman run --arch=amd64 -it -v ${PWD}:/workdir schemers/guile bash -c "cd /workdir && ${GUILE} test.scm" podman run --arch=amd64 -it -v ${PWD}:/workdir docker.io/schemers/guile bash -c "cd /workdir && ${GUILE} test.scm"
test-guile: test-guile:
${GUILE} test.scm ${GUILE} test.scm
KAWA=java --add-exports java.base/jdk.internal.foreign.abi=ALL-UNNAMED --add-exports java.base/jdk.internal.foreign.layout=ALL-UNNAMED --add-exports java.base/jdk.internal.foreign=ALL-UNNAMED --enable-native-access=ALL-UNNAMED --enable-preview -jar kawa.jar --r7rs --full-tailcalls -Dkawa.import.path=.:*.sld KAWA=java --add-exports java.base/jdk.internal.foreign.abi=ALL-UNNAMED --add-exports java.base/jdk.internal.foreign.layout=ALL-UNNAMED --add-exports java.base/jdk.internal.foreign=ALL-UNNAMED --enable-native-access=ALL-UNNAMED --enable-preview -jar kawa.jar --r7rs --full-tailcalls -Dkawa.import.path=.:*.sld
test-kawa-podman-amd64: test-kawa-podman-amd64:
podman run --arch=amd64 -it -v ${PWD}:/workdir schemers/kawa bash -c "cd /workdir && ${KAWA} test.scm" podman run --arch=amd64 -it -v ${PWD}:/workdir docker.io/schemers/kawa bash -c "cd /workdir && ${KAWA} test.scm"
test-kawa: test-kawa:
${KAWA} test.scm ${KAWA} test.scm
LARCENY=larceny -r7 -I . LARCENY=larceny -r7 -I .
test-larceny-podman-amd64: test-larceny-podman-amd64:
podman run --arch=amd64 -it -v ${PWD}:/workdir schemers/larceny:latest bash -c "cd /workdir && ${LARCENY} test.scm" podman run --arch=amd64 -it -v ${PWD}:/workdir docker.io/schemers/larceny:latest bash -c "cd /workdir && ${LARCENY} test.scm"
test-larceny: test-larceny:
${LARCENY} test.scm ${LARCENY} test.scm
MOSH=mosh --loadpath=. MOSH=mosh --loadpath=.
test-mosh-podman-amd64: test-mosh-podman-amd64:
podman run --arch=amd64 -it -v ${PWD}:/workdir schemers/mosh:0 bash -c "cd /workdir && ${MOSH} test.scm" podman run --arch=amd64 -it -v ${PWD}:/workdir docker.io/schemers/mosh:0 bash -c "cd /workdir && ${MOSH} test.scm"
test-mosh: test-mosh:
${MOSH} test.scm ${MOSH} test.scm
SASH=sash -r7 -L . -L ./schubert SASH=sash -r7 -L . -L ./schubert
test-sagittarius-podman-amd64: test-sagittarius-podman-amd64:
podman run --arch=amd64 -it -v ${PWD}:/workdir schemers/sagittarius bash -c "cd /workdir && ${SASH} test.scm" podman run --arch=amd64 -it -v ${PWD}:/workdir docker.io/schemers/sagittarius bash -c "cd /workdir && ${SASH} test.scm"
test-sagittarius: test-sagittarius:
${SASH} test.scm ${SASH} test.scm
RACKET=racket -I r7rs -S . -S ./schubert --script RACKET=racket -I r7rs -S . -S ./schubert --script
test-racket-podman-amd64: test-racket-podman-amd64:
podman run --arch=amd64 -it -v ${PWD}:/workdir schemers/racket bash -c "cd /workdir && ${RACKET} test.scm" podman run --arch=amd64 -it -v ${PWD}:/workdir docker.io/schemers/racket bash -c "cd /workdir && ${RACKET} test.scm"
test-racket: test-racket:
${RACKET} test.scm ${RACKET} test.scm
@ -106,7 +120,7 @@ test-skint:
STKLOS=stklos -A . -f STKLOS=stklos -A . -f
test-stklos-podman-amd64: test-stklos-podman-amd64:
podman run --arch=amd64 -it -v ${PWD}:/workdir schemers/stklos bash -c "cd /workdir && ${STKLOS} test.scm" podman run --arch=amd64 -it -v ${PWD}:/workdir docker.io/schemers/stklos bash -c "cd /workdir && ${STKLOS} test.scm"
test-stklos: test-stklos:
${STKLOS} test.scm ${STKLOS} test.scm
@ -116,7 +130,7 @@ test-tr7:
YPSILON=ypsilon --r7rs --loadpath=. YPSILON=ypsilon --r7rs --loadpath=.
test-ypsilon-podman-amd64: test-ypsilon-podman-amd64:
podman run --arch=amd64 -it -v ${PWD}:/workdir schemers/ypsilon bash -c "cd /workdir && ${YPSILON} test.scm" podman run --arch=amd64 -it -v ${PWD}:/workdir docker.io/schemers/ypsilon bash -c "cd /workdir && ${YPSILON} test.scm"
test-ypsilon: test-ypsilon:
${YPSILON} test.scm ${YPSILON} test.scm

View File

@ -28,7 +28,7 @@
;pffi-pointer-dereference ;pffi-pointer-dereference
) )
(include-shared "r7rs-pffi/r7rs-pffi-chibi")) (include-shared "r7rs-pffi/r7rs-pffi-chibi"))
(chicken-5 (chicken
(import (scheme base) (import (scheme base)
(scheme write) (scheme write)
(scheme char) (scheme char)