https://github.com/ericlbuehler/kestrel
Simple and safe.
https://github.com/ericlbuehler/kestrel
compiler kestrel
Last synced: about 1 year ago
JSON representation
Simple and safe.
- Host: GitHub
- URL: https://github.com/ericlbuehler/kestrel
- Owner: EricLBuehler
- License: mit
- Created: 2023-07-24T09:25:18.000Z (almost 3 years ago)
- Default Branch: master
- Last Pushed: 2023-08-31T14:03:14.000Z (almost 3 years ago)
- Last Synced: 2025-03-17T17:49:29.013Z (about 1 year ago)
- Topics: compiler, kestrel
- Language: Rust
- Homepage:
- Size: 12.8 MB
- Stars: 8
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# kestrel

[](LICENSE)



Simple and safe.
## Todo Roadmap
- **Add C-style enums** (by 8/18/23)
Add: `enum` keyword, enum variant instantiation with `::` operator.
- **Add `match` keyword** (by 8/21/23)
Add: `match` keyword, use phi values.
MIR effect: Will require permutations to prove invariants.
- **Add Rust-style enums** (by 8/24/23)
Add: `enum` instantiation really instantiates a struct containing the value and the discriminant, update `match keyword`
- **Add `String` type** (by 8/26/23)
Add: `String` type.
- **Add `std::io::print` type** (by 8/28/23)
Add: `std::io::print` builtin function.
- **Allow `fn` to take references** (by 9/2/23)
Update: `fn` parameter list.
Mir effect: Will require lifetime checks for functions.
## Syntax Highlighting
Kestrel has a syntax highlighting theme for VSCode! To install:
1) `cd kestrel-syntax`
2) `make install`
3) Restart VSCode
## Features
- **Ahead of time compilation** - Kestrel is compiled ahead of time (AOT), instead of being interpreted or JIT compiled. AOT compilation allows Kestrel to catch entire classes of runtime errors, vastly improving the developer experience.
- **Statically typed** - Kestrel resolves types at compile time, resulting in immediate warnings and feedback.
- **Performance** - AOT compilation means that Kestrel programs are compiled directly to machine code, allowing programs to be executed on any target platform natively, with blazing fast performance.
- **Helpful compiler** - Descriptive and detailed error messages improve the debugging experience.
- **Borrow checker** - Ensures that invariants which prevent many types of memory errors by converting Kestrel code into Kestrel MIR.