Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ericlbuehler/kestrel
Simple and safe.
https://github.com/ericlbuehler/kestrel
compiler kestrel
Last synced: 10 days 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 (over 1 year ago)
- Default Branch: master
- Last Pushed: 2023-08-31T14:03:14.000Z (about 1 year ago)
- Last Synced: 2024-10-07T11:22:44.339Z (about 1 month ago)
- Topics: compiler, kestrel
- Language: Rust
- Homepage:
- Size: 12.8 MB
- Stars: 7
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# kestrel
![rustc 1.71.0](https://img.shields.io/badge/rustc-1.71.0-red)
[![MIT License](https://img.shields.io/badge/License-MIT-informational)](LICENSE)
![Test status](https://github.com/EricLBuehler/kestrel/actions/workflows/tests.yml/badge.svg)
![Build status](https://github.com/EricLBuehler/kestrel/actions/workflows/build.yml/badge.svg)
![Docs status](https://github.com/EricLBuehler/kestrel/actions/workflows/docs.yml/badge.svg)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.