home.social

#cppnix — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #cppnix, aggregated by home.social.

fetched live
  1. fun fact: unflake tests pass (on my laptop) in ~18 seconds when using #CppNix / upstream #Nix, but in just ~15 seconds when using #Lix

    this unscientific benchmark shows a ~17% reduction in runtime, which is pretty cool

  2. fun fact: unflake tests pass (on my laptop) in ~18 seconds when using #CppNix / upstream #Nix, but in just ~15 seconds when using #Lix

    this unscientific benchmark shows a ~17% reduction in runtime, which is pretty cool

  3. Oh wow and C++ (now?) apparently doesn't mind :gitannex: anymore. 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 for me.

  4. 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.

  5. Had to switch back to base C++ from to package :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 it's already fixed.

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

  6. 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

  7. @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!

  8. @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!

  9. 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?

  10. 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.

  11. @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

  12. @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