#cppnix

Yann Büchau :nixos:nobodyinperson@fosstodon.org
2025-05-05

Oh wow and C++ #nix (now?) apparently doesn't mind :gitannex: #gitAnnex anymore. #lix for example refuses to do anything if the flake.lock is behind a smudge filter and your worktree is clean. You have to *manually* dirtyfy the worktree to be able to work with lix. Multiple good arguments to stay on #cppnix for me.

Yann Büchau :nixos:nobodyinperson@fosstodon.org
2025-05-03

Had to switch back to base C++ #nix from #lix to package :hledger: #hledger's prebuilt release version, because lix still has an annoying builitins.fetchTarball bug¹ that prevents using tarballs that just contain a bunch of files without an extra single directory at the top level. (As you know, tarballs only EVER contain a top-level directory and never just a bunch of files, right?). In #cppnix it's already fixed.

¹git.lix.systems/lix-project/li
²github.com/NixOS/nix/pull/1119
³gitlab.com/nobodyinperson/nixc

2024-08-10

@leftpaddotpy I'm a little (pleasantly) surprised to discover that both #Lix and #CppNix are licensed with #LGPL. I guess I got the idea that it was #MITlicence since that's what #NixOS uses.

git.lix.systems/lix-project/li
github.com/NixOS/nix/?tab=read

2024-07-29

@skyr Da bist du in der heiligen Dreieinigkeit¹ des Nixiversums (hachyderm.io/@leftpaddotpy/111) falsch² abgebogen:

#NixPkgs ist nicht #NixOS.
#NixOS ist nicht die #NixDSL a.k.a. #NixLang.
Die #NixDSL ist nicht #NixPkgs.
(Und jeweils auch nicht umgekehrt)
Aber alle drei¹ sind #Nix.


¹Den #NixPaketmanager/#NixInterpreter (#CppNix) gibts auch noch. «Viereinigkeit»? Mannigfaltigkeit?
²Wie so manche «falsche» Abzweigung kann auch das (über Umwege) zum Ziel führen. Und man lernt die Gegend besser kennen!

2024-06-09

I'm still working on #Nix parsing. It's a nastier language than I realized; there are a couple strange constructions I've never seen before. Here's my favorite parser quirk of the day; in #CppNix, try:

> let x = 1; in let { inherit x; }

What do you think will happen? Why?

2024-05-15

I finally think I've figured out a basic #Nix heap using the #Haskell/#GHC technique of flagging every heap object to detect infinite loops. Cache invalidation really is hard... Fortunately, Nix is pure, so I don't have to invalidate any heap objects directly. #RPython makes it easy to hack, although it's still a bit of a slog to debug segfaults.

I think I might have to actually look at #CppNix now, or at least reread Eelco's thesis. I need to understand the differences between evaluation and instantiation.

2024-04-28

@jakehamilton #nixpkgs is also the part with need forking the least as Eelco didn't contribute much to it anyways. The problems were all in #cppnix so the community should focus on forking it

Client Info

Server: https://mastodon.social
Version: 2025.04
Repository: https://github.com/cyevgeniy/lmst