Fixing testing
This commit is contained in:
parent
f4e2a2211b
commit
674b1f2040
|
|
@ -1 +1,2 @@
|
||||||
testvenv
|
testvenv
|
||||||
|
compile-test
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
ARG SCHEME=chibi
|
ARG IMG=chibi
|
||||||
FROM docker.io/schemers/${SCHEME}:head
|
FROM docker.io/schemers/${IMG}
|
||||||
RUN apt-get update && apt-get install -y \
|
RUN apt-get update && apt-get install -y \
|
||||||
build-essential git wget ca-certificates guile-3.0 guile-3.0-dev libcurl4 \
|
build-essential git wget ca-certificates guile-3.0 guile-3.0-dev libcurl4 \
|
||||||
xz-utils
|
xz-utils
|
||||||
|
|
@ -19,8 +19,11 @@ WORKDIR /workdir
|
||||||
RUN mkdir -p ${HOME}/.snow && echo "()" > ${HOME}/.snow/config.scm
|
RUN mkdir -p ${HOME}/.snow && echo "()" > ${HOME}/.snow/config.scm
|
||||||
ENV PATH=/root/.local/bin:${PATH}
|
ENV PATH=/root/.local/bin:${PATH}
|
||||||
ENV LD_LIBRARY_PATH=/root/.local/lib
|
ENV LD_LIBRARY_PATH=/root/.local/lib
|
||||||
COPY Makefile Makefile
|
COPY Makefile .
|
||||||
COPY test.scm test.scm
|
COPY test.scm .
|
||||||
COPY scheme-venv scheme-venv
|
COPY test.sps .
|
||||||
|
COPY compile-test.scm .
|
||||||
|
COPY compile-test.sps .
|
||||||
|
COPY scheme-venv .
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -13,8 +13,8 @@ pipeline {
|
||||||
}
|
}
|
||||||
|
|
||||||
parameters {
|
parameters {
|
||||||
string(name: 'R6RS_SCHEMES', defaultValue: 'chezscheme', description: '')
|
string(name: 'R6RS_SCHEMES', defaultValue: 'capyscheme chezscheme guile ikarus ironscheme larceny loko mosh racket sagittarius ypsilon', description: '')
|
||||||
string(name: 'R7RS_SCHEMES', defaultValue: 'chibi gauche', description: '')
|
string(name: 'R7RS_SCHEMES', defaultValue: 'capyscheme chibi chicken cyclone foment gambit gauche guile kawa larceny loko meevax mosh mit-scheme racket sagittarius skint stklos tr7 ypsilon', description: '')
|
||||||
}
|
}
|
||||||
|
|
||||||
stages {
|
stages {
|
||||||
|
|
@ -30,7 +30,7 @@ pipeline {
|
||||||
params.R6RS_SCHEMES.split().each { SCHEME ->
|
params.R6RS_SCHEMES.split().each { SCHEME ->
|
||||||
stage("${SCHEME}") {
|
stage("${SCHEME}") {
|
||||||
catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') {
|
catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') {
|
||||||
sh "timeout 60 make SCHEME=${SCHEME} RNRS=r6rs test-docker"
|
sh "make SCHEME=${SCHEME} RNRS=r6rs test-docker"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -43,7 +43,7 @@ pipeline {
|
||||||
params.R7RS_SCHEMES.split().each { SCHEME ->
|
params.R7RS_SCHEMES.split().each { SCHEME ->
|
||||||
stage("${SCHEME}") {
|
stage("${SCHEME}") {
|
||||||
catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') {
|
catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') {
|
||||||
sh "timeout 60 make SCHEME=${SCHEME} RNRS=r7rs test-docker"
|
sh "make SCHEME=${SCHEME} RNRS=r7rs test-docker"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
44
Makefile
44
Makefile
|
|
@ -1,26 +1,46 @@
|
||||||
PREFIX=/usr/local
|
PREFIX=/usr/local
|
||||||
SCHEME=chibi
|
SCHEME=chibi
|
||||||
RNRS=r7rs
|
|
||||||
|
|
||||||
all: build
|
all: build
|
||||||
|
|
||||||
build:
|
build:
|
||||||
@echo "No build step, just install"
|
@echo "No build step, just install"
|
||||||
|
|
||||||
test:
|
test-r6rs:
|
||||||
rm -rf testvenv/ \
|
@echo "Starting test Scheme: ${SCHEME}, RNRS: R6RS"
|
||||||
&& ./scheme-venv ${SCHEME} ${RNRS} testvenv \
|
@rm -rf testvenv/ \
|
||||||
&& ./testvenv/bin/snow-chibi install retropikzel.hello \
|
&& ./scheme-venv ${SCHEME} r6rs testvenv \
|
||||||
|
&& ./testvenv/bin/snow-chibi install --always-yes retropikzel.hello \
|
||||||
&& ./testvenv/bin/akku install akku-r7rs \
|
&& ./testvenv/bin/akku install akku-r7rs \
|
||||||
&& ./testvenv/bin/scheme-script test.scm
|
&& SCHEME_VENV_DEBUG=1 ./testvenv/bin/scheme-script test.sps \
|
||||||
|
&& SCHEME_VENV_DEBUG=1 ./testvenv/bin/scheme-compile compile-test.sps \
|
||||||
|
&& ./compile-test
|
||||||
|
|
||||||
test-docker:
|
test-r7rs:
|
||||||
docker build --build-arg SCHEME=${SCHEME} -f Dockerfile.test --tag=scheme-venv-test-${SCHEME} .
|
@echo "Starting test Scheme: ${SCHEME}, RNRS: R7RS"
|
||||||
docker run -t scheme-venv-test-${SCHEME} bash -c "make SCHEME=${SCHEME} RNRS=${RNRS} test"
|
@rm -rf testvenv/ \
|
||||||
|
&& ./scheme-venv ${SCHEME} r7rs testvenv \
|
||||||
|
&& ./testvenv/bin/snow-chibi install --always-yes retropikzel.hello srfi.64 \
|
||||||
|
&& SCHEME_VENV_DEBUG=1 ./testvenv/bin/scheme-script test.scm \
|
||||||
|
&& SCHEME_VENV_DEBUG=1 ./testvenv/bin/scheme-compile compile-test.scm \
|
||||||
|
&& ./compile-test
|
||||||
|
|
||||||
|
build-test-docker-image:
|
||||||
|
@if [ "${SCHEME}" = "chicken" ]; then \
|
||||||
|
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-docker: build-test-docker-image
|
||||||
|
@docker run -it scheme-venv-test-${SCHEME} bash -c "make SCHEME=${SCHEME} test-r6rs"
|
||||||
|
|
||||||
|
test-r7rs-docker: build-test-docker-image
|
||||||
|
@docker run -it scheme-venv-test-${SCHEME} bash -c "make SCHEME=${SCHEME} test-r7rs"
|
||||||
|
|
||||||
install:
|
install:
|
||||||
mkdir -p ${PREFIX}/bin
|
@mkdir -p ${PREFIX}/bin
|
||||||
install scheme-venv ${PREFIX}/bin/scheme-venv
|
@install scheme-venv ${PREFIX}/bin/scheme-venv
|
||||||
|
|
||||||
uninstall:
|
uninstall:
|
||||||
-rm ${PREFIX}/bin/scheme-venv
|
@-rm ${PREFIX}/bin/scheme-venv
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
(import (scheme base)
|
||||||
|
(scheme write)
|
||||||
|
(scheme process-context)
|
||||||
|
(retropikzel hello)
|
||||||
|
(srfi 64))
|
||||||
|
|
||||||
|
(display "Compile test: ")
|
||||||
|
(hello)
|
||||||
|
(exit 0)
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
(import (scheme base)
|
||||||
|
(scheme write)
|
||||||
|
(scheme process-context)
|
||||||
|
(retropikzel hello)
|
||||||
|
(srfi :64))
|
||||||
|
|
||||||
|
(display "Interpreter test: ")
|
||||||
|
(hello)
|
||||||
|
(exit 0)
|
||||||
90
scheme-venv
90
scheme-venv
|
|
@ -1,26 +1,13 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
# TODO:
|
|
||||||
# Capyscheme
|
|
||||||
# Cyclone
|
|
||||||
# Ikarus
|
|
||||||
# Ironscheme
|
|
||||||
# Larceny
|
|
||||||
# Meevax
|
|
||||||
# MIT-Scheme
|
|
||||||
# Mosh
|
|
||||||
# Sagittarius
|
|
||||||
# Skint
|
|
||||||
# Vicare
|
|
||||||
# Ypsilon
|
|
||||||
|
|
||||||
# vi: ft=bash
|
# vi: ft=bash
|
||||||
|
|
||||||
stringContain() { case $2 in *$1* ) return 0;; *) return 1;; esac ;}
|
stringContain() { case $2 in *$1* ) return 0;; *) return 1;; esac ;}
|
||||||
|
|
||||||
supported_rnrs="r6rs r7rs"
|
supported_rnrs="r6rs r7rs"
|
||||||
supported_implementations="chezscheme chibi chicken foment gambit gauche kawa \
|
supported_implementations="capyscheme chezscheme chibi chicken cyclone foment \
|
||||||
loko mit-scheme racket stklos tr7"
|
gambit gauche guile ikarus ironscheme kawa larceny loko meevax mosh \
|
||||||
|
mit-scheme racket sagittarius skint stklos tr7 ypsilon"
|
||||||
|
|
||||||
## Make sure all arguments are right
|
## Make sure all arguments are right
|
||||||
if [ "${1}" = "" ]; then
|
if [ "${1}" = "" ]; then
|
||||||
|
|
@ -163,6 +150,7 @@ export SCHEME_VENV_OLD_PATH="\${PATH}"
|
||||||
export PATH="${venvpath}/bin:\${PATH}"
|
export PATH="${venvpath}/bin:\${PATH}"
|
||||||
hash -r 2> /dev/null
|
hash -r 2> /dev/null
|
||||||
echo "${implementation} ${rnrs}"
|
echo "${implementation} ${rnrs}"
|
||||||
|
echo "if [ "${rnrs}" = "r6rs" ]; then . ${venvpath}/lib/.akku/bin/activate; fi"
|
||||||
EOF
|
EOF
|
||||||
} > "${venvpath}/bin/activate"
|
} > "${venvpath}/bin/activate"
|
||||||
chmod +x "${venvpath}/bin/activate"
|
chmod +x "${venvpath}/bin/activate"
|
||||||
|
|
@ -172,6 +160,9 @@ chmod +x "${venvpath}/bin/activate"
|
||||||
if [ "${rnrs}" = "r6rs" ]; then
|
if [ "${rnrs}" = "r6rs" ]; then
|
||||||
## R6RS
|
## R6RS
|
||||||
case "${implementation}" in
|
case "${implementation}" in
|
||||||
|
"capyscheme")
|
||||||
|
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
|
||||||
then
|
then
|
||||||
|
|
@ -180,12 +171,33 @@ if [ "${rnrs}" = "r6rs" ]; then
|
||||||
scheme_cmd="scheme --libdirs \"${venvpath}/lib/.akku/lib\" --program \"\${IF}\""
|
scheme_cmd="scheme --libdirs \"${venvpath}/lib/.akku/lib\" --program \"\${IF}\""
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
"guile")
|
||||||
|
scheme_cmd="guile --r6rs -L \"${venvpath}/lib/.akku/lib\" \"\${IF}\""
|
||||||
|
;;
|
||||||
|
"ikarus")
|
||||||
|
scheme_cmd="IKARUS_LIBRARY_PATH=\"${venvpath}/lib/.akku/lib\" ikarus --r6rs-script \"\${IF}\""
|
||||||
|
;;
|
||||||
|
"ironscheme")
|
||||||
|
scheme_cmd="ironscheme -I \"${venvpath}/lib/.akku/lib\" \"\${IF}\""
|
||||||
|
;;
|
||||||
|
"larceny")
|
||||||
|
scheme_cmd="larceny -nobanner -quiet -utf8 -r6 -I \"${venvpath}/lib/.akku/lib\" \"\${IF}\""
|
||||||
|
;;
|
||||||
"loko")
|
"loko")
|
||||||
scheme_cmd="LOKO_LIBRARY_PATH=\"${venvpath}/lib\" loko -std=r6rs --program \"\${IF}\""
|
scheme_cmd="LOKO_LIBRARY_PATH=\"${venvpath}/lib/.akku/lib\" loko --program \"\${IF}\""
|
||||||
scheme_compile_cmd="LOKO_LIBRARY_PATH=\"${venvpath}/lib\" loko -std=r6rs -o \"\${OF}\" --compile \"\${IF}\""
|
scheme_compile_cmd="LOKO_LIBRARY_PATH=\"${venvpath}/lib/.akku/lib\" loko -o \"\${OF}\" --compile \"\${IF}\""
|
||||||
|
;;
|
||||||
|
"mosh")
|
||||||
|
scheme_cmd="mosh --loadpath=\"${venvpath}/lib/.akku/lib\" \"\${IF}\""
|
||||||
;;
|
;;
|
||||||
"racket")
|
"racket")
|
||||||
scheme_cmd="racket -I scheme/init -l r6rs/run.rkt -S \"${venvpath}/lib\" \"\${IF}\""
|
scheme_cmd="racket -I scheme/init -l r6rs/run.rkt -S \"${venvpath}/lib/.akku/lib\" \"\${IF}\""
|
||||||
|
;;
|
||||||
|
"sagittarius")
|
||||||
|
scheme_cmd="sash -r6 -L \"${venvpath}/lib\" \"\${IF}\""
|
||||||
|
;;
|
||||||
|
"ypsilon")
|
||||||
|
scheme_cmd="ypsilon --r6rs --sitelib \"${venvpath}/lib\" --top-level-program \"\${IF}\""
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
>&2 echo "Unsupported implementation RnRS combination: ${implementation} ${rnrs}"
|
>&2 echo "Unsupported implementation RnRS combination: ${implementation} ${rnrs}"
|
||||||
|
|
@ -196,6 +208,9 @@ if [ "${rnrs}" = "r6rs" ]; then
|
||||||
else
|
else
|
||||||
## R7RS
|
## R7RS
|
||||||
case "${implementation}" in
|
case "${implementation}" in
|
||||||
|
"capyscheme")
|
||||||
|
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}\""
|
||||||
;;
|
;;
|
||||||
|
|
@ -203,6 +218,10 @@ else
|
||||||
scheme_cmd="echo \"Chicken scripts not yet supported\" && exit 1"
|
scheme_cmd="echo \"Chicken scripts not yet supported\" && exit 1"
|
||||||
scheme_compile_cmd="csc -static -X r7rs -R r7rs -o \"\${OF}\" \"\${IF}\""
|
scheme_compile_cmd="csc -static -X r7rs -R r7rs -o \"\${OF}\" \"\${IF}\""
|
||||||
;;
|
;;
|
||||||
|
"cyclone")
|
||||||
|
scheme_cmd="icyc -I \"${venvpath}/lib\" \"\${IF}\""
|
||||||
|
scheme_compile_cmd="cyclone -I \"${venvpath}/lib\" \"\${IF}\""
|
||||||
|
;;
|
||||||
"foment")
|
"foment")
|
||||||
scheme_cmd="foment -I \"${venvpath}/lib\" \"\${IF}\""
|
scheme_cmd="foment -I \"${venvpath}/lib\" \"\${IF}\""
|
||||||
;;
|
;;
|
||||||
|
|
@ -214,25 +233,46 @@ else
|
||||||
"gauche")
|
"gauche")
|
||||||
scheme_cmd="gosh -r7 -I \"${venvpath}/lib\" \"\${IF}\""
|
scheme_cmd="gosh -r7 -I \"${venvpath}/lib\" \"\${IF}\""
|
||||||
;;
|
;;
|
||||||
|
"guile")
|
||||||
|
scheme_cmd="guile --r7rs -C \"${venvpath}/lib\" -L \"${venvpath}/lib\" \"\${IF}\""
|
||||||
|
;;
|
||||||
"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}\""
|
||||||
;;
|
;;
|
||||||
|
"larceny")
|
||||||
|
scheme_cmd="larceny -nobanner -quiet -utf8 -r7 -I \"${venvpath}/lib\" \"\${IF}\""
|
||||||
|
;;
|
||||||
"loko")
|
"loko")
|
||||||
scheme_cmd="LOKO_LIBRARY_PATH=\"${venvpath}/lib\" loko -std=r7rs --program \"\${IF}\""
|
scheme_cmd="LOKO_LIBRARY_PATH=\"${venvpath}/lib\" loko -std=r7rs --program \"\${IF}\""
|
||||||
scheme_compile_cmd="LOKO_LIBRARY_PATH=\"${venvpath}/lib\" loko -std=r7rs -o \"\${OF}\" --compile \"\${IF}\""
|
scheme_compile_cmd="LOKO_LIBRARY_PATH=\"${venvpath}/lib\" loko -std=r7rs -o \"\${OF}\" --compile \"\${IF}\""
|
||||||
;;
|
;;
|
||||||
|
"meevax")
|
||||||
|
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"
|
||||||
;;
|
;;
|
||||||
|
"mosh")
|
||||||
|
scheme_cmd="mosh --loadpath=\"${venvpath}/lib\" \"\${IF}\""
|
||||||
|
;;
|
||||||
"racket")
|
"racket")
|
||||||
scheme_cmd="racket -I r7rs -S \"${venvpath}/lib\" --script \"\${IF}\""
|
scheme_cmd="racket -I r7rs -S \"${venvpath}/lib\" --script \"\${IF}\""
|
||||||
;;
|
;;
|
||||||
|
"sagittarius")
|
||||||
|
scheme_cmd="sash -r7 -L \"${venvpath}/lib\" \"\${IF}\""
|
||||||
|
;;
|
||||||
|
"skint")
|
||||||
|
scheme_cmd="skint -I \"${venvpath}/lib\" \"\${IF}\""
|
||||||
|
;;
|
||||||
"stklos")
|
"stklos")
|
||||||
scheme_cmd="stklos -I \"${venvpath}/lib\" \"\${IF}\""
|
scheme_cmd="stklos -I \"${venvpath}/lib\" \"\${IF}\""
|
||||||
;;
|
;;
|
||||||
"tr7")
|
"tr7")
|
||||||
scheme_cmd="TR7_LIB_PATH=\"${venvpath}/lib\" tr7i -1 \"\${IF}\""
|
scheme_cmd="TR7_LIB_PATH=\"${venvpath}/lib\" tr7i -1 \"\${IF}\""
|
||||||
;;
|
;;
|
||||||
|
"ypsilon")
|
||||||
|
scheme_cmd="ypsilon --r7rs --sitelib \"${venvpath}/lib\" --top-level-program \"\${IF}\""
|
||||||
|
;;
|
||||||
*)
|
*)
|
||||||
>&2 echo "Unsupported implementation RnRS combination: ${implementation} ${rnrs}"
|
>&2 echo "Unsupported implementation RnRS combination: ${implementation} ${rnrs}"
|
||||||
exit 1
|
exit 1
|
||||||
|
|
@ -256,16 +296,20 @@ chmod +x "${venvpath}/bin/scheme-script"
|
||||||
if [ "${scheme_type}" = "interpreter" ]; then
|
if [ "${scheme_type}" = "interpreter" ]; then
|
||||||
{
|
{
|
||||||
echo "#!/bin/sh"
|
echo "#!/bin/sh"
|
||||||
echo "printf \"\n#|\nexec ${venvpath}/bin/scheme-script \\\"\\\${0}\\\" \\\"\\\$@\\\"\n|#\n\" > \"\${1%.scm}\""
|
echo "if [ \"\${SCHEME_VENV_DEBUG}\" = "1" ]; then set -x; fi"
|
||||||
echo "cat \"\${1}\" >> \"\${1%.scm}\""
|
echo "IF=\"\$(realpath \"\${1}\")\""
|
||||||
echo "chmod +x \"\${1%.scm}\""
|
echo "if [ "${rnrs}" = "r6rs" ]; then OF=\"\${IF%.sps}\"; else OF=\"\${IF%.scm}\"; fi"
|
||||||
|
echo "printf \"\n#|\nexec ${venvpath}/bin/scheme-script \\\"\\\${0}\\\" \\\"\\\$@\\\"\n|#\n\" > \"\${OF}\""
|
||||||
|
echo "cat \"\${IF}\" >> \"\${OF}\""
|
||||||
|
echo "chmod +x \"\${OF}\""
|
||||||
} > "${venvpath}/bin/scheme-compile"
|
} > "${venvpath}/bin/scheme-compile"
|
||||||
chmod +x "${venvpath}/bin/scheme-compile"
|
chmod +x "${venvpath}/bin/scheme-compile"
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
echo "#!/bin/sh"
|
echo "#!/bin/sh"
|
||||||
|
echo "if [ \"\${SCHEME_VENV_DEBUG}\" = "1" ]; then set -x; fi"
|
||||||
echo "IF=\$(realpath \"\${1}\")"
|
echo "IF=\$(realpath \"\${1}\")"
|
||||||
echo "OF=\${IF%.scm}"
|
echo "if [ "${rnrs}" = "r6rs" ]; then OF=\"\${IF%.sps}\"; else OF=\"\${IF%.scm}\"; fi"
|
||||||
echo "cd ${venvpath}/lib"
|
echo "cd ${venvpath}/lib"
|
||||||
echo "${scheme_compile_cmd}"
|
echo "${scheme_compile_cmd}"
|
||||||
} > "${venvpath}/bin/scheme-compile"
|
} > "${venvpath}/bin/scheme-compile"
|
||||||
|
|
|
||||||
6
test.scm
6
test.scm
|
|
@ -1,7 +1,9 @@
|
||||||
(import (scheme base)
|
(import (scheme base)
|
||||||
(scheme write)
|
(scheme write)
|
||||||
(scheme process-context)
|
(scheme process-context)
|
||||||
(retropikzel hello))
|
(retropikzel hello)
|
||||||
|
(srfi 64))
|
||||||
|
|
||||||
|
(display "Interpreter test: ")
|
||||||
(hello)
|
(hello)
|
||||||
(exit)
|
(exit 0)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue