Skip to content

Commit f67af66

Browse files
committed
docs: correct README/EXPLAINME to real state + add in-tree wiki/
The docs carried fabricated/aspirational claims as if implemented: - README.adoc advertised a Deno/Idris2/Zig/Vyper toolchain + badges and a false 'asdf install rust deno idris2 zig' step (.tool-versions pins only 'rust stable'). - EXPLAINME.adoc described wokelang as a nextgen-languages submodule (it is standalone), OCaml as a 'frontend' (it is the core/ reference), and Vyper FFI + WASM codegen as implemented (both are design-only: 0 vyper refs in src; src/codegen WasmCompiler is an unwired scaffold). Rewrite both to the verified real state (Rust-primary + OCaml core/, echo-types/Isabelle frontier, VS Code syntax-only per #78). Add an in-tree wiki/ (Home, Overview, Architecture, CI-and-Governance, Roadmap). PMPL-1.0 README badge left for a maintainer license decision. https://claude.ai/code/session_013wg3Mtq2QFhYi4XVw1Z6z7
1 parent da78219 commit f67af66

7 files changed

Lines changed: 964 additions & 201 deletions

File tree

EXPLAINME.adoc

Lines changed: 47 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,23 @@ commitment.
1515

1616
== What WokeLang Is
1717

18-
WokeLang is a programming language in `nextgen-languages` designed around
18+
WokeLang is a standalone language in the hyperpolymath estate, designed around
1919
three principles: human-readable syntax (English-like keywords), ethical
2020
scaffolding (consent gates, gratitude blocks, empathy annotations), and type
2121
safety with dimensional analysis (units of measure enforced at compile time).
2222
The primary implementation is a Rust compiler/interpreter (`src/`, `Cargo.toml`)
23-
that can run WokeLang programs via a tree-walking interpreter, compile to
24-
bytecode for the WokeLang VM, or export a WASM target for browser execution.
25-
An OCaml frontend (`dune-project`, `wokelang.opam`) provides an alternative
26-
AST pipeline used for research and verification.
23+
that runs WokeLang programs via a tree-walking interpreter or compiles them to
24+
bytecode for the WokeLang VM. A WASM target is a design commitment (see Claim 2).
25+
An OCaml reference core (`core/`, built with `dune` + `menhir`) provides an
26+
independent AST + evaluator pipeline used for research, semantics
27+
cross-checking, and the end-to-end CI gate. (Note: `wokelang.opam` is currently
28+
an intentionally empty stub; the OCaml core builds from `dune-project`.)
29+
30+
The *frontier* workstream integrates *echo types* — `hyperpolymath/echo-types`,
31+
a constructive Agda formalization of fiber-based structured loss — into the type
32+
checker, backed by a near-first-principles machine-checked proof narrative
33+
(Isabelle preferred), so the language discharges consent / affine-use safety for
34+
the user automatically.
2735

2836
== Claim 1: Rust compiler with lexer, parser, type checker, and VM
2937

@@ -76,24 +84,24 @@ blockchain ops. WASM Target: Compile to run in browsers/Node.js. Portable
7684
and fast.
7785
____
7886

79-
*How it works.*
80-
`src/codegen/` contains the WASM backend: it consumes the typed AST and emits
81-
WebAssembly binary format consumable by browsers and Deno.
82-
`src/stdlib/` includes the Vyper FFI bridge: `vyper call` statements in
83-
WokeLang source are lowered to calls against a Vyper contract ABI at the
84-
code-generation phase, allowing blockchain operations to be invoked with the
85-
same `only if okay` consent-gate syntax as local side effects.
86-
`examples/` contains `.woke` files demonstrating the full feature set including
87-
`thanks to` gratitude blocks, `@feeling` empathy annotations, and pipeline
88-
syntax (`data then clean then analyze`).
89-
`fuzz/` contains fuzzing harnesses for the parser and typechecker.
87+
*How it works (and what is real).*
88+
`src/codegen/` declares a `WasmCompiler` scaffold for a future WASM backend.
89+
`examples/` contains `.woke` files demonstrating the *implemented* feature set
90+
including `only if okay` consent gates (`08_consent.woke`, `22_consent_system.woke`),
91+
`thanks to` gratitude blocks (`17_gratitude.woke`), and security examples.
92+
`src/stdlib/` provides the standard library (`array`, `chan`, `io`, `json`,
93+
`math`, `net`, `string`, `time`), where `io` and `net` route side effects
94+
through the consent machinery.
95+
`fuzz/` contains fuzzing harnesses (driven by ClusterFuzzLite in CI).
9096
`verification/` holds formal verification artefacts.
9197

9298
*Honest caveat.*
93-
The Vyper FFI is a design feature present in the README feature table; its
94-
integration with live contract ABIs requires a running Ethereum node and is
95-
not covered by the existing test suite — it is a research capability, not a
96-
production-ready integration.
99+
The Vyper / blockchain FFI and the WASM target are *design commitments* described
100+
in the README feature table, the language spec, and the research paper — they are
101+
*not* working implementations in the current tree. There is no `vyper` bridge in
102+
`src/stdlib/`, and the `src/codegen/` WASM module is a scaffold that is not yet
103+
wired into the build or emitting binaries. Treat both as research capabilities on
104+
the roadmap, not production-ready integrations.
97105

98106
== Dogfooded Across The Account
99107

@@ -111,16 +119,16 @@ production-ready integration.
111119
| Container build manifest for the WokeLang compiler image (Chainguard Wolfi base)
112120

113121
| `nextgen-languages`
114-
| WokeLang is a sub-project of the `nextgen-languages` monorepo; this repo is checked out as a submodule
122+
| Sibling estate (home of AffineScript / my-lang). WokeLang is a *standalone* repository in the hyperpolymath estate, not a submodule of `nextgen-languages`.
115123

116124
| `ABI-FFI-README.md`
117-
| Idris2 ABI + Zig FFI standard applied: `src/abi/` and `ffi/` directories follow the account-wide ABI/FFI convention
125+
| Account-wide ABI/FFI convention applied: `src/abi/` holds the Idris2 ABI definitions (`Foreign.idr`, `Layout.idr`, `Types.idr`) and `src/ffi/` holds the Rust C-ABI bridge (`c_api.rs`).
118126

119127
| `grammar/`
120-
| WokeLang grammar files feed `tree-sitter generate` for editor syntax support
128+
| WokeLang grammar source feeding editor syntax support (TextMate / tree-sitter).
121129

122130
| `editors/`
123-
| Editor integration packages (Neovim, VS Code) built from the tree-sitter grammar
131+
| Editor integration: a TextMate grammar plus a VS Code extension. The VS Code extension is currently *syntax-only* — its ReScript LSP client was removed (banned estate-wide) and an AffineScript reimplementation is tracked in issue #78. The Rust `woke-lsp` server binary is unaffected and works with any LSP-capable editor.
124132

125133
| `arxiv-consent-aware-programming.tex`
126134
| Research paper on consent-aware programming; wokelang is the reference implementation
@@ -166,13 +174,13 @@ production-ready integration.
166174
| Bytecode optimiser: constant folding, dead code elimination
167175

168176
| `src/codegen/`
169-
| WASM code generation backend
177+
| Code-generation scaffolding (`WasmCompiler`); a future WASM backend, not yet wired into the build
170178

171179
| `src/lsp/`
172-
| Language Server Protocol implementation for editor integration
180+
| Language Server Protocol implementation (built as the `woke-lsp` binary)
173181

174182
| `src/dap/`
175-
| Debug Adapter Protocol implementation
183+
| Debug Adapter Protocol implementation (built as the `woke-dap` binary)
176184

177185
| `src/repl.rs`
178186
| Interactive REPL loop
@@ -181,7 +189,7 @@ production-ready integration.
181189
| S-expression AST dump (for debugging and tooling)
182190

183191
| `src/stdlib/`
184-
| Standard library: built-in functions, Vyper FFI bridge, I/O primitives
192+
| Standard library: `array`, `chan`, `io`, `json`, `math`, `net`, `string`, `time` (consent-routed I/O and networking)
185193

186194
| `src/linter/`
187195
| Static linter: style rules, consent-gate usage checks
@@ -196,16 +204,16 @@ production-ready integration.
196204
| Module system: import resolution and namespace management
197205

198206
| `src/abi/`
199-
| Idris2 ABI definitions for the Rust/Zig FFI boundary
207+
| Idris2 ABI definitions (`Foreign.idr`, `Layout.idr`, `Types.idr`, `wokelang-abi.ipkg`) for the FFI boundary
200208

201-
| `ffi/`
202-
| Zig FFI implementation: C-ABI-compatible bridge
209+
| `src/ffi/`
210+
| Rust C-ABI FFI bridge (`c_api.rs`, `mod.rs`)
203211

204212
| `grammar/`
205213
| Tree-sitter grammar source for WokeLang syntax
206214

207215
| `editors/`
208-
| Editor integration packages built from the grammar
216+
| TextMate grammar + VS Code extension (currently syntax-only; ReScript LSP client removed, AffineScript reimpl tracked in issue #78)
209217

210218
| `examples/`
211219
| `.woke` example programs: hello world through fibonacci, unit arithmetic, consent gates, gratitude blocks
@@ -222,8 +230,11 @@ production-ready integration.
222230
| `bench/` / `benches/`
223231
| Criterion benchmarks: interpreter and VM throughput
224232

225-
| `compiler/`
226-
| OCaml alternative frontend (dune-project, wokelang.opam)
233+
| `core/`
234+
| OCaml reference core: `lexer.mll` (ocamllex) + `parser.mly` (menhir) + `ast.ml` + `eval.ml`, built with `dune`
235+
236+
| `compiler/wokelang-wasm/`
237+
| Standalone Rust crate for the WASM compilation experiment (`lib.rs`)
227238

228239
| `conformance/`
229240
| Conformance test suite against the language specification
@@ -238,7 +249,7 @@ production-ready integration.
238249
| Rust workspace manifest
239250

240251
| `dune-project` / `wokelang.opam`
241-
| OCaml build configuration for the alternative frontend
252+
| OCaml build configuration for the `core/` reference (`dune-project` drives the build; `wokelang.opam` is currently an empty stub)
242253

243254
| `Justfile` / `Mustfile`
244255
| Developer recipes: `build`, `test`, `bench`, `fuzz`, `check-conformance`
@@ -256,7 +267,7 @@ production-ready integration.
256267
| Container build manifest
257268

258269
| `flake.nix` / `guix.scm`
259-
| Reproducible build environments (Rust nightly + OCaml + Deno toolchain)
270+
| Reproducible build environments (Rust + OCaml toolchain); Guix primary, Nix fallback
260271
|===
261272

262273
== Questions?

0 commit comments

Comments
 (0)