IdrisExtSTGCodegen
typelevel-rewrite-rules
Our great sponsors
- Onboard AI - Learn any GitHub repo in 59 seconds
- InfluxDB - Collect and Analyze Billions of Data Points in Real Time
- SonarLint - Clean code begins in your IDE with SonarLint
- Revelo Payroll - Free Global Payroll designed for tech teams
IdrisExtSTGCodegen | typelevel-rewrite-rules | |
---|---|---|
6 | 4 | |
20 | 62 | |
- | - | |
0.0 | 0.0 | |
11 months ago | about 1 month ago | |
Idris | Haskell | |
GNU General Public License v3.0 or later | LicenseRef-PublicDomain |
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.
IdrisExtSTGCodegen
-
is dependent haskell still a thing?
In practice we will probably have an STG backend for Idris2 before a dependent Haskell, then at least you could link together Haskell and Idris code
-
What are you hyped about today?
I write an Idris2 backend which compiles to STG, yesterday we achieved to run the HelloWorld using functions from GHC.Base :) https://github.com/andorp/IdrisExtSTGCodegen/commit/0150510a7d6160806a85d799768d39f9acc65d30#diff-a15cf9e0e0625f8260bb7b91a4f4ca8e4f4558acf37d4cc834acd2e8a4cdf89aR6
-
Transpiling to GHC Core language
There is a WIP Idris2 to Ext-STG compiler: https://github.com/andorp/IdrisExtSTGCodegen
-
BOB 2021 Andor Penzes - STG Backend for Idris2
Ah, the repo also has the slides of the talk, which are a nice first step to video-less content.
The github repo describes the project as "Pre-alpha, compiles a HelloWorld".
-
Next-gen Haskell Compilation Techniques
| The Idris language versions have always supported easy and modular code generation. I am working on the Idris-ExtSTG backend closely collaborating with Csaba. The progress can be followed here: https://github.com/andorp/IdrisExtSTGCodegen . I am going to give a talk about my experiences at BobKonf 2021: https://bobkonf.de/2021/penzes.html
typelevel-rewrite-rules
-
[ANN/RFC] constraint-rules
Nice! Thanks for including a comparison with my package typelevel-rewrite-rules. Since my package indeed struggles with infinite loops introduced by self-triggering rewrite rules, I would like to better understand why your package doesn't suffer from that same problem.
-
Transpiling to GHC Core language
When writing a typechecker plugin, you can eliminate constraints from the user's program by providing an implementation of the corresponding dictionary. The way you provide that dictionary to ghc is by providing a core expression; for example, this evCast futureDict co expression has type EvTerm, whose first constructor takes an EvExpr, which is a synonym for CoreExpr.
-
[GHC Proposals] GHC Maintainer preview
Until then, I guess we can simply poll. Here's a GitHub Action I wrote today which checks if the latest report for a given package includes a failure: https://github.com/gelisam/typelevel-rewrite-rules/blob/main/.github/workflows/check-hackage-matrix.yml
What are some alternatives?
funspection - Type-level function utilities
Idris2 - A purely functional programming language with first class types
ghc-whole-program-compiler-project - GHC Whole Program Compiler and External STG IR tooling
manual-stg-experiment - Manually constructed STG programs compiled with the standard GHC codegen backend.
normalization-bench - Lambda normalization and conversion checking benchmarks for various implementations
uom-plugin - Units of measure as a GHC typechecker plugin
constraint-rules - Extend GHC's type checker with user-defined rules, without writing a type checker plugin.
tcplugins-zurihac2020 - ZuriHac 2020 GHC typechecker plugins project
type-eq - Type equality evidence you can carry around
lean4 - Lean 4 programming language and theorem prover
type-level-numbers - Implementation of type level natural and signed integer numbers in haskell using type families.
idris2-pack