1 unstable release
0.1.0 | Jul 23, 2024 |
---|
#841 in Build Utils
26 downloads per month
Used in 7 crates
(5 directly)
105KB
2.5K
SLoC
I've worked on languages professionally for many years, now. I've always had to worry about pesky things like user adoption, familiarity and similarity to other languages, and proprietary compilation targets.
This is what happens when I can do whatever I want -- petr
seeks to be a low-level performant general purpose programming languages, with a sophisticated type and side-effects-tracking system. And weird syntax!
__
____ ___ / /_ _____
/ __ \ / _ \ / __/ / ___/
/ /_/ // __// /_ / /
/ .___/ \___/ \__/ /_/
/_/
Programmatic Effects Tracking
petr-ast
│
│
▼ ┌───►petr-codegen
petr-parse────►petr-bind────►petr-resolve────►petr-typecheck───► petr-ir│
│ ├───►petr-vm
│ │
▼ │
petr-fmt───────────────────────┬────────────────────────────────────────┘
│
│
│
▼
petr-manifest────►petr-pkg────►pete
lib.rs
:
given bindings, fully resolve an AST This crate's job is to tee up the type checker for the next stage of compilation.
Dependencies
~4–10MB
~110K SLoC