go-interpreter / wagon

wagon, a WebAssembly-based Go interpreter, for Go.
BSD 3-Clause "New" or "Revised" License
904 stars 148 forks source link

Boilerplate implementing #121 native bailout - thoughts? #124

Closed twitchyliquid64 closed 5 years ago

twitchyliquid64 commented 5 years ago

This is the beginning of the bailout system.

codecov-io commented 5 years ago

Codecov Report

Merging #124 into master will increase coverage by 0.54%. The diff coverage is 83.33%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master     #124      +/-   ##
==========================================
+ Coverage   66.01%   66.55%   +0.54%     
==========================================
  Files          41       41              
  Lines        4172     4246      +74     
==========================================
+ Hits         2754     2826      +72     
- Misses       1147     1149       +2     
  Partials      271      271
Impacted Files Coverage Δ
exec/internal/compile/native.go 54.54% <100%> (+54.54%) :arrow_up:
exec/internal/compile/native_exec.go 100% <100%> (ø) :arrow_up:
exec/native_compile_nogae.go 100% <100%> (ø) :arrow_up:
exec/native_compile.go 55.35% <42.85%> (-2.65%) :arrow_down:
exec/internal/compile/backend_amd64.go 79.81% <84.48%> (+3.06%) :arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update 3c39bd4...f7c4ef3. Read the comment docs.

twitchyliquid64 commented 5 years ago

PTAL :)

twitchyliquid64 commented 5 years ago

Note: For now I've enabled native bounds-checking only when tag debugstack is set - my intention is to expose this as a VM option as well.

Main benefit of this is having bounds checking over native stack push/pops in the CI test runs.