Debian Patches

Status for guile-3.0/3.0.10+really3.0.10-4

Patch Description Author Forwarded Bugs Origin Last update
0001-Mark-mutex-with-owner-not-retained-threads-test-as-u.patch Mark "mutex with owner not retained" threads test as unresolved.
As per discussion with upstream, mark this test as unresolved since it
may produce false negatives, depending on the behavior/timing of the
garbage collector.
Rob Browning <rlb@defaultvalue.org> no 2012-03-18
0002-Look-for-guile-procedures.txt-in-pkglibdir.patch Look for guile-procedures.txt in pkglibdir
Look for guile-procedures.txt in %guile-build-info's pkglibdir first
since the content is not architecture independent.
Rob Browning <rlb@defaultvalue.org> yes debian upstream 2016-08-12
0003-Disable-sandbox.test-1e6-alloc-loop-allocation-limit.patch Disable sandbox.test "1e6 alloc loop" "allocation limit" test
The test suite would eventually hang on sandbox.test when run in a "make
-j5 check" loop. The last test printed to the log was the one before
"1e6 alloc loop", and after commenting out that test, the loop doesn't
appear to hang, so disable it for now.
Rob Browning <rlb@defaultvalue.org> no 2018-02-20
0004-gc.test-after-gc-hook-mark-unresolved-on-failure-eve.patch gc.test: after-gc-hook - mark unresolved on failure (everywhere)
Previously this was done for just mips and mipsel,
59d9bcd468aab0d97d763595fd4e934044dc7590 "gc.test: after-gc-hook - mark
unresolved on failure for mips(el)", and then
fd4ba18bca1c6000fc0dd417a5b489e1ac60e0d9 "Fix gc.test "after-gc-hook
gets called" failures" attempted to fix it upstream, but as of 2.2.6
it's failing again, this time on amd64, so just mark it as unresolved
everywhere for now.
Rob Browning <rlb@defaultvalue.org> yes debian upstream 2019-09-01
0005-Mark-test-out-of-memory-as-an-expected-failure-for-n.patch Mark test-out-of-memory as an expected failure for now
Since this test has been failing for a long time on various
architectures, mark it as expected to fail for now so that we'll still
run it and can see the results, but won't be blocked by it.

There are known issues with the test upstream, and at least in some past
cases it's been possible to reproduce the failure quickly by running
test-suite/standalone/test-out-of-memory in a loop.
Rob Browning <rlb@defaultvalue.org> yes debian upstream 2018-02-20
0006-numbers.test-disable-unresolved-mixed-type-division-.patch numbers.test: disable unresolved "mixed type" division tests on i686 Rob Browning <rlb@defaultvalue.org> yes debian upstream 2020-09-12
0007-Fix-32-bit-big-endian-builds-via-Oresolve-primitives.patch Fix 32-bit big endian builds via -Oresolve-primitives -Ocps
Specify -Oresolve-primitives -Ocps during bootstrapping builds to fix
build failures on 32-bit big endian architectures.

Thanks to John David Anglin for reporting the problem and investigating
the problem, and to John Paul Adrian Glaubitz for helping devise the
solution.
Rob Browning <rlb@defaultvalue.org> yes debian upstream 2018-02-20
0008-test-hashing-support-32-bit.patch test-hashing: support 32-bit
* test-suite/standalone/test-hashing.c (test_hashing): add expected
value for 32-bit architectures.
Rob Browning <rlb@defaultvalue.org> no upstream, commit ad1f56675be58fbb7bfee6fab166ff5bf0b36a11 2024-07-01
0009-More-thorough-lowering-of-lognot-to-CPS.patch More thorough lowering of lognot to CPS
* module/language/tree-il/compile-cps.scm (canonicalize): Lower to a
logxor with -1.
Andy Wingo <wingo@pobox.com> no upstream, commit 7aa4cfa9ded582952e16235d8aa634ada22febf2 2024-08-13
0010-Fix-intset-fold-right-on-transient-intsets.patch Fix intset-fold-right on transient intsets
* module/language/cps/intset.scm (make-intset-folder): intset-fold-right
on a transient intset would dispatch to left fold after making the
persistent set. Sadness!
Andy Wingo <wingo@pobox.com> no upstream, commit d0790d766bedf08fb65231eff53f6c8044eb94f1 2024-08-15
0011-Add-a-workaround-for-pre-3.0.10-incorrect-inlinable-.patch Add a workaround for pre-3.0.10 incorrect inlinable exports
* module/language/tree-il/peval.scm (peval)
(inlinable-kwargs-bug-fixup): Before 3.0.10, the inlinable exports pass
was incorrectly serializing functions with keyword arguments. This was
fixed in 2c645571b351a0044911847025b666551a8e4fb5, but that meant that
3.0.10 compiling against 3.0.9 binaries could raise an exception at
compile-time; whoops. Add a workaround so that 3.0.9 binaries still
work.

