ghc-whole-program-compiler-project VS hint

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

ghc-whole-program-compiler-project

GHC Whole Program Compiler and External STG IR tooling (by grin-compiler)
Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
ghc-whole-program-compiler-project hint
9 10
115 257
1.7% 0.8%
8.8 6.8
6 months ago 4 months ago
Haskell Haskell
- BSD 3-clause "New" or "Revised" License
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.

ghc-whole-program-compiler-project

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.
  • ELI5: Why does the new Javascript backend need to live in GHC instead of consuming GHC-WPC output?
    1 project | /r/haskell | 20 Dec 2022
    If I understand the new GHCJS backend correctly, it diverges from the normal compilation pipeline at STG (see the new StgToJS module subtree). Wouldn't that make it an excellent candidate to use GHC-WPC's machine-readable external STG representation, instead of hooking it directly into the GHC source tree?
  • 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. https://www.youtube.com/watch?v=DkDUEd3pUyM https://github.com/grin-compiler/ghc-whole-program-compiler-project
  • Haskell program inspector tooling development
    1 project | /r/haskell | 23 Jul 2021
    Hello, I'm using the external STG interpreter to observe the runtime behaviour of Haskell programs. Lately I've added an initial call-graph construction feature that I plan to refine further. https://twitter.com/csaba_hruska/status/1417486380536582151 Is there anyone who has dynamic analysis related research ambitions and wants to study Haskell program runtime behaviour in detail? If so then it would be great to talk.
  • 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. https://github.com/grin-compiler/ghc-whole-program-compiler-project
  • 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. https://github.com/grin-compiler/ghc-whole-program-compiler-project
  • 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.

hint

Posts with mentions or reviews of hint. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-07-10.
  • I am looking for a new maintainer for Mueval
    2 projects | /r/haskell | 10 Jul 2023
    Mueval is based on hint, which is in turn based on the ghc library.
  • Interactive animations
    11 projects | /r/haskell | 6 May 2023
    Yeah, that project is pretty much at the bottom of my list, unfortunately. My top projects these days are mgmt, klister, recursion-schemes, and hint... And that's already too much!
  • Can GHCi be run like PDB?
    3 projects | /r/haskell | 6 Jan 2023
    You can try using hint (instead of ghci) though I'm not sure it has the breakpoint functionality.
  • Dynamic loading of modules
    2 projects | /r/haskell | 19 Dec 2022
    Have you tried hint?
  • hint: Runtime Haskell interpreter
    6 projects | /r/haskell | 1 May 2022
    with haskell.nix, well, you've found the github issue, you need to put the apecs package in the right nix incantation.
  • How to catch "Variable not in scope" error
    1 project | /r/haskell | 29 Oct 2021
    But the use case for that is for using a Haskell program A to catch errors in that same Haskell program A. For your use case, using a Haskell program A to automatically grade a Haskell program B, I recommend using the hint library instead, as it allows you to load code from external source files, run tests on them, and manipulate the error messages produced by ghc. (full disclosure: I am the maintainer of that library)
  • Does a function that takes as input a function and return its porgram text exist?
    1 project | /r/haskell | 23 Aug 2021
    I am thinking of giving hint the ability to evaluate TemplateHaskell expressions. It would indeed be quite difficult to write an interpreter for all of Haskell, so my plan is to use the Exp's Show instance to produce a program which constructs and then splices that Exp, e.g. $(pure (InfixE (Just (LitE (IntegerL 1))) (VarE GHC.Num.+) (Just (LitE (IntegerL 1))))) is a Haskell expression which is equivalent to 1 + 1, so I should be able to ask hint to evaluate that to get 2 without having to write my own Haskell interpreter.
  • Seeking a Project Lead for Matchmaker - Haskell Foundation
    3 projects | /r/haskell | 26 Jul 2021
    Yes please! Right now all of my open-source projects (most notably hint and recursion-schemes) are about to drop into barely-updated mode, and while I knew this would happen and have been working towards finding co-maintainers, I am now realizing that it wasn't enough. I think such a website would definitely have helped, and I am hoping that once it launches, I'll be able to use it to find some co-maintainers to tide over my projects until I become available again.
  • Deep embedding of Haskell in Haskell
    2 projects | /r/haskell | 15 Jul 2021
    hint's API takes a string, not an AST (I plan to fix this). Internally, hint delegates to the ghc library, which does expose a parser which you can use if you want. hint exists to provide a friendlier API than the ghc library for interpreting Haskell code, but it does not expose a friendlier API for parsing Haskell code.

What are some alternatives?

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

haskell.nix - Alternative Haskell Infrastructure for Nixpkgs

recursion-schemes - Generalized bananas, lenses and barbed wire

IdrisExtSTGCodegen

ghci-pretty - tiny hack for colored pretty-printing within ghci

hs-foreign-emscripten - INTERCEPT GHCJS CCALL DISPATCH TO EMSCRIPTEN

Tidal - Pattern language

grin - GRIN is a compiler back-end for lazy and strict functional languages with whole program optimization support.

ghc-dump - A GHC plugin and library for analysing GHC Core

reflex-ghci - Run GHCi from within a Reflex FRP application and interact with it using a functional reactive interface.

ghc-wpc - GHC-WPC is an extended GHC that exports the STG and other IR (.modpak) for the compiled modules and linker metadata (.ghc_stgapp) at application link time.

binaryen - DEPRECATED in favor of ghc wasm backend, see https://www.tweag.io/blog/2022-11-22-wasm-backend-merged-in-ghc