help-guix
[Top][All Lists]
Advanced

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

Re: Packaging Idris2


From: Andreas Reuleaux
Subject: Re: Packaging Idris2
Date: Sat, 20 Aug 2022 23:01:58 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux)

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




reply via email to

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