!RbXGJhHMsnQcNIDFWN:nixos.org

Haskell in Nixpkgs/NixOS

729 Members
For discussions and questions about Haskell with Nix, cabal2nix and haskellPackages in nixpkgs | Current Docs: https://haskell4nix.readthedocs.io/ | More Nix: #community:nixos.org | More Haskell: #haskell-space:matrix.org146 Servers

Load older messages


SenderMessageTime
30 Dec 2025
@sternenseemann:systemli.orgsterni (he/him) I think writing code that simultaneously supports __structuredAttrs true and false is somewhat nonsensical especially when code is written in a way that it has an extra API to work around regular argument splitting limitations. 12:31:10
@sternenseemann:systemli.orgsterni (he/him) If __structuredAttrs is truly the way to go and there are no potentially showstopping issues, I'd rather redesign the GHC expression and generic builder in a breaking way and always use structured attrs. 12:32:09
@sternenseemann:systemli.orgsterni (he/him)it'd help mkDerivation, actually, in some ways.12:32:21
@sternenseemann:systemli.orgsterni (he/him) I must say that I personally find __structuredAttrs a bit icky since it's not exactly simple nor has clean separation of concerns, but oh well… 12:33:43
@wolfgangwalther:matrix.orgWolfgang WaltherFrom the interpreter side, all (known) issues with structuredAttrs should be solved since we bumped min version for Nixpkgs - we are not concerned anymore with any Nix versions that had problems there. structuredAttrs is certainly the way to go in the future, it's just a matter of time (and effort) to get the migration done. The reason to support both with/without structuredAttrs is purely the transition period while not every expression supports them. This is mostly relevant for generic builders / setup hooks and such, which might not be able to tell in advance whether their downstream consumers will be using structuredAttrs or not. The GHC expressions can certainly all be rewritten to consistently use structuredAttrs, no problem with that. Forcing the haskell generic builder to always use structuredAttrs would have an impact of out-of-tree users using that builder. If we're OK with a breaking change in that way, then yes, the best way is to consistently use structuredAttrs here, too.12:37:55
@maralorn:maralorn.demaralornIs there some ressource about what structuredAttrs does and what it solves?12:53:28
@sternenseemann:systemli.orgsterni (he/him)Nix manual I assume12:54:05
@wolfgangwalther:matrix.orgWolfgang Waltherhttps://nix.dev/manual/nix/2.19/language/advanced-attributes#adv-attr-structuredAttrs12:55:05
@amadaluzia:tchncs.deamadaluzia[tde] changed their profile picture.12:59:17
@me:linj.techlinjI find this blog very helpful https://nixos.mayflower.consulting/blog/2020/01/20/structured-attrs/13:52:51
@sternenseemann:systemli.orgsterni (he/him)We probably (also) have some new Haskell failures on master now with gcc15, so that may be worth checking up on in the coming days.18:32:11
@lenny:flipdot.orgLenny. changed their display name from Lenny. ☎️5665 to Lenny..23:09:43
31 Dec 2025
@das-g:matrix.orgdas-g changed their display name from das-g (DECT 7881) to das-g.22:18:05
1 Jan 2026
@deb776:tedomum.net@deb776:tedomum.net 02:52:05
@deb776:tedomum.net@deb776:tedomum.net left the room.02:53:10
4 Jan 2026
@aleksana:mozilla.orgFind me at aleksana:qaq.li changed their display name from aleksana 🏳️‍⚧️ (force me to bed after 18:00 UTC) to aleksana 🏳️‍⚧️ (deprecated).17:12:55
@aleksana:mozilla.orgFind me at aleksana:qaq.li changed their display name from aleksana 🏳️‍⚧️ (deprecated) to Find me at aleksana:qaq.li.17:14:40
5 Jan 2026
@connorbaker:matrix.orgconnor (burnt/out) (UTC-8) joined the room.17:56:26
6 Jan 2026
@maralorn:maralorn.demaralornSo … What is the 2026 way of running doctests as part of my nix-build?12:36:15
@kephaspierre:matrix.orgPierre Thierry

