Merge pull request #1038 from Retropikzel/snow-chibi-ypsilon
Some checks are pending
CI / macos-latest (push) Waiting to run
CI / ubuntu-latest (push) Waiting to run

Add support for Ypsilon in snow-chibi
This commit is contained in:
Alex Shinn 2025-07-15 15:49:51 +09:00 committed by GitHub
commit c8380b28f9
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 30 additions and 1 deletions

View file

@ -1670,4 +1670,5 @@ installed. The following are currently supported:
\item{racket - version >= 8.16 with the \scheme{r7rs} pkg} \item{racket - version >= 8.16 with the \scheme{r7rs} pkg}
\item{sagittarius - version >= 0.9.13} \item{sagittarius - version >= 0.9.13}
\item{stklos - version > 2.10} \item{stklos - version > 2.10}
\item{ypsilon - version > 2.0.8}
] ]

View file

@ -1434,6 +1434,15 @@
(list (make-path (list (make-path
(process->string (process->string
'(stklos -e "(display (install-path #:libdir))"))))) '(stklos -e "(display (install-path #:libdir))")))))
((ypsilon)
(call-with-temp-file "snow-ypsilon.scm"
(lambda (tmp-path out preserve)
(with-output-to-file tmp-path
(lambda ()
(display "(import (core))")
(newline)
(display "(display (car (scheme-library-paths)))")))
(list (make-path (process->string `(ypsilon --r7rs ,tmp-path)))))))
(else (else
(list (make-path (or (conf-get cfg 'install-prefix) "/usr/local") (list (make-path (or (conf-get cfg 'install-prefix) "/usr/local")
"share/snow" "share/snow"
@ -1542,6 +1551,10 @@
(if lib-path (if lib-path
`(stklos -A ,install-dir -A ,lib-path ,file) `(stklos -A ,install-dir -A ,lib-path ,file)
`(stklos -A ,install-dir ,file))) `(stklos -A ,install-dir ,file)))
((ypsilon)
(if lib-path
`(ypsilon --sitelib ,install-dir --sitelib ,lib-path ,file)
`(ypsilon --sitelib ,install-dir ,file)))
(else (else
#f)))))) #f))))))
@ -1755,6 +1768,7 @@
((eq? impl 'racket) (get-install-library-dir impl cfg)) ((eq? impl 'racket) (get-install-library-dir impl cfg))
((eq? impl 'sagittarius) (get-install-library-dir impl cfg)) ((eq? impl 'sagittarius) (get-install-library-dir impl cfg))
((eq? impl 'stklos) (get-install-library-dir impl cfg)) ((eq? impl 'stklos) (get-install-library-dir impl cfg))
((eq? impl 'ypsilon) (get-install-library-dir impl cfg))
((conf-get cfg 'install-source-dir)) ((conf-get cfg 'install-source-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)))
@ -1771,6 +1785,7 @@
((eq? impl 'racket) (get-install-library-dir impl cfg)) ((eq? impl 'racket) (get-install-library-dir impl cfg))
((eq? impl 'sagittarius) (get-install-library-dir impl cfg)) ((eq? impl 'sagittarius) (get-install-library-dir impl cfg))
((eq? impl 'stklos) (get-install-library-dir impl cfg)) ((eq? impl 'stklos) (get-install-library-dir impl cfg))
((eq? impl 'ypsilon) (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)))
@ -1804,6 +1819,8 @@
(car (get-install-dirs impl cfg))) (car (get-install-dirs impl cfg)))
((eq? impl 'stklos) ((eq? impl 'stklos)
(car (get-install-dirs impl cfg))) (car (get-install-dirs impl cfg)))
((eq? impl 'ypsilon)
(car (get-install-dirs impl cfg)))
((conf-get cfg 'install-prefix) ((conf-get cfg 'install-prefix)
=> (lambda (prefix) (make-path prefix "lib" impl))) => (lambda (prefix) (make-path prefix "lib" impl)))
(else snow-binary-module-directory))) (else snow-binary-module-directory)))

View file

@ -67,7 +67,18 @@
(stklos "stklos" (stklos --version) #f (stklos "stklos" (stklos --version) #f
,(delay ,(delay
(process->sexp (process->sexp
'(stklos -e "(write (features))")))))) '(stklos -e "(write (features))"))))
(ypsilon "ypsilon" (ypsilon --version) #f
,(delay
(call-with-temp-file "snow-ypsilon"
(lambda (tmp-path out preserve)
(with-output-to-file tmp-path
(lambda ()
(display "(import (scheme base) (scheme write))")
(newline)
(display "(display (features))")))
(process->sexp
`(ypsilon --r7rs ,tmp-path))))))))
(define (impl->version impl cmd) (define (impl->version impl cmd)
(let* ((lines (process->string-list cmd)) (let* ((lines (process->string-list cmd))