Support for Digamma

parent 19784c48
Pipeline #145680105 passed with stages
in 10 minutes and 7 seconds
......@@ -17,6 +17,7 @@ export YPSILON_SITELIB="$AKKU_R6RS_PATH";
export LARCENY_LIBPATH="$AKKU_R6RS_PATH";
export IRONSCHEME_LIBRARY_PATH="$AKKU_R6RS_PATH";
export LOKO_LIBRARY_PATH="$AKKU_R6RS_PATH";
export DIGAMMA_SITELIB="$AKKU_R6RS_PATH";
export CHIBI_MODULE_PATH="$AKKU_R7RS_PATH";
export GAUCHE_LOAD_PATH="$AKKU_R7RS_PATH";
export PATH=$PWD/.akku/bin${PATH:+:}$PATH;
......
......@@ -17,6 +17,7 @@ set --export YPSILON_SITELIB "$AKKU_R6RS_PATH"
set --export LARCENY_LIBPATH "$AKKU_R6RS_PATH"
set --export IRONSCHEME_LIBRARY_PATH "$AKKU_R6RS_PATH"
set --export LOKO_LIBRARY_PATH "$AKKU_R6RS_PATH"
set --export DIGAMMA_SITELIB "$AKKU_R6RS_PATH"
set --export CHIBI_MODULE_PATH "$AKKU_R7RS_PATH"
set --export GAUCHE_LOAD_PATH "$AKKU_R7RS_PATH"
set --export --prepend PATH $PWD/.akku/bin
......
......@@ -38,6 +38,10 @@ manager scripts to ensure that no unpackaged dependencies are used.
The `copy-current-project` makes copies instead of symlinks of the
current project.
New in this release is also support
for [Digamma](https://github.com/fujita-y/digamma), a new experimental
R6RS/R7RS Scheme derived from Ypsilon.
Thanks to Amirouche Boubekki, erkin and Antoine Luciani for
contributing to this release.
......
......@@ -69,10 +69,10 @@ How to get started with a new project:
programs and libraries in `.akku`.
The installed libraries should now be in the load path of Chez Scheme,
GNU Guile (with R6RS settings), Ikarus, Larceny, Mosh, Racket
Digamma, GNU Guile (with R6RS settings), Ikarus, Larceny, Mosh, Racket
(plt-r6rs), Sagittarius, Vicare and Ypsilon. Original R7RS libraries
will be available to Chibi, Gauche, Larceny and Sagittarius. Any
installed programs are available in your shell's path.
will be available to Chibi, Digamma, Gauche, Larceny and Sagittarius.
Any installed programs are available in your shell's path.
Most implementations can use the libraries as-is. GNU Guile requires a
small adjustment: `guile -x .guile.sls -x .sls`. You may also need to
......
# -*- mode: dockerfile; coding: utf-8 -*-
FROM weinholt/chezscheme:latest AS build
RUN apt-get update && apt-get -y --no-install-recommends install \
ca-certificates \
curl \
git \
xz-utils \
&& rm -rf /var/lib/apt/lists/*
COPY . /tmp
WORKDIR /tmp
RUN set -xe; \
test -d .git && git clean -d -d -x -f; \
. .akku/bin/activate; \
mkdir -p ~/.local/share/akku/keys.d; \
cp akku-archive-*.gpg ~/.local/share/akku/keys.d; \
akku.sps update; \
private/build.chezscheme.sps; \
tar -xvaf akku-*-linux.tar.xz; \
cd akku-*-linux; \
./install.sh; \
~/.local/bin/akku
FROM schemers/digamma:head
RUN apt-get update && apt-get -y --no-install-recommends install \
ca-certificates \
curl \
git \
&& rm -rf /var/lib/apt/lists/*
COPY --from=build /root/.local /root/.local
ENV PATH="/root/.local/bin:${PATH}"
......@@ -943,6 +943,7 @@
(set/export "LARCENY_LIBPATH" "$AKKU_R6RS_PATH")
(set/export "IRONSCHEME_LIBRARY_PATH" "$AKKU_R6RS_PATH") ;nonstandard
(set/export "LOKO_LIBRARY_PATH" "$AKKU_R6RS_PATH")
(set/export "DIGAMMA_SITELIB" "$AKKU_R6RS_PATH")
;; R7RS
(set/export "CHIBI_MODULE_PATH" "$AKKU_R7RS_PATH")
(set/export "GAUCHE_LOAD_PATH" "$AKKU_R7RS_PATH")
......
......@@ -25,6 +25,7 @@
(library (akku lib library-name)
(export
library-name->file-name/chezscheme
library-name->file-name/digamma
library-name->file-name/guile
library-name->file-name/ikarus
library-name->file-name/ironscheme
......@@ -277,6 +278,8 @@
(f (car ls) (cdr ls)))))
(extract)))
(define library-name->file-name/digamma library-name->file-name/ypsilon)
(define (library-name->file-name/sagittarius ls)
(let-values (((p extract) (open-string-output-port)))
(define (display-hex n)
......@@ -396,6 +399,7 @@
((ypsilon) library-name->file-name/ypsilon)
((vicare) library-name->file-name/vicare)
((loko) library-name->file-name/loko)
((digamma) library-name->file-name/digamma)
(else ;default fallback
library-name->file-name/chezscheme)))
......@@ -412,5 +416,7 @@
(case implementation
((larceny)
library-name->file-name/larceny)
((digamma)
library-name->file-name/digamma)
(else ;default fallback
library-name->file-name/chezscheme)))))
;; -*- mode: scheme; coding: utf-8 -*-
;; Copyright © 2017-2019 Göran Weinholt <[email protected]>
;; Copyright © 2017-2020 Göran Weinholt <[email protected]>
;; SPDX-License-Identifier: GPL-3.0-or-later
;; This program is free software: you can redistribute it and/or modify
......@@ -85,6 +85,7 @@
(chibi time)
(meta))
(cyclone (scheme cyclone *))
(digamma (digamma *))
(guile (guile *)
(ice-9 *)
(system foreign)
......@@ -182,6 +183,7 @@
(('nmosh . _) 'nmosh)
(('sagittarius . _) 'sagittarius)
(('vicare . _) 'vicare)
(('digamma . _) 'digamma)
(else #f)))
;; Takes a list of library names and determines which implementation
......@@ -199,6 +201,7 @@
(('kawa . _) 'kawa)
(('rapid . _) 'rapid-scheme)
(('scheme 'cyclone . _) 'cyclone)
(('digamma . _) 'digamma)
(else #f))))
(and guess (is-implementation-specific? lib-name guess) guess)))
......@@ -210,6 +213,7 @@
;; Implementation names matching <impl>.sls or cond-expand.
(define r6rs-implementation-names
'(chezscheme
digamma
guile
ikarus
ironscheme
......@@ -227,6 +231,7 @@
'(chibi
chicken
cyclone
digamma
foment
gauche
kawa
......@@ -297,6 +302,7 @@
(define supported-srfis
'((chezscheme . ())
(digamma . (1 6 8 #;9 13 14 19 26 27 28 38 39 41 42 48 98))
(guile . (1 2 4 6 8 9 10 11 13 14 16 17 18 19 26 27 28 31 34
35 37 38 39 41 42 43 45 60 64 67 69 71 88 98 111))
(ikarus . ())
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment