[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#57050] [PATCH 0/6] gnu: Update Racket to 8.6. Add Zuo.
From: |
Philip McGrath |
Subject: |
[bug#57050] [PATCH 0/6] gnu: Update Racket to 8.6. Add Zuo. |
Date: |
Thu, 11 Aug 2022 00:00:08 -0400 |
User-agent: |
Cyrus-JMAP/3.7.0-alpha0-811-gb808317eab-fm-20220801.001-gb808317e |
Hi Thiago,
On Wed, Aug 10, 2022, at 11:30 AM, Thiago Jung Bauermann wrote:
> Hello Philip,
>
> Philip McGrath <philip@philipmcgrath.com> writes:
>
>> This patch series contains the Racket 8.6 release, including updating
>> Racket's
>> variant of Chez Scheme and adding a package for Zuo, the new tiny Racket-like
>> language used for build scripts starting with this release.
>>
>> (If you've been waiting for the release announcement, this cycle upstream is
>> delaying sending it until the new Racket has finished rebuilding all
>> of <https://docs.racket-lang.org>, which can take a few days---but the
>> release
>> itself is live at <https://download.racket-lang.org> already, and I've been
>> told distribution packagers should update now.)
>>
>> As I mentioned on the mailing list in [1], this release lets us use Racket CS
>> and Racket's variant of Chez Scheme on all systems, even those for which the
>> compiler can not yet generate native code, such as powerpc64le-linux and
>> riscv64-linux. (See the relevant patches for more details.) In particular,
>> this means that we can now provide some Chez Scheme package for every system
>> Guix supports.
>
> I tried building the zuo branch from your gitlab repo (commit
> 00975c823227 “gnu: chez-scheme-for-racket: Suport all systems.” from
> August 8th) on powerpc64le-linux and had this build failure in
> chez-scheme-for-racket-bootstrap-bootfiles-9.5.9.2:
>
> --8<---------------cut here---------------start------------->8---
> starting phase `build'
> Assuming current directory has Chez Scheme sources
> Use
> /tmp/guix-build-chez-scheme-for-racket-bootstrap-bootfiles-9.5.9.2.drv-0/source/racket/src/ChezScheme/rktboot/.
> Use
> /tmp/guix-build-chez-scheme-for-racket-bootstrap-bootfiles-9.5.9.2.drv-0/source/racket/src/ChezScheme/nanopass
> Use
> /tmp/guix-build-chez-scheme-for-racket-bootstrap-bootfiles-9.5.9.2.drv-0/source/racket/src/ChezScheme/s
> Check
> /tmp/guix-build-chez-scheme-for-racket-bootstrap-bootfiles-9.5.9.2.drv-0/source/racket/src/ChezScheme/boot/tpb64l
> Load nanopass
> Apply nanopass patch
> Load cmacros parts
> Load enum
> Load cprep
> Load expander
> Install evaluator
> Load cmacros using expander
> Continue loading expander
> Initialize system libraries
> Load nanopass using expander
> Load priminfo and primvars
> Load expander using expander
> Initialize system libraries in bootstrapped expander
> Declare nanopass in bootstrapped expander
> Load some io.ss declarations
> Load some strip.ss declarations
> Load some 7.ss declarations
> Load most front.ss declarations
> Define $filter-foreign-type
> Load mkheader
> Generate headers
> Load mkgc
> Generate GC
> Load ftype.ss
> Load fasl.ss
> Load reloc.ss
> Load format.ss
> Load cp0.ss
> Load cpvalid.ss
> Load cpcheck.ss
> Load cpletrec.ss
> Load cpcommonize.ss
> Load cpnanopass.ss
> error: in phase 'build': uncaught exception:
> %exception #<&invoke-error program:
> "/gnu/store/f72x3mdyagp67ybwdy9cqqsid9v8jk9l-racket-vm-bc-8.6/opt/racket-vm/bin/racket"
>
> arguments: ("rktboot/main.rkt" "--machine" "tpb64l") exit-status: 1
> term-signal: #f stop-signal: #f>
> phase `build' failed after 707.9 seconds
> command
> "/gnu/store/f72x3mdyagp67ybwdy9cqqsid9v8jk9l-racket-vm-bc-8.6/opt/racket-vm/bin/racket"
>
> "rktboot/main.rkt" "--machine" "tpb64l" failed with status 1
> --8<---------------cut here---------------end--------------->8---
>
> I didn't have the chance yet to dig into why rktboot/main.rkt is
> failing. If you have any tips on how to find more details on what is
> going on (e.g., is there some verbose flag that can be passed to it?) I
> can try to investigate.
>
Thanks very much for this report!
I am going to report this upstream at
<https://racket.discourse.group/t/chez-for-architectures-without-native-backends/950/>,
because I don't know much I can do to pin down what's going wrong. When
cross-compiling, the bootfiles are built with Chez Scheme rather than
bootstrapped via Racket BC (because it is 10x faster), but I just tried
manually running rktboot for tpb64l from my x86_64-linux machine, and it worked
for me.
One thing that would help is if you can try to reproduce this outside of the
Guix build environment. You can get the source either checking out
<https://github.com/racket/racket> at the v8.6 tag or by downloading and
unpacking
<https://download.racket-lang.org/releases/8.6/installers/racket-minimal-8.6-src.tgz>.
Navigate to the Chez Scheme source directory, which is "racket/src/ChezScheme"
in the Git repository or just "src/ChezScheme" in the tarball. You can run
rktboot even with an old Racket, so try something like:
guix shell --container racket-minimal -- racket rktboot/main.rkt --machine
tpb64l
If it works, you could try building Racket and/or Chez Scheme, if you want.
Even if it doesn't work, you may be able to build Racket and/or Chez Scheme,
because Racket distributes "pb" bootfiles (not specialized to word size and
endianness) that can be used for bootstrapping. To build Chez Scheme, you
probably will need to configure with:
-m=tpb64l --threads --enable-libffi "CFLAGS=-g -O2 -D_REENTRANT -pthread"
"LIBS=-lm -ldl -lrt -lffi -lncurses"
Racket is built from the parent of the Chez Scheme source directory, and you
will probably need to configure with:
--enable-pb --enable-mach=tpb64l
If you are trying to build Chez Scheme or Racket (as opposed to just the
bootfiles) from the Git repository and "rktboot" doesn't work, you'll need to
run `make pb-fetch` in the root directory of the checkout to get the "pb"
bootfiles. More details about options for building from the Git repository are
documented at <https://docs.racket-lang.org/racket-build-guide/>, which is also
rendered to "build.md" in the root directory of the Git repository itself.
Thanks again for trying this!
-Philip
- [bug#57050] [PATCH 3/6] gnu: chez-scheme: Fix use of "/bin/sh"., (continued)
[bug#57050] [PATCH 1/6] gnu: stex: Update to 1.2.2-2.afa6075., Philip McGrath, 2022/08/08
[bug#57050] [PATCH 4/6] gnu: Update Racket to 8.6. Add Zuo., Philip McGrath, 2022/08/08
[bug#57050] [PATCH 0/6] gnu: Update Racket to 8.6. Add Zuo., Thiago Jung Bauermann, 2022/08/10
- [bug#57050] [PATCH 0/6] gnu: Update Racket to 8.6. Add Zuo.,
Philip McGrath <=
- [bug#57050] [PATCH v2 03/13] gnu: chez-scheme: Fix use of "/bin/sh"., Philip McGrath, 2022/08/11
- [bug#57050] [PATCH v2 04/13] gnu: Add Zuo., Philip McGrath, 2022/08/11
- [bug#57050] [PATCH v2 04/13] gnu: Add Zuo., Liliana Marie Prikler, 2022/08/11
- [bug#57050] [PATCH v2 04/13] gnu: Add Zuo., Philip McGrath, 2022/08/11
- [bug#57050] [PATCH v2 04/13] gnu: Add Zuo., Liliana Marie Prikler, 2022/08/11
- [bug#57050] [PATCH v2 04/13] gnu: Add Zuo., Philip McGrath, 2022/08/11