guix-devel
[Top][All Lists]
Advanced

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

Re: guix shell init


From: jgart
Subject: Re: guix shell init
Date: Wed, 25 Oct 2023 14:12:23 +0000

> Could you explain what “Nix flake” means using Guix terminology?

Hi Simon

Here's TLDR list of nix flake features and their guix equivalents (maybe):

Guix has features that overlap with flake features. What might be new nix 
features that the flakes API introduced might just be features that are built 
in to Guix by design as first class. Not all flake features are implemented or 
maybe make sense for Guix's API. This is potentially an open research question.

> Another feature of flakes is that they provide a consistent structure, which 
> makes it easier to understand and use different Nix projects. Typically, they 
> have a standard API where they provide Nix packages, NixOS modules, or other 
> standard outputs.

Guix uses guix.scm and manifest.scm for this.


> Each flake has a lock file, flake.lock, which pins exact versions of its 
> dependencies. This ensures that builds are reproducible, even across 
> different machines.

Guix has a way to do this as well, currently.

> Flake evaluations can be cached. This means that if you're working with a 
> particular set of flakes frequently, Nix won’t need to re-evaluate them every 
> time, speeding up operations.
> A feature of the nix Flake edition is that Nix evaluations are cached.
> Running nix-shell can be a bit slow and take 1-3 seconds.

Ludo fixed the caching in guix shell and wrote a post about it.

A reference for the caching thing that flakes introduced:
https://nixos.wiki/wiki/Flakes#Super_fast_nix-shell


There's also some comparison of Guix and Nix flakes here:

https://blog.benoitj.ca/2023-10-23-guix-home-configuration-part1-packages/
https://blog.benoitj.ca/2023-10-20-how-guix-compare-to-nix-and-vice-versa/


Wrapping up this email the Guix way – carefully packaged and with a sprinkle of 
flakes for good measure. Have a crunchy day ahead!

jgart



reply via email to

[Prev in Thread] Current Thread [Next in Thread]