!lymvtcwDJ7ZA9Npq:lix.systems

Lix Development

424 Members
(Technical) development of Lix, the package manager, a Nix implementation. Please be mindful of ongoing technical conversations in this channel.140 Servers

Load older messages


SenderMessageTime
23 Mar 2026
@raitobezarius:matrix.orgraitobezariusA fatal error won't 21:45:36
@blokyk:matrix.orgzoë (she/her) yeah but that's only if using tryEval, which imo is rarely seen in the average user's code 21:46:15
@raitobezarius:matrix.orgraitobezariusIt's not a laziness issue more of a: there's a culture of using tryEval to perform certain CI operations where fatal or non fatal have different outcomes21:46:17
@blokyk:matrix.orgzoë (she/her) * yeah but that's only if using tryEval, which ime is rarely seen in the average user's code 21:46:22
@blokyk:matrix.orgzoë (she/her)hmmm, i'll admit i don't have as much experience on the full ci side :/21:46:46
@blokyk:matrix.orgzoë (she/her)* hmmm, i'll admit i don't have as much experience on the ci side :/21:46:59
@raitobezarius:matrix.orgraitobezariusYou can grep tryEval in nixpkgs21:47:16
@raitobezarius:matrix.orgraitobezariusYou will see the use sites21:47:21
@raitobezarius:matrix.orgraitobezariusThe fatal or non fatal discussion is rooted in how tryEval is actually used in practice and what is it for IMHO21:47:42
@raitobezarius:matrix.orgraitobezariusIf tryEval didn't exist, might consider all non fatal errors fatal because you cannot recover computation in any fashion then21:48:01
@raitobezarius:matrix.orgraitobezariusMy vision is that tryEval exist to allow partial evaluation of the package set under different contexts (architectures, libc, etc.) and allowing a derivation definition to be partial if it doesn't support an architecture or a libc or something without compromising the operation "what are the theoretical possible packages here?" and variations of this introspection idea21:50:26
@raitobezarius:matrix.orgraitobezariusIn this framework, an empty output list would make sense if the output list names depend on this data, I can think of some cursed things to do there but none of that occur naturally and I don't see any advantage of starting doing that at all21:51:25
@blokyk:matrix.orgzoë (she/her)

for fun/the record, here's the occurences of tryEval in nixpkgs:

      1 lib/customisation.nix
      1 lib/default.nix
      1 lib/options.nix
      1 lib/path/default.nix
      1 lib/tests/fetchers.nix
      1 lib/tests/modules/raw.nix
      1 maintainers/scripts/build.nix
      1 maintainers/scripts/check-hydra-by-maintainer.nix
      1 maintainers/scripts/find-tarballs.nix
      1 maintainers/scripts/haskell/maintained-broken-pkgs.nix
      1 maintainers/scripts/haskell/test-configurations.nix
      1 maintainers/scripts/haskell/transitive-broken-packages.nix
      1 maintainers/scripts/update.nix
      1 nixos/modules/config/terminfo.nix
      1 nixos/modules/misc/nixpkgs/test.nix
      1 nixos/modules/services/web-apps/slskd.nix
      1 nixos/tests/all-terminfo.nix
      1 nixos/tests/hostname.nix
      1 nixos/tests/kernel-rust.nix
      1 nixos/tests/rancher/default.nix
      1 pkgs/build-support/src-only/tests.nix
      1 pkgs/by-name/mp/mpv/package.nix
      1 pkgs/development/compilers/dotnet/build-dotnet.nix
      1 pkgs/development/cuda-modules/packages/tests/redists-installed.nix
      1 pkgs/development/rocm-modules/release-attrPaths-gen.nix
      1 pkgs/development/rocm-modules/rocm-tests/default.nix
      1 pkgs/pkgs-lib/tests/formats.nix
      1 pkgs/servers/nextcloud/packages/nc-versions.nix
      1 pkgs/test/kernel.nix
      1 pkgs/test/stdenv/default.nix
      1 pkgs/test/systemd/nixos/default.nix
      1 pkgs/top-level/impure-overlays.nix
      1 pkgs/top-level/pkg-config/tests.nix
      1 pkgs/top-level/release-python.nix
      1 pkgs/top-level/release-unfree-redistributable.nix
      1 pkgs/top-level/splice.nix
      2 doc/doc-support/python-interpreter-table.nix
      2 lib/path/tests/prop.nix
      2 maintainers/scripts/eval-release.nix
      2 pkgs/by-name/ni/nixos-option/nixos-option.nix
      2 pkgs/development/cuda-modules/packages/tests/flags.nix
      2 pkgs/stdenv/cross/default.nix
      2 pkgs/stdenv/generic/check-meta-test.nix
      3 nixos/maintainers/option-usages.nix
      4 nixos/modules/services/networking/kismet.nix
      5 nixos/tests/systemd-escaping.nix
     17 lib/path/tests/unit.nix
     32 lib/tests/misc.nix

