Add Gambit support for snow-chibi

This commit is contained in:
retropikzel 2025-06-17 17:39:20 +03:00
parent 357361eaac
commit 3b85c02e11
7 changed files with 162 additions and 1 deletions

View file

@ -1639,6 +1639,7 @@ are currently supported:
\item{chicken - version >= 4.9.0 with the \scheme{r7rs} egg} \item{chicken - version >= 4.9.0 with the \scheme{r7rs} egg}
\item{cyclone - version >= 0.5.3} \item{cyclone - version >= 0.5.3}
\item{foment - version >= 0.4} \item{foment - version >= 0.4}
\item{gambit}
\item{gauche - version >= 0.9.4} \item{gauche - version >= 0.9.4}
\item{kawa - version >= 2.0; you need to add the install dir to the search path, e.g. \scheme{-Dkawa.import.path=/usr/local/share/kawa}} \item{kawa - version >= 2.0; you need to add the install dir to the search path, e.g. \scheme{-Dkawa.import.path=/usr/local/share/kawa}}
\item{larceny - version 0.98; you need to add "lib/Snow" to the paths in startup.sch} \item{larceny - version 0.98; you need to add "lib/Snow" to the paths in startup.sch}

View file

@ -1370,6 +1370,9 @@
(string-trim (process->string '(icyc -p "(Cyc-installation-dir 'sld)")) (string-trim (process->string '(icyc -p "(Cyc-installation-dir 'sld)"))
char-whitespace?))))) char-whitespace?)))))
(list (or dir "/usr/local/share/cyclone/")))) (list (or dir "/usr/local/share/cyclone/"))))
((gambit)
(list (string-append (get-environment-variable "HOME")
"/.gambit_userlib")))
((gauche) ((gauche)
(list (list
(let ((dir (string-trim (let ((dir (string-trim
@ -1464,6 +1467,10 @@
(if lib-path (if lib-path
`(foment -A ,install-dir -A ,lib-path ,file) `(foment -A ,install-dir -A ,lib-path ,file)
`(foment -A ,install-dir ,file))) `(foment -A ,install-dir ,file)))
((gambit)
(if lib-path
`(gsi -s:search=,install-dir ,lib-path ,file)
`(gsi -s:search=,install-dir ,file)))
((gauche) ((gauche)
(if lib-path (if lib-path
`(gosh -A ,install-dir -A ,lib-path ,file) `(gosh -A ,install-dir -A ,lib-path ,file)
@ -1619,6 +1626,7 @@
;; package information for each builtin library ;; package information for each builtin library
(define native-srfi-support (define native-srfi-support
'((foment 60) '((foment 60)
(gambit 0 4 6 8 9 16 18 21 22 23 27 30 39 62 88 193)
(gauche 0 1 4 5 7 9 11 13 14 19 26 27 29 31 37 42 43 55) (gauche 0 1 4 5 7 9 11 13 14 19 26 27 29 31 37 42 43 55)
(guile 0 1 2 4 6 8 9 10 11 13 14 16 17 18 19 23 26 27 28 30 31 34 (guile 0 1 2 4 6 8 9 10 11 13 14 16 17 18 19 23 26 27 28 30 31 34
35 37 38 39 41 42 43 45 46 55 60 61 62 64 67 69 71 87 88 35 37 38 39 41 42 43 45 46 55 60 61 62 64 67 69 71 87 88
@ -1679,6 +1687,7 @@
(cond (cond
((eq? impl 'chicken) (get-install-library-dir impl cfg)) ((eq? impl 'chicken) (get-install-library-dir impl cfg))
((eq? impl 'cyclone) (get-install-library-dir impl cfg)) ((eq? impl 'cyclone) (get-install-library-dir impl cfg))
((eq? impl 'gambit) (get-install-library-dir impl cfg))
((eq? impl 'guile) (get-guile-site-dir)) ((eq? impl 'guile) (get-guile-site-dir))
((conf-get cfg 'install-source-dir)) ((conf-get cfg 'install-source-dir))
((conf-get cfg 'install-prefix) ((conf-get cfg 'install-prefix)
@ -1689,6 +1698,7 @@
(cond (cond
((eq? impl 'chicken) (get-install-library-dir impl cfg)) ((eq? impl 'chicken) (get-install-library-dir impl cfg))
((eq? impl 'cyclone) (get-install-library-dir impl cfg)) ((eq? impl 'cyclone) (get-install-library-dir impl cfg))
((eq? impl 'gambit) (get-install-library-dir impl cfg))
((conf-get cfg 'install-data-dir)) ((conf-get cfg 'install-data-dir))
((conf-get cfg 'install-prefix) ((conf-get cfg 'install-prefix)
=> (lambda (prefix) (make-path prefix "share/snow" impl))) => (lambda (prefix) (make-path prefix "share/snow" impl)))
@ -1706,6 +1716,8 @@
(car (get-install-dirs impl cfg))))) (car (get-install-dirs impl cfg)))))
((eq? impl 'cyclone) ((eq? impl 'cyclone)
(car (get-install-dirs impl cfg))) (car (get-install-dirs impl cfg)))
((eq? impl 'gambit)
(car (get-install-dirs impl cfg)))
((eq? impl 'guile) ((eq? impl 'guile)
(get-guile-site-ccache-dir)) (get-guile-site-ccache-dir))
((conf-get cfg 'install-prefix) ((conf-get cfg 'install-prefix)
@ -2088,6 +2100,22 @@
" - install anyway?")) " - install anyway?"))
library)))))) library))))))
(define (gambit-builder impl cfg library dir)
(let* ((library-file (get-library-file cfg library))
(src-library-file (make-path dir library-file))
(library-dir (path-directory src-library-file))
(dest-library-file
(string-append (library->path cfg library) ".o"))
(dest-dir
(path-directory (make-path dir dest-library-file))))
;; ensure the build directory exists
(create-directory* dest-dir)
(with-directory
dir
(lambda ()
(and (system 'gsc src-library-file)
library)))))
(define (guile-builder impl cfg library dir) (define (guile-builder impl cfg library dir)
(let* ((library-file (get-library-file cfg library)) (let* ((library-file (get-library-file cfg library))
(src-library-file (make-path dir library-file)) (src-library-file (make-path dir library-file))
@ -2109,12 +2137,13 @@
((chibi) chibi-builder) ((chibi) chibi-builder)
((chicken) chicken-builder) ((chicken) chicken-builder)
((cyclone) cyclone-builder) ((cyclone) cyclone-builder)
((gambit) gambit-builder)
((guile) guile-builder) ((guile) guile-builder)
(else default-builder))) (else default-builder)))
(define (builder-for-implementation impl cfg) (define (builder-for-implementation impl cfg)
(case impl (case impl
((chibi chicken cyclone guile) impl) ((chibi chicken cyclone gambit guile) impl)
(else 'default))) (else 'default)))
(define (build-library impl cfg library dir) (define (build-library impl cfg library dir)

View file

@ -25,6 +25,10 @@
,(delay ,(delay
(process->sexp (process->sexp
'(foment -e "(write (features))")))) '(foment -e "(write (features))"))))
(gambit "gsc" (gsc -v) #f #f
,(delay
(process->sexp
'(gsc -e "(write (features))"))))
(gauche "gosh" (gosh -E "print (gauche-version)") "0.9.4" (gauche "gosh" (gosh -E "print (gauche-version)") "0.9.4"
,(delay ,(delay
(process->sexp (process->sexp
@ -59,6 +63,7 @@
(define (target-is-host? impl) (define (target-is-host? impl)
(case impl (case impl
((chibi) (cond-expand (chibi #t) (else #f))) ((chibi) (cond-expand (chibi #t) (else #f)))
((gambit) (cond-expand (gambit #t) (else #f)))
((gauche) (cond-expand (gauche #t) (else #f))) ((gauche) (cond-expand (gauche #t) (else #f)))
((sagittarius) (cond-expand (sagittarius #t) (else #f))) ((sagittarius) (cond-expand (sagittarius #t) (else #f)))
(else #f))) (else #f)))

View file

@ -0,0 +1,86 @@
(package
(url "/s/gmail.com/nma.arvydas.silanskas/arvyy/mustache/1.0.2/arvyy-mustache-1.0.2.tgz")
(size 83456)
(updated "2021-11-13T10:37:49+00:00")
(created "2021-11-12T20:31:25+00:00")
(signature
(email "nma.arvydas.silanskas@gmail.com")
(digest sha-256)
(sha-256 "561374f1cfd7b784a9357e11e2070ce783154e5c7f2acf261af8702e54e55987"))
(maintainers "Arvydas Silanskas <nma.arvydas.silanskas@gmail.com>")
(authors "Arvydas Silanskas")
(version "1.0.2")
(license mit)
(library
(name
(arvyy mustache))
(path "arvyy/mustache.sld")
(depends
(scheme base)
(scheme case-lambda)
(scheme write)
(arvyy mustache lookup)
(arvyy mustache collection)
(arvyy mustache executor)
(arvyy mustache parser)
(arvyy mustache tokenizer)
(srfi 1)))
(library
(name
(arvyy mustache collection))
(path "arvyy/mustache/collection.sld")
(depends
(scheme base)
(srfi 41)))
(library
(name
(arvyy mustache executor))
(path "arvyy/mustache/executor.sld")
(depends
(scheme base)
(arvyy mustache parser)))
(library
(name
(arvyy mustache lookup))
(path "arvyy/mustache/lookup.sld")
(depends
(scheme base)))
(library
(name
(arvyy mustache parser))
(path "arvyy/mustache/parser.sld")
(depends
(scheme base)
(scheme write)
(scheme cxr)
(arvyy mustache tokenizer)
(srfi 1)))
(library
(name
(arvyy mustache tokenizer))
(path "arvyy/mustache/tokenizer.sld")
(depends
(scheme base)))
(library
(name
(arvyy mustache-test))
(path "arvyy/mustache-test.sld")
(cond-expand
(chibi
(depends
(chibi test)))
((library (srfi 64))
(depends
(srfi 64)))
(else
(depends)))
(depends
(scheme base)
(scheme write)
(arvyy mustache)
(srfi 41))
(use-for test))
(manual "readme.html")
(description "Mustache templating 1.2.1 implementation")
(test "run-tests.scm")
(installed-files "lib/chicken/8/arvyy.mustache.lookup.so" "lib/chicken/8/arvyy.mustache.lookup.import.scm" "lib/chicken/8/arvyy.mustache.collection.so" "lib/chicken/8/arvyy.mustache.collection.import.scm" "lib/chicken/8/arvyy.mustache.tokenizer.so" "lib/chicken/8/arvyy.mustache.tokenizer.import.scm" "lib/chicken/8/arvyy.mustache.parser.so" "lib/chicken/8/arvyy.mustache.parser.import.scm" "lib/chicken/8/arvyy.mustache.executor.so" "lib/chicken/8/arvyy.mustache.executor.import.scm" "lib/chicken/8/arvyy.mustache.so" "lib/chicken/8/arvyy.mustache.import.scm"))

View file

@ -0,0 +1,36 @@
(package
(url "/s/fisher.cx/robert/srfi/64/0.1.0/srfi-64-0.1.0.tgz")
(size 83968)
(updated "2019-09-24T13:12:36+00:00")
(created "2019-09-24T13:12:36+00:00")
(signature
(email "robert@fisher.cx")
(digest sha-256)
(sha-256 "4cf1376ed8f674b7eb66079437c944afb3753113849acf51cde47efd17656658"))
(maintainers "Robert Fisher")
(authors "Per Bothner" "Alex Shinn" "Álvaro Castro-Castilla" "Mark H Weaver" "Donovan Kolby")
(version "0.1.0")
(library
(name
(srfi 64))
(path "srfi/64.sld")
(depends
(scheme base)
(scheme char)
(scheme complex)
(scheme eval)
(scheme file)
(scheme read)
(scheme write)))
(library
(name
(srfi 64 test))
(path "srfi/64/test.sld")
(depends
(scheme base)
(srfi 64))
(use-for test))
(manual "srfi/64.html")
(description "Reference implementation of SRFI-54: A Scheme API for test suites")
(test "run-tests.scm")
(installed-files "lib/chicken/8/srfi-64.so" "lib/chicken/8/srfi-64.import.scm"))

BIN
tmptest Executable file

Binary file not shown.

4
tmptest.scm Normal file
View file

@ -0,0 +1,4 @@
(import (scheme base)
(retropikzel hello))
(hello)