runtimeverification / runtimeverification/haskell-backend
New binary `haskell-kompile` for doing compile-time optimizations
Nobody has claimed this yet.
- Dominant language
- Haskell
- Stars
- 224
- Forks
- 43
- PR merge metrics
- No merged PRs in 30d
Description
Requirements:
- Kore -> Kore transformation, works in both text form and binary form. The reason is so that LLVM backend can benefit from these optimizations too.
- Does the existing kompile-time validation that
kore-parsedoes (replace all calls into haskell backend at kompile time with call to this binary). - Implement the same simple algorithm for preserves-definedness that is implemented here (no fancy
#Ceilsimplification): https://github.com/runtimeverification/k/pull/2963
From the other duplicate issue:
We need to keep in mind the future requirement of exposing a Kore compilation tool which will implement several optimization passes over the kompiled definition.
Definition processing which will be moved to this tool:
- parsing
- syntactical validation
- semantic validation (like sort checking, application argument count etc.)
- rule optimizations (adding the
preserves-definednessattribute, rule indexing, static function expansion, etc.)
For now, we need to make sure that the processing described above isn't tightly coupled with the symbolic execution API we're building.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the existing kompile-time validation performed by kore-parse and the simple preserves-definedness algorithm in PR 2963. The work is complete when a separate haskell-kompile binary performs the described Kore transformations in text and binary form without coupling them to the symbolic execution API.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- haskell
- Domain
- compilers
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100