Skip to content

Latest commit

 

History

History
77 lines (46 loc) · 1.52 KB

README.md

File metadata and controls

77 lines (46 loc) · 1.52 KB

Loxest

What is Loxest

A dynamically typed, interpreted language compiled and executed on its own virtual machine.

It aims to compatible with Bob Nystrom's Lox implementation in C.

Installation

Stable binaries are available on the releases page.

Usage

Running the REPL

./loxest

Running a file

./loxest <filename>.lox

Features

Loxest comes with a disassembler and a trace execution printing. To enable these features, follow the development guide and enable the features within the Cargo.toml file or on the command line for a single run.

Cargo.toml

Uncomment this line:

# default = ["debug-trace-execution", "debug-print-code"]

CLI

To run a single feature:

cargo run --release --features "debug-print-code" # or whatever feature

To run all features:

cargo run --release --all-features

Development

To download and develop on Loxest, clone the repository and build using Cargo. Cargo, as well as Rust can be installed via rustup.

Once downloaded, navigate to the project root directory and run:

cargo build --release

Documentation

TODO. Someday. Maybe. Or read the code.

Notes

The benchmark examples are copied from the craftinginterpreters repository and are under the MIT License.

License

MIT License - Copyright (c) 2024 Abdulrazzaq Alhendi.