From c8e42516cbba9f093009a33095ca07899d4349d1 Mon Sep 17 00:00:00 2001 From: retropikzel Date: Tue, 24 Dec 2024 08:55:02 +0200 Subject: [PATCH] Add racket --- .gitignore | 2 ++ Makefile | 3 ++- README.md | 1 - compile-r7rs | 22 ++++++++++++++++++++++ test/main.scm | 1 + 5 files changed, 27 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 131e88c..42e8754 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,5 @@ *.o *.so META-INF +*.rkt +test/main diff --git a/Makefile b/Makefile index 3b8f447..d0aab5a 100644 --- a/Makefile +++ b/Makefile @@ -7,12 +7,13 @@ install: install compile-r7rs ${PREFIX}/bin/compile-r7rs run-test: - @cd test && ../compile-r7rs -D ./libs -D ./libs2 main.scm + @cd test && ../compile-r7rs -D . -D ./libs -D ./libs2 main.scm clean: find . -name "*.c*" -delete find . -name "*.o*" -delete find . -name "*.so*" -delete + find . -name "*.rkt*" -delete find . -name "*.import.scm" -delete find . -name "*.link" -delete find . -name "*.class" -delete diff --git a/README.md b/README.md index e89e5db..14cc63c 100644 --- a/README.md +++ b/README.md @@ -55,7 +55,6 @@ Requires nothing to be installed to run. - csc (Chicken) - racket (Racket) - ### Java ARchive (JAR) Only requires Java to be installed to run. diff --git a/compile-r7rs b/compile-r7rs index 6c91575..3c4b4a7 100755 --- a/compile-r7rs +++ b/compile-r7rs @@ -143,6 +143,28 @@ case ${SCC} in done scm_cmd="mosh --loadpath=$paths" ;; + racket) + paths="" + for dir in $libdirs + do + paths="${PWD}/${dir#./}:$paths" + for lib in $(find "$dir" -name "*.sld") + do + { + echo "#lang r7rs" + echo "(import (scheme base))" + echo "(include \"$(basename $lib)\")" + } > "${lib%.sld}.rkt" + done + done + + { + echo "#lang r7rs" + cat "$main" + } > "${main%.scm}.rkt" + PLTCOLLECTS="$paths" raco exe --orig-exe -o $output ++lang r7rs "${main%.scm}.rkt" + exit + ;; sash) paths="-L $tmpdir" for dir in $libdirs diff --git a/test/main.scm b/test/main.scm index 475928d..9cd52d7 100644 --- a/test/main.scm +++ b/test/main.scm @@ -1,5 +1,6 @@ (import (scheme base) (scheme write) + (scheme process-context) (libs hello) (libs2 world))