Csepp <[email protected]> writes: > Pierre-Henry Fröhring <[email protected]> writes: > >> Well, I went from a `guix shell --container' up to `make test' passing ; >> assuming a `chez-scheme' backend (no `node' nor `racket'). It boils down >> to a shell session looking like: >> >> ┌──── >> │ $ cd ~/src/ >> │ $ git clone [email protected]:idris-lang/Idris2.git >> │ $ cd Idris2 >> │ $ ./build_idris >> └──── >> Listing 1: session >> >> I guess that an idea would be to « translate » this session into a Guix >> Package. What's the best option here? To torture the `gnu-build-system' >> until it accepts to build Idris2 or should I take the >> `trivial-build-system' route? >> Thank you. >> ― PHF >> >> ┌──── >> │ #! /usr/bin/env bash >> │ set -euo pipefail >> │ IFS=$'\n\t' >> │ >> │ cat <<'EOF' >manifest.scm >> │ (specifications->manifest >> │ '("[email protected]" >> │ "chez-scheme" >> │ "gmp" >> │ "coreutils" >> │ "bash" >> │ "make" >> │ "findutils" >> │ "git" >> │ "diffutils" >> │ "glibc" >> │ "sed" >> │ "gawk" >> │ "binutils")) >> │ EOF >> │ >> │ cat <<'EOF' >build_idris_in_container >> │ set -euo pipefail >> │ IFS=$'\n\t' >> │ >> │ echo 'Idris build configuration' >> │ set -x >> │ export PREFIX=/tmp/idris2 >> │ export SCHEME=chez-scheme >> │ export CC=gcc >> │ export INTERACTIVE='' >> │ set +x >> │ echo >> │ >> │ echo 'PATHS configuration' >> │ set -x >> │ export LD_LIBRARY_PATH=$GUIX_ENVIRONMENT/lib:$PREFIX/lib >> │ export PATH=$PATH:$PREFIX/bin >> │ set +x >> │ echo >> │ >> │ echo 'Bootstrap' >> │ make bootstrap >> │ echo >> │ >> │ echo 'Install' >> │ make install >> │ echo >> │ >> │ echo 'Self-host' >> │ make clean >> │ make all >> │ make install >> │ echo >> │ >> │ echo 'Test' >> │ make test >> │ echo >> │ >> │ echo 'Clean' >> │ rm -v manifest.scm >> │ rm -v build_idris_in_container >> │ echo >> │ EOF >> │ >> │ guix shell -C -m manifest.scm -- bash ./build_idris_in_container >> └──── >> Listing 2: build_idris >
> I'm pretty sure Lendvai Attila has a WIP package that was supposed to be > submitted as a patch "soon", which was like a year ago. > > Anyways, there are definitely already Idris 2 patches floating around > the mailing list so I'd prefer if discussion was moved there. > I'm also interested in getting it packaged, but building it takes a lot > of time. Sorry for intercepting: It does *NOT* take that much time: Just following the INSTALL instruction as in the package idris2-0.5.1.tgz (unpacked as Idris2-0.5.1 ) takes me 8 min + 25 sec roughly (bootstrapping with racket in my case / chez scheme would do as well) time make bootstrap-racket real 8m20.490s user 8m13.197s sys 0m6.841s time make install real 0m4.796s user 0m4.267s sys 0m0.532s > The Scheme bootstrap seed can be generated with Idris 1, true. But > compiling Idris 2 with Idris 1 takes such an ungodly amount of time and > RAM that expecting people to do so is maybe not a great idea. I > certainly will not be working on that. Last time I built it I needed at > least 16 gigs of swap. I have better use cases for my SSD. Sorry this is wrong: Idris2 is *NOT* built from Idris1 any more: You either build from an existing Idris2 (that means you had it successfully built/installed at least once - and are by now experienced enough, to know what's going on in your build chain), or - probably more relevant for the packaging here: You bootstrap it from scheme (chez or racket), as comes within the Idris2 tarball (and built with Idris 2 itself: Idris2 -> Chez Scheme / Racket). I am not that super familiar with Guix packaging (well have done some little bits before), but at least I got Idris 2 installed and running (well I guess you have, too [?]). But I may be able to step in with more detailed installation steps, if needed. Thanks, -A
