Fixes to Gambit

This commit is contained in:
retropikzel 2025-07-16 15:02:20 +03:00
parent 430aafe647
commit 92f7be6c0d
1 changed files with 29 additions and 73 deletions

View File

@ -137,80 +137,36 @@
(gambit (gambit
(type . compiler) (type . compiler)
(library-command . ,(lambda (library-file prepend-directories append-directories r6rs?) (library-command . ,(lambda (library-file prepend-directories append-directories r6rs?)
(let ((out (string-append (string-cut-from-end library-file 4) ".o")) (apply string-append `("gsc -obj "
(static-out (string-append (string-cut-from-end library-file 4) ".a"))) ,(search-library-file (append append-directories
(apply string-append prepend-directories)
`("gsc -obj" library-file)))))
" "
,(util-getenv "COMPILE_R7RS_GAMBIT")
" "
,@(map (lambda (item)
(string-append item ""))
(append prepend-directories append-directories))
" "
,(string-cut-from-end library-file 4))))))
(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?)
(apply string-append `("gsc" (let ((real
" " (string-append (string-cut-from-end input-file 4)
,(util-getenv "COMPILE_R7RS_GAMBIT") "-real")))
" " (apply
"-:search=" string-append
,@(map (lambda (item) `("gsc -o " ,real
(string-append item "")) " -exe -nopreload "
(append prepend-directories append-directories)) ,@(map (lambda (item)
" " (string-append item "/ "))
"-o" (append prepend-directories
" " append-directories))
,output-file ,input-file
" " " && "
"-exe -nopreload" "printf '#!/bin/sh\\n./" ,real
" " " -:r7rs,search="
,input-file)) ,@(map (lambda (item)
#;(apply string-append (string-append item "/ "))
`("echo '#!/usr/bin/env -S gsi-script -f -:search=" (append prepend-directories
,@(map (lambda (item) append-directories))
(string-append item "/:")) ""
(append prepend-directories append-directories)) "\\n"
"'" "'"
" " " > " ,output-file
">" " && "
" " "chmod +x " ,output-file))))))
,(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 (gauche
(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?)