Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

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.

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.