TR7 fixes
This commit is contained in:
parent
a12b46315f
commit
297d743d73
|
|
@ -1,2 +1,3 @@
|
||||||
testvenv
|
testvenv
|
||||||
compile-test
|
compile-test
|
||||||
|
*.link
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ pipeline {
|
||||||
stages {
|
stages {
|
||||||
stage('Init') {
|
stage('Init') {
|
||||||
steps {
|
steps {
|
||||||
sh "apk add make docker"
|
sh "apk add make docker tree"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
stage('R6RS script') {
|
stage('R6RS script') {
|
||||||
|
|
@ -30,6 +30,7 @@ pipeline {
|
||||||
stage("${SCHEME}") {
|
stage("${SCHEME}") {
|
||||||
catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') {
|
catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') {
|
||||||
sh "make SCHEME=${SCHEME} test-r6rs-script-docker | grep 'scheme-venv-script-test-success-Hello' || exit 1"
|
sh "make SCHEME=${SCHEME} test-r6rs-script-docker | grep 'scheme-venv-script-test-success-Hello' || exit 1"
|
||||||
|
sh "tree testvenv"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -43,6 +44,7 @@ pipeline {
|
||||||
stage("${SCHEME}") {
|
stage("${SCHEME}") {
|
||||||
catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') {
|
catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') {
|
||||||
sh "make SCHEME=${SCHEME} test-r6rs-compile-docker | grep 'scheme-venv-compile-test-success-Hello' || exit 1"
|
sh "make SCHEME=${SCHEME} test-r6rs-compile-docker | grep 'scheme-venv-compile-test-success-Hello' || exit 1"
|
||||||
|
sh "tree testvenv"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -56,6 +58,7 @@ pipeline {
|
||||||
stage("${SCHEME}") {
|
stage("${SCHEME}") {
|
||||||
catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') {
|
catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') {
|
||||||
sh "make SCHEME=${SCHEME} test-r7rs-script-docker | grep 'scheme-venv-script-test-success-Hello' || exit 1"
|
sh "make SCHEME=${SCHEME} test-r7rs-script-docker | grep 'scheme-venv-script-test-success-Hello' || exit 1"
|
||||||
|
sh "tree testvenv"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -69,6 +72,7 @@ pipeline {
|
||||||
stage("${SCHEME}") {
|
stage("${SCHEME}") {
|
||||||
catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') {
|
catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') {
|
||||||
sh "make SCHEME=${SCHEME} test-r7rs-compile-docker | grep 'scheme-venv-compile-test-success-Hello' || exit 1"
|
sh "make SCHEME=${SCHEME} test-r7rs-compile-docker | grep 'scheme-venv-compile-test-success-Hello' || exit 1"
|
||||||
|
sh "tree testvenv"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
19
Makefile
19
Makefile
|
|
@ -1,5 +1,6 @@
|
||||||
PREFIX=/usr/local
|
PREFIX=/usr/local
|
||||||
SCHEME=chibi
|
SCHEME=chibi
|
||||||
|
DOCKER_IMG=scheme-venv-test-${SCHEME}
|
||||||
|
|
||||||
all: build
|
all: build
|
||||||
|
|
||||||
|
|
@ -18,14 +19,14 @@ test-r6rs-compile:
|
||||||
@rm -rf testvenv/ \
|
@rm -rf testvenv/ \
|
||||||
&& ./scheme-venv ${SCHEME} r6rs testvenv \
|
&& ./scheme-venv ${SCHEME} r6rs testvenv \
|
||||||
&& ./testvenv/bin/akku install chez-srfi \
|
&& ./testvenv/bin/akku install chez-srfi \
|
||||||
&& ./testvenv/bin/scheme-compile compile-test.sps srfi.64 \
|
&& ./testvenv/bin/scheme-compile compile-test.sps \
|
||||||
&& ./compile-test
|
&& ./compile-test
|
||||||
|
|
||||||
test-r7rs-script:
|
test-r7rs-script:
|
||||||
@echo "Starting test Scheme: ${SCHEME}, RNRS: R7RS"
|
@echo "Starting test Scheme: ${SCHEME}, RNRS: R7RS"
|
||||||
@rm -rf testvenv/ \
|
@rm -rf testvenv/ \
|
||||||
&& ./scheme-venv ${SCHEME} r7rs testvenv \
|
&& ./scheme-venv ${SCHEME} r7rs testvenv \
|
||||||
&& ./testvenv/bin/snow-chibi install --always-yes retropikzel.hello srfi.64 \
|
&& ./testvenv/bin/snow-chibi install --always-yes retropikzel.hello \
|
||||||
&& ./testvenv/bin/scheme-script test.scm
|
&& ./testvenv/bin/scheme-script test.scm
|
||||||
|
|
||||||
test-r7rs-compile:
|
test-r7rs-compile:
|
||||||
|
|
@ -37,23 +38,19 @@ test-r7rs-compile:
|
||||||
&& ./compile-test
|
&& ./compile-test
|
||||||
|
|
||||||
build-test-docker-image:
|
build-test-docker-image:
|
||||||
@if [ "${SCHEME}" = "chicken" ]; then \
|
docker build --build-arg IMG=${SCHEME}:head -f Dockerfile.test --tag=${DOCKER_IMG} .
|
||||||
docker build --build-arg IMG=${SCHEME}:5 -f Dockerfile.test --tag=scheme-venv-test-${SCHEME} . ; \
|
|
||||||
else \
|
|
||||||
docker build --build-arg IMG=${SCHEME}:head -f Dockerfile.test --tag=scheme-venv-test-${SCHEME} . ; \
|
|
||||||
fi
|
|
||||||
|
|
||||||
test-r6rs-script-docker: build-test-docker-image
|
test-r6rs-script-docker: build-test-docker-image
|
||||||
@docker run scheme-venv-test-${SCHEME} bash -c "make SCHEME=${SCHEME} test-r6rs-script"
|
@docker run ${DOCKER_IMG} bash -c "make SCHEME=${SCHEME} test-r6rs-script"
|
||||||
|
|
||||||
test-r6rs-compile-docker: build-test-docker-image
|
test-r6rs-compile-docker: build-test-docker-image
|
||||||
@docker run scheme-venv-test-${SCHEME} bash -c "make SCHEME=${SCHEME} test-r6rs-compile"
|
@docker run ${DOCKER_IMG} bash -c "make SCHEME=${SCHEME} test-r6rs-compile"
|
||||||
|
|
||||||
test-r7rs-script-docker: build-test-docker-image
|
test-r7rs-script-docker: build-test-docker-image
|
||||||
@docker run scheme-venv-test-${SCHEME} bash -c "make SCHEME=${SCHEME} test-r7rs-script"
|
@docker run ${DOCKER_IMG} bash -c "make SCHEME=${SCHEME} test-r7rs-script"
|
||||||
|
|
||||||
test-r7rs-compile-docker: build-test-docker-image
|
test-r7rs-compile-docker: build-test-docker-image
|
||||||
@docker run scheme-venv-test-${SCHEME} bash -c "make SCHEME=${SCHEME} test-r7rs-compile"
|
@docker run ${DOCKER_IMG} bash -c "make SCHEME=${SCHEME} test-r7rs-compile"
|
||||||
|
|
||||||
install:
|
install:
|
||||||
@mkdir -p ${PREFIX}/bin
|
@mkdir -p ${PREFIX}/bin
|
||||||
|
|
|
||||||
26
scheme-venv
26
scheme-venv
|
|
@ -165,7 +165,7 @@ if [ "${rnrs}" = "r6rs" ]; then
|
||||||
## R6RS
|
## R6RS
|
||||||
case "${implementation}" in
|
case "${implementation}" in
|
||||||
"capyscheme")
|
"capyscheme")
|
||||||
scheme_cmd="capy --r6rs -L \"${venvpath}/lib\" --script=\"\${IF}\""
|
scheme_cmd="capy --r6rs -L \"${venvpath}/lib\" --script \"\${IF}\""
|
||||||
;;
|
;;
|
||||||
"chezscheme")
|
"chezscheme")
|
||||||
if command -v chezscheme >/dev/null 2>&1
|
if command -v chezscheme >/dev/null 2>&1
|
||||||
|
|
@ -213,14 +213,22 @@ else
|
||||||
## R7RS
|
## R7RS
|
||||||
case "${implementation}" in
|
case "${implementation}" in
|
||||||
"capyscheme")
|
"capyscheme")
|
||||||
scheme_cmd="capy --r7rs -L \"${venvpath}/lib\" --script=\"\${IF}\""
|
scheme_cmd="capy --r7rs -L \"${venvpath}/lib\" --script \"\${IF}\""
|
||||||
;;
|
;;
|
||||||
"chibi")
|
"chibi")
|
||||||
scheme_cmd="chibi-scheme -I \"${venvpath}/lib\" \"\${IF}\""
|
scheme_cmd="chibi-scheme -I \"${venvpath}/lib\" \"\${IF}\""
|
||||||
;;
|
;;
|
||||||
"chicken")
|
"chicken")
|
||||||
scheme_cmd="echo \"Chicken scripts not yet supported\" && exit 1"
|
chicken_version=$(csi -version | grep "Version" | awk '{split($0,a," "); split(a[2],b,"."); print(b[1])}')
|
||||||
scheme_compile_cmd="csc -static -X r7rs -R r7rs -o \"\${OF}\" \"\${IF}\""
|
if [ "${chicken_version}" = "5" ]; then
|
||||||
|
#scheme_cmd="LD_LIBRARY_PATH=\"${venvpath}/lib\" csi -R r7rs -I \"${venvpath}/lib\" -script \"\${IF}\""
|
||||||
|
scheme_cmd="echo \"Chicken script not yet supported\" && exit 1"
|
||||||
|
scheme_compile_cmd="csc -static -X r7rs -R r7rs -o \"\${OF}\" \"\${IF}\""
|
||||||
|
else
|
||||||
|
#scheme_cmd="LD_LIBRARY_PATH=\"${venvpath}/lib\" csi -I \"${venvpath}/lib\" -script \"\${IF}\""
|
||||||
|
scheme_cmd="echo \"Chicken script not yet supported\" && exit 1"
|
||||||
|
scheme_compile_cmd="csc -static -o \"\${OF}\" \"\${IF}\""
|
||||||
|
fi
|
||||||
;;
|
;;
|
||||||
"cyclone")
|
"cyclone")
|
||||||
scheme_cmd="CYCLONE_LIBRARY_PATH=\"${venvpath}/lib\" icyc -I \"${venvpath}/lib\" \"\${IF}\""
|
scheme_cmd="CYCLONE_LIBRARY_PATH=\"${venvpath}/lib\" icyc -I \"${venvpath}/lib\" \"\${IF}\""
|
||||||
|
|
@ -238,7 +246,9 @@ else
|
||||||
scheme_cmd="gosh -r7 -I \"${venvpath}/lib\" \"\${IF}\""
|
scheme_cmd="gosh -r7 -I \"${venvpath}/lib\" \"\${IF}\""
|
||||||
;;
|
;;
|
||||||
"guile")
|
"guile")
|
||||||
scheme_cmd="guile --r7rs -x .sld -C \"${venvpath}/lib\" -L \"${venvpath}/lib\" -s \"\${IF}\""
|
#scheme_cmd="guile --r7rs -x .sld -C \"${venvpath}/lib\" -L \"${venvpath}/lib\" -s \"\${IF}\""
|
||||||
|
scheme_cmd="echo \"Guile script not yet supported\" && exit 1"
|
||||||
|
scheme_compile_cmd="echo \"Guile compiler not yet supported\" && exit 1"
|
||||||
;;
|
;;
|
||||||
"kawa")
|
"kawa")
|
||||||
scheme_cmd="kawa --r7rs --full-tailcalls -Dkawa.import.path=\"${venvpath}/lib/*.sld\" \"\${IF}\""
|
scheme_cmd="kawa --r7rs --full-tailcalls -Dkawa.import.path=\"${venvpath}/lib/*.sld\" \"\${IF}\""
|
||||||
|
|
@ -254,7 +264,9 @@ else
|
||||||
scheme_cmd="meevax -I \"${venvpath}/lib\" \"\${IF}\""
|
scheme_cmd="meevax -I \"${venvpath}/lib\" \"\${IF}\""
|
||||||
;;
|
;;
|
||||||
"mit-scheme")
|
"mit-scheme")
|
||||||
scheme_cmd="mit-scheme --prepend-library \"${venvpath}/lib\" --batch-mode --load \"\${IF}\" --eval \"(exit 0)\" --args"
|
#scheme_cmd="mit-scheme --prepend-library \"${venvpath}/lib\" --batch-mode --load \"\${IF}\" --eval \"(exit 0)\" --args"
|
||||||
|
scheme_cmd="echo \"MIT-scheme script not yet supported\" && exit 1"
|
||||||
|
scheme_compile_cmd="echo \"MIT-scheme compile not yet supported\" && exit 1"
|
||||||
;;
|
;;
|
||||||
"mosh")
|
"mosh")
|
||||||
scheme_cmd="mosh --loadpath=\"${venvpath}/lib\" \"\${IF}\""
|
scheme_cmd="mosh --loadpath=\"${venvpath}/lib\" \"\${IF}\""
|
||||||
|
|
@ -272,7 +284,7 @@ else
|
||||||
scheme_cmd="stklos -I \"${venvpath}/lib\" \"\${IF}\""
|
scheme_cmd="stklos -I \"${venvpath}/lib\" \"\${IF}\""
|
||||||
;;
|
;;
|
||||||
"tr7")
|
"tr7")
|
||||||
scheme_cmd="TR7_LIB_PATH=\"${venvpath}/lib\:\${TR7_LIB_PATH}\" tr7i -1 \"\${IF}\""
|
scheme_cmd="TR7_LIB_PATH=\"${venvpath}/lib:\${TR7_LIB_PATH}\" tr7i -1 \"\${IF}\""
|
||||||
;;
|
;;
|
||||||
"ypsilon")
|
"ypsilon")
|
||||||
scheme_cmd="ypsilon --r7rs --sitelib \"${venvpath}/lib\" --top-level-program \"\${IF}\""
|
scheme_cmd="ypsilon --r7rs --sitelib \"${venvpath}/lib\" --top-level-program \"\${IF}\""
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue