(address . guix-patches@gnu.org)
Dear Guix Package maintainers:
I have created a Guix package for the STklos Scheme compiler. (Thanks
to Andrew Tropin for teaching me how!)
I would appreciate a code review, thank for your time!
Best regards,
-- Ramin Honary
From 465538f4b2824f49d99e4eef799f25f644a37bbc Mon Sep 17 00:00:00 2001
Message-Id: <465538f4b2824f49d99e4eef799f25f644a37bbc.1692867653.git.ramin.honary@cross-compass.com>
From: Ramin Honary <ramin.honary@cross-compass.com>
Date: Thu, 24 Aug 2023 17:57:51 +0900
Subject: [PATCH] gnu: Add stklos.
* gnu/packages/scheme.scm (stklos): New variable.
---
gnu/packages/scheme.scm | 48 +++++++++++++++++++++++++++++++++++++++--
1 file changed, 46 insertions(+), 2 deletions(-)
Toggle diff (67 lines)
diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm
index c0e2e3ab48..611e0344e0 100644
--- a/gnu/packages/scheme.scm
+++ b/gnu/packages/scheme.scm
@@ -42,8 +42,8 @@
(define-module (gnu packages scheme)
#:use-module (gnu packages)
#:use-module ((guix licenses)
- #:select (gpl2+ lgpl2.0+ lgpl2.1 lgpl2.1+ lgpl3+ asl2.0 bsd-3
- cc-by-sa4.0 non-copyleft expat public-domain))
+ #:select (gpl2 gpl2+ lgpl2.0+ lgpl2.1 lgpl2.1+ lgpl3+ asl2.0
+ bsd-3 cc-by-sa4.0 non-copyleft expat public-domain))
#:use-module (guix gexp)
#:use-module (guix packages)
#:use-module (guix download)
@@ -1236,3 +1236,47 @@ (define-public emacs-gerbil-mode
(description
"Gerbil mode provides font-lock, indentation, navigation, and REPL for
Gerbil code within Emacs.")))
+
+(define-public stklos
+ (package
+ (name "stklos")
+ (version "1.70")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://stklos.net/download/stklos-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "1iw3pgycjz3kz3jd1855v2ngf8ib2almpf8v058n1mkj1qd2b88m"))))
+ (build-system gnu-build-system)
+ (arguments
+ (list
+ #:modules `((ice-9 ftw)
+ ,@%gnu-build-system-modules)
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'configure 'patch-sh-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((bash-bin (search-input-file inputs "/bin/bash")))
+ (substitute* "configure"
+ (("/bin/sh") bash-bin)))))
+ (add-after 'configure 'patch-rm-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((rm-bin (search-input-file inputs "/bin/rm")))
+ (ftw "."
+ (lambda (filename stat-info f)
+ (when (and
+ (equal? f 'regular)
+ (string=? (basename filename) "Makefile"))
+ (substitute* filename
+ (("/bin/rm") rm-bin)))
+ #t))))))))
+ (home-page "https://stklos.net")
+ (synopsis "R7RS Scheme with CLOS-like object system")
+ (description
+ "STklos is a free Scheme system mostly compliant with the languages
+features defined in R7RS small. The aim of this implementation is to be fast
+as well as light. The implementation is based on an ad-hoc Virtual
+Machine. STklos can also be compiled as a library and embedded in an
+application.")
+ (license gpl2)))
base-commit: 160f78a4d92205df986ed9efcce7d3aac188cb24
--
2.34.1