guile: update to 3.0.10.

Co-authored-by: Anjandev Momi <anjan@momi.ca>
Co-authored-by: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
This commit is contained in:
Anjandev Momi 2020-05-26 20:01:03 -07:00 committed by Leah Neukirchen
parent 069a9b542e
commit c1e7765992
6 changed files with 194 additions and 23 deletions

View File

@ -1408,7 +1408,7 @@ libgda-xslt-5.0.so.4 libgda-5.2.9_4
libamtk-5.so.0 amtk-5.0.0_1
libdevhelp-3.so.6 devhelp-libs-3.30.0_1
libunistring.so.2 libunistring-0.9.4_1
libguile-2.2.so.1 libguile-2.2.7_1
libguile-3.0.so.1 libguile-3.0.10_1
libopts.so.25 libopts-5.18.4_6
libanjuta-3.so.0 anjuta-3.8.4_1
libgmlib.so.1 gmtk-1.0.8_1

View File

@ -0,0 +1,45 @@
From c117f8edc471d3362043d88959d73c6a37e7e1e9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= <ludo@gnu.org>
Date: Wed, 17 Jul 2024 00:00:00 +0200
Subject: build: Fix in-tree cross-compilation build.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Commit 57a889b7282dab303c4cdc49cccbbe22f961bd1c fixed out-of-tree
cross-compilation builds but broke in-tree cross-compilation builds.
With this change, we should have both.
* libguile/Makefile.am (gen-scmconfig.$(OBJEXT)): Use -iquote instead
of -I.
---
libguile/Makefile.am | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
diff --git a/libguile/Makefile.am b/libguile/Makefile.am
index 8d8fa27..ce97aba 100644
--- a/libguile/Makefile.am
+++ b/libguile/Makefile.am
@@ -62,15 +62,14 @@ gen_scmconfig_SOURCES = gen-scmconfig.c
## Override default rule; this should be compiled for BUILD host. Note
## that we don't add $(AM_CPPFLAGS) here, as we need to run this
## program, but $(top_srcdir)/lib has a gnulib configured for the
-## target. Instead we manually add $(top_builddir) and the current
-## directory, in order to pick up the generated config.h and
-## gen-scmconfig.h. Nothing else from Guile is included by this code
-## generator.
+## target. Instead we manually add $(top_builddir) and $(builddir), in
+## order to pick up the generated config.h and gen-scmconfig.h. Nothing
+## else from Guile is included by this code generator.
gen-scmconfig.$(OBJEXT): gen-scmconfig.c
$(AM_V_GEN) \
if [ "$(cross_compiling)" = "yes" ]; then \
$(CC_FOR_BUILD) $(DEFS) $(DEFAULT_INCLUDES) -I$(top_builddir) \
- -I. -c -o $@ $<; \
+ -iquote$(builddir) -c -o $@ $<; \
else \
$(COMPILE) -c -o $@ $<; \
fi
--
cgit v1.1

View File

@ -0,0 +1,78 @@
Revert of https://git.savannah.gnu.org/cgit/guile.git/commit/?id=d579848cb5d65440af5afd9c8968628665554c22
--- b/module/language/cps/specialize-numbers.scm
+++ a/module/language/cps/specialize-numbers.scm
@@ -284,23 +284,18 @@
(define significant-bits-handlers (make-hash-table))
(define-syntax-rule (define-significant-bits-handler
+ ((primop label types out def ...) arg ...)
- ((primop label types out def ...) param arg ...)
body ...)
(hashq-set! significant-bits-handlers 'primop
(lambda (label types out param args defs)
(match args ((arg ...) (match defs ((def ...) body ...)))))))
+(define-significant-bits-handler ((logand label types out res) a b)
-(define-significant-bits-handler ((logand label types out res) param a b)
(let ((sigbits (sigbits-intersect3 (inferred-sigbits types label a)
(inferred-sigbits types label b)
(intmap-ref out res (lambda (_) 0)))))
(intmap-add (intmap-add out a sigbits sigbits-union)
b sigbits sigbits-union)))
-(define-significant-bits-handler ((logand/immediate label types out res) param a)
- (let ((sigbits (sigbits-intersect3 (inferred-sigbits types label a)
- param
- (intmap-ref out res (lambda (_) 0)))))
- (intmap-add out a sigbits sigbits-union)))
(define (significant-bits-handler primop)
(hashq-ref significant-bits-handlers primop))
@@ -561,11 +556,11 @@
(specialize-unop cps k src op param a
(unbox-u64 a) (box-u64 result))))
+ (('logand/immediate (? u64-result? ) param a)
- (('logand/immediate (? u64-result? ) param (? u64-operand? a))
(specialize-unop cps k src 'ulogand/immediate
(logand param (1- (ash 1 64)))
a
+ (unbox-u64/truncate a) (box-u64 result)))
- (unbox-u64 a) (box-u64 result)))
(((or 'add/immediate 'sub/immediate 'mul/immediate)
(? s64-result?) (? s64-parameter?) (? s64-operand? a))
--- b/module/language/cps/type-fold.scm
+++ a/module/language/cps/type-fold.scm
@@ -692,9 +692,13 @@
((and (eqv? type1 &fixnum) (eqv? min1 max1) (power-of-two? min1)
(<= 0 min0))
(with-cps cps
+ (letv mask)
+ (letk kmask
+ ($kargs ('mask) (mask)
+ ($continue k src
+ ($primcall 'logand #f (arg0 mask)))))
(build-term
+ ($continue kmask src ($const (1- min1))))))
- ($continue k src
- ($primcall 'logand/immediate (1- min1) (arg0))))))
(else
(with-cps cps #f))))
@@ -706,9 +710,13 @@
(with-cps cps #f))
((and (eqv? type1 &fixnum) (eqv? min1 max1) (power-of-two? min1))
(with-cps cps
+ (letv mask)
+ (letk kmask
+ ($kargs ('mask) (mask)
+ ($continue k src
+ ($primcall 'logand #f (arg0 mask)))))
(build-term
+ ($continue kmask src ($const (1- min1))))))
- ($continue k src
- ($primcall 'logand/immediate (1- min1) (arg0))))))
(else
(with-cps cps #f))))

View File

@ -0,0 +1,35 @@
From ad1f56675be58fbb7bfee6fab166ff5bf0b36a11 Mon Sep 17 00:00:00 2001
From: Rob Browning <rlb@defaultvalue.org>
Date: Mon, 1 Jul 2024 02:14:37 -0500
Subject: test-hashing: support 32-bit
* test-suite/standalone/test-hashing.c (test_hashing): add expected
value for 32-bit architectures.
---
test-suite/standalone/test-hashing.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/test-suite/standalone/test-hashing.c b/test-suite/standalone/test-hashing.c
index 5982a0f..50e1329 100644
--- a/test-suite/standalone/test-hashing.c
+++ b/test-suite/standalone/test-hashing.c
@@ -38,9 +38,15 @@ test_hashing ()
// Value determined by calling wide_string_hash on {0x3A0, 0x3B5,
// 0x3C1, 0x3AF} via a temporary test program.
+#if SIZEOF_UNSIGNED_LONG == 8
const unsigned long expect = 4029223418961680680;
- const unsigned long actual = scm_to_ulong (scm_symbol_hash (sym));
+#elif SIZEOF_UNSIGNED_LONG == 4
+ const unsigned long expect = 938126682;
+#else
+#error "unsigned long not 4 or 8 bytes (need additonal test data)"
+#endif
+ const unsigned long actual = scm_to_ulong (scm_symbol_hash (sym));
if (actual != expect)
{
fprintf (stderr, "fail: unexpected utf-8 symbol hash (%lu != %lu)\n",
--
cgit v1.1

View File

@ -0,0 +1,22 @@
These tests fail on ZFS, apparently.
--- a/test-suite/tests/ports.test
+++ b/test-suite/tests/ports.test
@@ -207,7 +207,7 @@
(throw 'unresolved)))))
(throw 'unresolved)))
- (pass-if-equal "SEEK_DATA while in hole"
+ #;(pass-if-equal "SEEK_DATA while in hole"
4096
(if (defined? 'SEEK_DATA)
(call-with-input-file file
@@ -219,7 +219,7 @@
(throw 'unresolved)))))
(throw 'unresolved)))
- (pass-if-equal "SEEK_HOLE while in hole"
+ #;(pass-if-equal "SEEK_HOLE while in hole"
10
(if (defined? 'SEEK_HOLE)
(call-with-input-file file

View File

@ -1,42 +1,33 @@
# Template file for 'guile'
pkgname=guile
version=2.2.7
revision=3
version=3.0.10
revision=1
build_style=gnu-configure
configure_args="--disable-static --disable-error-on-warning"
hostmakedepends="pkg-config texinfo"
configure_args="--disable-static --disable-error-on-warning
--with-libgmp-prefix=${XBPS_CROSS_BASE}/usr
--with-libunistring-prefix=${XBPS_CROSS_BASE}/usr
--with-libreadline-prefix=${XBPS_CROSS_BASE}/usr"
hostmakedepends="automake pkg-config texinfo"
makedepends="gc-devel gmp-devel libatomic_ops-devel libffi-devel libltdl-devel
libunistring-devel readline-devel"
short_desc="Portable, embeddable Scheme implementation written in C"
maintainer="Orphaned <orphan@voidlinux.org>"
maintainer="Anjandev Momi <anjan@momi.ca>"
license="GPL-3.0-or-later, LGPL-3.0-or-later"
homepage="http://www.gnu.org/software/guile"
distfiles="${GNU_SITE}/${pkgname}/${pkgname}-${version}.tar.gz"
checksum=44b4c5fbbe257ccdebea18420212c9b3e90c3c86a54920d8554039fc6769a007
subpackages="libguile guile-devel"
if [ "$XBPS_ENDIAN" != "$XBPS_TARGET_ENDIAN" ]; then
broken="opposite-endian host generates broken files"
fi
if [ "$XBPS_TARGET_LIBC" = "glibc" ]; then
makedepends+=" libxcrypt-devel"
fi
distfiles="${GNU_SITE}/guile/guile-${version}.tar.gz"
checksum=2dbdbc97598b2faf31013564efb48e4fed44131d28e996c26abe8a5b23b56c2a
if [ "$CROSS_BUILD" ]; then
# Need host guile to cross compile
export GUILE_FOR_BUILD=/usr/bin/guile
hostmakedepends+=" guile"
fi
post_extract() {
# broken files causing crash
rm -rf prebuilt/32-bit-big-endian
}
libguile_package() {
short_desc+=" - runtime library"
pkg_install() {
vmove "usr/lib/*.so.*"
vmove "usr/lib/guile/3.0/extensions/guile-readline.so.*"
vmkdir usr/share/gdb/auto-load/usr/lib
mv ${PKGDESTDIR}/usr/lib/*.scm ${PKGDESTDIR}/usr/share/gdb/auto-load/usr/lib
}
@ -44,7 +35,7 @@ libguile_package() {
guile-devel_package() {
short_desc+=" - development files"
depends="gmp-devel gc-devel guile>=${version}_${revision} libatomic_ops-devel"
depends="gmp-devel gc-devel guile>=${version}_${revision}"
pkg_install() {
vmove usr/bin/guile-config
vmove usr/include