[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: GSOC draft
From: |
Ludovic Courtès |
Subject: |
Re: GSOC draft |
Date: |
Fri, 25 Mar 2016 14:14:49 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) |
Hi, Alex!
Alex Vong <address@hidden> skribis:
> Deliverable:
> An extensible working bare-bone build system in Guile
> Plan:
> Idea:
> Autotool separates the configure phase and the build phase,
> in which the configure phase is responsible of probing feature
> provided by system, while the build phase actually does dependency
> tracking
> and performs the build. This is not optimal since global variables has to
> pass to another phase, one has to make sure to perform the probing
> in the right order. Also, many probing are done regardless whether they
> are needed. This causes performance issue when the result is not cached.
> So, the idea is to integrate the 2 phases,
> so that every declaration is approximately:
> (target (input ...) rule-to-make-target-from-input)
> and rule-to-make-target-from-input should return a Boolean indicates
> if the build succeed.
> For instance we can probe the C compiler using the following rule:
> (gcc () (and=> (return-path-of-gcc-if-exist-else-return-false)
> (lambda (path) (make-c-compiler path))))
> Proof of concept:
> Incomplete port of Chicken port of PLT (now Racket) make module in Guile.
> See build instruction of <https://gitlab.com/alexvong1995/calc>,
> it uses that incomplete port to build.
> 1. Port the Chicken port of PLT (now Racket) make module to Guile.
> 2. Rewrite the make macro using syntax-rules.
> 3. Add support for feature probing.
> 4. Add support for multiple targets. (mid-term?)
> 5. Add support for parallel build and opportunistic execution.
> 6. Discuss with mentor to proceed.
>From this message it is not entirely clear to me whether Guix would be
used at all, and how things would fit together. I believe it would make
a lot of sense to use Guix to build such a thing but then of course, it
would only work for users would have a running guix-daemon.
WDYT?
I would suggest looking at the prototype Make replacement that Eelco
Dolstra wrote as part of his PhD thesis on Nix:
http://nixos.org/~eelco/pubs/phd-thesis.pdf (Chapter 10)
There’s also this defunct project about a Make replacement in Guile (not
connected to Guix and Nix):
http://home.gna.org/conjure/
Maybe Pjotr has other comments.
Thanks,
Ludo’.
- GSOC draft, Alex Vong, 2016/03/23
- Re: GSOC draft,
Ludovic Courtès <=