Skip to content

cretz/temporal-determinizer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Under development POC to support deterministic Go runtime. Options:

  • TinyGo
  • Code rewriting/transpiling
    • Feasible (can even do it via toolexec option on go build with import paths changes)
    • A bit difficult because we have to make sure to avoid Go stdlib or Temporal lib itself. Therefore we'd have to replace a lot of public runtime.
    • Lots to replace (e.g. panicking on crypto rand), but again technically doable
  • WASM
    • Hard to replace runtime.newproc and map iterations to make deterministic
    • Using Go WASM is targeted for JS and therefore you have to have a harness like this just to work
  • Yaegi
    • Seemingly limited ability to change runtime interpretation of
  • golang.org/x/tools/go/ssa/interp
    • Most code unexported, so no injection points, but code is small that hopefully hijacking small pieces is safe
    • Currently evaluating in this repository

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages