diff --git a/Makefile b/Makefile index 707e4e1..8253548 100644 --- a/Makefile +++ b/Makefile @@ -1,29 +1,12 @@ -.PHONY: test/import.scm test/import.scm test/pffi-define.scm test/size-of.scm +.PHONY: test -VERSION=v0-1-0 -GUILE=GUILE_AUTO_COMPILE=0 guile --no-auto-compile --fresh-auto-compile --r7rs -L . -RACKET=racket -I r7rs --make -S $(shell pwd) --script -STKLOS=STKLOS_FRAMES=200 stklos -A . --compiler-flags='+line-info,+time-display,unroll-iterations=3' -f -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=".." -CYCLONE=cyclone -t -A . -CHICKEN=csc -X r7rs -R r7rs -CHICKEN_I=csi -R r7rs -GERBIL=gxc -prelude :scheme/r7rs -exe -GERBIL_I=gxi --lang r7rs +VERSION=$(shell cat VERSION) build: build-main-scm build-main-scm: cp retropikzel/pffi/${VERSION}/main.sld retropikzel/pffi/${VERSION}/main.scm -build-main-chicken: - cp retropikzel/pffi/${VERSION}/main.sld retropikzel/pffi/${VERSION}/retropikzel.pffi.${VERSION}.main.scm - cp retropikzel/pffi/${VERSION}/chicken.scm retropikzel/pffi/${VERSION}/retropikzel.pffi.${VERSION}.chicken.scm - cp retropikzel/pffi/${VERSION}/main.sld retropikzel.pffi.${VERSION}.main.scm - cp retropikzel/pffi/${VERSION}/chicken.scm retropikzel.pffi.${VERSION}.chicken.scm - ${CHICKEN} -sJ retropikzel.pffi.${VERSION}.chicken.scm - ${CHICKEN} -sJ retropikzel.pffi.${VERSION}.main.scm - update-documentation: schubert document mkdir -p docutmp @@ -36,44 +19,12 @@ documentation: schubert document VERSION=${VERSION} bash doc/generate.sh > documentation.md -test/import.scm: clean build - ${GUILE} $@ - ${RACKET} $@ - ${STKLOS} $@ - ${KAWA} $@ - ${CYCLONE} $@ && test/import - #${GAMBIT} -exe $@ && ./test/import - ${CHICKEN} $@ && ./test/import - #${GERBIL} $@ - -test/pffi-define.scm: clean build - ${GUILE} $@ - ${RACKET} $@ - ${KAWA} $@ - ${CHICKEN} -L -lcurl $@ && ./test/pffi-define - -test/pffi-define.scm: clean build - ${GAMBIT} -ld-options -lcurl -exe $@ && ./test/pffi-define - -test/size-of.scm: - ${GUILE} $@ - ${KAWA} $@ - -test/pointer-set-get.scm: - ${GUILE} $@ - #${RACKET} $@ - #${STKLOS} $@ - ${KAWA} $@ - -test/string-to-pointer-to-string.scm: - ${GUILE} $@ - #${RACKET} $@ - #${STKLOS} $@ - ${KAWA} $@ - tmp: mkdir -p tmp +test: + bash test-all.sh + clean: rm -rf docutmp rm -rf retropikzel/pffi/${VERSION}/*.c diff --git a/VERSION b/VERSION new file mode 100644 index 0000000..eb49cd3 --- /dev/null +++ b/VERSION @@ -0,0 +1 @@ +v0-1-0 diff --git a/retropikzel/pffi/v0-1-0/stklos.scm b/retropikzel/pffi/v0-1-0/stklos.scm index ee25587..e335577 100644 --- a/retropikzel/pffi/v0-1-0/stklos.scm +++ b/retropikzel/pffi/v0-1-0/stklos.scm @@ -80,7 +80,7 @@ (define pffi-pointer->string (lambda (pointer) - (cpointer->string pointer))) + pointer)) (define pffi-pointer->bytevector (lambda (pointer size) diff --git a/scripts/init-test.sh b/scripts/init-test.sh index 42a900f..7617848 100644 --- a/scripts/init-test.sh +++ b/scripts/init-test.sh @@ -1,4 +1,7 @@ set -eu make clean +make build make tmp + +VERSION=$(cat VERSION) diff --git a/scripts/test-runs-compilers.sh b/scripts/test-runs-compilers.sh new file mode 100644 index 0000000..28371bf --- /dev/null +++ b/scripts/test-runs-compilers.sh @@ -0,0 +1,6 @@ + +${SCHEME} ./test/import.scm +./test/import + +${SCHEME} ./test/pffi-define.scm +./test/pffi-define diff --git a/scripts/test-runs-dynamic.sh b/scripts/test-runs-dynamic.sh index f42c242..7c7c7c4 100644 --- a/scripts/test-runs-dynamic.sh +++ b/scripts/test-runs-dynamic.sh @@ -1,6 +1,7 @@ +${SCHEME} ./test/hello.scm ${SCHEME} ./test/import.scm -${SCHEME} ./test/pffi-define.scm ${SCHEME} ./test/size-of.scm ${SCHEME} ./test/pointer-set-get.scm ${SCHEME} ./test/string-to-pointer-to-string.scm +${SCHEME} ./test/pffi-define.scm diff --git a/test-all.sh b/test-all.sh new file mode 100644 index 0000000..8502401 --- /dev/null +++ b/test-all.sh @@ -0,0 +1,10 @@ +#!/usr/bin/env bash + + +for testfile in ./test-*.sh +do + if [[ ! "${testfile}" = "./test-all.sh" ]]; + then + bash "${testfile}" + fi +done diff --git a/test-chicken.sh b/test-chicken.sh new file mode 100644 index 0000000..c0d7a6c --- /dev/null +++ b/test-chicken.sh @@ -0,0 +1,16 @@ +#!/usr/bin/env bash + +source scripts/init-test.sh + +SCHEME="csc -X r7rs -R r7rs -L -lcurl" +SCHEME_LIB="csc -X r7rs -R r7rs -sJ" +SCHEME_I="csi -R r7rs" + +cp retropikzel/pffi/${VERSION}/main.sld retropikzel/pffi/${VERSION}/retropikzel.pffi.${VERSION}.main.scm +cp retropikzel/pffi/${VERSION}/chicken.scm retropikzel/pffi/${VERSION}/retropikzel.pffi.${VERSION}.chicken.scm +cp retropikzel/pffi/${VERSION}/main.sld retropikzel.pffi.${VERSION}.main.scm +cp retropikzel/pffi/${VERSION}/chicken.scm retropikzel.pffi.${VERSION}.chicken.scm +${SCHEME_LIB} retropikzel.pffi.${VERSION}.chicken.scm +${SCHEME_LIB} retropikzel.pffi.${VERSION}.main.scm + +source scripts/test-runs-compilers.sh diff --git a/test-cyclone.sh b/test-cyclone.sh new file mode 100644 index 0000000..c6c159a --- /dev/null +++ b/test-cyclone.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env bash + +source scripts/init-test.sh + +SCHEME="cyclone -A ." +SCHEME_LIB="cyclone -A ." +SCHEME_I="icyc -A . -s" + +source scripts/test-runs-compilers.sh diff --git a/test-gambit.sh b/test-gambit.sh index adc0b61..2e77bad 100644 --- a/test-gambit.sh +++ b/test-gambit.sh @@ -2,15 +2,13 @@ source scripts/init-test.sh -VERSION=v0-1-0 - - -SCHEME="gsc -:r7rs,search=." +SCHEME="gsc -:r7rs,search=. -ld-options -lcurl -exe" +SCHEME_LIB="gsc -:r7rs,search=. -obj" SCHEME_I="gsi -:r7rs,search=." -${SCHEME} -obj retropikzel/pffi/${VERSION}/gambit.scm -${SCHEME} -obj retropikzel/pffi/${VERSION}/main.sld -${SCHEME_I} ./test/import.scm -${SCHEME} -o ./tmp/import ./test/import.scm -./tmp/import +${SCHEME_LIB} retropikzel/pffi/${VERSION}/gambit.scm +${SCHEME_LIB} retropikzel/pffi/${VERSION}/main.sld + + +source scripts/test-runs-compilers.sh diff --git a/test-gerbil.sh b/test-gerbil.sh new file mode 100644 index 0000000..1e6e824 --- /dev/null +++ b/test-gerbil.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env bash + +source scripts/init-test.sh + +SCHEME="gxc -prelude :scheme/r7rs -exe" +SCHEME_LIB="gxc -prelude :scheme/r7rs" +SCHEME_I="gxi --lang r7rs" + +source scripts/test-runs-compilers.sh diff --git a/test-guile.sh b/test-guile.sh new file mode 100644 index 0000000..974f913 --- /dev/null +++ b/test-guile.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash +source scripts/init-test.sh + +SCHEME="guile --no-auto-compile --fresh-auto-compile --r7rs -L ." + +source scripts/test-runs-dynamic.sh diff --git a/test-kawa.sh b/test-kawa.sh new file mode 100644 index 0000000..5054592 --- /dev/null +++ b/test-kawa.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash +source scripts/init-test.sh + +SCHEME="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=.." + +source scripts/test-runs-dynamic.sh diff --git a/test-racket.sh b/test-racket.sh new file mode 100644 index 0000000..3c06b0f --- /dev/null +++ b/test-racket.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash +source scripts/init-test.sh + +SCHEME="racket -I r7rs --make -S . --script" + +source scripts/test-runs-dynamic.sh diff --git a/test-stklos.sh b/test-stklos.sh new file mode 100644 index 0000000..689e7c8 --- /dev/null +++ b/test-stklos.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash +source scripts/init-test.sh + +SCHEME="stklos -A . -f" + +source scripts/test-runs-dynamic.sh diff --git a/test/hello.scm b/test/hello.scm index 653c8a0..21d8b43 100644 --- a/test/hello.scm +++ b/test/hello.scm @@ -1,6 +1,5 @@ (import (scheme base) - (scheme write) - (retropikzel pffi v0.1.0 main)) + (scheme write)) (display "Hello") (newline) diff --git a/test/import.scm b/test/import.scm index d83f103..95ce1a8 100644 --- a/test/import.scm +++ b/test/import.scm @@ -1,10 +1,8 @@ (import (scheme base) (scheme write) - ;(retropikzel pffi v0-1-0 main) + (retropikzel pffi v0-1-0 main)) - ) - -(display "Hello") +(display "Hello from import.scm") (newline) diff --git a/test/pffi-define.scm b/test/pffi-define.scm index 8cca090..01ac27e 100644 --- a/test/pffi-define.scm +++ b/test/pffi-define.scm @@ -4,24 +4,14 @@ (scheme eval) (retropikzel pffi v0-1-0 main)) -;(define libcurl (pffi-shared-object-auto-load (list "curl/curl.h") "curl" (list))) +(define libcurl (pffi-shared-object-auto-load (list "curl/curl.h") "curl" (list))) -(c-declare "#include ") -;(display libcurl) -;(newline) - -(define curl-version - (c-lambda () - char-string - "curl_version")) - -;(pffi-define curl-version libcurl 'curl_version 'string (list)) +(pffi-define curl-version libcurl 'curl_version 'string (list)) (display "=================") (newline) -(display (curl-version)) -;(display (pffi-pointer->string (curl-version))) +(display (pffi-pointer->string (curl-version))) (newline) (display "=================") diff --git a/test/pointer-set-get.scm b/test/pointer-set-get.scm index 1ada250..d040fe5 100644 --- a/test/pointer-set-get.scm +++ b/test/pointer-set-get.scm @@ -1,6 +1,6 @@ (import (scheme base) (scheme write) - (retropikzel pffi v0.1.0 main)) + (retropikzel pffi v0-1-0 main)) (define p (pffi-pointer-allocate (+ (* (pffi-size-of 'uint32) 3) (* (pffi-size-of 'uint8) 4) diff --git a/test/string-to-pointer-to-string.scm b/test/string-to-pointer-to-string.scm index e6fc2da..e7c96e0 100644 --- a/test/string-to-pointer-to-string.scm +++ b/test/string-to-pointer-to-string.scm @@ -1,6 +1,6 @@ (import (scheme base) (scheme write) - (retropikzel pffi v0.1.0 main)) + (retropikzel pffi v0-1-0 main)) (define p (pffi-string->pointer "Hello world"))