diff --git a/Makefile b/Makefile index f63f3c1..4d53d51 100644 --- a/Makefile +++ b/Makefile @@ -69,7 +69,6 @@ clean: find . -name "*.link" -delete find . -name "*.meta" -delete find . -name "*.import.*" -delete - rm -rf README.txt rm -rf dist rm -rf test rm -rf deps diff --git a/README.md b/README.md index 5981f02..f3efda2 100644 --- a/README.md +++ b/README.md @@ -124,9 +124,6 @@ as compiler. - Support for more implementations - - gerbil - - Dont know how to run this thing yet :D - - r7rs - husk - Dont know how to add directories to load path yet, might not be implemented @@ -251,11 +248,6 @@ before running it. For example: If you are using Chicken you should propably read the next section too, you will most propably run into it soon. -### Mosh - - -Only allows one loadpath. No workarounds exist currently in compile-r7rs. - ### mit-scheme diff --git a/libs/data.sld b/libs/data.sld index 6c715a1..ec2b040 100644 --- a/libs/data.sld +++ b/libs/data.sld @@ -123,486 +123,460 @@ ,(string-cut-from-end library-file 4)))))) (command . ,(lambda (input-file output-file prepend-directories append-directories library-files r6rs?) (apply string-append `("gsc" - " " - ,(util-getenv "COMPILE_R7RS_GAMBIT") - " " - "-:search=" - ,@(map (lambda (item) - (string-append item "")) - (append prepend-directories append-directories)) - " " - "-o" - " " - ,output-file - " " - "-exe -nopreload" - " " - ,input-file)) + " " + ,(util-getenv "COMPILE_R7RS_GAMBIT") + " " + "-:search=" + ,@(map (lambda (item) + (string-append item "")) + (append prepend-directories append-directories)) + " " + "-o" + " " + ,output-file + " " + "-exe -nopreload" + " " + ,input-file)) #;(apply string-append - `("echo '#!/usr/bin/env -S gsi-script -f -:search=" + `("echo '#!/usr/bin/env -S gsi-script -f -:search=" + ,@(map (lambda (item) + (string-append item "/:")) + (append prepend-directories append-directories)) + "'" + " " + ">" + " " + ,(string-append (string-cut-from-end input-file 4) ".tmp") + " " + "&&" + " " + "cat" + " " + ,input-file + " " + ">>" + " " + ,(string-append (string-cut-from-end input-file 4) ".tmp") + " " + "&&" + " " + "gsc" + " " + ,(util-getenv "COMPILE_R7RS_GAMBIT") + " " + "-:search=" + ,@(map (lambda (item) + (string-append item "/")) + (append prepend-directories append-directories)) + " " + "-o" + " " + ,output-file + " " + "-exe -nopreload" + " " + ,@(map (lambda (item) (string-append item "/ ")) prepend-directories) + " " + ,@(map (lambda (item) (string-append item "/ ")) append-directories) + " " + ,(string-append (string-cut-from-end input-file 4) ".tmp") + ;,input-file + ))))) + (gauche + (type . interpreter) + (command . ,(lambda (input-file output-file prepend-directories append-directories library-files r6rs?) + (apply string-append + `("gosh" + " " + ,(util-getenv "COMPILE_R7RS_GAUCHE") + " " + "-r7" + " " + ,@(map (lambda (item) + (string-append "-I" " " item " ")) + prepend-directories) + ,@(map (lambda (item) + (string-append "-A" " " item " ")) + append-directories) + " " + ,input-file))))) + (guile + (type . interpreter) + (command . ,(lambda (input-file output-file prepend-directories append-directories library-files r6rs?) + (apply string-append + `("guile" + " " + ,(util-getenv "COMPILE_R7RS_GUILE") + " " + ,(if r6rs? "--r6rs" "--r7rs") + " " + ,@(map (lambda (item) + (string-append "-L" " " item " ")) + prepend-directories) + ,@(map (lambda (item) + (string-append "-L" " " item " ")) + append-directories) + " " + ,input-file))))) + (husk + (type . compiler) + (command . ,(lambda (input-file output-file prepend-directories append-directories library-files r6rs?) + (apply string-append + `("huskc" + " " + ,(util-getenv "COMPILE_R7RS_HUSK") + " " + "-o" + " " + ,output-file + " " + ;,@(map (lambda (item) (string-append "-L" " " item " ")) prepend-directories) + ;,@(map (lambda (item) (string-append "-L" " " item " ")) append-directories) + " " + ,input-file))))) + (ikarus + (type . interpreter) + (command . ,(lambda (input-file output-file prepend-directories append-directories library-files r6rs?) + (apply string-append + `("IKARUS_LIBRARY_PATH=" + ,@(map (lambda (item) + (string-append item ":")) + prepend-directories) + ,@(map (lambda (item) + (string-append item ":")) + append-directories) + " " + "ikarus" + " " + ,(util-getenv "COMPILE_R7RS_IKARUS") + " " + "--r6rs-script" + " " + ,input-file))))) + (ironscheme + (type . interpreter) + (command . ,(lambda (input-file output-file prepend-directories append-directories library-files r6rs?) + (apply string-append + `("ironscheme" + " " + ,(util-getenv "COMPILE_R7RS_IRONSCHEME") + " " + ,@(map (lambda (item) + (string-append "-I \"" item "\" ")) + prepend-directories) + ,@(map (lambda (item) + (string-append "-I \"" item "\" ")) + append-directories) + " " + ,input-file))))) + (kawa + (type . interpreter) + (command . ,(lambda (input-file output-file prepend-directories append-directories library-files r6rs?) + (apply string-append + `("kawa" + " " + ,(util-getenv "COMPILE_R7RS_KAWA") + " " + "-Dkawa.import.path=\"" + ,@(map (lambda (item) + (string-append item "/*.sld:")) + (append prepend-directories append-directories)) + "\" " + "--r7rs" + " " + ,input-file))))) + (larceny + (type . interpreter) + (command . ,(lambda (input-file output-file prepend-directories append-directories library-files r6rs?) + (apply string-append + `("larceny" + ,(util-getenv "COMPILE_R7RS_LARCENY") + " " + "-nobanner" + " " + "-quiet" + " " + "-utf8" + " " + ,(if r6rs? "-r6rs" "-r7rs") + " " + ,@(map (lambda (item) + (string-append "-I " item " ")) + prepend-directories) + ,@(map (lambda (item) + (string-append "-A " item " ")) + append-directories) + " " + "-program" + " " + ,input-file))))) + (loko + (type . compiler) + (command . ,(lambda (input-file output-file prepend-directories append-directories library-files r6rs?) + (let ((out (string-cut-from-end input-file 4))) + (apply string-append + `("LOKO_LIBRARY_PATH=" ,@(map (lambda (item) - (string-append item "/:")) - (append prepend-directories append-directories)) - "'" + (string-append item ":")) + prepend-directories) + ,@(map (lambda (item) + (string-append item ":")) + append-directories) " " - ">" + "loko " " " - ,(string-append (string-cut-from-end input-file 4) ".tmp") + ,(util-getenv "COMPILE_R7RS_LOKO") " " - "&&" + ,(if r6rs? "-std=r6rs" "-std=r7rs") " " - "cat" + "--compile" " " ,input-file " " - ">>" - " " - ,(string-append (string-cut-from-end input-file 4) ".tmp") - " " "&&" " " - "gsc" + "mv" " " - ,(util-getenv "COMPILE_R7RS_GAMBIT") + ,out " " - "-:search=" - ,@(map (lambda (item) - (string-append item "/")) - (append prepend-directories append-directories)) - " " - "-o" - " " - ,output-file - " " - "-exe -nopreload" - " " - ,@(map (lambda (item) (string-append item "/ ")) prepend-directories) - " " - ,@(map (lambda (item) (string-append item "/ ")) append-directories) - " " - ,(string-append (string-cut-from-end input-file 4) ".tmp") - ;,input-file - ))))) - (gauche - (type . interpreter) - (command . ,(lambda (input-file output-file prepend-directories append-directories library-files r6rs?) + ,output-file)))))) + (meevax + (type . interpreter) + (command . ,(lambda (input-file output-file prepend-directories append-directories library-files r6rs?) + (apply string-append + `("meevax" + " " + ,(util-getenv "COMPILE_R7RS_MEEVAX") + " " + ;,@(map (lambda (item) (string-append "--load " item " ")) library-files) + ;,@(map (lambda (item) (string-append " " item " ")) prepend-directories) + ;,@(map (lambda (item) (string-append " " item " ")) append-directories) + " " + ,input-file))))) + (mit-scheme + (type . interpreter) + (command . ,(lambda (input-file output-file prepend-directories append-directories library-files r6rs?) + (apply string-append + `("mit-scheme" + " " + ,(util-getenv "COMPILE_R7RS_MIT_SCHEME") + " " + ,@(map (lambda (item) + (string-append "--load " item " ")) + library-files) + " " + "--load" + " " + ,input-file + " " + "--eval \"(exit 0)\""))))) + (mosh + (type . interpreter) + (command . ,(lambda (input-file output-file prepend-directories append-directories library-files r6rs?) + (apply string-append + `("MOSH_LOAD_PATH=" + ,@(map (lambda (item) (string-append item ":")) prepend-directories) + ,@(map (lambda (item) (string-append item ":")) append-directories) + " " + "mosh" + " " + ,(util-getenv "COMPILE_R7RS_MOSH") + " " + ;,@(map (lambda (item) (string-append "--loadpath=" item " ")) + ;(append append-directories prepend-directories)) + ;" " + ,input-file))))) + (picrin + (type . interpreter) + (command . ,(lambda (input-file output-file prepend-directories append-directories library-files r6rs?) + (apply string-append + `("picrin" + " " + ,(util-getenv "COMPILE_R7RS_PICRIN") + " " + ,@(map (lambda (item) + (string-append "-l " item " ")) + library-files) + " " + "-e" + " " + ,input-file))))) + (racket + (type . interpreter) + (library-command . ,(lambda (library-file prepend-directories append-directories r6rs?) + (let* ((full-path (search-library-file (append append-directories + prepend-directories) + library-file)) + (library-rkt-file (change-file-suffix full-path ".rkt")) + ) + (apply string-append + `("printf" + " " + "'#lang r7rs\\n(import (scheme base))\\n(include \"" + ,(path->filename library-file) + "\")\\n" + "'" + " " + ">" + " " + ,library-rkt-file))))) + (command . ,(lambda (input-file output-file prepend-directories append-directories library-files r6rs?) + (let ((rkt-input-file (if (string=? input-file "") + "" + (change-file-suffix input-file ".rkt")))) + (if r6rs? + #t + (when (not (string=? rkt-input-file "")) + (when (file-exists? rkt-input-file) + (delete-file rkt-input-file)) + (with-output-to-file + rkt-input-file + (lambda () + (display "#lang r7rs") + (newline) + (display "(import (scheme base))") + (newline) + (display "(include \"") + (display (path->filename input-file)) + (display "\")") + (newline))))) (apply string-append - `("gosh" + `("racket" " " - ,(util-getenv "COMPILE_R7RS_GAUCHE") + ,(util-getenv "COMPILE_R7RS_RACKET") " " - "-r7" + "-I" + " " + ,(if r6rs? "r6rs" "r7rs") " " ,@(map (lambda (item) - (string-append "-I" " " item " ")) + (string-append "-S " item " ")) prepend-directories) ,@(map (lambda (item) - (string-append "-A" " " item " ")) + (string-append "-S " item " ")) append-directories) " " - ,input-file))))) - (gerbil - (type . compiler) - #;(library-command . ,(lambda (library-file prepend-directories append-directories r6rs?) - (apply string-append - `("gxc" - " " - ,(util-getenv "COMPILE_R7RS_GERBIL") - " " - ,library-file)))) - (command . ,(lambda (input-file output-file prepend-directories append-directories library-files r6rs?) - (apply string-append - `("gxc" - " " - ,(util-getenv "COMPILE_R7RS_GERBIL") - " " - "-prelude \":scheme/r7rs\"" - " " - "-exe" - " " - "-static" - " " - ,@(map (lambda (item) (string-append item "/ ")) prepend-directories) - ,@(map (lambda (item) (string-append item "/ ")) append-directories) - " " - " " - ,input-file))))) - (guile - (type . interpreter) - (command . ,(lambda (input-file output-file prepend-directories append-directories library-files r6rs?) - (apply string-append - `("guile" - " " - ,(util-getenv "COMPILE_R7RS_GUILE") - " " - ,(if r6rs? "--r6rs" "--r7rs") - " " - ,@(map (lambda (item) - (string-append "-L" " " item " ")) - prepend-directories) - ,@(map (lambda (item) - (string-append "-L" " " item " ")) - append-directories) - " " - ,input-file))))) - (husk - (type . compiler) - (command . ,(lambda (input-file output-file prepend-directories append-directories library-files r6rs?) - (apply string-append - `("huskc" - " " - ,(util-getenv "COMPILE_R7RS_HUSK") - " " - "-o" - " " - ,output-file - " " - ;,@(map (lambda (item) (string-append "-L" " " item " ")) prepend-directories) - ;,@(map (lambda (item) (string-append "-L" " " item " ")) append-directories) - " " - ,input-file))))) - (ikarus - (type . interpreter) - (command . ,(lambda (input-file output-file prepend-directories append-directories library-files r6rs?) - (apply string-append - `("IKARUS_LIBRARY_PATH=" - ,@(map (lambda (item) - (string-append item ":")) - prepend-directories) - ,@(map (lambda (item) - (string-append item ":")) - append-directories) - " " - "ikarus" - " " - ,(util-getenv "COMPILE_R7RS_IKARUS") - " " - "--r6rs-script" - " " - ,input-file))))) - (ironscheme - (type . interpreter) - (command . ,(lambda (input-file output-file prepend-directories append-directories library-files r6rs?) - (apply string-append - `("ironscheme" - " " - ,(util-getenv "COMPILE_R7RS_IRONSCHEME") - " " - ,@(map (lambda (item) - (string-append "-I \"" item "\" ")) - prepend-directories) - ,@(map (lambda (item) - (string-append "-I \"" item "\" ")) - append-directories) - " " - ,input-file))))) - (kawa - (type . interpreter) - (command . ,(lambda (input-file output-file prepend-directories append-directories library-files r6rs?) - (apply string-append - `("kawa" - " " - ,(util-getenv "COMPILE_R7RS_KAWA") - " " - "-Dkawa.import.path=\"" - ,@(map (lambda (item) - (string-append item "/*.sld:")) - (append prepend-directories append-directories)) - "\" " - "--r7rs" - " " - ,input-file))))) - (larceny - (type . interpreter) - (command . ,(lambda (input-file output-file prepend-directories append-directories library-files r6rs?) - (apply string-append - `("larceny" - ,(util-getenv "COMPILE_R7RS_LARCENY") - " " - "-nobanner" - " " - "-quiet" - " " - "-utf8" - " " - ,(if r6rs? "-r6rs" "-r7rs") - " " - ,@(map (lambda (item) - (string-append "-I " item " ")) - prepend-directories) - ,@(map (lambda (item) - (string-append "-A " item " ")) - append-directories) - " " - "-program" - " " - ,input-file))))) - (loko - (type . compiler) - (command . ,(lambda (input-file output-file prepend-directories append-directories library-files r6rs?) - (let ((out (string-cut-from-end input-file 4))) - (apply string-append - `("LOKO_LIBRARY_PATH=" - ,@(map (lambda (item) - (string-append item ":")) - prepend-directories) - ,@(map (lambda (item) - (string-append item ":")) - append-directories) - " " - "loko " - " " - ,(util-getenv "COMPILE_R7RS_LOKO") - " " - ,(if r6rs? "-std=r6rs" "-std=r7rs") - " " - "--compile" - " " - ,input-file - " " - "&&" - " " - "mv" - " " - ,out - " " - ,output-file)))))) - (meevax - (type . interpreter) - (command . ,(lambda (input-file output-file prepend-directories append-directories library-files r6rs?) - (apply string-append - `("meevax" - " " - ,(util-getenv "COMPILE_R7RS_MEEVAX") - " " - ;,@(map (lambda (item) (string-append "--load " item " ")) library-files) - ;,@(map (lambda (item) (string-append " " item " ")) prepend-directories) - ;,@(map (lambda (item) (string-append " " item " ")) append-directories) - " " - ,input-file))))) - (mit-scheme - (type . interpreter) - (command . ,(lambda (input-file output-file prepend-directories append-directories library-files r6rs?) - (apply string-append - `("mit-scheme" - " " - ,(util-getenv "COMPILE_R7RS_MIT_SCHEME") - " " - ,@(map (lambda (item) - (string-append "--load " item " ")) - library-files) - " " - "--load" - " " - ,input-file - " " - "--eval \"(exit 0)\""))))) - (mosh - (type . interpreter) - (command . ,(lambda (input-file output-file prepend-directories append-directories library-files r6rs?) - (apply string-append - `("MOSH_LOAD_PATH=" - ,@(map (lambda (item) (string-append item ":")) prepend-directories) - ,@(map (lambda (item) (string-append item ":")) append-directories) - " " - "mosh" - " " - ,(util-getenv "COMPILE_R7RS_MOSH") - " " - ;,@(map (lambda (item) (string-append "--loadpath=" item " ")) - ;(append append-directories prepend-directories)) - ;" " - ,input-file))))) - (picrin - (type . interpreter) - (command . ,(lambda (input-file output-file prepend-directories append-directories library-files r6rs?) - (apply string-append - `("picrin" - " " - ,(util-getenv "COMPILE_R7RS_PICRIN") - " " - ,@(map (lambda (item) - (string-append "-l " item " ")) - library-files) - " " - "-e" - " " - ,input-file))))) - (racket - (type . interpreter) - (library-command . ,(lambda (library-file prepend-directories append-directories r6rs?) - (let* ((full-path (search-library-file (append append-directories - prepend-directories) - library-file)) - (library-rkt-file (change-file-suffix full-path ".rkt")) - ) - (apply string-append - `("printf" - " " - "'#lang r7rs\\n(import (scheme base))\\n(include \"" - ,(path->filename library-file) - "\")\\n" - "'" - " " - ">" - " " - ,library-rkt-file))))) - (command . ,(lambda (input-file output-file prepend-directories append-directories library-files r6rs?) - (let ((rkt-input-file (if (string=? input-file "") - "" - (change-file-suffix input-file ".rkt")))) - (if r6rs? - #t - (when (not (string=? rkt-input-file "")) - (when (file-exists? rkt-input-file) - (delete-file rkt-input-file)) - (with-output-to-file - rkt-input-file - (lambda () - (display "#lang r7rs") - (newline) - (display "(import (scheme base))") - (newline) - (display "(include \"") - (display (path->filename input-file)) - (display "\")") - (newline))))) + ,(if r6rs? input-file rkt-input-file) + )))))) + (sagittarius + (type . interpreter) + (command . ,(lambda (input-file output-file prepend-directories append-directories library-files r6rs?) (apply string-append - `("racket" + `("sash" " " - ,(util-getenv "COMPILE_R7RS_RACKET") + ,(util-getenv "COMPILE_R7RS_SAGITTARIUS") " " - "-I" - " " - ,(if r6rs? "r6rs" "r7rs") + ,(if r6rs? "-r6" "-r7") " " ,@(map (lambda (item) - (string-append "-S " item " ")) + (string-append "-L " item " ")) prepend-directories) ,@(map (lambda (item) - (string-append "-S " item " ")) + (string-append "-A " item " ")) append-directories) " " - ,(if r6rs? input-file rkt-input-file) - )))))) - (sagittarius - (type . interpreter) - (command . ,(lambda (input-file output-file prepend-directories append-directories library-files r6rs?) - (apply string-append - `("sash" - " " - ,(util-getenv "COMPILE_R7RS_SAGITTARIUS") - " " - ,(if r6rs? "-r6" "-r7") - " " - ,@(map (lambda (item) - (string-append "-L " item " ")) - prepend-directories) - ,@(map (lambda (item) - (string-append "-A " item " ")) - append-directories) - " " - ,input-file))))) - (skint - (type . interpreter) - (command . ,(lambda (input-file output-file prepend-directories append-directories library-files r6rs?) - (apply string-append - `("skint" - " " - ,(util-getenv "COMPILE_R7RS_SKINT") - " " - ,@(map (lambda (item) - (string-append "-I " item "/ ")) - prepend-directories) - ,@(map (lambda (item) - (string-append "-A " item "/ ")) - append-directories) - " " - ,input-file))))) - (stak - (type . interpreter) - (command . ,(lambda (input-file output-file prepend-directories append-directories library-files r6rs?) - (apply string-append - `("stak" - " " - ,(util-getenv "COMPILE_R7RS_STAK") - " " - ;,@(map (lambda (item) (string-append "-I " item " ")) prepend-directories) - ;,@(map (lambda (item) (string-append "-A " item " ")) append-directories) - " " - ,input-file))))) - (stklos - (type . interpreter) - (command . ,(lambda (input-file output-file prepend-directories append-directories library-files r6rs?) - (apply string-append - `("stklos" - " " - ,(util-getenv "COMPILE_R7RS_STKLOS") - " " - ,@(map (lambda (item) - (string-append "-I " item " ")) - prepend-directories) - ,@(map (lambda (item) - (string-append "-A " item " ")) - append-directories) - " " - ,input-file))))) - (tr7 - (type . interpreter) - (command . ,(lambda (input-file output-file prepend-directories append-directories library-files r6rs?) - (apply string-append - `("TR7_LIB_PATH=" - ,@(map (lambda (item) - (string-append item ":")) - prepend-directories) - ,@(map (lambda (item) - (string-append item ":")) - append-directories) - " " - "tr7i" - " " - ,(util-getenv "COMPILE_R7RS_TR7") - " " - ,input-file))))) - (vicare - (type . compiler) - (command . ,(lambda (input-file output-file prepend-directories append-directories library-files r6rs?) - (apply string-append - `("vicare" - " " - ,(util-getenv "COMPILE_R7RS_VICARE") - " " - ,@(map (lambda (item) - (string-append "-I " item " ")) - prepend-directories) - ,@(map (lambda (item) - (string-append "-A " item " ")) - append-directories) - " " - "--compile-program" - " " - ,input-file))))) - (ypsilon - (type . interpreter) - (command . ,(lambda (input-file output-file prepend-directories append-directories library-files r6rs?) - (apply string-append - `("ypsilon" - " " - ,(util-getenv "COMPILE_R7RS_YPSILON") - " " - ,(if r6rs? "--r6rs" "--r7rs") - " " - "--mute" - " " - "--quiet" - " " - ,@(map (lambda (item) - (string-append "--sitelib=" item " ")) - prepend-directories) - ,@(map (lambda (item) - (string-append "--sitelib=" item " ")) - append-directories) - " " - "--top-level-program" - " " - ,input-file))))))))) + ,input-file))))) + (skint + (type . interpreter) + (command . ,(lambda (input-file output-file prepend-directories append-directories library-files r6rs?) + (apply string-append + `("skint" + " " + ,(util-getenv "COMPILE_R7RS_SKINT") + " " + ,@(map (lambda (item) + (string-append "-I " item "/ ")) + prepend-directories) + ,@(map (lambda (item) + (string-append "-A " item "/ ")) + append-directories) + " " + ,input-file))))) + (stak + (type . interpreter) + (command . ,(lambda (input-file output-file prepend-directories append-directories library-files r6rs?) + (apply string-append + `("stak" + " " + ,(util-getenv "COMPILE_R7RS_STAK") + " " + ;,@(map (lambda (item) (string-append "-I " item " ")) prepend-directories) + ;,@(map (lambda (item) (string-append "-A " item " ")) append-directories) + " " + ,input-file))))) + (stklos + (type . interpreter) + (command . ,(lambda (input-file output-file prepend-directories append-directories library-files r6rs?) + (apply string-append + `("stklos" + " " + ,(util-getenv "COMPILE_R7RS_STKLOS") + " " + ,@(map (lambda (item) + (string-append "-I " item " ")) + prepend-directories) + ,@(map (lambda (item) + (string-append "-A " item " ")) + append-directories) + " " + ,input-file))))) + (tr7 + (type . interpreter) + (command . ,(lambda (input-file output-file prepend-directories append-directories library-files r6rs?) + (apply string-append + `("TR7_LIB_PATH=" + ,@(map (lambda (item) + (string-append item ":")) + prepend-directories) + ,@(map (lambda (item) + (string-append item ":")) + append-directories) + " " + "tr7i" + " " + ,(util-getenv "COMPILE_R7RS_TR7") + " " + ,input-file))))) + (vicare + (type . compiler) + (command . ,(lambda (input-file output-file prepend-directories append-directories library-files r6rs?) + (apply string-append + `("vicare" + " " + ,(util-getenv "COMPILE_R7RS_VICARE") + " " + ,@(map (lambda (item) + (string-append "-I " item " ")) + prepend-directories) + ,@(map (lambda (item) + (string-append "-A " item " ")) + append-directories) + " " + "--compile-program" + " " + ,input-file))))) + (ypsilon + (type . interpreter) + (command . ,(lambda (input-file output-file prepend-directories append-directories library-files r6rs?) + (apply string-append + `("ypsilon" + " " + ,(util-getenv "COMPILE_R7RS_YPSILON") + " " + ,(if r6rs? "--r6rs" "--r7rs") + " " + "--mute" + " " + "--quiet" + " " + ,@(map (lambda (item) + (string-append "--sitelib=" item " ")) + prepend-directories) + ,@(map (lambda (item) + (string-append "--sitelib=" item " ")) + append-directories) + " " + "--top-level-program" + " " + ,input-file)))))))))