HWW Portfolio

Software and Hardware Developer

What Already Works in SOOT

This is a snapshot of the project’s state at the commit fix: virtual method dispatch for basic-derived types. It lists only what works and has been verified in the REPL or in tests. There are no plans or promises here.

The goal of this document is to show honestly what can already be picked up and used, and what cannot yet.


The Language and the Interpreter (Script)

The interpreter works on top of an S-expression reader.

The interpreter is used in the REPL (--interpret-only, (sc-eval ...)), and the compiler is built on top of it.


The Compiler (Sootc)

The compiler translates SOOT forms into bytecode for the Carbon virtual machine.


The Virtual Machine (Carbon)


The Binary Format (.bin)


The REPL (Sootc)


What Does Not Work Yet, or Works Only Partially

This section is as important as the previous ones: without it, the list above turns into advertising.


Summary

SOOT can read S-expressions, interpret them, and compile them to bytecode. It loads bytecode into the virtual machine and executes functions, works with structures and enumerations, calls methods statically and polymorphically, builds and loads StateScript with states and tracks, starts processes and schedules their execution, collects garbage, and saves and loads .bin files with relocations.

SOOT cannot yet check that a declared method is implemented, and cannot check the contract when methods are redefined. It does not work with StateScript end to end, and it does not check types across modules.

This is a young project. The list above is a starting point.