1
0
Fork 0

Kawa fixes

This commit is contained in:
retropikzel 2025-10-23 06:02:57 +03:00
parent 289a6c22cb
commit 9661a5a6a4
2 changed files with 50 additions and 78 deletions

View File

@ -238,60 +238,30 @@
append-directories)))))) append-directories))))))
(kawa (kawa
(type . interpreter) (type . interpreter)
(library-command . ,(lambda (library-file prepend-directories append-directories r6rs?)
(let* ((load-paths (apply string-append
(append (list "-Dkawa.import.path=")
(map (lambda (item)
(string-append item "/*.sld:"))
(append prepend-directories
append-directories)))))
(library-file-path (search-library-file (append prepend-directories
append-directories)
library-file))
(output-dir
(let ((output-dir "."))
(for-each
(lambda (dir)
(when (string-starts-with? library-file-path
dir)
(set! output-dir dir)))
(append prepend-directories
append-directories))
output-dir))
(classpath
(apply
string-append
(map (lambda (dir)
(string-append dir ":"))
(append prepend-directories append-directories)))))
`(,(string-append
"CLASSPATH=" classpath
" kawa -J--add-exports=java.base/jdk.internal.foreign.abi=ALL-UNNAMED -J--add-exports=java.base/jdk.internal.foreign.layout=ALL-UNNAMED -J--add-exports=java.base/jdk.internal.foreign=ALL-UNNAMED -J--enable-native-access=ALL-UNNAMED -J--enable-preview "
(util-getenv "COMPILE_R7RS_KAWA")
" "
load-paths
" -d " output-dir
" "
load-paths
" -C "
library-file-path)))))
(command . ,(lambda (input-file output-file prepend-directories append-directories library-files r6rs?) (command . ,(lambda (input-file output-file prepend-directories append-directories library-files r6rs?)
(let ((dirs (append prepend-directories
append-directories
(list "/usr/local/share/kawa/lib"))))
(string-append "CLASSPATH="
(apply string-append (apply string-append
(map (lambda (item) `(,"sh"
(string-append item ":")) ,(string #\newline)
dirs)) "filename=\"$(basename ${0})\""
" kawa --r7rs --full-tailcalls " ,(string #\newline)
(util-getenv "COMPILE_R7RS_KAWA") "tmpfile=\"/tmp/kawa.${filename}\""
" -Dkawa.import.path=" ,(string #\newline)
(apply string-append "tail -n+8 \"${0}\" > \"${tmpfile}\""
(map (lambda (item) ,(string #\newline)
"kawa -J--add-exports=java.base/jdk.internal.foreign.abi=ALL-UNNAMED -J--add-exports=java.base/jdk.internal.foreign.layout=ALL-UNNAMED -J--add-exports=java.base/jdk.internal.foreign=ALL-UNNAMED -J--enable-native-access=ALL-UNNAMED -J--enable-preview -Dkawa.import.path="
,(apply string-append
(map
(lambda (item)
(string-append item "/*.sld:")) (string-append item "/*.sld:"))
dirs)) (append prepend-directories
" "))))) append-directories)))
" --r7rs --full-tailcalls "
" -f \"${tmpfile}\" \"$@\""
,(string #\newline)
"rm -rf \"${tmpfile}\""
,(string #\newline)
"exit"
,(string #\newline))))))
(larceny (larceny
(type . interpreter) (type . interpreter)
(command . ,(lambda (input-file output-file prepend-directories append-directories library-files r6rs?) (command . ,(lambda (input-file output-file prepend-directories append-directories library-files r6rs?)

View File

@ -48,7 +48,8 @@
(define get-imports (define get-imports
(lambda (result implementation rest) (lambda (result implementation rest)
(cond ((null? rest) result) (cond
((null? rest) result)
((equal? (car rest) 'import) (cdr rest)) ((equal? (car rest) 'import) (cdr rest))
((member 'cond-expand (car rest)) ((member 'cond-expand (car rest))
(if (assoc implementation (cdr (car rest))) (if (assoc implementation (cdr (car rest)))
@ -83,7 +84,8 @@
(lambda (path) (lambda (path)
(letrec (letrec
((looper (lambda (c) ((looper (lambda (c)
(cond ((char=? c #\() (cond
((char=? c #\()
(read)) (read))
((char=? c #\;) ((char=? c #\;)
(read-line) (read-line)