I did it.
The wasm backend passes the GHC testsuite.
The MR (!10224) pipeline is all green, the patches are in the final form, and I’m landing it before end of this week.
After I return from a break, the next thing I’ll work on is: adding cross backend support to the nofib benchmark suite (nofib#29). Now I consider it a higher priority than user-facing features like JSFFI and Template Haskell. Future patches to the wasm backend will certainly affect performance characteristics of compiled wasm modules, and instead of guessing, I need exact numbers to know how much things have gotten faster/slower, so to make informed decisions.
Hacking nofib won’t take too long though, compared to the GHC testsuite. No weird test cases, no 10+ years of legacy python codebase to debug, the nofib driver is just a shake-based Haskell program. It’ll be a walk in the park.