Skip to content

InfiniteCoder01/orco

Repository files navigation

orco

wakatime

orco is a compiler toolchain focusing on performace and extensibility Developed on streams

Goals

orco development is currently guided by those goals:

  1. Runtime features such as:
    • Hot code reloading
    • JIT
    • Debugging
    • Interpreting
    • Cross-compilation
  2. LSP features:
    • Syntax highlighting
    • Code completion
    • Hover info
    • Go to [definition/uses/etc.]
    • Inline docs
  3. Easy language interop & generation of C (or C-like) headers, transpilation to C
  4. Package/dependency management (to some extent, possibly functional)

Roadmap for next few streams

You can watch me do this live on twitch Twitch and youtube Youtube

Roadmap for now (Lacks behing A LOT of rewrites. This is like a year as outdated at this point):

  • Symbols
  • Paths
  • Floats
  • Frontend-side diagnostics (and diagnostics refactor (and lints))
  • Fix cyclic Arc by implementing inner pointers
  • Reduce the use of Spanned<Struct>
  • Make IR first-class (a BIG refactor)
  • Remove Ariadne completely (+ lexer abort compilation)
  • Move spans to frontend?
  • Comptime type hints
  • Path as an operator [cancelled]
  • orco::Path borrowing names? [cancelled]
  • Get metadata traits out of macros
  • Reorganize IR Tree to hold references to modules. Maybe local resolve should only be in module?
  • Parent modules (super::)
  • Fix lazy evaluation:
    • Extract part of TypeInference struct into something like LocalContext
    • Rename TypeInference to something like Context and rename all the functions
    • Remove lifetime from TypeInference/Context struct and make it shareable/cloneable
    • Isolate LocalContext for all ensure_evaluated
  • Comptimes in blocks
  • Structs
  • Generics
  • Operator Overloading & Traits
  • Finish the interpreter
  • Unwinding?
  • Effect system?!
  • Pointers
  • Typecasts
  • Arrays
  • While loop
  • C Frontend (and a blog post on it hopefully)
  • Post-typechecking frontend-side checks
  • Rust frontend
  • Self-hosting

About

orco - compiler toolchain

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages