[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