From 239f7d45c2cc4faea1fc98433292c9a0d996511f Mon Sep 17 00:00:00 2001 From: retropikzel Date: Thu, 26 Jun 2025 20:19:52 +0300 Subject: [PATCH] Add Mosh support for snow-chibi --- doc/chibi.scrbl | 1 + lib/chibi/snow/commands.scm | 19 +++++++++++++++++++ lib/chibi/snow/utils.scm | 2 ++ 3 files changed, 22 insertions(+) diff --git a/doc/chibi.scrbl b/doc/chibi.scrbl index 96a2d5e6..36fea628 100755 --- a/doc/chibi.scrbl +++ b/doc/chibi.scrbl @@ -1665,6 +1665,7 @@ installed. The following are currently supported: \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} +\item{mosh - version >= 0.29-rc1} \item{sagittarius - version >= 0.98} \item{stklos - version > 2.10} ] diff --git a/lib/chibi/snow/commands.scm b/lib/chibi/snow/commands.scm index 6b08cd63..1a072200 100644 --- a/lib/chibi/snow/commands.scm +++ b/lib/chibi/snow/commands.scm @@ -1398,6 +1398,17 @@ (if (string? path) path "/usr/local/share/guile/")))) + ((mosh) + (with-output-to-file + "/tmp/mosh-helper" + (lambda () + (display "(import (scheme base) (scheme write) (mosh config)) (display (get-config \"library-path\")) (newline)") + (newline))) + (list + (string-append + (string-trim (process->string '(mosh "/tmp/mosh-helper")) + char-whitespace?) + "/lib"))) ((larceny) (list (make-path @@ -1494,6 +1505,10 @@ --r7rs --script ,file) `(kawa ,(string-append "-Dkawa.import.path=" install-dir) --r7rs --script ,file)))) + ((mosh) + (if lib-path + `(mosh --loadpath= ,install-dir --loadpath= ,lib-path ,file) + `(guile --loadpath= ,install-dir ,file))) ((larceny) (if lib-path `(larceny -r7rs -path ,(string-append install-dir ":" lib-path) @@ -1704,6 +1719,7 @@ ((eq? impl 'cyclone) (get-install-library-dir impl cfg)) ((eq? impl 'generic) (get-install-library-dir impl cfg)) ((eq? impl 'guile) (get-guile-site-dir)) + ((eq? impl 'mosh) (get-install-library-dir impl cfg)) ((eq? impl 'stklos) (get-install-library-dir impl cfg)) ((conf-get cfg 'install-source-dir)) ((conf-get cfg 'install-prefix) @@ -1715,6 +1731,7 @@ ((eq? impl 'chicken) (get-install-library-dir impl cfg)) ((eq? impl 'cyclone) (get-install-library-dir impl cfg)) ((eq? impl 'generic) (get-install-library-dir impl cfg)) + ((eq? impl 'mosh) (get-install-library-dir impl cfg)) ((eq? impl 'stklos) (get-install-library-dir impl cfg)) ((conf-get cfg 'install-data-dir)) ((conf-get cfg 'install-prefix) @@ -1737,6 +1754,8 @@ (car (get-install-dirs impl cfg))) ((eq? impl 'guile) (get-guile-site-ccache-dir)) + ((eq? impl 'mosh) + (car (get-install-dirs impl cfg))) ((eq? impl 'stklos) (car (get-install-dirs impl cfg))) ((conf-get cfg 'install-prefix) diff --git a/lib/chibi/snow/utils.scm b/lib/chibi/snow/utils.scm index 0bee1db5..f15456fd 100644 --- a/lib/chibi/snow/utils.scm +++ b/lib/chibi/snow/utils.scm @@ -39,6 +39,8 @@ ,(delay (process->sexp '(kawa -e "(write (features))")))) + (mosh "mosh" #f #f + ,(delay (write-string "mosh\n"))) (larceny "larceny" (larceny --version) "v0.98" ,(delay '())) (sagittarius "sagittarius" #f #f