Fixed chicken test running
This commit is contained in:
parent
4a9a042906
commit
924e60dcb7
|
|
@ -4,6 +4,7 @@ docuptmp
|
||||||
*.log
|
*.log
|
||||||
*.c
|
*.c
|
||||||
!libtest.c
|
!libtest.c
|
||||||
|
*.a
|
||||||
*.so
|
*.so
|
||||||
*.o
|
*.o
|
||||||
*.so
|
*.so
|
||||||
|
|
|
||||||
26
Makefile
26
Makefile
|
|
@ -1,10 +1,18 @@
|
||||||
.PHONY=libtest.so
|
.PHONY=libtest.so
|
||||||
CC=gcc
|
CC=gcc
|
||||||
DOCKER=docker run -it -v ${PWD}:/workdir
|
DOCKER=docker run -it -v ${PWD}:/workdir
|
||||||
|
DOCKER_INIT=apt-get update \
|
||||||
|
&& apt-get install -y git make \
|
||||||
|
&& git clone https://git.sr.ht/~retropikzel/compile-r7rs \
|
||||||
|
&& cd compile-r7rs && make install
|
||||||
|
|
||||||
libtest.so: libtest.c
|
libtest.so: libtest.c
|
||||||
${CC} -o libtest.so -shared -fPIC libtest.c
|
${CC} -o libtest.so -shared -fPIC libtest.c
|
||||||
|
|
||||||
|
libtest.a: libtest.c
|
||||||
|
${CC} -fPIC -c libtest.c
|
||||||
|
ar rcs libtest.a libtest.o
|
||||||
|
|
||||||
CHIBI=chibi-scheme -A .
|
CHIBI=chibi-scheme -A .
|
||||||
test-chibi-podman-amd64: libtest.so
|
test-chibi-podman-amd64: libtest.so
|
||||||
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 && chibi-ffi retropikzel/r7rs-pffi/r7rs-pffi-chibi.stub"
|
||||||
|
|
@ -24,21 +32,21 @@ retropikzel/r7rs-pffi/r7rs-pffi-chibi.so: retropikzel/r7rs-pffi/r7rs-pffi-chibi.
|
||||||
test-chibi: retropikzel/r7rs-pffi/r7rs-pffi-chibi.so libtest.so
|
test-chibi: retropikzel/r7rs-pffi/r7rs-pffi-chibi.so libtest.so
|
||||||
${CHIBI} test.scm
|
${CHIBI} test.scm
|
||||||
|
|
||||||
CHICKEN5=SCMC=csc CSCFLAGS="-I. " compile-r7rs main.scm
|
CHICKEN5=SCMC=csc CSCFLAGS='-I. -L. -L -ltest' compile-r7rs -I . main.scm
|
||||||
#CHICKEN5=csc -X r7rs -R r7rs -uses scheme.base -I.
|
#CHICKEN5=csc -X r7rs -R r7rs -uses scheme.base -I.
|
||||||
#CHICKEN5_LIB=csc -X r7rs -R r7rs -uses r7rs -I. -include-path ./retropikzel -s -J
|
#CHICKEN5_LIB=csc -X r7rs -R r7rs -uses r7rs -I. -include-path ./retropikzel -s -J
|
||||||
#CHICKEN5_LIB=csc -X r7rs -R r7rs -uses r7rs -unit retropikzel.r7rs-pffi -include-path ./retropikzel -s -J
|
#CHICKEN5_LIB=csc -X r7rs -R r7rs -uses r7rs -unit retropikzel.r7rs-pffi -include-path ./retropikzel -s -J
|
||||||
test-chicken5-podman-amd65: clean libtest.so
|
test-chicken5-podman-amd65: clean libtest.a
|
||||||
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 docker.io/schemers/chicken:5 bash -c "cd /workdir && ${CHICKEN5_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 docker.io/schemers/chicken:5 bash -c "cd /workdir && ${CHICKEN5} 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-chicken5-docker: clean libtest.so
|
test-chicken5-docker: clean libtest.a
|
||||||
cp retropikzel/r7rs-pffi.sld retropikzel.r7rs-pffi.sld
|
#cp retropikzel/r7rs-pffi.sld retropikzel.r7rs-pffi.sld
|
||||||
docker run -it -v ${PWD}:/workdir docker.io/schemers/chicken:5 bash -c "cd /workdir && ${CHICKEN5_LIB} retropikzel.r7rs-pffi.sld"
|
#docker run -it -v ${PWD}:/workdir docker.io/schemers/chicken:5 bash -c "cd /workdir && ${CHICKEN5_LIB} retropikzel.r7rs-pffi.sld"
|
||||||
docker run -it -v ${PWD}:/workdir docker.io/schemers/chicken:5 bash -c "cd /workdir && ${CHICKEN5} test.scm && ./test"
|
${DOCKER} schemers/chicken:5 bash -c "${DOCKER_INIT} && cd /workdir && ${CHICKEN5} test.scm && ./test"
|
||||||
|
|
||||||
test-chicken5: clean libtest.so
|
test-chicken5: clean libtest.a
|
||||||
#cp retropikzel/r7rs-pffi.sld retropikzel.r7rs-pffi.sld
|
#cp retropikzel/r7rs-pffi.sld retropikzel.r7rs-pffi.sld
|
||||||
#${CHICKEN5_LIB} retropikzel.r7rs-pffi.sld
|
#${CHICKEN5_LIB} retropikzel.r7rs-pffi.sld
|
||||||
${CHICKEN5} test.scm
|
${CHICKEN5} test.scm
|
||||||
|
|
|
||||||
|
|
@ -128,6 +128,7 @@
|
||||||
pffi-struct-offset-get
|
pffi-struct-offset-get
|
||||||
pffi-struct-get
|
pffi-struct-get
|
||||||
pffi-struct-set!
|
pffi-struct-set!
|
||||||
|
;pffi-struct-dereference
|
||||||
pffi-define
|
pffi-define
|
||||||
;pffi-define-callback
|
;pffi-define-callback
|
||||||
))
|
))
|
||||||
|
|
|
||||||
|
|
@ -20,6 +20,7 @@
|
||||||
((equal? type 'double) double)
|
((equal? type 'double) double)
|
||||||
((equal? type 'pointer) opaque)
|
((equal? type 'pointer) opaque)
|
||||||
((equal? type 'void) c-void)
|
((equal? type 'void) c-void)
|
||||||
|
((equal? type 'struct) 'c-pointer)
|
||||||
(else (error "pffi-type->native-type -- No such pffi type" type)))))
|
(else (error "pffi-type->native-type -- No such pffi type" type)))))
|
||||||
|
|
||||||
(define pffi-pointer?
|
(define pffi-pointer?
|
||||||
|
|
@ -51,6 +52,7 @@
|
||||||
((equal? type 'double) 'double)
|
((equal? type 'double) 'double)
|
||||||
((equal? type 'pointer) 'c-pointer)
|
((equal? type 'pointer) 'c-pointer)
|
||||||
((equal? type 'void) 'void)
|
((equal? type 'void) 'void)
|
||||||
|
((equal? type 'struct) 'c-pointer)
|
||||||
(else (error "pffi-type->native-type -- No such pffi type" type)))))
|
(else (error "pffi-type->native-type -- No such pffi type" type)))))
|
||||||
(scheme-name (car (cdr expr)))
|
(scheme-name (car (cdr expr)))
|
||||||
(c-name (symbol->string (car (cdr (car (cdr (cdr (cdr expr))))))))
|
(c-name (symbol->string (car (cdr (car (cdr (cdr (cdr expr))))))))
|
||||||
|
|
@ -258,8 +260,7 @@
|
||||||
((equal? type 'unsigned-long) (pffi-pointer-unsigned-long-set! pointer offset value))
|
((equal? type 'unsigned-long) (pffi-pointer-unsigned-long-set! pointer offset value))
|
||||||
((equal? type 'float) (pffi-pointer-float-set! pointer offset value))
|
((equal? type 'float) (pffi-pointer-float-set! pointer offset value))
|
||||||
((equal? type 'double) (pffi-pointer-double-set! pointer offset value))
|
((equal? type 'double) (pffi-pointer-double-set! pointer offset value))
|
||||||
((equal? type 'pointer) (pffi-pointer-pointer-set! pointer offset value))
|
((equal? type 'pointer) (pffi-pointer-pointer-set! pointer offset value)))))
|
||||||
)))
|
|
||||||
|
|
||||||
(define-c pffi-pointer-int8-get
|
(define-c pffi-pointer-int8-get
|
||||||
"(void *data, int argc, closure _, object k, object pointer, object offset)"
|
"(void *data, int argc, closure _, object k, object pointer, object offset)"
|
||||||
|
|
@ -373,5 +374,4 @@
|
||||||
((equal? type 'unsigned-long) (pffi-pointer-unsigned-long-get pointer offset))
|
((equal? type 'unsigned-long) (pffi-pointer-unsigned-long-get pointer offset))
|
||||||
((equal? type 'float) (pffi-pointer-float-get pointer offset))
|
((equal? type 'float) (pffi-pointer-float-get pointer offset))
|
||||||
((equal? type 'double) (pffi-pointer-double-get pointer offset))
|
((equal? type 'double) (pffi-pointer-double-get pointer offset))
|
||||||
((equal? type 'pointer) (pffi-pointer-pointer-get pointer offset))
|
((equal? type 'pointer) (pffi-pointer-pointer-get pointer offset)))))
|
||||||
)))
|
|
||||||
|
|
|
||||||
|
|
@ -100,7 +100,7 @@
|
||||||
|
|
||||||
(define pffi-pointer->string
|
(define pffi-pointer->string
|
||||||
(lambda (pointer)
|
(lambda (pointer)
|
||||||
(pointer->string pointer)))
|
(pointer->string pointer)))
|
||||||
|
|
||||||
(define pffi-shared-object-load
|
(define pffi-shared-object-load
|
||||||
(lambda (headers path)
|
(lambda (headers path)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue