ghc-whole-program-compiler-project VS haskell.nix

Compare ghc-whole-program-compiler-project vs haskell.nix and see what are their differences.


GHC Whole Program Compiler and External STG IR tooling (by grin-compiler)


Alternative Haskell Infrastructure for Nixpkgs (by input-output-hk)
Our great sponsors
  • Mergify - Updating dependencies is time-consuming.
  • SonarLint - Clean code begins in your IDE with SonarLint
  • InfluxDB - Collect and Analyze Billions of Data Points in Real Time
ghc-whole-program-compiler-project haskell.nix
9 15
108 494
1.9% 1.6%
0.0 9.4
10 days ago 2 days ago
Haskell Nix
- Apache License 2.0
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.


Posts with mentions or reviews of ghc-whole-program-compiler-project. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-01-06.
  • Can GHCi be run like PDB?
    3 projects | /r/haskell | 6 Jan 2023
    Another thing you can try is the ghc-wpc project which has an interpreter which supports breakpoints, though you may need to hack little a bit to achieve your goals.
  • Haskell compiled onto LLVM increase performance?
    4 projects | /r/haskell | 2 Nov 2021
    Here the goal is to build a high level, easy to understand model for all GHC backend features. Validations is also required. Once we know the semantics of GHC primops and RTS features then it becomes possible to figure out how to compile Haskell programs to GRIN. I started the GHC-WPC project for this reason. GHC-WPC exports the STG intermediate representation for the whole Haskell program, and I wrote an STG interpreter from scratch in Haskell that can run any Haskell program. (i.e. GHC itself) The STG interpreter is the high level model for the GHC primop and RTS semantics. It implements all these in pure Haskell, it does not depend on GHC RTS at all.
  • Why is the debugger so bad in Haskell? (or is it just me)
    3 projects | /r/haskell | 19 Oct 2021
    I can easily debug any Haskell program with the external STG interpreter.
  • What are you hyped about today?
    2 projects | /r/haskell | 15 May 2021
    I haven't gotten my hands dirty yet, but really excited hearing GHC-WPC is going on!
  • GHC Pluggable Backend?
    4 projects | /r/haskell | 4 May 2021
    Why didn't you mention GHC-WPC? It is also a backend sample. It exports enough information (STG + linker opts + c bits) to interpret the program or to generate a binary executable via the regular GHC codegen system.
  • Transpiling to GHC Core language
    4 projects | /r/haskell | 30 Apr 2021
    You could use the GHC codegen and RTS via the external STG IR.
  • Next-gen Haskell Compilation Techniques
    4 projects | /r/haskell | 10 Jan 2021
    Remarks: 1. Strict functional languages can be expressed in STG without overhead, because STG has explicit liftedness control. In a strict language every data is unlifted or unboxed. 2. Supporting all GHC primops is not unrealistic. See the primop implementation in the external STG interpreter source code. Here is the implementation of the threading primops.


Posts with mentions or reviews of haskell.nix. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-12-29.
  • Why does Nix have Haskell packages that are incompatible with GHC for a given version?
    3 projects | /r/haskell | 29 Dec 2022
    I'm not a great haskeller but I found haskell.nix better for Haskell projects, like the commenter on Discourse suggested. I've had a few issued regarding package versions with nixpkgs that haskell.nix solved.
  • Simple GHC stack for a novice
    6 projects | /r/haskell | 17 Oct 2022
    FWIW, there's also libraries like haskell.nix that solve the caching problem.
  • Any up-to-date cross-compiling methods for Raspberry Pi?
    3 projects | /r/haskell | 20 Sep 2022
    I would try haskell.nix.
  • Take the Nix Pill
    4 projects | /r/linuxmemes | 8 Jul 2022
    If you want to hurt your brain, check out haskell.nix. That's some good stuff right there ^^
  • Trying to build a statically linked binary against glibc (Linux)
    3 projects | /r/haskell | 3 Jul 2022
    The haskell.nix framework is good for this.
  • GHC 9.4.1 Windows changes
    2 projects | /r/haskell | 28 Jun 2022
    One cool thing is that this will enable GHC builds using ucrt instead of vscrt in the future. Concretely, together with NixOS/nixpkgs#171418 and its follow-up NixOS/nixpkgs#173498), this will e.g. allow haskell.nix to upgrade to a newer wine pin for TH cross compilation:
  • Memory from finished thread is not getting reclaimed
    7 projects | /r/haskell | 9 Sep 2021
    If you are somewhat comfortable with nix: supports GHCJS 8.10.x (in particular 8.10.7).
  • What's all the hype with Nix?
    9 projects | /r/haskell | 2 Jun 2021
    I also prefer stack for development, but I use nix to deploy to production. This way, I can install ad-hoc system dependencies locally and play with them during development as well as enjoy the bits and pieces of Haskell ergonomics stack affords, and once I'm happy with what I have, I "nixify" those dependencies as part of the project nix configuration and send them to production without fear. I use IOHK's excellent haskell.nix infrastructure to nixify my stack-based Haskell project, which makes it trivial to maintain a nix configuration that's always in sync with my stack configuration.
  • Monthly Hask Anything (June 2021)
    16 projects | /r/haskell | 2 Jun 2021
    And stuff like haskell.nix is supposed to let you configure things with stack or cabal or whatever tool you find most convenient, and let nix do the rest.
  • Another Haskell and Nix setup
    3 projects | /r/haskell | 7 May 2021
    /u/ItsNotMineISwear mentioned haskell.nix, which does generate a Haskell package set based on either a stack.yaml file, or the Cabal solver. This would solve some of your problems, but then possibly introduce others.

What are some alternatives?

When comparing ghc-whole-program-compiler-project and haskell.nix you can also consider the following projects:

Cabal - Official upstream development repository for Cabal and cabal-install

nix-doom-emacs - doom-emacs packaged for Nix

static-haskell-nix - easily build most Haskell programs into fully static Linux executables

polysemy - :gemini: higher-order, no-boilerplate monads

nixpkgs - Nix Packages collection & NixOS

frp-zoo - Comparing many FRP implementations by reimplementing the same toy app in each.

haskell-nix - Nix and Haskell in production

miso - :ramen: A tasty Haskell front-end framework

nixkell - A simple Nix-Haskell skeleton

penrose - Haskell to JavaScript compiler, based on GHC

cargo-deb - A cargo subcommand that generates Debian packages from information in Cargo.toml