!RbXGJhHMsnQcNIDFWN:nixos.org

Haskell in Nixpkgs/NixOS

755 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.org150 Servers

Load older messages


SenderMessageTime
22 May 2026
@raj-magesh:matrix.orgRaj joined the room.11:04:14
@jonhermansen:matrix.orgJon Hermansen changed their display name from jonhermansen to Jon Hermansen.19:18:36
@artem.types:matrix.orgArtemunstable currently has broken version of haskellPackages.hakyll, 4.16.8.0 (it's deprecated on Hackage as violating PVP and it brakes stuff). Is this being fixed or should i submit something?..20:22:57
@artem.types:matrix.orgArtem* unstable currently has a broken version of haskellPackages.hakyll, 4.16.8.0 (it's deprecated on Hackage as violating PVP and it brakes stuff). Is this being fixed or should i submit something?..20:41:34
@artem.types:matrix.orgArtemah, it looks like a recent merge bumping ghc to 9.12 also has the new version of hakyll (4.17)21:51:28
24 May 2026
@tks_123:matrix.orgtks_123Wait a minute... wow... hmm.11:34:21
@tks_123:matrix.orgtks_123Just to confirm:11:34:24
@tks_123:matrix.orgtks_123Is it true that since GHC 9.6, the same GHC compilation can do both normal binary and javascript?11:35:33
@tks_123:matrix.orgtks_123and since stackage seems to be on 9.10.x already, so is haskell4nix? And so binary&JS in same environment / same GHC executable is already ready to go?11:36:27
@tks_123:matrix.orgtks_123* and since default haskellPackages GHC seems to be 9.10.x already, binary&JS in same environment / same GHC executable is already ready to go?11:38:46
@tks_123:matrix.orgtks_123and now, the old GHCJS is already truly obsolete??11:38:57
@tks_123:matrix.orgtks_123* and now, the old GHCJS is already truly obsolete (for new programs)??11:39:10
@alexfmpe:matrix.orgalexfmpejs/wasm backends are part of the same codebase as everday ghc 11:41:33
@alexfmpe:matrix.orgalexfmpethat said, ghc is not (currently) retargetable, so just like any other cross compilation, you need to re-compile the compiler into one binary per target architecture11:42:27
@alexfmpe:matrix.orgalexfmpewhat nixpkgs does is plug the js-backend build into the pkgsCross.ghcjs package set11:44:07
@alexfmpe:matrix.orgalexfmpe
/nix/store/f612853p8bbb2zds2q5znzra7kz9qdnk-hello-1.0.0.2
├── bin
│   ├── hello
│   └── hello.jsexe
│       ├── all.externs.js
│       ├── all.js
│       ├── index.html
│       ├── lib.js
│       ├── out.frefs.js
│       ├── out.frefs.json
│       ├── out.js
│       ├── out.stats
│       ├── rts.js
│       └── runmain.js
11:44:55
@alexfmpe:matrix.orgalexfmpe *
$ tree $(nix-build -A pkgsCross.ghcjs.haskellPackages.hello)
/nix/store/f612853p8bbb2zds2q5znzra7kz9qdnk-hello-1.0.0.2
├── bin
│   ├── hello
│   └── hello.jsexe
│       ├── all.externs.js
│       ├── all.js
│       ├── index.html
│       ├── lib.js
│       ├── out.frefs.js
│       ├── out.frefs.json
│       ├── out.js
│       ├── out.stats
│       ├── rts.js
│       └── runmain.js
11:45:08
@alexfmpe:matrix.orgalexfmpe
$ /result/bin/hello
Hello, World!

$ head -n 5 result/bin/hello                                                                                   
#!/nix/store/q1r7qkrnbhakljr4j228v2yi2874jkl9-nodejs-slim-24.15.0/bin/node
var h$currentThread=null;
var h$stack=null;
var h$sp=0;
var h$initStatic=[];
11:45:50
@tks_123:matrix.orgtks_123Interesting.11:46:11
@tks_123:matrix.orgtks_123is the pkgsCross project managed by you guys, same ones who do haskellPackages?11:46:47
@tks_123:matrix.orgtks_123* is the pkgsCross project managed by you guys on this channel, same ones who do haskellPackages?11:46:54
@alexfmpe:matrix.orgalexfmpepkgsCross is a nixpkgs-wide thing for cross compilation11:46:57
@alexfmpe:matrix.orgalexfmpe this channel mostly cares about fixes to pkgsCross.foo.compiler.ghc or pkgsCross.foo.haskellPackages.bar 11:48:05
@alexfmpe:matrix.orgalexfmpe * this channel mostly cares about fixes to pkgsCross.foo.haskellPackages.ghc or pkgsCross.foo.haskellPackages.bar 11:48:29
@alexfmpe:matrix.orgalexfmpewhere, long story, that's the ghc that targets <foo> platform, not the one running on <foo>11:49:21
@alexfmpe:matrix.orgalexfmpe well, pkgsCross.ghcjs is a special case mostly shoehorned into old ghcjs scaffolding, nobody else cares about that platform 11:50:13
@tks_123:matrix.orgtks_123
In reply to @alexfmpe:matrix.org
well, pkgsCross.ghcjs is a special case mostly shoehorned into old ghcjs scaffolding, nobody else cares about that platform
hmm, but you wrote pkgsCross.ghcjs.haskellPackages.hello above. Is the "ghcjs" some old GHCJS thing then?
11:51:19
@tks_123:matrix.orgtks_123"nobody else", including folks in this channel?11:51:55
@alexfmpe:matrix.orgalexfmpepkgsCross.ghcjs just means https://github.com/NixOS/nixpkgs/blob/258544fde350341c6b2776bbcfb744eb4cc9d3d5/lib/systems/examples.nix#L471 which used to be interpreted as "build with ghcjs", then switched to "build with ghcjs if ghc < 9 or js backend otherwise" and now is only js backend12:05:20
@alexfmpe:matrix.orgalexfmpe nobody else but this channel cares about the ghcjs package set 12:05:43

Show newer messages


Back to Room ListRoom Version: 6