Skip to content

serprex/luwa

Folders and files

NameName
Last commit message
Last commit date
Apr 6, 2019
May 26, 2018
Dec 25, 2017
May 12, 2018
Apr 18, 2017
Oct 1, 2017
Jan 21, 2018
Jun 12, 2017
Feb 22, 2018
Oct 1, 2017
Feb 5, 2018
Apr 11, 2018
May 14, 2018
Jan 6, 2018

Repository files navigation

Build

Luwa's end goal is to JIT to WASM. Right now it's a bit of a learning environment for me as I've never written a language implementation that required real parsing

I'll try avoid my usual stream of consciousness here, instead that's at my devlog

main.js is nodejs entrypoint

WASM runtime is in rt/. rt/make.lua is luwa-agnostic macro-assembler logic. mkrt.lua produces an rt.wasm which rt.js interfaces

GC is a LISP2 compacting GC. GC performance is a low priority given WASM GC RFC. See rt/gc.lua

VM needs to be reentrant. Currently running coroutine is oluastack. Builtins which call functions work by returning after setting up a necessary callstack. See rt/vm.lua

rt/prelude.lua implements builtins which do not require hand written wasm