From: Andreas Reuleaux <rx@a-rx.info>
To: help-guix <help-guix@gnu.org>
Subject: Re: Packaging Idris2
Date: Sat, 20 Aug 2022 23:01:58 +0100 [thread overview]
Message-ID: <871qta8tgp.fsf@softland> (raw)
In-Reply-To: <87r11aeot8.fsf@riseup.net> (Csepp's message of "Sat, 20 Aug 2022 20:42:38 +0200")
Csepp <raingloom@riseup.net> writes:
> Pierre-Henry Fröhring <contact@phfrohring.com> 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 git@github.com: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
>> │ '("gcc@12.1.0"
>> │ "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
next prev parent reply other threads:[~2022-08-20 22:04 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-08-19 15:42 Packaging Idris2 Pierre-Henry Fröhring
2022-08-19 19:54 ` (
2022-08-20 0:11 ` Pierre-Henry Fröhring
2022-08-20 18:42 ` Csepp
2022-08-20 22:01 ` Andreas Reuleaux [this message]
2022-08-21 7:31 ` (
2022-08-21 8:42 ` Csepp
2022-08-21 10:21 ` Andreas Reuleaux
2022-08-21 10:39 ` (
2022-08-21 10:41 ` (
2022-08-21 12:31 ` zimoun
2022-08-21 23:40 ` Philip McGrath
2022-08-23 7:56 ` contact
2022-08-23 11:39 ` Csepp
2022-08-23 13:02 ` contact
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://guix.gnu.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=871qta8tgp.fsf@softland \
--to=rx@a-rx.info \
--cc=help-guix@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).