I'm trying to work on monoidal-functors, but although nix build succeeds, doing cabal build either from nix develop or my shell with direnv and use flake fails with

unknown package: these (dependency of monoidal-functors)

14:44:48
@toonn:matrix.orgtoonn Might Cabal be picking up a different GHC? 14:46:14
@kephaspierre:matrix.orgPierre Thierry It doesn't look like it, cabal --verbose build says Running: /nix/store/a8h81f4wc2nc8qgrfsxvgfd8has0xh3r-ghc-9.6.3/bin/ghc --print-global-package-db and the flake says ghc963 14:48:51
@maralorn:maralorn.demaralornApparently cabal-doctest works. Couldn’t get doctest-discover to run.17:19:16
@maralorn:maralorn.demaralornBut I still very much have no idea what I am doing …17:19:33
7 Jan 2026
@sigmanificient:matrix.orgSigmanificient joined the room.00:25:15
@sigmanificient:matrix.orgSigmanificient

Hello there, while having a conversation with my coincidentally named counterpart (i remember that), I discovered that haskell packages set has a at least a few packages that we should really not ship, as they has been removed after a report on the [https://github.com/haskell-infra/hackage-trustees/issues/132](hackage-trustees ' Spam/fraudulent issue)

While both examples sigmaSquadron gave me are marked as broken, this is due to dependency mismatch, not that the source is gone, because we have it cached.

00:30:52
@sigmasquadron:matrix.orgSigmaSquadronYeah, it's probably not ideal that the channels just randomly have sources for known fraudulent software.00:35:11
@ners:nixos.devners Does anyone have experience with pkgsCross.ghcjs? I'm trying to build a package that indirectly depends on zlib, and getting the following error: no C compiler provided for this platform
I can trace the error to here: https://github.com/NixOS/nixpkgs/blob/492f8a5b3855f5d5f3fa4d096acb073ec7c86e17/pkgs/stdenv/cross/default.nix#L118
I think I should be able to use emscripten as a C compiler, any idea how I could wire that up to get zlib to build?
08:43:37
@acidbong:envs.netAcid Bong joined the room.15:34:54
@acidbong:envs.netAcid Bong evening. what's the current status of Cabal not seeing deps provided by shellFor? I see some suggest v1-* commands to workaround, but they both fail for me:
$ cabal v1-build
Warning: No remote package servers have been specified. Usually you would have
one specified in the config file.
Resolving dependencies...
Warning: solver failed to find a solution:
Could not resolve dependencies:
[__0] trying: AoC-0.1.0.0 (user goal)
[__1] unknown package: matrix (dependency of AoC)
[__1] fail (backjumping, conflict set: AoC, matrix)
After searching the rest of the dependency tree exhaustively, these were the
goals I've had most trouble fulfilling: AoC, matrix
Trying configure anyway.
Configuring AoC-0.1.0.0...
Error: [Cabal-8010]
Encountered missing or private dependencies:
    extra (missing), matrix (missing)

1 $ cabal v2-build
Warning: No remote package servers have been specified. Usually you would have
one specified in the config file.
Resolving dependencies...
Error: [Cabal-7107]
Could not resolve dependencies:
[__0] trying: AoC-0.1.0.0 (user goal)
[__1] unknown package: matrix (dependency of AoC)
[__1] fail (backjumping, conflict set: AoC, matrix)
After searching the rest of the dependency tree exhaustively, these were the goals I've had most trouble fulfilling: AoC, matrix
shell.nix seems to have the necessary tools
{
  pkgs ? import <nixpkgs> { },
}:
pkgs.haskellPackages.shellFor {
  name = "AoC";
  packages = h: [
    h.extra
    h.matrix
  ];
  nativeBuildInputs = [
    # Python
    # ...
    # Rust
    # ...
    # Haskell
    pkgs.cabal-install
    pkgs.haskell-language-server
    pkgs.haskellPackages.cabal-fmt
  ];
}
obviously generating a package recipe and building with Nix works, but i'm using the shell purely to cabal run or cabal repl the respective packages, which doesn't seem to work without fetching the deps from Hackage
18:00:43

Show newer messages


Back to Room ListRoom Version: 6