Skip to content
Pannous edited this page Dec 21, 2022 · 6 revisions

goals

general goal

Wasp unifies data and code like lisp, adding nested maps (trees) and natural syntax.

Angle aims towards programming via voice while staying mathematically sound.

achieved goals

☑ be self-contained and dependency free ☑ compile simple programs to minimal wasm ☑ produce runtime-free wasm for simple programs ☑ small (<200kb) runtime for complex programs ✔️ batteries included

partially achieved

☑ easy import of other code and modules (builtin wit reader and wasm linker)
☑ small (<200kb) wasp compiler running in wasm, dependency free ( reintroduced linker adds 2MB std::… ) ☐ universal serialization ☐ REPL console (todo: serialize state between re-compilations) ☐ use the wit component model as native first class citizen

open goals

☐ reuse ALL rust crates for native libraries, as default lookup path (needs semi-stable rust abi). ☐ minimal rust parser to read .rs files as headers (ignore all implementation). ☐ many todos ☐ many concepts specified here still need implementation ☐ be self-hosted later on (even though the wasp compiler runs in wasm, it's currently written in c(++)) ☐ is_declared DWARF sections (or file) for debugging ☐ adhere to wasm smart contract standards

non-goals

𐄂 be a systems language 𐄂 be 100% safe (relying on wasm safety instead of letting developers jump through hoops like rust) 𐄂 produce optimal wasm (while wasp programs are small, they can still be optimized via wasm-opt and wasm-gc!) 𐄂 being self-hosted early on (even though the wasp compiler runs in wasm, it's currently written in c(++)) 𐄂 builtin stable c/cpp FFI outside of wit. stable c abi is … non-existent. Use rust / wit / custom ffi package.

Home

Philosophy

data & code blocks

features

inventions

evaluation

keywords

iteration

tasks

examples

todo : bad ideas and open questions

⚠️ specification and progress are out of sync

Clone this wiki locally