Subject: Re: [bug#65482] [PATCH 0/3] gnu: racket: Update to 8.10.

From: Philip McGrath <[email-masked]>
Date: Mon, 4 Sep 2023 17:21:54 -0400

Hi,

On 9/4/23 10:17, Efraim Flashner wrote:
> On Sat, Sep 02, 2023 at 09:59:23PM -0400, Philip McGrath wrote:
>> tags 65482 + security
>> quit
>>
>> On 8/23/23 20:05, Philip McGrath wrote:
>>> Hi,
>>>
>>> In addition to updating Racket to 8.10, this patch series backports fixes
>>> merged upstream for rktboot on architectures other than x86_64 and removes
>>> a corresponding workaround from the Guix packaging.
>>>
>>> [...]
> 
> Sorry for just getting to this now. As far as it working on riscv64, the
> test suite for racket didn't pass before, so there's no real possibility
> of regression on Guix's end. Currently it fails while building
> chez-scheme-for-racket-9.9.9-pre-release.17, but if upstream didn't
> notice then that's something else.
> 
> starting phase `configure'
> source directory: "/tmp/guix-build-chez-scheme-for-racket-9.9.9-pre-release.17.drv-0/source/racket/src/ChezScheme" (relative from build: "../ChezScheme")
> build directory: "/tmp/guix-build-chez-scheme-for-racket-9.9.9-pre-release.17.drv-0/source/racket/src/build"
> configure flags: ("--disable-x11" "--threads" "-m=trv64le" "--installcsug=/gnu/store/c66pkyb1kvbi0jn1shanxrzbjvfqjmqf-chez-scheme-for-racket-9.9.9-pre-release.17-doc/share/doc/chez-scheme-for-racket-9.9.9-pre-release.17/csug" "--installreleasenotes=/gnu/store/c66pkyb1kvbi0jn1shanxrzbjvfqjmqf-chez-scheme-for-racket-9.9.9-pre-release.17-doc/share/doc/chez-scheme-for-racket-9.9.9-pre-release.17/release_notes" "--installprefix=/gnu/store/bqjwn04ix8xd9bwdni861244yza75qrf-chez-scheme-for-racket-9.9.9-pre-release.17" "ZLIB=-lz" "LZ4=-llz4" "--libkernel" "--nogzip-man-pages")
> No suitable machine type found in "../ChezScheme/boot".
> 
> Available machine types:
>    tpb64l
> 
> See "../ChezScheme/BUILDING" for ways of getting boot files.
> 
> I'll see about fixing the missing files or configure options. Don't let
> it not building on riscv64 delay this update though.
> 

Thanks for this report! I would have expected that to work, and it's 
tricky to test without hardware.

Before getting into the weeds, I agree with you that it shouldn't block 
the update, especially if it was already broken. I'm not a Guix 
committer, but as far as I'm concerned this series is ready to merge.

As far as riscv64, it looks like 
chez-scheme-for-racket-bootstrap-bootfiles created "portable bytecode" 
bootfiles ("tpb64l") instead of native riscv64 ones. You can confirm if 
that is the problem (or at least *a* problem) by checking if the 
lib/chez-scheme-bootfiles directory in the bootstrap package's output 
contains a directory named "tpb64l" instead of "trv64le".

If that is indeed the problem, most likely either there is a bug in my 
change to rktboot's auto-detection or there were additional 
auto-detection bugs I didn't find.

One way things could have gone wrong is if Racket BC returned something 
unexpected from (system-library-subpath #f). It would help to confirm 
the results of that, (system-type 'os*), and (system-type 'arch).

In principle, if the problem is only with rktboot's auto-detection, it 
should work to just keep supplying the explicit --machine flag for now, 
i.e. drop patch 3/3 from this series.

Racket doesn't have CI on riscv64 or distribute builds for it, but 
Matthew Flatt did share a nice screenshot earlier this summer of 
DrRacket running on a STAR64 :)

Philip