Skip to content

serprex/luwa

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
rt
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

About

WIP jit lua to wasm

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published