[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: GSOC draft
From: |
Ludovic Courtès |
Subject: |
Re: GSOC draft |
Date: |
Sat, 26 Mar 2016 15:15:09 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) |
Alex Vong <address@hidden> skribis:
> First, I have withdrawn my proposal since I think it is not good enough.
> Of course I will be exploring guix during summer, since it is a fun
> thing to do. My original thought is to first port a working make-like
> tool and then change it to output g-exps instead of actually performing
> the build.
OK.
>> 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)
>>
> Thanks for the link to the paper. The paper mentioned nix expression. Is
> that what g-exp based on?
G-exps borrow from s-exps (obviously), client-side expression quoting in
HOP¹ (~ and $ come right from there; HOP implements things using
built-in compiler tricks whereas g-exps simply rely on macros, and of
course HOP and g-exps both implement staging but with different
constraints/goals), and string interpolation in Nix.
> What are their name in the case of store-monad?
(guix monads) provides ‘>>=’ and ‘return’. There’s additional syntactic
sugar such as ‘mlet’, and helpers such as ‘lift’, ‘foldm’, ‘mapm’, etc.
This is partly covered in:
https://www.gnu.org/software/guix/manual/html_node/The-Store-Monad.html
(Most of the section is not specific to ‘%store-monad’.)
>> There’s also this defunct project about a Make replacement in Guile (not
>> connected to Guix and Nix):
>>
>> http://home.gna.org/conjure/
>>
> The homepage does not mention guile, is conjure written in guile?
It’s written in Guile I think. Just mentioned it as a possible source
of inspiration for the EDSLs or APIs it provides.
> Finally, I suggest talking about the monad in the next Guix talks,
> I "assert" people will love it!
Heh, noted. :-)
Thanks,
Ludo’.
¹ http://hop.inria.fr