Mailing List Archive
tlug.jp Mailing List tlug archive tlug Mailing List Archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]Re: [tlug] A First Hello
- Date: Thu, 16 Jul 2020 15:13:46 +0900
- From: eizietheez@example.com
- Subject: Re: [tlug] A First Hello
- References: <1ZASA5MAM14V6.20J0ZIWNPWZUB@wilsonb.com> <CAFv52OCFy-B7FOvMsh4rt2WiSDyD+3gwHSX5Vx9k_-RK9rCqzg@mail.gmail.com>
- User-agent: mblaze/0.7
Hello Josh, > Welcome! Thanks! > > the reproducibility bug has bit me > > hard and now I am slowly migrating over to Guix. > > > > Ooh, aah! I'm using Nix heavily at work (I don't have a personal machine to > try out NixOS on at the moment, or I'd probably run it at home too), and > certainly find the Nix language a bit of a PITA. As a Lisp enthusiast, Guix > sounds really interesting. Is it using standard Guile or a subset? Neat! It's exciting to hear that companies like yours are taking an interest in reproducible builds. From the inside it certainly feels like the future, but it's also hard to tell if this is just a product of having one's head deep in this stuff. Guix uses full Guile. It's "Just Guile code." You can even drop into a guile repo with access to all guix-related modules by simply issuing `guix repl`. From there it's easy to mess around with the store etc if you so wish. Package definitions are just guile records. One of the nice advantages over Nix is that *everything* is Guile. One of the messier things with Nix is that it mixes shell scripting along with the Nix language. Guix is just Guile everywhere. It has a nice quote-like syntax, called G-expressions, that replace the function of shell scripts in Nix. > How do > they solve the laziness problem (Guile is eager by default, IIRC)? Yes, Guile isn't lazily evaluated. I'm not sure what you mean by "laziness problem" though. My Nix knowledge is pretty thin, but wildly guessing, I imagine you may mean that package expressions directly build the packages or something, so a strict evaluation under Nix would end up building the world every time. Guix package definitions essentially just evaluate to an s-expression that encodes the build recipe. To build a package, the build daemon then just invokes a function that "runs" the recipe. In a way, you might think of it as an explicit sort of laziness. I am still new to Guix though, so there is a lot of plumbing that I have yet to look at. Take my explanations with a grain of salt.
- Follow-Ups:
- Re: [tlug] A First Hello
- From: Josh Glover
- References:
- [tlug] A First Hello
- From: eizietheez
- Re: [tlug] A First Hello
- From: Josh Glover
Home | Main Index | Thread Index
- Prev by Date: Re: [tlug] A First Hello
- Next by Date: Re: [tlug] Introduction to (Tech) Worker Cooperatives, 09:00AM on Sunday, July 12th JST
- Previous by thread: Re: [tlug] A First Hello
- Next by thread: Re: [tlug] A First Hello
- Index(es):
Home Page Mailing List Linux and Japan TLUG Members Links