unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: "jgart" <jgart@dismail.de>
To: "Simon Tournier" <zimon.toutoune@gmail.com>,
	"Suhail" <suhail@bayesians.ca>
Cc: guix-devel@gnu.org
Subject: Re: guix shell init
Date: Wed, 25 Oct 2023 14:12:23 +0000	[thread overview]
Message-ID: <5ba7bbae3c841d2475f53a06ebc73298@dismail.de> (raw)
In-Reply-To: <86h6mfc6ha.fsf@gmail.com>

> 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


  parent reply	other threads:[~2023-10-25 14:13 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-10-25  4:18 guix shell init Suhail
2023-10-25  4:24 ` jgart
2023-10-25 10:58   ` Simon Tournier
2023-10-25  4:27 ` jgart
2023-10-25  4:29 ` jgart
2023-10-25 11:00   ` Simon Tournier
2023-10-25 14:12   ` jgart [this message]
2023-11-29 16:05     ` Simon Tournier
  -- strict thread matches above, loose matches on Subject: below --
2023-10-25  4:40 Suhail
2023-10-25  2:24 jgart
2023-10-25 11:10 ` Simon Tournier
2023-10-25 13:52 ` jgart

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5ba7bbae3c841d2475f53a06ebc73298@dismail.de \
    --to=jgart@dismail.de \
    --cc=guix-devel@gnu.org \
    --cc=suhail@bayesians.ca \
    --cc=zimon.toutoune@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).