1 unstable release

0.1.0 Jul 23, 2024

#1822 in Programming languages


Used in 2 crates

MIT license

67KB
2K 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:

This crate contains all of the logic for reasoning about dependencies, pulling them in, creating lockfiles, etc.

Dependencies

~19–31MB
~495K SLoC