Fixes https://issues.guix.gnu.org/72936.
Andy Wingo <wingo@pobox.com> no upstream, commit 90e1205018f13c86355517c85db8cf82952c6e98 2024-09-23
0012-Remove-needless-constraints-in-type-range-analysis.patch Remove needless constraints in type/range analysis
* module/language/cps/types.scm
(ulogand, ulogand/immediate, ulogsub, ulogior, ulogxor): Where we have
u64 inputs, there's no need to `restrict!`; the range will come from the
definition.
Andy Wingo <wingo@pobox.com> no upstream, commit d6af34c0e085d785e89a64089de9779282874a2f 2024-09-23
0013-Narrow-parameter-of-logand-immediate-if-no-bits-used.patch Narrow parameter of logand/immediate if no bits used
* module/language/cps/specialize-numbers.scm (specialize-operations):
Narrow ulogand/immediate param according to used bits.
Andy Wingo <wingo@pobox.com> no upstream, commit 5e6288c9304b60f1875a44808ee3858e3d6efc83 2024-09-23
0014-Partially-revert-d579848cb5d65440af5afd9c89686286655.patch Partially revert d579848cb5d65440af5afd9c8968628665554c22
* module/language/cps/specialize-numbers.scm (specialize-operations):
Accept any operand to logand/immediate, provided the result is a u64 in
the right range.
Andy Wingo <wingo@pobox.com> no upstream, commit b04071cc579e7b9d38d0c999e731bdd94b7f7a78 2024-09-24
0015-Fix-fixpoint-needed-bits-computation-in-specialize-n.patch Fix fixpoint needed-bits computation in specialize-numbers
* module/language/cps/specialize-numbers.scm (next-power-of-two): Use
integer-length. No change.
(compute-significant-bits): Fix the fixpoint computation, which was
failing to complete in some cases with loops.
Andy Wingo <wingo@pobox.com> no upstream, commit 0dab58fc2a6ac6a8354439749d598f8c24f57ddd 2024-09-25
0016-Fix-boxing-of-non-fixnum-negative-u64-values.patch Fix boxing of non-fixnum negative u64 values
* module/language/cps/specialize-numbers.scm (u64->fixnum/truncate): New
helper.
(specialize-operations): Fix specialized boxing of u64 values to
truncate possibly-negative values, to avoid confusing CSE. Fixes
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=71891.
Andy Wingo <wingo@pobox.com> no upstream, commit e45b70dcded37eb77e71ec30445b12040b6bb1b7 2024-09-25
0017-Tighten-up-range-inference-for-scm-u64-truncate.patch Tighten up range inference for scm->u64/truncate
* module/language/cps/types.scm (scm->u64/truncate): Better range
analysis.
Andy Wingo <wingo@pobox.com> no upstream, commit 30c3849092b17a56b9b74dd23da121afc5076e08 2024-09-25
0018-Run-sigbits-fixpoint-based-on-use-def-graph-not-cfg.patch Run sigbits fixpoint based on use/def graph, not cfg
* module/language/cps/specialize-numbers.scm (sigbits-ref): New helper.
(invert-graph*): New helper.
(compute-significant-bits): When visiting a term changes computed
needed-bits for one of its definitions, we need to revisit the variables
that contributed to its result (the uses), because they might need more
bits as well. Previously we were doing this by enqueueing predecessors
to the term, which worked if the uses were defined in predecessors, or
if all defining terms were already in the worklist, which is the case
without loops. But with loops, when revisiting a term, you could see
that it causes sigbits to change, enqueue its predecessors, but then the
predecessors don't change anything and the fixpoint stops before
reaching the definitions of the variables we need. So instead we
compute the use-def graph and enqueue defs directly.
Andy Wingo <wingo@pobox.com> no upstream, commit aff9ac968840e9c86719fb613bd2ed3c39b9905c 2024-09-26
0019-Compile-with-fexcess-precision-standard-for-i-3456-8.patch Compile with -fexcess-precision=standard for i[3456]86 when we can
* configure.ac: when -fexcess-precision=standard is available and we're
building for i[3456]86, use it. This fixes floating point precision
problems caused by x87 (80-bit) floating point, and detected by
numbers.test.
Rob Browning <rlb@defaultvalue.org> no upstream, commit 9b1effb58579821ffa9357df808d5264e45fb30c 2024-10-05
0020-Eight-byte-align-statically-allocated-stringbufs.patch Eight byte align statically allocated stringbufs
Previously they were unaligned, unlike their parent strings, and so
could end up with the wrong pointer tag. Observed on i686-linux-gnu,
where they ended up tagged as immediates (SCM_IMP()), causing failures
in TYP7 related checks.

