goals - pannous/wasp GitHub Wiki
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.