https://github.com/bohun9/yafl
Functional language compiler targeting LLVM
https://github.com/bohun9/yafl
closure-conversion compiler haskell llvm
Last synced: 12 months ago
JSON representation
Functional language compiler targeting LLVM
- Host: GitHub
- URL: https://github.com/bohun9/yafl
- Owner: Bohun9
- Created: 2025-02-10T16:52:34.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2025-02-25T15:21:04.000Z (about 1 year ago)
- Last Synced: 2025-02-25T16:27:28.642Z (about 1 year ago)
- Topics: closure-conversion, compiler, haskell, llvm
- Language: Haskell
- Homepage:
- Size: 208 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
Awesome Lists containing this project
README
# Yafl
Yafl is a simple compiler for an ML-like functional language targeting LLVM.
### Features
- **Higher-order, curried functions** compiled using a linked closure structure
- **Algebraic data types** with optimization for enumerations
- **Deep pattern matching** compiled to an efficient set of switches
- **Builtin functions** that can be easily extended
### Dependencies
- GHC version 8.10.7: `llvm-hs-pure` doesn't work for newer GHC versions.
- Clang: The Clang executable must be in your system's `PATH` to compile LLVM code.
### Running the Compiler
```
cabal run yafl -- SRC [-o output] [--dump-core] [--emit-llvm]
```