aboutsummaryrefslogtreecommitdiffstats
path: root/mcgoron/guix
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
parentchez (diff)
try vicare
Diffstat (limited to '')
-rw-r--r--mcgoron/guix/gauche-build-system.scm_ (renamed from mcgoron/guix/gauche-build-system.scm)0
-rw-r--r--mcgoron/guix/patches/vicare-0.4.1-modern-glibc.patch45
-rw-r--r--mcgoron/guix/scheme-hello-world.scm_ (renamed from mcgoron/guix/scheme-hello-world.scm)0
-rw-r--r--mcgoron/guix/scheme-packages.scm59
4 files changed, 104 insertions, 0 deletions
diff --git a/mcgoron/guix/gauche-build-system.scm b/mcgoron/guix/gauche-build-system.scm_
index 6a4b8f5..6a4b8f5 100644
--- a/mcgoron/guix/gauche-build-system.scm
+++ b/mcgoron/guix/gauche-build-system.scm_
diff --git a/mcgoron/guix/patches/vicare-0.4.1-modern-glibc.patch b/mcgoron/guix/patches/vicare-0.4.1-modern-glibc.patch
new file mode 100644
index 0000000..3191084
--- /dev/null
+++ b/mcgoron/guix/patches/vicare-0.4.1-modern-glibc.patch
@@ -0,0 +1,45 @@
+diff --git a/meta/autoconf/vicare.m4 b/meta/autoconf/vicare.m4
+index 691c95e8..e85aa27f 100644
+--- a/meta/autoconf/vicare.m4
++++ b/meta/autoconf/vicare.m4
+@@ -192,9 +192,11 @@ AC_INCLUDES_DEFAULT
+ #ifdef HAVE_NETDB_H
+ # include <netdb.h>
+ #endif
++#if 0
+ #ifdef HAVE_NET_IF_H
+ # include <net/if.h>
+ #endif
++#endif
+ #ifdef HAVE_NETINET_ETHER_H
+ # include <netinet/ether.h>
+ #endif
+diff --git a/src/ikarus-glibc.c b/src/ikarus-glibc.c
+index d6be4925..ce742c6b 100644
+--- a/src/ikarus-glibc.c
++++ b/src/ikarus-glibc.c
+@@ -45,9 +45,11 @@
+ #ifdef HAVE_MATH_H
+ # include <math.h>
+ #endif
++#if 0
+ #ifdef HAVE_NET_IF_H
+ # include <net/if.h>
+ #endif
++#endif
+ #ifdef HAVE_REGEX_H
+ # include <regex.h>
+ #endif
+diff --git a/src/ikarus-main.c b/src/ikarus-main.c
+index b81d4c02..7b73618b 100644
+--- a/src/ikarus-main.c
++++ b/src/ikarus-main.c
+@@ -30,7 +30,7 @@
+ #include <sys/types.h>
+
+ extern int cpu_has_sse2();
+-static void register_handlers();
++static void register_handlers(int);
+ static void register_alt_stack();
+
+ /* When true: internals inspection messages are enabled. It is used by
diff --git a/mcgoron/guix/scheme-hello-world.scm b/mcgoron/guix/scheme-hello-world.scm_
index 5322db8..5322db8 100644
--- a/mcgoron/guix/scheme-hello-world.scm
+++ b/mcgoron/guix/scheme-hello-world.scm_
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))))
+
+|#