Mailing List Archive


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

Re: [tlug] A First Hello



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.


Home | Main Index | Thread Index

Home Page Mailing List Linux and Japan TLUG Members Links