#lox #vm #compiler #interpreter #language

bin+lib loxcraft

A compiler, VM, language server, and online playground for the Lox programming language

1 unstable release

0.1.1 Apr 24, 2023
0.1.0 Nov 15, 2022

#995 in Programming languages

MIT license

190KB
3.5K SLoC

Rust 3K SLoC // 0.0% comments LALRPOP 217 SLoC // 0.1% comments TSX 187 SLoC // 0.1% comments Just 50 SLoC TypeScript 12 SLoC

loxcraft

Language tooling for the Lox programming language, created by Bob Nystrom.

Features

Screenshots

Screenshot of REPL

Screenshot of online playground

Benchmarks

Time taken to execute the benchmark suite (lower is better):

Benchmark loxcraft clox jlox
binary_tree 8.29s 8.13s 26.41s
equality_1 7.17s 7.73s 10.01s
equality_2 8.39s 9.66s 14.30s
fib 10.90s 10.09s 21.89s
instantiation 10.83s 12.84s 14.24s
invocation 9.93s 8.93s 15.77s
method_call 11.01s 9.12s 62.03s
properties 10.05s 5.98s 69.77s
string_equality_1 7.76s 7.66s 34.08s
string_equality_2 10.78s 10.52s 36.25s
trees 9.97s 8.72s 72.87s
zoo 10.67s 6.18s 100.10s

Benchmarks

Benchmarks were run with the following configuration:

  • Device: Apple MacBook Pro (16-inch, 2021)
  • Processor: M1 Pro
  • RAM: 16 GiB
  • OS: macOS Ventura 13.2
  • Rust: 1.66.1
  • Apple Clang: 14.0.0
  • Oracle JDK: 19.0.2

Dependencies

~8–23MB
~310K SLoC