!RbXGJhHMsnQcNIDFWN:nixos.org

Haskell in Nixpkgs/NixOS

690 Members
For discussions and questions about Haskell with Nix, cabal2nix and haskellPackages in nixpkgs | Current Docs: https://nixos.org/manual/nixpkgs/unstable/#haskell | Current PR: https://github.com/nixos/nixpkgs/pulls?q=is%3Apr+is%3Aopen+head%3Ahaskell-updates | Maintainer Docs: https://github.com/NixOS/nixpkgs/blob/haskell-updates/pkgs/development/haskell-modules/HACKING.md | More Nix: #community:nixos.org | More Haskell: #haskell-space:matrix.org | Merger Schedule: https://cloud.maralorn.de/apps/calendar/p/H6migHmKX7xHoTFa/dayGridMonth/now | Join #haskell.nix:libera.chat for question about the alternative haskell.nix infrastructure137 Servers

Load older messages


SenderMessageTime
10 Jan 2026
@tks_123:matrix.orgtks_123are there examples of this out there?13:03:45
@acidbong:envs.netAcid Bong
In reply to @tks_123:matrix.org
Is there a way to add a haskell package as a flake (i.e. some other haskell project with its own flake.nix) into the haskellPackages of my own haskell project?
yup, but i hope they expose a package.nix with the package recipe alone, so you could haskellPackages.callPackage it
13:25:26
@acidbong:envs.netAcid Bong(for the sake of using the same version and edition of GHC)13:26:01
@maralorn:maralorn.demaralornIts complicated, the default flake interface is not really meant to be composable.16:03:30
@maralorn:maralorn.demaralornSome flake authors design their flake in a way that they expose a) the package and b) an overlay which injects the package.16:04:05
@aiya:catgirl.cloudaiya joined the room.19:38:17
@aiya:catgirl.cloudaiya

so the 25.11 "default" GHC is 9.10, but LLVM only has 18-20 which is incompatible. is this intentional, or is LLVM 15 supposed to be in nixpkgs just to support 9.10 -fllvm?

i back-searched this chat for LLVM but only found conversation on bumping LLVM 12 -> 15

19:50:59
@emilazy:matrix.orgemilywe backport patches for newer LLVM support to older GHCs19:52:34
@emilazy:matrix.orgemily(there aren't that many, the backend doesn't change much since it uses the LLVM textual IR format)19:52:52
@emilazy:matrix.orgemily(mostly it's just backporting bumps to the version number it checks)19:53:02
@emilazy:matrix.orgemily see pkgs/development/compilers/ghc/common-llvm-patches.nix 19:53:14
11 Jan 2026
@ivank:matrix.orgivan joined the room.01:54:59
@mequbic:matrix.orgiqubic (she/her) What should I do if Nix is refusing to build a Haskell Library for me? Right now, hip is failing to build! https://hackage.haskell.org/package/hip 03:30:09
@mequbic:matrix.orgiqubic (she/her)
error: Package ‘hip-1.5.6.0’ in /nix/store/aqhcr0kv7d91rfm0ca77rbakjk5gkbq6-source/pkgs/development/haskell-modules/hackage-packages.nix:330406 is marked as broken, refusing to evaluate.

       a) To temporarily allow broken packages, you can use an environment variable
          for a single invocation of the nix tools.

            $ export NIXPKGS_ALLOW_BROKEN=1

          Note: When using `nix shell`, `nix build`, `nix develop`, etc with a flake,
                then pass `--impure` in order to allow use of environment variables.

       b) For `nixos-rebuild` you can set
         { nixpkgs.config.allowBroken = true; }
       in configuration.nix to override this.

       c) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
         { allowBroken = true; }
       to ~/.config/nixpkgs/config.nix.


       note: trace involved the following derivations:
       derivation 'mh26'
03:36:54
@ashinnv:matrix.orgDr Mayhem, esq changed their display name from Mr Mayhem to Dr Mayhem, esq.13:34:01
@9hp71n:matrix.orgghpzin changed their display name from ghpzin (moved to @ghpzin:envs.net) to ghpzin.15:04:53
@ghpzin:envs.net@ghpzin:envs.net left the room.16:16:06
12 Jan 2026
@aiya:catgirl.cloudaiya when you get that message, most likely it's a compilation error. try running NIXPKGS_ALLOW_BROKEN=1 nix-shell -p haskellPackages.hip to isolate the error 02:03:47
@aiya:catgirl.cloudaiyahere's the error i got when running that command:02:04:06
@aiya:catgirl.cloudaiya
[34 of 40] Compiling Graphics.Image.Types ( src/Graphics/Image/Types.hs, dist/build/Graphics/Image/Types.o, dist/build/Graphics/Image/Types.dyn_o )
<no location info>: error:
    Simplifier ticks exhausted
  When trying RuleFired Class op $p8ColorSpace
  To increase the limit, use -fsimpl-tick-factor=N (default 100).

  In addition try adjusting -funfolding-case-threshold=N and
  -funfolding-case-scaling=N for the module in question.
  Using threshold=1 and scaling=5 should break most inlining loops.

  If you need to increase the tick factor substantially, while also
  adjusting unfolding parameters please file a bug report and
  indicate the factor you needed.

  If GHC was unable to complete compilation even with a very large factor
  (a thousand or more), please consult the "Known bugs or infelicities"
  section in the Users Guide before filing a report. There are a
  few situations unlikely to occur in practical programs for which
  simplifier non-termination has been judged acceptable.

  To see detailed counts use -ddump-simpl-stats
  Total ticks: 4241
02:04:12
@aiya:catgirl.cloudaiya someone's already opened an issue about this upstream 02:11:34
@aiya:catgirl.cloudaiya *

someone's already opened an issue about this upstream

as for a fix, you can always increase the tick tolerance as specified in the error message above or reduce inlining in colorSpace.hs

02:12:23
@aiya:catgirl.cloudaiya so i'm trying to fix a package that requires random>=1.3 as a dependency but the version of random in nixpkgs is 1.2. what's the best practice here? do i: 02:19:34
@aiya:catgirl.cloudaiya *

so i'm trying to fix a package that requires random>=1.3 as a dependency but the version of random in nixpkgs is 1.2. what's the best practice here? do i:

  1. create a new package random_1_3_1
  2. try and back-patch the package to work with random 1.2
  3. override the build deps for that specific package's derivation? (i don't like this option, other packages require random>=1.3 too)
02:21:05
@aiya:catgirl.cloudaiya *

so i'm trying to fix a package that requires random>=1.3 as a dependency but the version of random in nixpkgs is 1.2. what's the best practice here? do i:

  1. create a new package random_1_3_1
  2. try and back-patch the package to work with random 1.2
  3. update random to 1.3 (probably not recommended, stackage lts has it as 1.2.1)
  4. override the build deps for that specific package's derivation? (i don't like this option, other packages require random>=1.3 too)

i couldn't find specific guidance on CONTRIBUTING.md and while i know some packages get multiple version i've yet to see a Haskell non-core package have multiple versions on nixpkgs

02:23:40
@aiya:catgirl.cloudaiya set a profile picture.02:33:02
@aiya:catgirl.cloudaiya changed their profile picture.02:34:54
@aiya:catgirl.cloudaiya changed their profile picture.02:36:52
@artem.types:matrix.orgArtem @aiya:catgirl.cloud: random_1_3_1 is already there (I think because haskellPackages by default include LTS versions and latest versions too) 04:56:53
@artem.types:matrix.orgArtemtrying to fix liquidhaskell in nixpkgs in the light of https://github.com/ucsd-progsys/liquidhaskell/issues/2188: https://github.com/NixOS/nixpkgs/pull/47948420:52:29

There are no newer messages yet.


Back to Room ListRoom Version: 6