diff --git a/doc/chibi.scrbl b/doc/chibi.scrbl index e832b481..f65ecd2f 100755 --- a/doc/chibi.scrbl +++ b/doc/chibi.scrbl @@ -1639,6 +1639,7 @@ are currently supported: \item{chicken - version >= 4.9.0 with the \scheme{r7rs} egg} \item{cyclone - version >= 0.5.3} \item{foment - version >= 0.4} +\item{gambit} \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{larceny - version 0.98; you need to add "lib/Snow" to the paths in startup.sch} diff --git a/lib/chibi/snow/commands.scm b/lib/chibi/snow/commands.scm index 4ea4736b..00a49bea 100644 --- a/lib/chibi/snow/commands.scm +++ b/lib/chibi/snow/commands.scm @@ -1370,6 +1370,9 @@ (string-trim (process->string '(icyc -p "(Cyc-installation-dir 'sld)")) char-whitespace?))))) (list (or dir "/usr/local/share/cyclone/")))) + ((gambit) + (list (string-append (get-environment-variable "HOME") + "/.gambit_userlib"))) ((gauche) (list (let ((dir (string-trim @@ -1464,6 +1467,10 @@ (if lib-path `(foment -A ,install-dir -A ,lib-path ,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) (if lib-path `(gosh -A ,install-dir -A ,lib-path ,file) @@ -1619,6 +1626,7 @@ ;; package information for each builtin library (define native-srfi-support '((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) (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 @@ -1679,6 +1687,7 @@ (cond ((eq? impl 'chicken) (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)) ((conf-get cfg 'install-source-dir)) ((conf-get cfg 'install-prefix) @@ -1689,6 +1698,7 @@ (cond ((eq? impl 'chicken) (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-prefix) => (lambda (prefix) (make-path prefix "share/snow" impl))) @@ -1706,6 +1716,8 @@ (car (get-install-dirs impl cfg))))) ((eq? impl 'cyclone) (car (get-install-dirs impl cfg))) + ((eq? impl 'gambit) + (car (get-install-dirs impl cfg))) ((eq? impl 'guile) (get-guile-site-ccache-dir)) ((conf-get cfg 'install-prefix) @@ -2088,6 +2100,22 @@ " - install anyway?")) 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) (let* ((library-file (get-library-file cfg library)) (src-library-file (make-path dir library-file)) @@ -2109,12 +2137,13 @@ ((chibi) chibi-builder) ((chicken) chicken-builder) ((cyclone) cyclone-builder) + ((gambit) gambit-builder) ((guile) guile-builder) (else default-builder))) (define (builder-for-implementation impl cfg) (case impl - ((chibi chicken cyclone guile) impl) + ((chibi chicken cyclone gambit guile) impl) (else 'default))) (define (build-library impl cfg library dir) diff --git a/lib/chibi/snow/utils.scm b/lib/chibi/snow/utils.scm index 9b8324e3..9a7acfc3 100644 --- a/lib/chibi/snow/utils.scm +++ b/lib/chibi/snow/utils.scm @@ -25,6 +25,10 @@ ,(delay (process->sexp '(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" ,(delay (process->sexp @@ -59,6 +63,7 @@ (define (target-is-host? impl) (case impl ((chibi) (cond-expand (chibi #t) (else #f))) + ((gambit) (cond-expand (gambit #t) (else #f))) ((gauche) (cond-expand (gauche #t) (else #f))) ((sagittarius) (cond-expand (sagittarius #t) (else #f))) (else #f))) diff --git a/lib/chicken/8/arvyy/.mustache.meta b/lib/chicken/8/arvyy/.mustache.meta new file mode 100644 index 00000000..bae53158 --- /dev/null +++ b/lib/chicken/8/arvyy/.mustache.meta @@ -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 ") + (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")) diff --git a/lib/chicken/8/srfi/.64.meta b/lib/chicken/8/srfi/.64.meta new file mode 100644 index 00000000..9f300b6d --- /dev/null +++ b/lib/chicken/8/srfi/.64.meta @@ -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")) diff --git a/tmptest b/tmptest new file mode 100755 index 00000000..c5c1be27 Binary files /dev/null and b/tmptest differ diff --git a/tmptest.scm b/tmptest.scm new file mode 100644 index 00000000..d1fb17c8 --- /dev/null +++ b/tmptest.scm @@ -0,0 +1,4 @@ +(import (scheme base) + (retropikzel hello)) + +(hello)