bug-guix
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#42771: smalltalk fails to build


From: Miguel Ángel Arruga Vivas
Subject: bug#42771: smalltalk fails to build
Date: Mon, 28 Dec 2020 12:42:56 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux)

Hi,

I've been investigating just a bit about this.

Ludovic Courtès <ludo@gnu.org> writes:

> (1) investigate why the test is failing (I think it’s a single test
> failure here),

Currently there are two main problems with 3.2.5:

  - Integer multiplication overflow handling invokes undefined behavior,
    which is "cleaned up" by the compiler.  This is why
    [ 100 fact / 99 fact ] returns <new> 0, and it's solved with the
    first patch---trimmed down from the upstream patch, to avoid
    conflicts.

   - ANSI test suite fails with errors like these:
----------------------------------8<-----------------------------------
--- /dev/null   2020-12-24 20:38:33.836725540 +0000
+++ 
/tmp/guix-build-smalltalk-3.2.5.drv-0/smalltalk-3.2.5/tests/testsuite.dir/at-groups/47/stderr
       2020-12-28 09:25:57.283891452 +0000
@@ -0,0 +1,13 @@
+gst: Aborted
+gst: Error occurred while not in byte code interpreter!!
+/tmp/guix-build-smalltalk-3.2.5.drv-0/smalltalk-3.2.5/libgst/.libs/libgst.so.7(+0x72d97)[0x7ffff7f5ed97]
+/gnu/store/fa6wj5bxkj5ll1d7292a70knmyl7a0cr-glibc-2.31/lib/libc.so.6(+0x36b20)[0x7ffff7b3bb20]
+/gnu/store/fa6wj5bxkj5ll1d7292a70knmyl7a0cr-glibc-2.31/lib/libc.so.6(gsignal+0xca)[0x7ffff7b3baba]
+/gnu/store/fa6wj5bxkj5ll1d7292a70knmyl7a0cr-glibc-2.31/lib/libc.so.6(abort+0x165)[0x7ffff7b3cbf5]
+/tmp/guix-build-smalltalk-3.2.5.drv-0/smalltalk-3.2.5/libgst/.libs/libgst.so.7(+0x2c936)[0x7ffff7f18936]
+/gnu/store/yrwirrblml57nwga1aza6rg3l9s8qga0-libsigsegv-2.12/lib/libsigsegv.so.2(+0x128c)[0x7ffff7ee728c]
+/gnu/store/fa6wj5bxkj5ll1d7292a70knmyl7a0cr-glibc-2.31/lib/libc.so.6(+0x36b20)[0x7ffff7b3bb20]
+/tmp/guix-build-smalltalk-3.2.5.drv-0/smalltalk-3.2.5/libgst/.libs/libgst.so.7(+0x569f0)[0x7ffff7f429f0]
+/tmp/guix-build-smalltalk-3.2.5.drv-0/smalltalk-3.2.5/libgst/.libs/libgst.so.7(+0x72919)[0x7ffff7f5e919]
+/tmp/guix-build-smalltalk-3.2.5.drv-0/smalltalk-3.2.5/libgst/.libs/libgst.so.7(+0x2e4c7)[0x7ffff7f1a4c7]
+/tmp/guix-build-smalltalk-3.2.5.drv-0/smalltalk-3.2.5/tests/testsuite.dir/at-groups/47/test-source:
 line 20: 21205 Aborted                 $TIMEOUT gst $image_path -f 
$abs_srcdir/AnsiRun.st ArrayANSITest
stdout:
./testsuite.at:83: exit code was 134, expected 0
47. testsuite.at:83: 47. ArrayANSITest (testsuite.at:83): FAILED 
(testsuite.at:83)
---------------------------------->8-----------------------------------

>      (2) try to determine whether it’s serious or not,

The first one is pretty serious.  The second one might as bad as the
first one or may be a flaw on the tests and could be omitted.

>      (3) see if we can work around it with reasonable effort, and if
>      not, skip just this test.

This only should be the case when the problem is on the test side:
either it's using something we don't want to provide, as side channels,
or the check itself is buggy; never when the test is working properly
because we would be delivering buggy software after we have been warned
about it.

I cannot spot where the second error was fixed, but 3.2.91 as provided
with the second patch doesn't manifest it.

>   2. I think we should just have ‘smalltalk’ (latest release) and
>      ‘smalltalk-next’ (VCS snapshot).  Having an extra package for the
>      release candidate is not really useful IMO, and not something we
>      generally do.

The last change made to GNU Smalltalk's master branch was more than 2
years ago, the latest change affecting executable paths was February
2017.  IMHO, providing a patched release candidate (or even the
snapshot) seems the best option until the project release a new version,
as in fact we aren't providing currently a useful package.

Happy hacking!
Miguel

PS: Its build isn't reproducible:
  - gst.im has inside some kind of timestamp.  This probably needs
    changes on the source code.
  - package.xml and kernel/ folders contain different timestamps inside
    dot-star files---a wrapper to zip or something like
    reset-gzip-timestamps could solve this issue.

Attachment: 0001-gnu-smalltalk-Fix-integer-multiplication-overflow.patch
Description: fix-integer.patch

Attachment: 0002-gnu-smalltalk-Update-to-version-3.2.91.patch
Description: update-to-91.patch


reply via email to

[Prev in Thread] Current Thread [Next in Thread]