Mailing List Archive

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

Re: [tlug] A First Hello

On Thu, 16 Jul 2020 at 08:20, <> wrote:

Neat! It's exciting to hear that companies like yours are taking an interest in
reproducible builds.

Yes, we're using Nix to power a monorepo. It's quite good out of the box, since it caches everything that you've ever built, forever (for some definition of "everything" and "forever"), and we've gone a step further and added stuff that can detect what has changed in your branch between its head and where you branched off main so that we can deploy only services that have changed, instead of deploying everything all the time.

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.

I feel pretty strongly that it's the future, having used it professionally for almost 2 years in this monorepo project.
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.

Sounds very nice!
> How do they solve the laziness problem (Guile is eager by default, IIRC)?

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.

Yes, that's exactly what I meant. :)
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.

Interesting. I'll have to mess around with it at some point.

Home | Main Index | Thread Index

Home Page Mailing List Linux and Japan TLUG Members Links