!9IQChSjwSHXPPWTa:lix.systems

Lix

1089 Members
Lix user channel. Feel free to discuss on-topic issues here and give each other help. For matrix.to links to the rest of the Lix channels, see: https://wiki.lix.systems/books/lix-organisation/page/matrix-rooms290 Servers

Load older messages


SenderMessageTime
28 Oct 2025
@hexa:lossy.networkhexa* I suppose accessing the filesystem like that is impure, and that's why nix copies flake repos to the store before evaling 😄 14:26:54
@somasis:matrix.orgsomasis ah, yeah I guess it would have to do with that 14:27:15
@hexa:lossy.networkhexacan you say why you need a pure repl?14:27:37
@ekler:feel-co.orgekler
•  --file ⟨#opt-file⟩ / -f file Interpret installables ⟨../../command-ref/new-cli/nix.md#installables⟩ as attribute paths relative to the Nix expression stored in file. If file is the character -, then a Nix expression will be read from standard input. Implies --impure.
14:27:41
@hexa:lossy.networkhexa

Implies --impure.

14:27:56
@hexa:lossy.networkhexaright at the very end14:28:01
@ekler:feel-co.orgekler

yes, that's my point

14:28:14
@somasis:matrix.orgsomasis oops :) 14:28:35
@somasis:matrix.orgsomasis today I've been playing around with trying to eliminate impurities from my config without using flakes. I've gotten there by trying nix flake check into doing its thing with a minimal flake.nix ({ outputs = import ./ {}; } and a well-written default.nix), but I wanted to poke around at it some more in nix repl 14:29:47
@somasis:matrix.orgsomasis today I've been playing around with trying to eliminate impurities from my config without using flakes. I've gotten there and eliminated impurities by tricking nix flake check into doing its thing with a minimal flake.nix ({ outputs = import ./ {}; } and a well-written default.nix), but I wanted to poke around at it some more in nix repl 14:30:04
@somasis:matrix.orgsomasis I guess there's still not reallly a way to actually do pure evaluation on a path from within the repl without flakes then... doing nix store add-path ~/src/puter and trying nix repl --pure-eval and import /nix/store/jldwja0ddd64hawb7qahhgknws11i1iy-puter, despite being a store path, gives the "access to absolute path ... is forbidden in pure eval mode" error 14:52:11
@somasis:matrix.orgsomasis I guess there's still not reallly a way to actually do pure evaluation on a path from within the repl without flakes then... doing nix store add-path ~/src/puter and trying nix repl --pure-eval and :l /nix/store/jldwja0ddd64hawb7qahhgknws11i1iy-puter, despite being a store path, gives the "access to absolute path ... is forbidden in pure eval mode" error 14:52:33
@yuka:yuka.devYureka (she/her)you can do builtins.fetchGit15:05:24
@yuka:yuka.devYureka (she/her)with a rev15:05:26
@yuka:yuka.devYureka (she/her)on a local repo15:05:47
@somasis:matrix.orgsomasis aha, that does work :) 15:07:41
@yuka:yuka.devYureka (she/her)

for example:

nix repl --pure-eval --expr "import (builtins.fetchGit { url = ./.; rev = \"$(git rev-parse HEAD)\"; } + "/flake.nix")"
15:09:43
@yuka:yuka.devYureka (she/her) *

for example:

nix repl --pure-eval --expr "import (builtins.fetchGit { url = ./.; rev = \"$(git rev-parse HEAD)\"; } + \"/flake.nix\")"
15:10:02
@yuka:yuka.devYureka (she/her) *

for example:

nix repl --pure-eval --expr "import (builtins.fetchGit { url = ./.; rev = \"$(git rev-parse HEAD)\"; } + \"/flake.nix\")"
15:10:07
@yuka:yuka.devYureka (she/her) *

for example:

nix repl --pure-eval --expr "import (builtins.fetchGit { url = ./.; rev = \"$(git rev-parse HEAD)\"; } + \"/flake.nix\")"
15:10:10
@yuka:yuka.devYureka (she/her) *

for example:

nix repl --pure-eval \
  --expr "import (builtins.fetchGit { url = ./.; rev = \"$(git rev-parse HEAD)\"; } + \"/flake.nix\")"
15:10:19
@raitobezarius:matrix.orgraitobezariusanother advice is that restricted eval is probably a better start than pure eval15:16:40
@raitobezarius:matrix.orgraitobezariusrestricted eval still let you whitelist filesystem trees15:16:46
@raitobezarius:matrix.orgraitobezariusso you don't have to do copies to the store15:16:49
@raitobezarius:matrix.orgraitobezarius* restricted eval still let you allow-list filesystem trees15:16:57
@somasis:matrix.orgsomasis oh, I didn't realize that was a thing 15:17:11
@raitobezarius:matrix.orgraitobezariusyou will only find examples of the usage of this feature in TVL fwiw15:17:26
@raitobezarius:matrix.orgraitobezariusin their CI15:17:30
@raitobezarius:matrix.orgraitobezarius(tvlfyi)15:17:37
@somasis:matrix.orgsomasis found it: https://code.tvl.fyi/tree/ops/pipelines/static-pipeline.yaml#n73 15:25:44

Show newer messages


Back to Room ListRoom Version: 10