most of them are tests, but there are still some uses outside of that, which from the few glances i've had are custom option types doing weird stuff

21:54:09
@blokyk:matrix.orgzoë (she/her) i understand your point of view though, i guess it's a little more grounded in what nix is currently used for rather than my naive abstract pov x) 21:55:21
@raitobezarius:matrix.orgraitobezariusIn my abstract PoV, Nix should have had a Result type21:56:31
@raitobezarius:matrix.orgraitobezariusThat abstract Nix is only a fleeting dream alas21:56:40
@blokyk:matrix.orgzoë (she/her) with all that said, i still do have a question: should it be tagged E/Easy (with the notes from this discussion) and left to be drive-by contributed? it's not very urgent, and though it doesn't go into the c++ part of the codebase like most other changes will require, i still think it can be a good exercise, especially if combined with some tests 21:57:09
@raitobezarius:matrix.orgraitobezariusYes if it doesn't try to change catch ability21:57:43
@raitobezarius:matrix.orgraitobezariusChanging catch ability is a debate that needs to be done, I only provided my view so far21:58:03
@blokyk:matrix.orgzoë (she/her)alright i'll leave the issue as is then (without the notes since the debate should probably be had in public and i don't wanna be just paraphrasing someone else's opinion), hopefully it'll garner some more attention from other maintainers/contributors22:00:51
@blokyk:matrix.orgzoë (she/her)thanks for the clarification and explanation :)22:01:00
@raitobezarius:matrix.orgraitobezarius
In reply to @blokyk:matrix.org
alright i'll leave the issue as is then (without the notes since the debate should probably be had in public and i don't wanna be just paraphrasing someone else's opinion), hopefully it'll garner some more attention from other maintainers/contributors
I'd welcome you posting a summary of our convo :-) I am in public transport unfortunately
22:03:11
@blokyk:matrix.orgzoë (she/her) aaaaand right after i closed the window aight, i'll do that then ^^ 22:04:14
@raitobezarius:matrix.orgraitobezarius
In reply to @blokyk:matrix.org
alright i'll leave the issue as is then (without the notes since the debate should probably be had in public and i don't wanna be just paraphrasing someone else's opinion), hopefully it'll garner some more attention from other maintainers/contributors
It will take some time for the maintainers to come to that as we are finishing up with 2.95, taking some time off then kick starting 2.96 (with some priority items we have in mind)
22:04:21
@blokyk:matrix.orgzoë (she/her)oh yeah yeah, i imagine 2.95 is keeping everyone busy, especially with lixcon and all the other infrastructure stuff i see passing on the zulip; i'm amazed at everyone on board honestly x)22:05:20
@raitobezarius:matrix.orgraitobezariusFortunately, this is the finish line22:06:24
@raitobezarius:matrix.orgraitobezariusIn May, I will hibernate22:06:33
@blokyk:matrix.orgzoë (she/her)is there any specific reason? or is it just taking time-off?22:07:03
@piegames:flausch.socialpiegames Horrors want these use cases put outside of Nix into the top-level commands. My vision is to have tryEval marked as unsafe and explicitly forbidden in any code that produces derivations and should be pure 22:14:16
@blokyk:matrix.orgzoë (she/her) i feel like having an outside tool responsible for these sort of things just exerts a behavioral requirement on the nix code that cannot be encapsulated inside of the code, thus, from my point of view, going against purity. from a practical point of view, i do think that in the case of eg hydra it'd make a lot of sense for it to be external, but the idea of just forbidding tryEval completely and requiring external tools to handle any failing scenario seems a little weird.
idk, again it's probably because i don't use nix for ci stuff as much, but if you can't handle any error at all and require an external runner and external tool and everything, then you suddenly nix becomes just the build description language surrounded by bash scripts, which imo is a shame
22:26:50

Show newer messages


Back to Room ListRoom Version: 10