penrose
ghc-whole-program-compiler-project
penrose | ghc-whole-program-compiler-project | |
---|---|---|
16 | 9 | |
2,598 | 115 | |
0.3% | 1.7% | |
0.0 | 8.8 | |
over 1 year ago | 6 months ago | |
Haskell | Haskell | |
MIT License | - |
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.
penrose
-
Secretly introduced rust in my company, now they love it!
There is a fork that compiles to js https://github.com/ghcjs/ghcjs compiler, and I believe the official glasgow compiler is working towards also supporting js/wasm (although I don't think they are supported as of yet).
-
Resurrection/modernization of an old Haskell+Haste project (boardgame Yinsh)
I don't know anything about Haste, but you can get GHCJS 8.6 (or 8.10 with a bloated executable) via nix fairly easily or alternatively wait until the JS target recently merged into mainline ghc gets production ready: https://engineering.iog.io/2023-01-26-ghc-update.
-
How does GHC built from source set header search path?
Ah GHCJS does have this header: https://github.com/ghcjs/ghcjs/blob/ghc-8.10/lib/boot/data/include/stg/DLL.h
- Haskell, JS, and WebDev?
-
Status of GHCJS for larger projects
It seems like https://github.com/ghcjs/ghcjs/issues/821 is a rigid dealbreaker for any sizable project.
-
GHCJS or Asterius
About the FFI: GHCJS extended the FFI to support inlined JS, named arguments, etc. See https://github.com/ghcjs/ghcjs/blob/master/doc/foreign-function-interface.md For now the JS backend only implements FFI calls similarly to native FFI. The rest will be open to discussion later (e.g. in a ghc-proposal) and should take into account the Wasm backend so that the same user code compiles with both backends as much as possible.
- Just few questions on Miso and GHCjs
-
Memory from finished thread is not getting reclaimed
Other than that, I ran into a GHCJS and Miso bug, but they weren't too hard to solve.
-
GHC Pluggable Backend?
There are a bunch of open branches. And yes, there is ghcjs support in haskell.nix, see this comment.
-
Is GHCJS stuck on GHC 8.6.5?
When I compile the ghc-8.8 branch locally, I get a number of test failures from the test suite. I'm not sure exactly how to fix them and they aren't currently my highest hobby priority.
ghc-whole-program-compiler-project
-
Can GHCi be run like PDB?
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?
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?
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)
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
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?
I haven't gotten my hands dirty yet, but really excited hearing GHC-WPC is going on!
-
GHC Pluggable Backend?
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
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
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.
What are some alternatives?
ascii-art-to-unicode - Small program to convert ASCII box art to Unicode box drawings.
haskell.nix - Alternative Haskell Infrastructure for Nixpkgs
ihp - 🔥 The fastest way to build type safe web apps. IHP is a new batteries-included web framework optimized for longterm productivity and programmer happiness
IdrisExtSTGCodegen
safe - Haskell library for safe (pattern match free) functions
hs-foreign-emscripten - INTERCEPT GHCJS CCALL DISPATCH TO EMSCRIPTEN
aeson-serialize - Functions for serializing a type that is an instance of ToJSON
grin - GRIN is a compiler back-end for lazy and strict functional languages with whole program optimization support.
cognimeta-utils - Utilities used by Perdure
ghc-dump - A GHC plugin and library for analysing GHC Core
miso - :ramen: A tasty Haskell front-end framework
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.