aboutsummaryrefslogtreecommitdiffstats
path: root/mcgoron/guix/scheme-packages.scm
diff options
context:
space:
mode:
authorGravatar Peter McGoron 2025-08-17 11:58:14 -0400
committerGravatar Peter McGoron 2025-08-17 11:58:14 -0400
commit147dc2a005f1e9483267371312b3d1653da9f409 (patch)
treecde603411692c476dd624389744ae0c28c2640b1 /mcgoron/guix/scheme-packages.scm
parentchez (diff)
try vicare
Diffstat (limited to '')
-rw-r--r--mcgoron/guix/scheme-packages.scm59
1 files changed, 59 insertions, 0 deletions
diff --git a/mcgoron/guix/scheme-packages.scm b/mcgoron/guix/scheme-packages.scm
index 4018efe..9c9d4cb 100644
--- a/mcgoron/guix/scheme-packages.scm
+++ b/mcgoron/guix/scheme-packages.scm
@@ -38,6 +38,9 @@
#:use-module (gnu packages textutils)
#:use-module (gnu packages multiprecision)
#:use-module (gnu packages chez)
+ #:use-module (gnu packages autotools)
+ #:use-module (gnu packages texinfo)
+ #:use-module (gnu packages readline)
#:use-module (guix gexp))
;;;;;;;;;;;;;
@@ -723,3 +726,59 @@ The current release of Mosh supports all of the features R7RS small and R6RS."))
,(append-to "CHEZSCHEMELIBDIRS" "GUIX_CHEZ_PATH" "R6RS_LIBRARY_PATH")
impl))))
+#|
+;;;;;;;;;;;;
+;;;; Vicare
+;;;; For reasons unknown to me, Vicare will segfault when compiling some
+;;;; libraries. It also depends on a much older glibc.
+;;;;;;;;;;;;
+
+(define-public vicare-lib-dir "share/vicare")
+
+(define-public vicare-build-system
+ (default-copying-build-system 'vicare
+ "Copy Scheme libraries into SKint directory"
+ vicare-lib-dir))
+
+(define-public vicare
+ (package
+ (name "vicare")
+ (version "0.4.1-devel.3")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference (url "https://github.com/marcomaggi/vicare")
+ (commit (string-append "v" version))))
+ (patches (search-patches "mcgoron/guix/patches/vicare-0.4.1-modern-glibc.patch"))
+ (sha256 (base32 "08h3gb0s5kpf6g4pk7l90jmn753p39lg1zfs71gqv4zz5a6k5yzb"))))
+ (build-system gnu-build-system)
+ ;;;; TODO: fix libraries
+ (arguments '(#:configure-flags '("--disable-rpath" "--enable-maintainer-mode" "--disable-glibc") ))
+ (inputs (list gmp libffi libtool automake autoconf texinfo readline))
+ (home-page "https://github.com/marcomaggi/vicare")
+ (synopsis "A native compiler for Scheme compliant with R6RS")
+ (license gpl3+)
+ (description "Vicare Scheme is an R6RS compliant fork of Ikarus Scheme, aiming to become a native compiler for R6 Scheme producing single threaded programs running on Intel x86 32-bit and 64-bit processors.")))
+
+(define-public vicare-with-path
+ (package/path vicare
+ "vicare"
+ "Vicare with Guix paths"
+ "Wrapper for Vicare that adds Guix-managed paths"
+ "/bin/vicare"
+ "/bin/vicare"
+ "GUIX_VICARE_PATH"
+ (list r6rs-search-path-specification)
+ vicare-lib-dir
+ `(lambda (sh impl)
+ (format #t
+ "#!~a
+
+ ~a
+
+ exec -a $0 \"~a\" \"$@\""
+ sh
+ ,(append-to "VICARE_LIBRARY_PATH" "GUIX_VICARE_PATH" "R6RS_LIBRARY_PATH")
+ impl))))
+
+|#