docs/superpowers/specs/2026-08-01-oop-compiler-vm-design.md (new): approved brainstorming design for the OOP-writeonce track's first sub-project — `woc` (OCaml, stdlib-only, handwritten lexer/recursive-descent parser) compiling `.wo` classes to register bytecode, and `wovm` (C, libc-only) interpreting it. Decisions locked: evolve wo-rt-c into the C runtime (Rust rt stays until parity); plan-13 doctrine kept (no inheritance — structural Go-style interfaces + composition); hybrid borrow enforcement (mutable value semantics, second-class borrows — compiler elides provable sites, VM checks residual sites via header borrow word); per-class @gc opt-out with RC + budgeted per-shard Bacon–Rajan cycle scan (no stop-the-world by construction); shard-actor concurrency reserved (header carries shard id, implementation is sub-project 2); root-level monorepo dirs compiler/ + runtime/ (nothing new under prototypes/). Spec covers .wob module format, ~40-op instruction set, trap/unwind error model with drop maps, conformance-corpus test strategy (run/must-fail-compile/must-trap), and measurable success criteria (<100 ms compile, ASan/Valgrind-clean suite, single-binary build).
53 lines
1.6 KiB
Text
53 lines
1.6 KiB
Text
# Cargo build artifacts
|
|
/target
|
|
/reference/crates/target
|
|
|
|
# C++ prototype build output
|
|
/prototypes/*/build
|
|
|
|
# C runtime prototype (prototypes/wo-rt-c): compiled binary + WAL/snapshot data.
|
|
# `just rt-c-demo` and the default WO_DATA write ./wo-data at the repo root.
|
|
/prototypes/wo-rt-c/wo-rt
|
|
/wo-data
|
|
/prototypes/wo-rt-c/wo-data
|
|
|
|
# Runtime data directories for the sample projects.
|
|
# `wo.toml` points at `./data` which holds the per-project engine state.
|
|
/data
|
|
/docs/examples/*/data
|
|
|
|
# Legacy blog content and data (v1 writeonce storage)
|
|
/content
|
|
|
|
# Symlinks to research source trees — user-specific absolute paths.
|
|
# Each contributor sets their own via:
|
|
# ln -s <path-to-linux-src> reference/linux
|
|
# ln -s <path-to-go-src> reference/go
|
|
# ln -s <path-to-postgresql-src> reference/postgresql
|
|
# ln -s <path-to-mcp-python-sdk-src> reference/mcp-python-sdk
|
|
# (clone: https://github.com/modelcontextprotocol/python-sdk.git)
|
|
/reference/linux
|
|
/reference/go
|
|
/reference/postgresql
|
|
/reference/mcp-python-sdk
|
|
|
|
# Developer-local links into agent-tooling state (Claude Code project data,
|
|
# opencode config/data, llama.cpp cache) — user-specific absolute paths.
|
|
# Only .dev/README.md is committed; recreate the links per machine as it describes.
|
|
/.dev/*
|
|
!/.dev/README.md
|
|
|
|
# Editor / OS noise — left broad on purpose so a contributor doesn't
|
|
# accidentally commit their IDE scratch or macOS metadata.
|
|
.DS_Store
|
|
*.swp
|
|
*.swo
|
|
/.idea/
|
|
/.vscode/*
|
|
!/.vscode/settings.json.example
|
|
!/.vscode/extensions.json
|
|
|
|
/prototypes/wo-db
|
|
# Phase-F bench binaries (sources are committed; builds are not)
|
|
/prototypes/wo-rt-c/bench/bench
|
|
/prototypes/wo-rt-c/bench/goref/goref
|