Kawa fixes

This commit is contained in:
retropikzel 2026-03-12 19:41:21 +02:00
parent 37060fa86a
commit 8dc61b067b
4 changed files with 33 additions and 7 deletions

View File

@ -1,2 +1,2 @@
FROM debian:trixie FROM alpine
RUN apt-get update && apt-get -y install make docker.io RUN apk add make docker

2
Jenkinsfile vendored
View File

@ -14,7 +14,7 @@ pipeline {
parameters { parameters {
string(name: 'R6RS_SCHEMES', defaultValue: 'capyscheme chezscheme guile ikarus ironscheme larceny loko mosh racket sagittarius ypsilon', description: '') string(name: 'R6RS_SCHEMES', defaultValue: 'capyscheme chezscheme guile ikarus ironscheme larceny loko mosh racket sagittarius ypsilon', description: '')
string(name: 'R7RS_SCHEMES', defaultValue: 'capyscheme chibi chicken cyclone foment gauche gambit guile kawa larceny loko meevax mit-scheme mosh racket sagittarius skint stklos tr7 ypsilon', description: '') string(name: 'R7RS_SCHEMES', defaultValue: 'capyscheme chibi chicken cyclone foment gauche guile kawa larceny loko meevax mit-scheme mosh racket sagittarius skint stklos tr7 ypsilon', description: '')
} }
stages { stages {

View File

@ -4,3 +4,28 @@ made with POSIX Shell.
No support for -D yet. No support for -D yet.
Supported implementations:
- capyscheme
- chezscheme
- chibi
- chicken
- cyclone
- foment
- gauche
- guile
- ikarus
- ironscheme
- kawa
- larceny
- loko
- meevax
- mosh
- mit-scheme
- racket
- sagittarius
- skint
- stklos
- tr7
- ypsilon

View File

@ -3,7 +3,7 @@
set -eu set -eu
if [ "${COMPILE_R7RS:-}" = "" ]; then if [ "${COMPILE_R7RS:-}" = "" ]; then
echo "COMPILE_R7RS not set, possible values:" echo "COMPILE_R7RS not set, possible values:"
echo "capyscheme chezscheme chibi chicken cyclone foment gambit gauche guile ikarus ironscheme kawa larceny loko meevax mosh mit-scheme racket sagittarius skint stklos tr7 ypsilon" echo "capyscheme chezscheme chibi chicken cyclone foment gauche guile ikarus ironscheme kawa larceny loko meevax mosh mit-scheme racket sagittarius skint stklos tr7 ypsilon"
exit 1 exit 1
fi fi
@ -20,6 +20,7 @@ case ${1:-} in
chicken) prepend_dirs="" ;; chicken) prepend_dirs="" ;;
chezscheme|ikarus|loko|mosh|tr7) prepend_dirs="$prepend_dirs:$2" ;; chezscheme|ikarus|loko|mosh|tr7) prepend_dirs="$prepend_dirs:$2" ;;
capyscheme|guile|sagittarius) prepend_dirs="$prepend_dirs -L $2" ;; capyscheme|guile|sagittarius) prepend_dirs="$prepend_dirs -L $2" ;;
kawa) prepend_dirs="$prepend_dirs:$2/*.sld";;
racket) prepend_dirs="$prepend_dirs -S $2" ;; racket) prepend_dirs="$prepend_dirs -S $2" ;;
ypsilon) prepend_dirs="$prepend_dirs --sitelib=$2" ;; ypsilon) prepend_dirs="$prepend_dirs --sitelib=$2" ;;
*) prepend_dirs="$prepend_dirs -I $2" ;; *) prepend_dirs="$prepend_dirs -I $2" ;;
@ -30,6 +31,7 @@ case ${1:-} in
chezscheme|ikarus|loko|mosh|tr7) append_dirs="$append_dirs:$2" ;; chezscheme|ikarus|loko|mosh|tr7) append_dirs="$append_dirs:$2" ;;
guile) append_dirs="$append_dirs -L $2" ;; guile) append_dirs="$append_dirs -L $2" ;;
ironscheme) append_dirs="$append_dirs -I $2" ;; ironscheme) append_dirs="$append_dirs -I $2" ;;
kawa) append_dirs="$append_dirs:$2/*.sld";;
racket) append_dirs="$append_dirs -S $2" ;; racket) append_dirs="$append_dirs -S $2" ;;
ypsilon) prepend_dirs="$prepend_dirs --sitelib=$2" ;; ypsilon) prepend_dirs="$prepend_dirs --sitelib=$2" ;;
*) append_dirs="$append_dirs -A $2" ;; *) append_dirs="$append_dirs -A $2" ;;
@ -73,10 +75,9 @@ case $rnrs in
chibi) echo "$prefix chibi-scheme $prepend_dirs $append_dirs" >> "$output_file";; chibi) echo "$prefix chibi-scheme $prepend_dirs $append_dirs" >> "$output_file";;
cyclone) cyclone -o "$output_file" $prepend_dirs $append_dirs "$input_file";; cyclone) cyclone -o "$output_file" $prepend_dirs $append_dirs "$input_file";;
foment) echo "$prefix foment $prepend_dirs $append_dirs" >> "$output_file";; foment) echo "$prefix foment $prepend_dirs $append_dirs" >> "$output_file";;
gambit) gsc -exe -nopreload -o "$output_file" "$input_file";;
gauche) echo "$prefix gosh -r7 $prepend_dirs $append_dirs" >> "$output_file";; gauche) echo "$prefix gosh -r7 $prepend_dirs $append_dirs" >> "$output_file";;
guile) printf "$prefix guile --r7rs $prepend_dirs $append_dirs\n!#\n" >> "$output_file";; guile) printf "$prefix guile --r7rs $prepend_dirs $append_dirs\n!#\n" >> "$output_file";;
kawa) echo "$prefix kawa --r7rs --full-tailcalls $prepend_dirs $append_dirs" >> "$output_file";; kawa) echo "$prefix kawa -J--enable-native-access=ALL-UNNAMED --r7rs --full-tailcalls -Dkawa.import.path=$prepend_dirs:$append_dirs:/usr/local/share/kawa/lib/*.sld" >> "$output_file";;
larceny) printf "\n#|\nexec larceny -r7rs -utf8 -quiet -nobanner $prepend_dirs $append_dirs -program \$0 --\n|#\n" >> "$output_file";; larceny) printf "\n#|\nexec larceny -r7rs -utf8 -quiet -nobanner $prepend_dirs $append_dirs -program \$0 --\n|#\n" >> "$output_file";;
loko) LOKO_LIBRARY_PATH="$prepend_dirs:$append_dirs" loko -std=r7rs --compile "$input_file"; loko) LOKO_LIBRARY_PATH="$prepend_dirs:$append_dirs" loko -std=r7rs --compile "$input_file";
if [ ! "${input_file%.scm}" = "$output_file" ]; then mv -f "${input_file%.sps}" "$output_file"; fi;; if [ ! "${input_file%.scm}" = "$output_file" ]; then mv -f "${input_file%.sps}" "$output_file"; fi;;
@ -94,7 +95,7 @@ case $rnrs in
esac esac
case $COMPILE_R7RS in case $COMPILE_R7RS in
chicken|cyclone|gambit|loko) sleep 0;; chicken|cyclone|loko) sleep 0;;
*) cat "$input_file" >> "$output_file";; *) cat "$input_file" >> "$output_file";;
esac esac
chmod +x "$output_file" chmod +x "$output_file"