* libguile/strings.h (SCM_IMMUTABLE_STRINGBUF): align resulting buffer
via SCM_ALIGNED(8).
Rob Browning <rlb@defaultvalue.org> no upstream, commit 76afb429ee7a8a4c9eddb20bf29a2246192f8a28 2024-11-28
0021-Mark-inter-protocol-attack-test-unresolved-if-write-.patch Mark inter-protocol attack test unresolved if write-request fails
This happens with some frequency during parallel test runs, and the
same (apparent) failure can eventually be triggered by repeated
moreutils parallel invocations like this in a built tree:

parallel -j 3 ./check-guile -- \
00repl-server.test 00repl-server.test 00repl-server.test
Rob Browning <rlb@defaultvalue.org> no 2025-01-14
0022-tests-Skip-hole-related-port-tests-on-Darwin.patch tests: Skip hole-related port tests on Darwin.
Hole are itself a file-system specific feature and they are not
mandated. While APFS does support sparse files, they do not behave like
on Linux. I did not discover exact rules, but the file needs to be
large (100s of kB at least) and the holes are not aligned as the test
code expects. So just disable them.

* test-suite/tests/ports.test (skip-on-darwin): New procedure.
("size of sparse file", "SEEK_DATA while on data")
("SEEK_DATA while in hole", "SEEK_HOLE while in hole"): Skip on Darwin.
Tomas Volf <~@wolfsden.cz> no upstream, commit 21e3e1c420ace116961ecdf0001c289c28fa73c6 2024-08-10
0023-Skip-ports.test-seek-tests-unless-filesystem-looks-s.patch Skip ports.test seek tests unless filesystem looks suitable
For now, only test on filesystems that we know have the expected
semantics, i.e. btrfs, ext4, and xfs.
Rob Browning <rlb@defaultvalue.org> no 2025-01-15
0024-fport_print-handle-ttyname-ENODEV.patch fport_print: handle ttyname ENODEV
In some situations, ttyname may return ENODEV even though isatty is
true. From ttyname(3):

A process that keeps a file descriptor that refers to a pts(4) device
open when switching to another mount namespace that uses a different
/dev/ptmx instance may still accidentally find that a device path of
the same name for that file descriptor exists. However, this device
path refers to a different device and thus can't be used to access the
device that the file descriptor refers to. Calling ttyname() or
ttyname_r() on the file descriptor in the new mount namespace will
cause these functions to return NULL and set errno to ENODEV.

Observed in a Debian riscv64 porterbox schroot.

When ttyname fails with ENODEV, just include the file descriptor integer
value instead. Call ttyname() rather than scm_ttyname() to avoid some
extra work and having to catch the ENODEV.

* libguile/fports/c: include the integer fd when ttyname() fails with
ENODEV.
Rob Browning <rlb@defaultvalue.org> no 2025-01-17

All known versions for source package 'guile-3.0'

Links