Skip to content

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

Notifications You must be signed in to change notification settings

aalhendi/loxest

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

59 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

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

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages