| 22 May 2026 |
| Raj joined the room. | 11:04:14 |
| Jon Hermansen changed their display name from jonhermansen to Jon Hermansen. | 19:18:36 |
Artem | unstable 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 | * 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 | ah, 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 | Wait a minute... wow... hmm. | 11:34:21 |
tks_123 | Just to confirm: | 11:34:24 |
tks_123 | Is it true that since GHC 9.6, the same GHC compilation can do both normal binary and javascript? | 11:35:33 |
tks_123 | and 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 | * 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 | and now, the old GHCJS is already truly obsolete?? | 11:38:57 |
tks_123 | * and now, the old GHCJS is already truly obsolete (for new programs)?? | 11:39:10 |
alexfmpe | js/wasm backends are part of the same codebase as everday ghc | 11:41:33 |
alexfmpe | that 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 architecture | 11:42:27 |
alexfmpe | what nixpkgs does is plug the js-backend build into the pkgsCross.ghcjs package set | 11:44:07 |
alexfmpe | /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 | * $ 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 | $ /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 | Interesting. | 11:46:11 |
tks_123 | is the pkgsCross project managed by you guys, same ones who do haskellPackages? | 11:46:47 |
tks_123 | * is the pkgsCross project managed by you guys on this channel, same ones who do haskellPackages? | 11:46:54 |
alexfmpe | pkgsCross is a nixpkgs-wide thing for cross compilation | 11:46:57 |
alexfmpe | this channel mostly cares about fixes to pkgsCross.foo.compiler.ghc or pkgsCross.foo.haskellPackages.bar | 11:48:05 |
alexfmpe | * this channel mostly cares about fixes to pkgsCross.foo.haskellPackages.ghc or pkgsCross.foo.haskellPackages.bar | 11:48:29 |
alexfmpe | where, long story, that's the ghc that targets <foo> platform, not the one running on <foo> | 11:49:21 |
alexfmpe | well, pkgsCross.ghcjs is a special case mostly shoehorned into old ghcjs scaffolding, nobody else cares about that platform | 11:50:13 |
tks_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 | "nobody else", including folks in this channel? | 11:51:55 |
alexfmpe | pkgsCross.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 backend | 12:05:20 |
alexfmpe | nobody else but this channel cares about the ghcjs package set | 12:05:43 |