From 27f49b76b63759ad5694e32545dba595cd5fe9db Mon Sep 17 00:00:00 2001 From: Crypt Keeper <64215+codefromthecrypt@users.noreply.github.com> Date: Mon, 12 Jun 2023 13:41:11 +0800 Subject: [PATCH] deps: updates TinyGo to v0.28.1 (#28) Signed-off-by: Adrian Cole --- .github/workflows/commit.yaml | 2 +- .github/workflows/testdata.yaml | 2 +- README.md | 2 +- examples/router/main.wasm | Bin 7512 -> 7985 bytes examples/wasi/main.wasm | Bin 17783 -> 18779 bytes go.mod | 3 - handler/body.go | 8 +- handler/header.go | 16 ++-- handler/host.go | 2 +- handler/internal/imports/host.go | 28 +++--- handler/internal/imports/imports.go | 82 +++++++----------- handler/internal/imports/imports_stub.go | 28 +++--- handler/internal/mem/mem.go | 10 +-- handler/request.go | 4 +- internal/e2e/go.mod | 2 +- .../bench/tinygo/add_header_value/main.wasm | Bin 6538 -> 6929 bytes .../bench/tinygo/get_header_names/main.wasm | Bin 7303 -> 7590 bytes .../bench/tinygo/get_header_values/main.wasm | Bin 7318 -> 7648 bytes .../testdata/bench/tinygo/get_uri/main.wasm | Bin 6893 -> 7138 bytes .../test/testdata/bench/tinygo/log/main.wasm | Bin 6478 -> 6817 bytes .../testdata/bench/tinygo/read_body/main.wasm | Bin 6583 -> 6941 bytes .../bench/tinygo/read_body_stream/main.wasm | Bin 6662 -> 6912 bytes .../bench/tinygo/remove_header/main.wasm | Bin 6525 -> 6868 bytes .../bench/tinygo/set_header_value/main.wasm | Bin 6547 -> 6937 bytes .../bench/tinygo/set_status_code/main.wasm | Bin 6508 -> 6750 bytes .../testdata/bench/tinygo/set_uri/main.wasm | Bin 6500 -> 6842 bytes .../bench/tinygo/stream_body/main.wasm | Bin 6901 -> 7138 bytes .../bench/tinygo/write_body/main.wasm | Bin 6520 -> 6866 bytes .../testdata/e2e/tinygo/features/main.wasm | Bin 7547 -> 7820 bytes .../e2e/tinygo/handle_response/main.wasm | Bin 7770 -> 8051 bytes .../test/testdata/e2e/tinygo/log/main.wasm | Bin 6790 -> 7190 bytes 31 files changed, 84 insertions(+), 105 deletions(-) diff --git a/.github/workflows/commit.yaml b/.github/workflows/commit.yaml index 8838288..14814cf 100644 --- a/.github/workflows/commit.yaml +++ b/.github/workflows/commit.yaml @@ -52,7 +52,7 @@ jobs: go-version: # Note: Go only supports 2 versions: https://go.dev/doc/devel/release#policy - "1.20" tinygo-version: # Note: TinyGo only supports latest: https://github.com/tinygo-org/tinygo/releases - - "0.27.0" # Latest + - "0.28.1" # Latest steps: - uses: actions/checkout@v3 diff --git a/.github/workflows/testdata.yaml b/.github/workflows/testdata.yaml index 134467d..fcd0bb0 100644 --- a/.github/workflows/testdata.yaml +++ b/.github/workflows/testdata.yaml @@ -29,7 +29,7 @@ jobs: go-version: # Note: Go only supports 2 versions: https://go.dev/doc/devel/release#policy - "1.20" tinygo-version: # Note: TinyGo only supports latest: https://github.com/tinygo-org/tinygo/releases - - "0.27.0" # Latest + - "0.28.1" # Latest steps: - uses: actions/checkout@v3 diff --git a/README.md b/README.md index 9bc3743..477940a 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ func handleRequest(req api.Request, resp api.Response) (next bool, reqCtx uint32 } ``` -If you make changes, you can rebuild it like so: +If you make changes, you can rebuild this with TinyGo v0.28 or higher like so: ```sh tinygo build -o examples/router/main.wasm -scheduler=none --no-debug -target=wasi examples/router/main.go ``` diff --git a/examples/router/main.wasm b/examples/router/main.wasm index c4e7ce33c9ae20baa19a447b7db0eed37b15b7e3..da96de20795f8f18bdecbe2c9e7251ba178328da 100755 GIT binary patch delta 4161 zcmaJ^Uu+yl8K0S*z1zFpv$wI69Py=|U7wSyk~mHX=g5laO;pFBAtXSB`cOelZIs+O zc4A)|5T%su!- zv)81NsI9$kX7-!!?{B{O_U8D{KYe<=Cz6CGPcwFAc!E1;TJ492V#XwwT)5m71;M3s zT`n9U97i(e%*ynJq25DNbJMdkUs;%0JUTzOIKzeuMb0$$Wi@tl0e6ZYY>qF#$j5nf z@sz9y7IXa{wqG_hriyFcj742Aj4qu@|1JiSl_jZYMRR?3N#gfrM}~48v1^8Pzt<1* z%>TFK`9!e^2zs+4dwu0l3o6h?2>*n>kA*N5BlwpZ}^~vvJk{vjWYVVenn63T7G zLi2DHOmkaWG)WO`PakuYfUK{%g95YfxEt5Py3drD6547yV8&p1K0lPc!cYPp7a{Njd$ee>z(w+-j~KOR}Q#<3e~K_E#$nw zeA++;D~{32Mzro2qF9&Hl3gZ{q+FQ(@ULrJDmLM32mbSX*X0m&MYk%aQI zv7@|~h~b1Bo4}re!IE-y*YXvg z1f8~98FY4I<+PibdeNwh3eW;~!L65Zw(uZTnzs;y!1Wc}ZAMPOeP4;1@FGFOu#fpB zVlus3{M5jGdCM>h&9mVe%Hv+Y+RZBkIX&V3NPr9kaRO94N~kkPFmTHX1I$spMHY2g zV2r+V7G(g(#s7ogg#?Fkv=vLBLINDS869k?YfV!el%$0+7V>owkfrb`%2|`O*Q5l? zL?ND@A|N@TiYXKD_FjeyR1xSzg9R`9m5VS_QjzT}rPx~&L7bRpm{TT!5*l@+wf?y(|mmrw{iHroSpx z2)pD0gy>N^9!UM9za7DYv(^H#t_c$WHJxbG$t|ouW^J7;0^fuC1{6Ow+w^}B@POiZ zT66-WJE=<;+d6$n@>AmHkTm(oSi3j~4}=sUP1?kuHO zdp7n{PO)2pxOA~N8TJ_=*43o6qzs}t$Xb(#0-Kyo9^l@CkK&hoLIxg2pLak zZi827yzD{4`#I zBd=#Hx zWNHtLC-fl_K$?<|2ss88GYZDA10!G?iKbCalqqRtJFXDsDt4@507=<#)t)qyiR2s^ zg+1qqg8vnw;Qa|vpyUEk69+I|%q9lempG-E4?% zkwR6fi<`s-dr_&9kCrNA>6VeDN~T`LK2@yTLfkVz0er{EM~*RtEq|kFfP7&J6W`{r z$80FvSK)f<;@wPNg|Kv+E8o_*5)MF5kMi#oxnf%BtMWUk?yEOeXcGdlYz|0W+%bI14bVXmL@D({ zpp0%3#K+z_%jkC#@jR-eLg#`?!gh->(cisVxG9Oa%$gRU=p;hgss&wJHAHWK`di$! zIB^U&kUocc#q=BI7oE*RIR+8wxBG{aU!v8fa@;^m3`HojO?$lwl=<#xXLm#k3QTak z(zPaUtUx4Ck0fINtnMVV%BqxDt0hfpg zD2dQ*)@#NZ5ALL>IxJm@=}5azTNyjlX}{aTtAt`TtC#wXdaH%AXu$`1>oK+l;fDc=YWT zq<@Ovz|t*D)8DOC$$QLW)0~@ySFvcnRToB1Of4Sy!pyPbGmCBZ9&_33|K-U(Y9aIn zWR<~p1N^%{sqyf)ZGGkQM=xPUe@_X{t}fZJ#5_p-@@jv%Am^rz%*?u*J@X5Du@~>)dOrLfH||we9ho{jH)0nvmxmwxX5Wzdl`jug9F`whn4g|% uPw_%F7}+M=5n5sA(r;C2T%@m6zS@&};_%!zCg*dbBinb5Y)ifM2mc2bh1rw< delta 3551 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 diff --git a/examples/wasi/main.wasm b/examples/wasi/main.wasm index 2966750d2d249a4d2c6f9348163e700b13241da9..7f346d24bac324391a88525bb32e118007badb6e 100755 GIT binary patch literal 18779 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 literal 17783 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 diff --git a/go.mod b/go.mod index 9a48644..eaba605 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,3 @@ module github.com/http-wasm/http-wasm-guest-tinygo -// TinyGo 0.27 doesn't fully support Go 1.20, but it supports what we need. -// Particularly, unsafe.SliceData, unsafe.StringData were added to TinyGo 0.27. -// See https://github.com/tinygo-org/tinygo/commit/c43958972c3ffcd51e65414a346e53779edb9f97 go 1.20 diff --git a/handler/body.go b/handler/body.go index 73776a8..88f5341 100644 --- a/handler/body.go +++ b/handler/body.go @@ -45,12 +45,12 @@ func (b wasmBody) Read(bytes []byte) (size uint32, eof bool) { return // invalid, but prevent crashing. } - size, eof = read(b, uintptr(ptr), limit) + size, eof = read(b, ptr, limit) runtime.KeepAlive(bytes) // keep bytes alive until ptr is no longer needed. return } -func read(b wasmBody, ptr uintptr, limit imports.BufLimit) (size uint32, eof bool) { +func read(b wasmBody, ptr uint32, limit imports.BufLimit) (size uint32, eof bool) { eofLen := imports.ReadBody(imports.BodyKind(b), ptr, limit) eof = (eofLen >> 32) == 1 size = uint32(eofLen) @@ -64,7 +64,7 @@ func (b wasmBody) Write(bytes []byte) { return } - imports.WriteBody(imports.BodyKind(b), uintptr(ptr), size) + imports.WriteBody(imports.BodyKind(b), ptr, size) runtime.KeepAlive(bytes) // keep bytes alive until ptr is no longer needed. } @@ -75,6 +75,6 @@ func (b wasmBody) WriteString(s string) { return } - imports.WriteBody(imports.BodyKind(b), uintptr(ptr), size) + imports.WriteBody(imports.BodyKind(b), ptr, size) runtime.KeepAlive(s) // keep s alive until ptr is no longer needed. } diff --git a/handler/header.go b/handler/header.go index 7cee419..00bcb97 100644 --- a/handler/header.go +++ b/handler/header.go @@ -31,8 +31,8 @@ func (w wasmHeader) Names() (names []string) { } // Otherwise, we have to allocate a new buffer for the large entry. buf := make([]byte, size) - ptr := unsafe.Pointer(unsafe.SliceData(buf)) - _ = imports.GetHeaderNames(imports.HeaderKind(w), uintptr(ptr), size) + ptr := uint32(uintptr(unsafe.Pointer(unsafe.SliceData(buf)))) + _ = imports.GetHeaderNames(imports.HeaderKind(w), ptr, size) names = mem.GetNULTerminated(buf) runtime.KeepAlive(buf) // keep buf alive until ptr is no longer needed. return @@ -51,7 +51,7 @@ func (w wasmHeader) Get(name string) (value string, ok bool) { // GetAll implements the same method as documented on api.Request. func (w wasmHeader) GetAll(name string) (names []string) { namePtr, nameSize := mem.StringToPtr(name) - countLen := imports.GetHeaderValues(imports.HeaderKind(w), uintptr(namePtr), nameSize, mem.ReadBufPtr, mem.ReadBufLimit) + countLen := imports.GetHeaderValues(imports.HeaderKind(w), namePtr, nameSize, mem.ReadBufPtr, mem.ReadBufLimit) runtime.KeepAlive(name) // keep name alive until ptr is no longer needed. if countLen == 0 { return @@ -66,8 +66,8 @@ func (w wasmHeader) GetAll(name string) (names []string) { } // Otherwise, we have to allocate a new buffer for the large entry. buf := make([]byte, size) - ptr := unsafe.Pointer(unsafe.SliceData(buf)) - _ = imports.GetHeaderValues(imports.HeaderKind(w), uintptr(namePtr), nameSize, uintptr(ptr), size) + ptr := uint32(uintptr(unsafe.Pointer(unsafe.SliceData(buf)))) + _ = imports.GetHeaderValues(imports.HeaderKind(w), namePtr, nameSize, ptr, size) names = mem.GetNULTerminated(buf) runtime.KeepAlive(name) // keep name alive until ptr is no longer needed. runtime.KeepAlive(buf) // keep buf alive until ptr is no longer needed. @@ -78,7 +78,7 @@ func (w wasmHeader) GetAll(name string) (names []string) { func (w wasmHeader) Set(name, value string) { namePtr, nameSize := mem.StringToPtr(name) valuePtr, valueSize := mem.StringToPtr(value) - imports.SetHeaderValue(imports.HeaderKind(w), uintptr(namePtr), nameSize, uintptr(valuePtr), valueSize) + imports.SetHeaderValue(imports.HeaderKind(w), namePtr, nameSize, valuePtr, valueSize) runtime.KeepAlive(name) // keep name alive until ptr is no longer needed. runtime.KeepAlive(value) // keep value alive until ptr is no longer needed. } @@ -87,7 +87,7 @@ func (w wasmHeader) Set(name, value string) { func (w wasmHeader) Add(name, value string) { namePtr, nameSize := mem.StringToPtr(name) valuePtr, valueSize := mem.StringToPtr(value) - imports.AddHeaderValue(imports.HeaderKind(w), uintptr(namePtr), nameSize, uintptr(valuePtr), valueSize) + imports.AddHeaderValue(imports.HeaderKind(w), namePtr, nameSize, valuePtr, valueSize) runtime.KeepAlive(name) // keep name alive until ptr is no longer needed. runtime.KeepAlive(value) // keep value alive until ptr is no longer needed. } @@ -95,6 +95,6 @@ func (w wasmHeader) Add(name, value string) { // Remove implements the same method as documented on api.Request. func (w wasmHeader) Remove(name string) { namePtr, nameSize := mem.StringToPtr(name) - imports.RemoveHeader(imports.HeaderKind(w), uintptr(namePtr), nameSize) + imports.RemoveHeader(imports.HeaderKind(w), namePtr, nameSize) runtime.KeepAlive(name) // keep name alive until ptr is no longer needed. } diff --git a/handler/host.go b/handler/host.go index 5eff78b..7189cb7 100644 --- a/handler/host.go +++ b/handler/host.go @@ -38,6 +38,6 @@ func (wasmHost) Log(level api.LogLevel, message string) { return // don't incur host call overhead } ptr, size := mem.StringToPtr(message) - imports.Log(level, uintptr(ptr), size) + imports.Log(level, ptr, size) runtime.KeepAlive(message) // keep message alive until ptr is no longer needed. } diff --git a/handler/internal/imports/host.go b/handler/internal/imports/host.go index 93e3108..febea15 100644 --- a/handler/internal/imports/host.go +++ b/handler/internal/imports/host.go @@ -111,7 +111,7 @@ func EnableFeatures(features api.Features) api.Features { return enableFeatures(features) } -func GetConfig(ptr uintptr, limit BufLimit) (len uint32) { +func GetConfig(ptr uint32, limit BufLimit) (len uint32) { return getConfig(ptr, limit) } @@ -119,55 +119,55 @@ func LogEnabled(level api.LogLevel) uint32 { return logEnabled(level) } -func Log(level api.LogLevel, ptr uintptr, size uint32) { +func Log(level api.LogLevel, ptr, size uint32) { log(level, ptr, size) } -func GetMethod(ptr uintptr, limit BufLimit) (len uint32) { +func GetMethod(ptr uint32, limit BufLimit) (len uint32) { return getMethod(ptr, limit) } -func SetMethod(ptr uintptr, size uint32) { +func SetMethod(ptr, size uint32) { setMethod(ptr, size) } -func GetURI(ptr uintptr, limit BufLimit) (len uint32) { +func GetURI(ptr uint32, limit BufLimit) (len uint32) { return getURI(ptr, limit) } -func SetURI(ptr uintptr, size uint32) { +func SetURI(ptr, size uint32) { setURI(ptr, size) } -func GetProtocolVersion(ptr uintptr, limit BufLimit) (len uint32) { +func GetProtocolVersion(ptr uint32, limit BufLimit) (len uint32) { return getProtocolVersion(ptr, limit) } -func GetHeaderNames(kind HeaderKind, ptr uintptr, limit BufLimit) CountLen { +func GetHeaderNames(kind HeaderKind, ptr uint32, limit BufLimit) CountLen { return getHeaderNames(kind, ptr, limit) } -func GetHeaderValues(kind HeaderKind, namePtr uintptr, nameSize uint32, bufPtr uintptr, bufLimit BufLimit) CountLen { +func GetHeaderValues(kind HeaderKind, namePtr, nameSize uint32, bufPtr uint32, bufLimit BufLimit) CountLen { return getHeaderValues(kind, namePtr, nameSize, bufPtr, bufLimit) } -func SetHeaderValue(kind HeaderKind, namePtr uintptr, nameSize uint32, valuePtr uintptr, valueSize uint32) { +func SetHeaderValue(kind HeaderKind, namePtr, nameSize uint32, valuePtr uint32, valueSize uint32) { setHeaderValue(kind, namePtr, nameSize, valuePtr, valueSize) } -func AddHeaderValue(kind HeaderKind, namePtr uintptr, nameSize uint32, valuePtr uintptr, valueSize uint32) { +func AddHeaderValue(kind HeaderKind, namePtr, nameSize uint32, valuePtr uint32, valueSize uint32) { addHeaderValue(kind, namePtr, nameSize, valuePtr, valueSize) } -func RemoveHeader(kind HeaderKind, namePtr uintptr, nameSize uint32) { +func RemoveHeader(kind HeaderKind, namePtr, nameSize uint32) { removeHeader(kind, namePtr, nameSize) } -func ReadBody(kind BodyKind, bufPtr uintptr, bufLimit BufLimit) EOFLen { +func ReadBody(kind BodyKind, bufPtr uint32, bufLimit BufLimit) EOFLen { return readBody(kind, bufPtr, bufLimit) } -func WriteBody(kind BodyKind, bufPtr uintptr, bufSize uint32) { +func WriteBody(kind BodyKind, bufPtr uint32, bufSize uint32) { writeBody(kind, bufPtr, bufSize) } diff --git a/handler/internal/imports/imports.go b/handler/internal/imports/imports.go index dc39601..d99a20a 100644 --- a/handler/internal/imports/imports.go +++ b/handler/internal/imports/imports.go @@ -4,74 +4,56 @@ package imports import "github.com/http-wasm/http-wasm-guest-tinygo/handler/api" -//go:wasm-module http_handler -//go:export enable_features +//go:wasmimport http_handler enable_features func enableFeatures(features api.Features) api.Features -//go:wasm-module http_handler -//go:export get_config -func getConfig(ptr uintptr, limit BufLimit) (len uint32) +//go:wasmimport http_handler get_config +func getConfig(ptr uint32, limit BufLimit) (len uint32) -//go:wasm-module http_handler -//go:export log -func log(level api.LogLevel, ptr uintptr, size uint32) +//go:wasmimport http_handler log +func log(level api.LogLevel, ptr, size uint32) -//go:wasm-module http_handler -//go:export log_enabled +//go:wasmimport http_handler log_enabled func logEnabled(level api.LogLevel) uint32 -//go:wasm-module http_handler -//go:export get_method -func getMethod(ptr uintptr, limit BufLimit) (len uint32) +//go:wasmimport http_handler get_method +func getMethod(ptr uint32, limit BufLimit) (len uint32) -//go:wasm-module http_handler -//go:export set_method -func setMethod(ptr uintptr, size uint32) +//go:wasmimport http_handler set_method +func setMethod(ptr, size uint32) -//go:wasm-module http_handler -//go:export get_uri -func getURI(ptr uintptr, limit BufLimit) (len uint32) +//go:wasmimport http_handler get_uri +func getURI(ptr uint32, limit BufLimit) (len uint32) -//go:wasm-module http_handler -//go:export set_uri -func setURI(ptr uintptr, size uint32) +//go:wasmimport http_handler set_uri +func setURI(ptr, size uint32) -//go:wasm-module http_handler -//go:export get_protocol_version -func getProtocolVersion(ptr uintptr, limit BufLimit) (len uint32) +//go:wasmimport http_handler get_protocol_version +func getProtocolVersion(ptr uint32, limit BufLimit) (len uint32) -//go:wasm-module http_handler -//go:export get_header_names -func getHeaderNames(kind HeaderKind, ptr uintptr, limit BufLimit) (countLen CountLen) +//go:wasmimport http_handler get_header_names +func getHeaderNames(kind HeaderKind, ptr uint32, limit BufLimit) (countLen CountLen) -//go:wasm-module http_handler -//go:export get_header_values -func getHeaderValues(kind HeaderKind, namePtr uintptr, nameSize uint32, bufPtr uintptr, buflimit BufLimit) (countLen CountLen) +//go:wasmimport http_handler get_header_values +func getHeaderValues(kind HeaderKind, namePtr, nameSize uint32, bufPtr uint32, buflimit BufLimit) (countLen CountLen) -//go:wasm-module http_handler -//go:export set_header_value -func setHeaderValue(kind HeaderKind, namePtr uintptr, nameSize uint32, valuePtr uintptr, valueLen uint32) +//go:wasmimport http_handler set_header_value +func setHeaderValue(kind HeaderKind, namePtr, nameSize uint32, valuePtr, valueLen uint32) -//go:wasm-module http_handler -//go:export add_header_value -func addHeaderValue(kind HeaderKind, namePtr uintptr, nameSize uint32, valuePtr uintptr, valueLen uint32) +//go:wasmimport http_handler add_header_value +func addHeaderValue(kind HeaderKind, namePtr, nameSize uint32, valuePtr, valueLen uint32) -//go:wasm-module http_handler -//go:export remove_header -func removeHeader(kind HeaderKind, namePtr uintptr, nameSize uint32) +//go:wasmimport http_handler remove_header +func removeHeader(kind HeaderKind, namePtr, nameSize uint32) -//go:wasm-module http_handler -//go:export read_body -func readBody(kind BodyKind, bufPtr uintptr, buflimit BufLimit) (eofLen EOFLen) +//go:wasmimport http_handler read_body +func readBody(kind BodyKind, bufPtr uint32, buflimit BufLimit) (eofLen EOFLen) -//go:wasm-module http_handler -//go:export write_body -func writeBody(kind BodyKind, bufPtr uintptr, bufLen uint32) +//go:wasmimport http_handler write_body +func writeBody(kind BodyKind, bufPtr uint32, bufLen uint32) -//go:wasm-module http_handler -//go:export get_status_code +//go:wasmimport http_handler get_status_code func getStatusCode() uint32 -//go:wasm-module http_handler -//go:export set_status_code +//go:wasmimport http_handler set_status_code func setStatusCode(statusCode uint32) diff --git a/handler/internal/imports/imports_stub.go b/handler/internal/imports/imports_stub.go index a0db14a..0909d87 100644 --- a/handler/internal/imports/imports_stub.go +++ b/handler/internal/imports/imports_stub.go @@ -10,65 +10,65 @@ func enableFeatures(features api.Features) api.Features { } // getConfig is stubbed for compilation outside TinyGo. -func getConfig(ptr uintptr, limit BufLimit) (len uint32) { +func getConfig(ptr uint32, limit BufLimit) (len uint32) { return 0 } // log is stubbed for compilation outside TinyGo. -func log(level api.LogLevel, ptr uintptr, size uint32) {} +func log(level api.LogLevel, ptr, size uint32) {} // logEnabled is stubbed for compilation outside TinyGo. func logEnabled(level api.LogLevel) uint32 { return 0 } // getMethod is stubbed for compilation outside TinyGo. -func getMethod(ptr uintptr, limit BufLimit) (len uint32) { +func getMethod(ptr uint32, limit BufLimit) (len uint32) { return 0 } // setMethod is stubbed for compilation outside TinyGo. -func setMethod(ptr uintptr, size uint32) {} +func setMethod(ptr, size uint32) {} // getURI is stubbed for compilation outside TinyGo. -func getURI(ptr uintptr, limit BufLimit) (len uint32) { +func getURI(ptr uint32, limit BufLimit) (len uint32) { return 0 } // setURI is stubbed for compilation outside TinyGo. -func setURI(ptr uintptr, size uint32) {} +func setURI(ptr, size uint32) {} // getProtocolVersion is stubbed for compilation outside TinyGo. -func getProtocolVersion(ptr uintptr, limit BufLimit) (len uint32) { +func getProtocolVersion(ptr uint32, limit BufLimit) (len uint32) { return 0 } // getHeaderNames is stubbed for compilation outside TinyGo. -func getHeaderNames(kind HeaderKind, ptr uintptr, limit BufLimit) (countLen CountLen) { +func getHeaderNames(kind HeaderKind, ptr uint32, limit BufLimit) (countLen CountLen) { return 0 } // getHeaderValues is stubbed for compilation outside TinyGo. -func getHeaderValues(kind HeaderKind, namePtr uintptr, nameSize uint32, bufPtr uintptr, bufLimit BufLimit) (countLen CountLen) { +func getHeaderValues(kind HeaderKind, namePtr, nameSize uint32, bufPtr uint32, bufLimit BufLimit) (countLen CountLen) { return 0 } // setHeaderValue is stubbed for compilation outside TinyGo. -func setHeaderValue(kind HeaderKind, namePtr uintptr, nameSize uint32, valuePtr uintptr, valueLen uint32) { +func setHeaderValue(kind HeaderKind, namePtr, nameSize uint32, valuePtr, valueLen uint32) { } // addHeaderValue is stubbed for compilation outside TinyGo. -func addHeaderValue(kind HeaderKind, namePtr uintptr, nameSize uint32, valuePtr uintptr, valueLen uint32) { +func addHeaderValue(kind HeaderKind, namePtr, nameSize uint32, valuePtr, valueLen uint32) { } // removeHeader is stubbed for compilation outside TinyGo. -func removeHeader(kind HeaderKind, namePtr uintptr, nameSize uint32) {} +func removeHeader(kind HeaderKind, namePtr, nameSize uint32) {} // readBody is stubbed for compilation outside TinyGo. -func readBody(kind BodyKind, bufPtr uintptr, bufLimit BufLimit) (eofLen EOFLen) { +func readBody(kind BodyKind, bufPtr uint32, bufLimit BufLimit) (eofLen EOFLen) { return 0 } // writeBody is stubbed for compilation outside TinyGo. -func writeBody(kind BodyKind, bufPtr uintptr, bufLen uint32) {} +func writeBody(kind BodyKind, bufPtr uint32, bufLen uint32) {} // getStatusCode is stubbed for compilation outside TinyGo. func getStatusCode() uint32 { diff --git a/handler/internal/mem/mem.go b/handler/internal/mem/mem.go index f995615..c5efe63 100644 --- a/handler/internal/mem/mem.go +++ b/handler/internal/mem/mem.go @@ -11,7 +11,7 @@ var ( // ReadBuf is sharable because there is no parallelism in wasm. ReadBuf = make([]byte, ReadBufLimit) // ReadBufPtr is used to avoid duplicate host function calls. - ReadBufPtr = uintptr(unsafe.Pointer(&ReadBuf[0])) + ReadBufPtr = uint32(uintptr(unsafe.Pointer(&ReadBuf[0]))) // ReadBufLimit is constant memory overhead for reading fields. ReadBufLimit = uint32(2048) ) @@ -36,7 +36,7 @@ func StringToPtr(s string) (uint32, uint32) { // GetString copies a string from the bytes returned by fn, so that it can // safely be used without risk of corruption. -func GetString(fn func(ptr uintptr, limit imports.BufLimit) (len uint32)) (result string) { +func GetString(fn func(ptr uint32, limit imports.BufLimit) (len uint32)) (result string) { size := fn(ReadBufPtr, ReadBufLimit) if size == 0 { return // If nothing was read, return an empty string. @@ -47,7 +47,7 @@ func GetString(fn func(ptr uintptr, limit imports.BufLimit) (len uint32)) (resul // Otherwise, allocate a new string buf := make([]byte, size) ptr := unsafe.Pointer(unsafe.SliceData(buf)) - _ = fn(uintptr(ptr), size) + _ = fn(uint32(uintptr(ptr)), size) result = *(*string)(ptr) // don't return string(buf) as that copies buf. runtime.KeepAlive(buf) // keep buf alive until ptr is no longer needed. return @@ -55,7 +55,7 @@ func GetString(fn func(ptr uintptr, limit imports.BufLimit) (len uint32)) (resul // GetBytes copies the bytes returned by fn, so that they can safely be used // without risk of corruption. -func GetBytes(fn func(ptr uintptr, limit imports.BufLimit) (len uint32)) (result []byte) { +func GetBytes(fn func(ptr uint32, limit imports.BufLimit) (len uint32)) (result []byte) { size := fn(ReadBufPtr, ReadBufLimit) if size == 0 { return // If nothing was read, return a nil slice. @@ -68,7 +68,7 @@ func GetBytes(fn func(ptr uintptr, limit imports.BufLimit) (len uint32)) (result result = make([]byte, size) ptr := unsafe.Pointer(unsafe.SliceData(result)) - _ = fn(uintptr(ptr), size) + _ = fn(uint32(uintptr(ptr)), size) return } diff --git a/handler/request.go b/handler/request.go index 826b95c..414416e 100644 --- a/handler/request.go +++ b/handler/request.go @@ -22,7 +22,7 @@ func (wasmRequest) GetMethod() string { // SetMethod implements the same method as documented on api.Request. func (wasmRequest) SetMethod(method string) { ptr, size := mem.StringToPtr(method) - imports.SetMethod(uintptr(ptr), size) + imports.SetMethod(ptr, size) runtime.KeepAlive(method) // keep method alive until ptr is no longer needed. } @@ -34,7 +34,7 @@ func (wasmRequest) GetURI() string { // SetURI implements the same method as documented on api.Request. func (wasmRequest) SetURI(uri string) { ptr, size := mem.StringToPtr(uri) - imports.SetURI(uintptr(ptr), size) + imports.SetURI(ptr, size) runtime.KeepAlive(uri) // keep uri alive until ptr is no longer needed. } diff --git a/internal/e2e/go.mod b/internal/e2e/go.mod index ecc9127..5a0b8f4 100644 --- a/internal/e2e/go.mod +++ b/internal/e2e/go.mod @@ -1,6 +1,6 @@ module github.com/http-wasm/http-wasm-guest-tinygo/e2e -go 1.18 +go 1.20 require ( github.com/http-wasm/http-wasm-guest-tinygo v0.0.0 diff --git a/internal/test/testdata/bench/tinygo/add_header_value/main.wasm b/internal/test/testdata/bench/tinygo/add_header_value/main.wasm index 35784df70b80dea74058937afa367de53bf97d09..d2c8e9d3fcccc9f32a23c3e7b8aa873e3e7ab718 100755 GIT binary patch delta 3508 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 diff --git a/internal/test/testdata/bench/tinygo/get_header_names/main.wasm b/internal/test/testdata/bench/tinygo/get_header_names/main.wasm index ae73f1149283fdac4f90b3f758084c10ef75a476..eec41f398745554f04a1fee60dbfdfd04c5f8009 100755 GIT binary patch delta 3663 zcmaJ^U2Igx6`q+p_wL=jyX%W_U}Z0O?)4fL1st2g+EAkGAdHm*mp;4pe1B;m&6ve4E+m&CBe-Qr$%QS1ZClL#-sP!n zVb_V;{M2mytBdueQzz$_>a3K`aHhE@2LelGxt00r{R5XDGLf~pB)xcCHB*2MlGfyk)yo>OfN4>-=lAR^Bg#+W(6mA0vAx+LBpJMj`aj6wAq>hr!-=ubLgL*PYb*98#I45WHui5-e zNJT=x?h8^GwEM{EN)qzI%$4963TE;7N zibzS0_jy00BEIc~5g_moA`<>wF2GlBb9%a1xib+n@r=NFkrDA|P4*){rWJXzx}yO~;iE zEkv-`qim#^ii&EtONzZ^kquK+P}>v~1%p|dhO$|e(v<9E$wRK8%)*cgogSr18_`0T ztq7Iy#n7#Yl5)p$Ho%loDV0_3-6{*^#W%bA-i#KhZYWjP^SD0S)EKqK1Qg@WAT6Th3FV+j}vUf7$N0J&68l$O`tWc`;YVmIS&F@ zn@Y&H%-J^vzNj2?S-D4{#G=Y#8tI`#d*0Vbghy(WUfSg>MYPop(TQf!48m%{Sc5anE{CX zEv8vfGeI@VLea)G(t<&WY(B?T8VxSORI(onSz47i3u#i(Z+a1&Cp02fAWg{~LXJYj zaM@Ap00*q2(8QHRfr?g0_#$DhnD8nDkW|8#l9Oi=7@a4lu;&G$kiS3_vOgjUlw2f= z$P_7lxjit*euYzsxdK4QbrZd@g;Kx;>z~?WC!k<_9J?%+Ulf}2%!s~6J-;+i6aHs8jta0Tk;yQ`JUv#eMQ_jSZ#j#xNctlpzs>6 zsLtYv+R}-++Np!5kI&SbdTMI%@X5tV%=LGFLgI;fQ^mjPeOv_lDG|Gdrst=drI9fI z(XTfX-oVDW+VuR;M7=p#uT9k#KL^K_O7T+PV1LnKsiDP_Q?+J|r`ycXh_HufhMkXJ f?kjTrL3GiQ|-Z9h^XRDjbKDkVHZi4~SxjQN4ED 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 T*mL@`QiXFZ`=8Pm`;Y%0cadZ4 diff --git a/internal/test/testdata/bench/tinygo/get_uri/main.wasm b/internal/test/testdata/bench/tinygo/get_uri/main.wasm index c1863782208e783093863b580baf6beaa4a0e555..6a1de82cc333b0826a5a66dc05a96ab8cad65536 100755 GIT binary patch delta 3706 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 f|MdR=3kQ`d delta 3374 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 bH;PZ^-6!W3zcaby9vnGzWMnk{PjTvhX6kex delta 2990 zcmaJ@OKeTV7gRn`22X&za$o(!)X)xX9lg({I)I6z|;MP&L6)Za!eARl{JZx#7)J)CB{# zv!R-rO);jK`43+)`5A0}z-CsaA$$|UBxks}v7zw$(w2((K2l;B_M_e?RxEm;c+k;| zZd~3{y^;BFQ_*u!GCj(E_QIrOW_?T1gRPUCHejx|Y1H$HXYOxWPad1PxhF!P1}}Z{v{Z=v}Lc!1LEGM{hgf5-PZbZ!uG?VA5E<%7@em?aK*Ip$Fv;scwxYMSQZBuCCyo3LDH>ey^ zY<1QkGV)YqrPWM?Xvj_j_E55gjKo?@7deVW;;aGDa7HymLklgNX$T!Um?`dhmQZKh z&78^AMG33-vXxgCW$jHDB`}g&wX|rGGfL;Q*T>KvE7K^75cTyqR=3d|c&PUH0zxl% z5iIj&g2s#@a;zpo>c1+j>qeDK#DdKw^P{mX#z& zeM{YoyAE1Ms`dwk!7*$~?KLSiIiv=Uhk=nQZjMyrLLMdM^2p0RxwslU3|sv^prbaLpP|d zr!MnfM`m5{xi(5JXGTs}l0t-=@V1qa7hDTE1JA%Ny==lWP$H*`9wa0+1&p6ZxB7Gw z{5%dJ5$M91BIcuul78&>dkZ6p)B$x>&=qcHcfOsGWqY$XITDg|A)Bx+|$J;VJEV2yw^^|F{909~6a2 z7;;=`64Kxfv+5KpWshBmr?Z^z{}4crU}9?gK@qcZ?$mXvBd z5uUI+4+83kyJQgby)L~?6mH)l3OC;-iekJ;6j9xPX*3|zNZII!Mt1s6SNh$q)Ex{T z6Fy1Z2=r;nq=61-()g=sp+fNd(Ot=kCa-08yre~qW7z#G9Y=H=(_#M6d`Wvr1TOuB zH(=jsb@R)iSWeNB_vkXNx-P%ZbwCBhsd#ij2akqVul;%dDBrPn`|IN$(j5TtuuK1i zKr!#&H_x2puAH$XSL~@hPw>coZ_kJua~Mpzc{=6<+=8-9UgqVGSc(EZ|Ifh=GNLeyf}MdalEzk&BV3`50v@@3&vNM&d;`I Xxi?OPy=ZR^);PEC4}Qa*+jsWAHTWd_ diff --git a/internal/test/testdata/bench/tinygo/read_body/main.wasm b/internal/test/testdata/bench/tinygo/read_body/main.wasm index 14295e557e46e6993196c2b6a3a822bb03694ebe..dcd590e7ea0e3e1c96e86c2d38397d1c58cc7147 100755 GIT binary patch delta 3336 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 diff --git a/internal/test/testdata/bench/tinygo/read_body_stream/main.wasm b/internal/test/testdata/bench/tinygo/read_body_stream/main.wasm index 0f6ed6c86eec462bcf8b38521152f481ba13526c..d765d5e96a597eec09063b47532d505402c2deba 100755 GIT binary patch delta 3209 zcmaJ^U2Ggz6~6b*?Cj6XddKm`S!Xx)o$)4dDRrHYtfSDXdrcj;O``;AL4_({i5JCd zdmY;wmxiiqoKz|9<;kR3M##L8aHa+)POtK$6J8CiY7FO_JWsK8;WGYir z_HqzYms{Gk4)W*Ti06pb!)HK zXz5>Dqsa}U3%E|(_qy+3pB-gP0sk30AhoaAgCxFfKP2Gpy4_D=3nzg}S8RZ0_s90{ zg1<-8ObQhlJZZ*&%*755MoWlWEZ6R1bO7E^&cd>?7Tiy8-h__+RqRN(VbU1D1`^1W z-=Jhg$^rAc2{z!Y^}|&yaHOT|Mi`T9CJ-`4=dB?lWXXB#W1<<9MG^_h@S0GlleX8Y226JQ(;kZDnl?yf=T~GC8#gIq@!sD*%`^+`jvGqnO zknMzty9r|^@k7G)<5ajmrGk7LM1_nlB?9KNeh=;Maf_WoQ`Yt4?hgdSwi`CVl81vAW}-kr6&`2D=Z|a z58HQAjCuO$^nn7U7ctX8N9cl}_!I6yWDBR$-}mxO)=<6#J#!1I$7$Rp9r#|(ve zTz6-322SLIvfdF8W)y6gl&M)X4Qe9bRs-F@ zl}Ta-uvC6peHN*YN%xqEJw?lY2(6^yWu%)di53UVV9qEzH+89alfFaU%tUA^M(Y)V3|lNzd04B_NOE|b)_P(}mCx<{KfXr2Vc{eJ2- zuojh(IF0c=!X5?0jJ#23U zf!`nr=w*_q{w7HrM3UhjwkL+fSM^MHK4a2ix&xHoY)gjB8tCo9K$I5Z-?qCiLJK30uf@H zOE>CKX&KMRF6rKFQYrn99Yy|u?(Hd+?~oD_u?CKlylv)0S!8d87UOgVFLa2J6i!QE ziA%?DF`>`*JitBulb!*3PfN5T)E})2tz`NcjRVC;>f)wTHdlD~0To#5mf?7vcVd_oumnEd=b{I_PFJ|{< zU*KFkheUC8Yt^2hxAm&6FJ^a%t>^WX?32A~tG1tGuEjvH4Qb`<|@H0Gh^Ulcd!6U;5^pE>a F{Raz1XI=mR delta 3062 zcmaJ@U1%KF6~6b*@9xZcN7dSrrL}ZsBs&{yD@q!#jFRBJCW=}o#%@xIDTQ6k+n9?fffvIA*Bv+ArwEPZA$ZyLLh!`MKI4`0|&F}-rW|CKAx?HeqgZZ1sCO+ULdy?pk}!t%6;3q>ik z3~U-uRwz~R)_rvC0XZ(?JF9k0iA3suisN=eV@p!YR-)=kV70ZHo>%>SH*m}+TI%bo zHr|`-b|m}2p1z}c552l>mjk`BZu4`$B}n}2+?XZw22Swcd_6xD2@2sVv zb!g!7I-Bns5_)CDj*9%&H!fmjHT0$R^jWJxAwUgpzFeV`V(ufy1kbE&KfJ+ zUSnCXr#tNZ!6n>_aUnGLAGc!``?fvA8p7c-tvE=hO zs=?otETj{Kp-yhng-L+N*dmw7w&ujjb!+HGG9=sPVC=f`k@wyg5=TpN`eTpat^UB= zwzSpOVGH*i{C~J=9~2_NQD+$}gHQG^&b4Bt8dj%)AOOxVBN3^IlGGx$aMu8gM~QV0gRkHt(Mfeyl(~3z7~{bA*9vkYW&O5|8|_{OsKT z_{~}1w!VH5&5b4sK2_51pesjb6C0?pb*-ftY-Ar5V;14SL&n(|xEiyUHqQK(VIkc4 zNR_Bzn;?@Bp$%#vc!hagxvC@%ib~>|nz~$5vbd^F`es=5d!Yfc)%2Zk_l!a%$!T%< z3MijZgcf6^anYDky-844@Qe?uiCIqX;t*C(<`USUIA29qdfb_KkkZ&ie;QX$q0{Ug9TQy$IKzRYPPN=nD>;e4`i)ps_-Lr3s8KODcCPF1?whLz~eQhh|TDI zBi|U{{}f$|G5&P|4A^ax0EaC2jWpkn0RK!c=u+E zm%iP#yAuF1zSU3-_K%zF19k%R!<@d$6#2Qq6rNva3MjwD6cPL!cG1;PW94da`CiWa ze$I3g!D#;p?r_wC=UC#AhgtSCxl2jd&l&s3$QbXFB3b#oN=k%l*!?qKUY;iwpbA1 z-_7YAgom*Sce6Sq(jXaIb|8JR`%xLBzv>{K&p2FQxzL z?%DoKNzBG{u+me*2M2lRH=jmQXdwa6>W?KR>JdEnz0&0hW^PvY?%$A7y@(*C{>#`T z-XF`!MRYlmkI*qo@WXYHKmGdpOX;=Bsa;oB?Wk7-mO!(7Ch>X0ugl;UX}t5w-sPF^ zP19qK(Wnrw3n>bM$6)Z_1DjttyM;afy(ZJmUBkhqYcDkCr{$+klKy_zrJa?f=NH;D z^V1_aJ=t8CdG1=L=WV(33)@$xo6D!?n`fVyZV!y7f7tcKgCjEwGwtCA2Y3AUhxy|3 z)5~q@o^Q@9j4Vwzr;eVP`tCDrtmfnNkGuC)x|Hxnmd;Ey+fC_=FcIg|p1zutX`}C3 J>D9iI{{id%Jh=b> diff --git a/internal/test/testdata/bench/tinygo/remove_header/main.wasm b/internal/test/testdata/bench/tinygo/remove_header/main.wasm index 70ef0478db4ff23744557cc3a555007204b3299a..f0fcb7a9a4da72fdb0df0efd2f629877416faa21 100755 GIT binary patch delta 3199 zcmaJ^Yit}>6~2$z*~iR!$B)*V?8d$`-XyL{jAQURgi7%Z*bZq*T&N&INU)7pve)nR zCV*75uDgmN(W0~$2_pq$$}1HhMJhk?qezX2Xi$+_q(+J$Kl&pQ{Sko?k*H9R_|Bbm z+Z0htv*+G3=Y76=?)X0=Z;f8~j)=nNpDXah^OsKVQ@Pp7(#%5jYxU~d%JR}$l||_c zXPSFX*e|5dW#)JL!)z&lSSy9;i&W59i zqq)Al;o$dr%L({yh?}b-Kl*CR$$9!x%c18X$rStbQ)80p%i!Pv=O`zJVmepT&e<@b zFSbmF9PPW-BKNxom|kCZf(-rY?Q>YkaecLADss2jYMF1#eeM<5y3#T)$-QE;W!{uy z=}oH(aT7QXdsp$E9cD~Je$oj^ZO$1W@?GbMfV(%GJ|cfdCQ#{2^wVx6vA-AoK9^-m z=-A*%yN1Y0Vw7C{0+Jxt6NjQrTdWY0C==5`gGv%>g)HdA(nRk0J{YWpu9DhmL#J;OK4KKWR*Ql` zz%n)N#RUzezSc6IPkm_&dnMyus#*zI=DfgV9u)4Nr)V)&?{1K3y={qNfeiZ0UsA`T zkCG^Qe-k`orqTn=wo3;t0Uqm1IYd5WS;KN9bpC84HCM6_CT$EN*b@pdF2@lIFqVpm zuf#-_YZglTO6t^<1BrI5QA)`LC2HEQMa@K61Y%qXC2LXo0AngSg%)z%iYt~WiyrLG z$2+$y^2(jaO5~nUDV0%fCj+imC!mwI2tu=VBERR6p?kJ4D7{?Rsg-Qh+U`YnSrh>t zqzh?%7suo7hFQ(*>Jft?6$+nwUJx+PR>v_v$&400(4+WRAr`(6bW_j%nJMk`kP2!d z??nOfdoOAN0Y?aQw(Ayc77-{C>Ccn*9T9@X?Q=M&I1t|Jf~T7}VZ-y00|Yo))s8Yc zjgB6yX@Zb)h>-^)Sr$G;3Os~v9I{T;tVowa?NW+BBZEB=Ro(p1FPhiPX zwj^v@P<9w3c0kOerjo_4JXB1KD~T<&D^2aPlKIGgA=}%NQAy>i)cbuA$}@lH>Nihj zi$ww%0-@-K3D9WPlsAGBAY`-R7n-c0n`^*c|Dy%PR~KsD4}9)Z{ujhf0mjPWV^$xH zzQw7@7QCyT%MaJ)U0zLx>U+R=gg6nc|T-lPpVL)8c(Xr(PaW8HLFv^Wr$Hn||*gwA<#2FX$c zR6omAW+IzVE=A=k1}^}sN|S&ChZ*2DDB6jFqYp)NNs;0OvVu)1f`jjIm8L0#9$R(r zeR}C&BBjYf9}NyzZ-R*?Q;(3wL&6z@j9vL-P{9hQr1oMpDDu>Re7r6a_=@pb5%^TR zE>Uw!@C>7y6cbb~5{38{QHcJOD8w%DU05J9MTUPxTw4dIUN*Y3kfQ|SfdK8_aP#BN zT}>aIO-VX9*2gt#oAj@@t-neXn0kdMyjWIto;kcdUIh4qL?XHf?=$0b4|InAyYInj6Rp74t5 ztrIgzIrx!FaHMcr0xYgvi{g}-?tX;(=DF_v0h)stR_Hng8wQ~l03bBYQH6N!pEqxG z_wHOKoGz1pboV}tYXRvO=mQVe7ES@ffY&X|6Q(cOUwkBVx{Tz9d-gV8;0&`fn2$Jy zEhh)Q;ztEgNMjP%4FC7ym-^<0Gl_P=;A9;q+g^aUyq|V-CV)eX6rs@jAxs1b`y`@e%kStZ-8?P zyDwH72R^gBJU>@u?B6WKra8C#pW$8n#atiyMrCdB3)R&#)wKp>671Cfm1%!k!}bl> zav*o30EIy;Xf%5VKfd+&$`*F?cS4v`50tWha-F5hVwHd29bk`B#O9R;W_us3pIK_m zEmnuxbh@%McUm`I{?voNXXa$W8n35eMkan_M1%p z(Hh-Uz-1i( delta 3076 zcmaJ@OKeKpwON2T>jpNMM=~@%RSfqOWh06Nt&+HxUJ3BddW~TL>#n#ff`MISQOAAHL z43CuFEo96^@!nqj=0QHr(+4Z6E?CCRzu76(G6>VqXxI@4toD^u};= zeMRB>#Wj`iouqCU-bZ~=qFD64;z3ulV{mkNP4z|QgH=VJ$0gJ3*B8blGs|m=K6rDK z(+kZ^U)!kjsb?On+CF(`{K^_-v~vWy%PJ|-x4Cf&bYid7p{#hyvOA$TgvMKOy zHdgI(a<6|00WPiCU&%e<{;K_x94p*kC5P}~`_(5RxG-#-G15PwQUTFcBP4#RjtJy% zN9`uDq4WsC0ttg8A4W_I9Owp;DJ33@5IBe^qT>BrKJ_?LE5;MCXBs7~f-Hk}IX5eRL-M4tR7KPKjg zJr%@aea(I=n4q|C1PAvb1cjth6XeSm)wFqs%}r-iJwQRpAYm0Yqa6QKnk#E|BK-Oo zp0$J)*r3}r2Sehs2nKJ{88pZ0mUC@xIH6f0lU?@R@X74sG^)|x1uxi>g^_MAq>qrG zpNpk^5}Teg+4F7S8(?sXO@~np5d!zY^O2YXXu@UV<1MDv+pK4=jMvNP#hXU?79f4Wv?ihYFmcuPYZ z=;3m}zE|4T_06uQ^5jF~Yrk^}4-QT`Khmyc=&zIcS`%zv*gOsrY3A!eI@%NY8a;a$ zD;VvAfPNhUsx=5`X$V4y=t!$r#Nes92F6`mvE40?l@q*&bqwLtu$SYkYJa<>+NI)Q z<4ev?#7Tjop3a{VJOS#bY4TB#@Bucdk7BtbzKQawUbe3I-$qBW{j8i7I$&MF44LDCVDk(GB2%o-ViOvHjwebOi|(lO6>qkC z0Degw;9wZhxlJb*Kgh*7at~jKh=5s<_(d-LF4_2KLLEAfS%GLG9fb-Hi(sKcmSv@e zSmr2=r%T6S80n%*BZGFqaVobdIvavG_v)-QSwGKnSGBCz5SO?v(s}*uPE%t@5MMDj za4e-ub|u-?t&`?Y$P6Ugmtpi==DI-BhT5-Zfvqy_$4ICEz9+kAqQD{EIUuR~)#D-_ zgI~8Qk3ku${j569%DJZF;9$P4Wgu2nvu}`#dWNa2^NoFZuep+3p|rrm7fC|@C6Z8m znIstWDoLEhIlkI^aIAmBPW4ytlL0iz3k)qso@4YOlML0pz`&?B1jWsC9!R@_w5nxc(MNd^DPz zA8g+4Dc|WS-9lg!9;e<$HE3*QfevVN`HNXxA-LXkChkO8QOn+R%DN?ueZ>7M?W0_1 zUfL}_8c$gtsUYfKh<47a8;B0p!3+(4pKM`SrGh=+I>?7$2~3D}@M!k+;aZ~rM9mmI zB@MTK92npm_Rj;2(GSQApn2Gn|H8>JKyebDr_CLu@kqJZr?)=ABfGwJn67Y*!H2_R zNMdeA38+Rl2a?KfmWy1-u6PbpRO4p{CM!EC#xR$9R|$6`6IYhIN^nQf?EzCG=yC## z6?a2wfqr9Pyg7o&`yN7IwupYuXRxX|pcw&VA_Jg~WSc5>`91sm&eQ(`4}>}F diff --git a/internal/test/testdata/bench/tinygo/set_header_value/main.wasm b/internal/test/testdata/bench/tinygo/set_header_value/main.wasm index 0acc4d9152de09f317e4c1549ab21c6514046c5a..8e5ccaca78ed9c53218626c80bee6831fd21ef57 100755 GIT binary patch delta 3518 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 w=O=5;8qahV9gi$2h?cCyz@$Afbo5+C7_i`p$}p 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 QpLQOHW-N!EeH*XojpFL& zhK=9XdUnKjlDJ}cANGfl&B8}E_qvkJ!O-QN-5;vQmuz~TwU}gYzA|GmwcfMo!JA{8 zUPz|;o65czJLkz2tlLqJe$}l_a8_Mi>DdRE z@ylYNSd6G*o?1~4FX>fl!rg-7t)BjowO8D~qFN6ujW*H;-PusBo z`G&oRNY6f+AU2Z#DWtQU2*sm*gyt+O(IiKRUEhNQY`M<3!0H+2nGr}n?iRWDu{#vNb`v=xUH8S0 z@iZl_^z^(pPhPHjhbCZ<98k?E_v@SXvidD+FDFz+oSj_5#bd7?rU{QNb+xBI<9}ra zYiU6Wu#n9P&V{18EQG>46tU#s?ikbRmLZZwR2| zf*V+w{Nb1gk1sz70lG|t5OH%8?T)qx9|`Vv(R|a(iH+jhs@gQIFYRM&#*%p9A#oHR z$`N}eP+R#;s-7*e=Yz0nfLb9Tk#uysQ0ls-2rd;tT2uxHX+{w(6wxZh0nGvGW9XVR z8d6SIMM^58@_e*7=*lLQCO~Q6Pvm2lNEGLce=(YbHGy#HW%*NyUlSGS&lMb$+>&k! z+Eg4@hSGmp98_H9TG9oMnyG~T)!?|U70LuzIvozFrl~6&#ZH88;Nk!uG)1nJ&dnh>2^+GVX{6dZH(Kh zs3hpi=hHJuO7Ca0^CgI^p7Nt~)FUa6UOx;DO8Y?|Uj>0^1q4zOgi=PhHC!HeRyP1l zJk)HK@;cI5qbliM-$*fn7>wmXT)I50SytA+>?>EO=GgdLW+n$7 z{45aSk|y{?Y(m15`S}7Sxj7~M?8|SD2oD&vq=!?)UZ&JZb-$gG75(e}c*-ZOd=d~U zEQ6TfNe-wp>0(KtCe}GJ@5sV&_zQJkG^{71(JnT=%TuXJlBa%I{B`$RzkGg@qEmMik=L zh(h!_QNLCeKP3i-Glt*D76!k+&|e=YjhLdR^@5av!VS!G42$8esd3_&k>NcZ8Q%Yo z3>pYjay%g(KN}w&^~L+-5cGqL-X;oM+#-rF-ysT6zD*QRy$RPJ&X}&Kr@QZE(swhd zI~X0xKTchV?9%{BJn7L8a#xdliPG~YqmqIqC#`JEBn63W_`OHlxJl7;w3&N4XOeyr zK}dh$b@(?{&1f@O98J)g_emM5Wvb5uF1>V`0X#AkA)=;SK$$_;WdR@!;h2 z)MBI6I?rg1g$Jjue}3g5+_2qVF z>0Dznqo)_zOE0~pM&9K+2Di5s7uFWfEv$U8(b+vqihC!Q+Do0v!STKizr`=S+*s?# z@Z7>udvdMO`SKTDi1iP~_7(>O^Cnl%pIzuIaA%ST`=0*&Se0}ApRqH#x%2e@0M4v1 Ae*gdg diff --git a/internal/test/testdata/bench/tinygo/stream_body/main.wasm b/internal/test/testdata/bench/tinygo/stream_body/main.wasm index 2fb4ca9392b1db3664f2321ec694e217948b511a..7fb8e87fca59c3450ebd2f62c456bc96441894e6 100755 GIT binary patch delta 3141 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 diff --git a/internal/test/testdata/bench/tinygo/write_body/main.wasm b/internal/test/testdata/bench/tinygo/write_body/main.wasm index a310c0909a0cdf047dab6d709005cad4160db9e4..e80120c24a07f0bc8126df7e950ec352754ef779 100755 GIT binary patch delta 3246 zcmaJ^U2Ggz6}~^Svp+NI9mh_*$!@%N#!kASWSbbgjzUECn%HUcqXeiZ4+t>vqIhku z|2AohD%N#YkxBcIaFH-oKo+7=9zcpz9`XRF5dlSNkPvF52<4# z?9!%)TAG}D&z%4BowJk8p}!1YUKN3Vm}&@!u)&gWSJ*!72(CaQ#nq(yC}&71z8Lh_YZftzR%d5V;)>RxCvv z&Gr2i3;*6}Ssvd3aq~No9e%fEWgLCIWzn-oGR1!N+K6QO1~_=Y8Rf)KOlNA^I`7By z)s}JOaR2QVx!*Cs^zyRhrRZP1aS)gV7c91a*`7c>MseRWPAo7NFSis#~tDneYWCE40Sb=WO#h&SdzZcR> z2^|?c6`mn78yg;oScqGkukB@&0B>k};k=d$&SyApLdX0eb|6>_%jm-f3dpqApkhVJ zKJ&UstYEM9!&S|^xGPYVm*S_W2G`?5yWxUd zQVS`#8yBri)VEvac;ag#xGNboS=9!Se#Y@^=0N@f zG#kCg>G29#)(=CXm?yn{b3bt`_%w;U^P%7=b0j&?Y`e7J5~vD&DT~M_ENfT}gwCE1 zq~=QI{CF6H@OJt_RAdFQ0DOsvxJrzrxn{l$UrC)fYC)nMYmiWKMv0nsYe6$s7M`dm zp=2#cQupFV(Oa%J!+e5NS@h!eB)ZvUkyZ9sS|azDN~n~wyBXTOFb17u2rcxg6ZsQ| z3~fZJ3_d%xl8sv1z33^6JWz#nA*~-_ZXT_edTM*GD2jwHT<$oY$DFV_mRU~?=RVe> zXxiOsD&b16l#}H1RCk> z45;enEjMp&yFJHBykGvB?f$@a3|fHib;3Fs>v&ndnz zQ*(aea+fM_S#(M;QWl>LjiA*JIJG&1FU$m)vM9DQFH+{Bf>;^gL4?f5^v>gm7(Nr) zR7N3vKXu&?5pfm^qc?AN|JP4#Z zWkkWjpgL2N-Ura|P{dNl8%i#Lnpe8AP3jSBSs*dm@$w++jTF65yM|U^aFlF#Ns1KF zll+lL#sw2jpKoj626rbgh;bT5JgB*EV_IRoEKaM~80InzixDPX)O&eUrep&%k<^8g zIX~@0(vuN+B^>F{>DSGnOfL5gGD$KB4oxUZo>G3AVh!KbJ$UI49R2-8S6 zSr#o0943wHWt-4hC1;Qvq@D66SE;ddOxYBbtr)xjvMNae796I4UN0Xm7Hj}0qE(6% zFOwBq1_L+>wG&7$V`#pUlKR0 z15|IAFLviLlwh7uI%SrHYygW&DZHtFAKTYr}*(DfUl@N$y_O=$)- z*;d2LKevV7ZwuYUPlry7cUHzzJ11Qh_el(~VHV}nTL-0o5ZY4daPwCFFGDjLYp0>h<*cBxsXlqee6Jmj|OZ`HY!F$Z)eqW9L$G3eb3@Y169e< zcOib%FdPi)UvIu{VNYJg#(`BOx@|`CdwX{^f6N(ddeZ@iO-?Rd#mRJMo%;X#Ss?Y@ z6>A(_gu(Ge414(V$o1+4OCxek8%T`4vAn!|gA>XHy`k)$`aTF(^q%&2MmtsdFhmp{ zl|V8K&bpM0J~o}dnajP`%%!cLYcl-(70(9a>^>g7@w(-lxd+Yz-2TN9>9QN+P)+TJ+gM1$Hw62}Z;pf)BJim@B{hbiz z_|_rkJ=>~J%vSjod%&!2eXDQV;<*|1EuWD1YPC@~NXZvVQ}wCF;C|Kh-~Ty;DfwNq6I1ol%ZpQu z>ge3$tAUx!?keOZi@~ delta 3018 zcmaJ@U1%KF6}~_7v%52^UD=!HXV=o1k?d}$tq3<-89UT_O=KrZQYEy6PztG9FO^ra zY)hN8rG}NI8iX;$=K3KIeh8&@T}U7hKja}LDTLxeT1@Ff+6LN(794Ouh0yxJ(0=F6 zDo!XwV&>dC_xzvloV$OVy0`z*rb_7Yh3e(&-`_J@T9{uxzSMeYrL}tc)beUeB>93A zMn)cuC>={x_;3%s^{6~3le_1hu_3!{$iwg z{hWvQs~cWf4ujpks|KeoZFr@~+*|kfc|;2mZ=9Xh!mMq0{NT$G$sb6VQrmd1B)+-3 zZeu+)a%F?f508O&%_|r9ZQeVNm2R5L8}=nVthUzePxPK(6S_7x>@W3hb!XlFK~LxJ ztg|fGZJ+nm=rYd5K_LwIpYReE`++ycQtoFKpT52SZovJ!A2AHtM7oRUl`5#@d?Ed`q+P}oia(#GqgK8eLd zk+&x9=iF@iWgNBW zVoLk;47(bB>B}OBzSAycc*Qm zJ0@=9yo>)^=e&JFr1;cb1>t8OLg%Pwa&5;#ILjdmqK<8fB$WvWuY=$f_e#bE zBe73Z(!iA~;Bt}Xg8BArTH zq8qV{IZtb9J5l=^>M^h!K)%c^i3DSlr77)esL5WYCOK1zAtw+P6PF3I>**|zoCzrC zJd2G>IC6nx)zx^4HhnUShd8rOY{v%An%R1g<9s|@qhtrLg3w+N@Yg}WIt~IZ0^xKq zjNK{*yv+^Z6c6{FHerYKDyXy<`v$sYut8Z267U6}4+^di>)_XRZAo{^d3Kdi0P;-6 z6XPSSKG&1L4%PVdUQ7-}-!V2V?Wo34cD|I6v#x`kneW=U zQg!Y)D`6fOULegnLW<{#n6LluXb8Az3b_lzo=hhb{ZU3v+jmPzH|L^D^9&5_K$E{; z0PbAqA}u!5nneD6DjtQohzib93hul^Q6^JxGMu<1K#OP6#L_>N*=9T~G}NY~0)sST zBn*%)BNRggDfXyH1%S0&bJK+fhexPYoh2`_8f^Bam{XS|<#{x5TSA&O;Hbi{7!KxH z$u2i}5C=~l z-R7!rh1~-9US$gQt4zWA8dCt`7fcbG(|e=0aZrC9jfz42ZIZ44Spt00@Ev92p2
    nIb>$ zF@@*vFa>zuW{L=I!tQ6|$*IBN2R-K7J*Ha-#^jE2Poow*y3&wBjIS;QD`{NijD6%} zT(D_@bZ41$b`(vNq`M8Yi z&vuTE@yNu`L%{xkuxpU%VYhq!3b>Zav>2J0=BlfAGL&<30XTP}5yxdyt zP~XY<6U!4nTshHc9XWOU$BDf*w7b%;L^!c>>iB$TUiuSE#0C5DP+dy9WB7Y^efYWm E0dc@0ZU6uP diff --git a/internal/test/testdata/e2e/tinygo/features/main.wasm b/internal/test/testdata/e2e/tinygo/features/main.wasm index a95897eec9ce0459f010caec5cde551ca57cb2a1..72eeea891c374990866d581a8504da188a0f2fd1 100755 GIT binary patch delta 3773 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 H^2C1un+3I~ delta 3657 zcmaJ^U2Igx6`sHQvwQE_7rd0kUhv%OH7qJnTF4qvB6gyH9TEgpqAHbAffH6TYvUMu zY4Z^ETHsQe<{|X*5Gi>`n?4}5RocP>QX`d0c|aG>0LonwogrG@9`mpZIbDsyIdq{dP|h`A`gwJp1Hlwacc zowKSbSjNpK?67JZOf@&Wn~9cS7~MUqx|;1}Of&NtKW)mB`1lE%JbeJnZ-bfm3^&)# zD!gA^QHdBPC5GX9G#Dizi#}F7$TcI0S60+uWIjEo=-DcnuCSlKI3bx?UQu|81-VY# zIahp7KD6o53K=#$hP7pt4A9$LKaY`Yn~N*OpX9K(d#?Dm-0WX~?1hygQ{&?Hx#BT3 zQM!GOWWip1UwtvUh;?$ofd4ltC9%J%F(QGtpSGLwHW8Wew1CJ<-YCs}>TOw%{T{0@ zEsRrm#E!x8k@pa7rTtMN#^00OwqZ=ciI^~x^e8M&DrHF(!{Rmn!X_x}roNU&^)gSh z*;Htcyy~VNv6$e{=j=H)U}Q3c_$LPuO2ps~!4cZO5pLd$t!QgXC8cWlyqYz?W%IKc zfwE7OsOTRn0?@8UQ5)pcc3B>BdOJ#7F{w%>5}%= zFcih<1HelN=;fH*KuzEwSn^r89(xgX=G|1rJc`J$rUNHP07TI9gD7nN$EiQ7D zLo%C*2BTFdvuSiy2s8Lx@&zkq^C?V%d`7o;@r|guns$Zt;)UqP0;C>iIY6_Y@M?i# zfokK9@Q}XQdl6vVXMxoKAWNCKb{^GE6?OGI5Q6W~$AX7s+|Jod0Yl0(yS4>r^$44g z8Xp40f7R%~8mUa!tq}^8#$pJl%c7QmUG%Y@g)Pz0;em>WL`dz=L6~ys>qv(W zatVOw@|=!*;I8Xfis7Nr;zyM_L7coG*LPACd4^3!mt!7NRF=hRSiaH{yTP&t(J?nT zqKk>kWH!(eJNt3j*@Y%Sm}GE`$aYrEe6#U!=S*mP?e`92V#AAgpuaXnBSYS&oKKqK z_~@#Cu&nLIHS%?z8zXajFoMuF5b!raz}f%-mj2L8=e02vQuN}8ajmkfRcy@u}gg<)7tbj z(yRK$TW~yMxQj=rXOLerdUzy_BgZ`F$cwhH?ViVBN^y0tcH{&pB{mo`qb2DKbbO?O z4s5-oSG?L$0$@$*fa){o%k-S+3yv%lX_CS(63R-13TY8jx>pA1`be&{#4<{wlWm4)JO3 z%bUdcGKnEW+cI>lSGX=wlcH(^H%VZrO0O6Ol>qN#)b=3QO+5(lVbHF&ig*Hg?Wj5d zW{kG8`d(J0QBzoi)!ev|0XB8ba$0C+=vvw>Y;&b$qkf6Z0?J+`3jWuLg7poe0K`v- z!WXOfa(`km{WDZ0TDC^w$!hDbrzK2BmZ&ydW?3_L{o@xnDu^qw{QacTA%WoG7Lx_G zuLKYJN`PLBGe!bhawIJQDuhEHPlP9wZP6y1sixi|!$9Bf(|3p>X4i@4aOZ6r0MXZo z!mXY?IqqEk9^d*&y*?*IR@}tJSte8|_+#vc65ikgQW4?{FQsR#*W*VjVo_ zfP+PCsKM_R4-d6=d`dD1#JxWK7yLxigxxMp8MnB`lq@N(4DI7lad&7mrdEk&2UpE< zF;X2_J(@yvzrs}K=xBPYy8GGhav^i^9rRC)dklIidqhm21NBcnZkr{}E^3w>sz;#$-NgqW?yJ$#se#E(4Y~=bL8*`$kf{hE;W3BhNVUv?E6ydCHL|?6#ROYzk4peGorT7SS(|dITH$CkWU56B+;@8$jrH zP4R>E_3}Rj?l$;^5&i1QFW2wlRoraOs_4sKdgE&g3!F3hs~2x>7_VFo)co|R4*!oo z&Yt|?#$ClXhu0Rv!?)K}7thT1PM+%Q=+mRq^CzFXvSH*kzIE;D(#-VI%&F;xCp$eo zwEAsn?&NbFv#`*aKam!n)xSEP4c!0ncKS?bsW-Ov)bz>u9p7F&+3OtaO!v;h mwsE|=MzCPV;`1k_d(+(8L4>_jyt%Q-d2w^&v&FtmNB;+lfQnWC diff --git a/internal/test/testdata/e2e/tinygo/handle_response/main.wasm b/internal/test/testdata/e2e/tinygo/handle_response/main.wasm index 66462015d05bd7d1d996b0f11d563df31f450eb2..2c5296f42546d3e4d38f53fe38dc210666bc0421 100755 GIT binary patch delta 3904 zcmaJ^Z)_CD6`z@%-P^mpvlnc@*k|AD`XEM$U7Lop1*qJh8j}Dbt)i-GBeia^1b4<@ z`)Cs>%9_+zmf8=lCLc)32T~E04~>+Hen4s~fkY*$(w3+op~zBO6{(RDH8gD%ije5< z&7OmyYAl`K{CR)oz4v=>X5ZWS&o3*4XKLz5HVn3@3;n$pzRtJv+u6D;QX6LvsW zHKvMdUW-LVFpTC-$(mx@8BM9w;K|CAYVw)LD_po4Yx zGCemZ!+`$l>x&pURsH6I`M%RB<`&FPoXy^8$evy>e{?p9yQj=OXE=NJ6v=|!Y?n_4 zZ(^TZ(BMBVBN8*Rm&irAi_HB;_7K_VDglulZi!|uxKC_=y=Mwc37slDXvbiA!`()v z-UTPf$L>gc*M>0yCt|{M*r2eaQV|Q+Vrcezi#XA?`c~y&CV)@v6 z_A_kuwrD2|5&v)xLWvm6XAYA6o0+YfVTw#sDk)V*@suLfyg zBS)WGFfaOF5g^z7j_zx8aK*uQ%j(hBEm16#Vad4JXXDS}=nnoac+N~`dy}Sq3H`tl z%tNUp@|b1~&9TrO--#W~mD3evG+7W~Pb5UusX`3k@>7ymVzj_DiyXV6@9kch-nO6}V${Q^>@ZD9u$|-LR z1E8lzA(OSRL55aNem@{Z%c&@X&6QX=jat*ZXsd`K5CeC?t#6$pt9UgEa&KNgoTgB9w48JprArh9dxEI?-ro{j5D^4V}ya z*`fUq~ zVuq~jH>K8&OXwQJcJA?10^Q)jaclucHb4s=C@01VhWl#&;1)msB!Ri3?x{DV;9 zP-d}=@K7LL0HQpS#Q2-o1V=^{4i*GyX=ZWgVH#Ct5)M?vVL*%5qD)irc&cCyZHp95 zn!mJ0!>LzsR^=wqSg6qi712P)2vqid4hU@egVmRj5LX3g(n^}4aD5VID`K7ldyuxg z9+~sd3Q{RWx)#YCB3F(9`yT+U)=Fap+*=#;aAlGc%q zi-fsiI#w}&q|$LYtvnmR9jEC~kU2vX{AY=R_Z(56*C7Dh{Yqc{6cK7e(rQs~^e46leJ}P4h?$ zra0nlj`LW7?C`4I)>084HtiJ&HFvlQ((YCO)LT^Wu)F2VgSBP;FH>%-RPU1v0ald3d4VOaJd0P~EVk|BdGqVGQl1(m`W7&um&~2E&fZ15 zMHBG~dY-~_1ATz)7Q=#WFG5wsF);n@8=l0K1OL0|Wr+(C#ldiQ=-c0u=!=W=Vnp$a zH6A1W$@WSz%N=T@VLcX5DoE){(!48i&(mpy#-obvH){j$4FKKRSY-frH{Sy* za!rP;Sa6bLh=z}+DsJVET)|&)$!s;LH7`UY1G>P36AnJozENVn)g#ke5E*my#d$df z0*~w?8EZ`cmEP8%cTdu5TJwfJ^Qs-?o{3o(yy03X3>eB0&$bBJ(NAAy=$gn`s2F5Q zCt@+HME&h3gT^cB1ay_zJ@?uN%g)!JoGTwK#avrAvcp4fLW98zNa)*a3U914$z%;y z&N8KDzSP^m1`b1s%tF)p|X|@+^beg7S z2TtNa(7!!l3|#`TLx^Gu96&)=8i+~>-E5e(!w-_d^9)^^Itvz?S0de!nBlf2(wCC5 zM)~6v%(V}-T;T@Avz8bDBzoV{Ez7sy=Cx1&Ca5&3^%Y3b7f|p(I*h(xg1>R|!G^cY zhR)BI82;YF?+)Ya7JmB9Ng4b>+{Dr{re>+*!{i?G*`VNd;VmqtUv@JC-yNSl`sIn~ z6BDxyc8|Gi2jwR-Kb9Upp z;NKZJHGXu0|01*5T-x{%UvJ*&Y!|w5;Y#PPc&uhlOf`-ioftSgK707+`0?E*zFnVa z=tGBQ_8gnpi?xzDS!^@ci#xnnDgD=YVn>wGWF8fF>i2S>&U>6$@M(< EU#U*qUH||9 delta 3723 zcmaJ^Z;Vt|6~F)9pP4tqzJ-AucJ|MGZ?|;NWrZpO0+GGMW!oZx)ig$Hbd^nDX4$g4 z1JQ&yGz_*O#I(62lE??rw2=>O(uRI$lNvEGN)_W)8`EeLNm>((d?+cgO(oIax$iBs z{m|XaoO|Cp_uO-S=XcJ%^WK;Kw&Tec2S-xI6jxkGE=56brKIG-6TK9{K6;sFte4Me)>z^wJ}I8-MufNmUmt<>r01S4|j9 zH8;GOiiThqEuB|0}l?uDG>Ox7*ccqnmh7?i=XO ztAv)FRU;%`Q9A{;`%n#$==Ze1k{#YK&A#K^+lT!gC^IcgW^kVyL*?h*=8^0X{1(TW z8yq&gZT$ITM$Si{;k<)2_C0TFdc}d8zy^?FCT0sygFKPuR@eS0d{{ud9##i0kmH&|?>T43JmZ9Bv5JSRUwAP6G>yUN zUxF9xLSdwn+xKA~40GhtK8a<^smyH~*aiaJz%qHR8X`m*s>f2#aP8HSKr3MNf_vLE zvTaIDyzk)urIQNjNb#t%2$kVIwfWg*BE*F3OdtqwwUmiii^(!KERlFO0o8CyO^69C zv}~p!r8Jl-FMF0yNxYmnQ)q|^X0K*5uOX`1n=DIUB(<8=qDjsuUC>@HLtV^If;J%- zxE-^Ls1bY+li@9dUh*RB%$tcU@hBq4>LR4V8=!gI%OVGsZ~s!D6VvZBM5d^WC7 zzDAoE?2U1$rl7c{+n!&&sAgr z>2vl`SF~4B%p9nuk=kr7gL^Ws zL*r||y%!S)a8)aSQx~JDY>4}_Kr|uw_#P!+nfbU@u6Hv6STElB(xw8Teo zXR9@>?(%Fhnid=439gHiWzV5Y#MNPk$cc7>&6FKgV62xko(xpAiqXQiVU%*M=kfyI?;<+Z`(>)~(To(!Mc9FpTp?7U30w2P>djwQL zZ_u8QZ|3qhB;ojFl5q4@lHlpfB;oK&*cT-WGcq@WmsfM;rCjL>d^h24DqlcPEh!Cj zfK#QT{e`qtBY@s=Yn=CKQOmp;rDcuR*!LZJ9c2;XW$|t|N_$8JyIv#SkyY)Qox`!3 zqK2>2TEODk!VRtiq7*0gV5tu7wz?jBbLA+1*REOB82^A40f^hVyoEr~9pO07oaBze zn35~@%&HwcvahWgzLy#!S{q_T8$@S}Vo-@r2l(KQkw`Kgow7ZZzU4!TqYc_kmA*O- z82DdvXPy?Q9|p#no#>tafC*H&==B*XFIF0zBV1Cija#We{}sCgsG9fIgsv_5v55Xn z-Ux&16dh%51Kc6dwcG~F))5HbjV)AfKwG%1)3O*b^tjXa_nzQC_Lk4Rjyw2JYN#{v zl9~F)+B@nlvxB`DG9wYg6u$r2=Pt{5!pz%r$A*0NF}hV7TpC}?M#TqGRznor2#tY2 zapIzuAQuqmlwiadIuX_kA5F!g7Om%T4f2g>5uJ6g>%`fAza_r~<6MV0GVR}2Z`}^s zMd&!V)Cltqn@fc`-L@9gg5r9YZ^rykF=VmKV7rF zv)^=pbP*o2`+V+3+J~Q7net4+P-NT{ZO5rrCfP(JTR__Q0O(a6&sIrqIy`ap!15 zwPJ}D#PgVmc+DiL& z|Hajng`;!rLx*R^bGd(d?$8e|Jze`Hw~r03;=}g!!EIubhS=UnR^0g&IDd3zv7N3w zJbh?xJbU=ijC(fn$zO`2cGuAQO0QtS_`;(HrrXop8z;d|+tWjJ&h4e4@7s~#{r?Ao C#kM;D diff --git a/internal/test/testdata/e2e/tinygo/log/main.wasm b/internal/test/testdata/e2e/tinygo/log/main.wasm index 3967357b42d72c1ec2965cf7635ba2324a9c2866..bd6b2ba95316688dcd0167b2c9d284778cfc2e96 100755 GIT binary patch delta 3498 zcmaJ^U1(g#6`q+p_wLW#m9DI{e!MGd_G)FXNv+s!vof+FJ0h|i+rmy0+B}rHO0=%M zl2*2~PFo19}E!a#bDm6uvCJ2(YDk;Y8EQ@AL!7{C`UxYbZ7WNAEXfr?1zWl0JJJrr57vA9a}C zzzRNC8RxX1nC`4<`C8u9*PAvKnRlGBX#Fck$w_IRat6k3*~dGEn7(vL21)wXTURi0 z%KBzg?qxPE%L~o&$SThxFM6$ME<3xt8wh-(X@27ji`AytbVd`a)**bD?eZxfE;Jis zjP#Goynv|5AreMD8zMIgfD+1`4Ta`GCsK1~wWv}cF-Miu&A3mwgslg-C$4k8%H3sH8;$OUwbMNITfO ztKurDye@_#a$y2C2}>sB>UQRjd~)>20t4usxi(f#z1j*d$|aElU9eqf>jyY#_z<3a z79gZtUtzn|JWjChD^V2jyr5waFyA63&3f{g>|=Fnkrt8Xf^Mqg!(^ddR|47W_J1iL zKJ>!|Sn({;&N9LB&9Vf*VSjv`T(7md#!>0q2P%Ij_1DFP=X#3EE#8X z#HB7)ZJSV%7W%LdD~S}PjLqden|oI3c$G>m6@ZOH0Hk0bq>`9-QaQ7k>OMxRMUe_) zR5RDs3^jp6S`KJ2rU}pJkqW1y^iR}UOV#)ui$o^tC`ls*9%sD|A}A;fVk zM_W=MAUzz7b0Km+*xqWqB)%4nam4pw1fv23^c4hDa}dyK!wA5!KsZy8?t+E*P{xjq z)s?dZX@1zz*Pt4~mxOTX%5cV5CNd1Hbrq$+sZvfoNKmH8p7fuKbW&JE(4#F2%nOYOV@#z_riGGbxwChOvOEh4;f%#vYUd;EOFWWu<`13uZ${{Z36-2f zr=ZROs@2f~e3f{V1l6npqt(|@AXoWEZ1PFMB?w`aur!Tq6D85);9*0cBN!6eI#B!QLQeyAE{)RHG;q8D1qXm=r<;c$2FHbt)9v znqxgh4<))*f;{ZBJ%xc;w$fBBY-5j*qtLOV)F@0a0`sZR7!^eym7*^i=ZJy1Xsn2V zDjFB4%mqXSxT};COs8_2FEf1f1S^+%G3a)X0SX$CW=Wrl};Ybk%!Qu+(-6&*j) zZW&+bIq8zPO=`#uXVLj$*8%i*tS^;>ssZaD<3;sSf3T-olbfpoI-e;Pb$IwyjitM3z8f1uQ4| z(9VgpP`N~lG1^Ef^oWy`Q&V7xE6-9nZob`pn5WFoy9akuTSVJJ>CxiQ7ySS%q0SB{ z>}B9PjQcC*AKkrEt>(^ci^IJ_Ee@r_rH<}^H%LJj2aw6qt0rze91w;ZKsV8Em|nNv zc*p4S7(AHqOtJUjveaHM{6xehvz*Da?=<_avX;s0#qDH$9u!)sBn7vXtv#?m1K2xtOvd>tYo#NcC zzlCSfPlm;j?@cewf4y?yVr8ig9hbfQe|1{FE#P|-z9jTEvoI)PK=*~e|LL_C&aYuc zeE52ji?#Z>`N~L3o|>+mdsWxp+vxcdFRAv! zv(rmw=cmt)Uwn18Qr9yxi$@j~k78}-wkI@Rtkeh1a^E4Y@ICh2fqcjReh=Awg&p(L z=V~K!3*Q~LfDAqPd#R9aD`>)M_-N6lTI=64m~&WcWN~3;x<1Vlt-;8C;f~M>TQ%?W f7r8JW^}o{Ly>zbjgUJPN-^hW3Bl}Hh$Ep7UI-r** delta 3229 zcmaJ^U1(g#6`q;sF8%yWT^7&IES#QiJ-5q0>HrQY7P8|#aD)8bnNYV)B49oS@ILBLVAGv3iv}@F>h6VI5ZaDi zX=%Ho9LeTlSVVDXBT^*Eed2TU?iH7M$@AU`()lazz#|Y(>IeW7@wM~zoc;}4m{XKJ zM1l-~!8yMfq~VV(eYuxB?LQ+x-u25nKOkcz2j5L2M_)HYvdD^dCV%svP@l(94gMi` zE;*hX>1Og>$Oi(U9ztCreaXtoWNXNV*IYv~S#CFkk06&{QjX@*sl=YN5uXpuYFk?! z9k#LF#s95!!imDC?kZS@pR6p;w__oiR<{X#z;c+9NQ$Wf2Z}7LHNomn+fC6#`mMI| zAwzo8g}!AmmCQ$}F}a2)VfJx4a~h&7ovDI_7+KPum!eI^*fJ-bL58|no&qR*056Bx z4V2A|^<+K2eLHNa3!jRx8uB2BA{LmyxXCZ_2P>b+MFvYmYd+dax%qd#*3Xqq^U>f< z%GDnN)kUTc6R=En4Wdl^;3mxDbN2$^En}hdUptSIri!?l4T8IZ`&|^^zBy&rn6!1h zZR%XwN7%R}@xem`$x!4a_Kd~0_S=+3TOP)u56UQMh)g7b-#Q3hVU{P#l4PT-q+F9D zmvSU6%94}35>~rq2*BQIN=g)5MrrzNl2Dj!N>L6eGQv?Wq$tj(+RG|v2v|!WtIBVP zn)Ig%4l-{^cOIK5N3IN{{~$+5yv)zbzy+S#DNC}y@Fjw+gkKbleQm_V(QG<+JLDn7 zX-)J4b)X@>2$l)NOW)*(G$v`7)IdY*%ObUpB1KIL&9Z<&774xc$9|aO9!ke3?g@;rX%7ha>mXpQfq+YbP`C)YW)uR` z`U=2_hjM3WuOqEhP@eo~V5k&<4Z=bYmyQl=l2wzN1Jy2N8w*cmVxk-waWb7nm>~^M zBY7Sr5D#J(yGW$5>1#->of&W7@^#JAc;q?&Y)%g!uf$=HGS8>vWmBw1=kqWnd7)T7 zahik@8w@!sEt2WU@I(P^(|Ad*KKi5woLSO?6S0@=>7-k~nUbaCRxyTOv`OU%5tczq z?p_{%%dlN&h&7JDJF;*T>H?WJniRNm20rPYyxBt$i(M3Xx?3vj{x(l1HI;9O3tZ+2 zohhS4yC@Je(L!K^Eepx3(Y9`#IKNNZkfA*aUFag0Ichvqf8eGaSSryggh4q#JK9OT z1rqViCk!zf?-t=W`BYYMEx?E z1(dx;6#TCf1?w9`0f@JV!WSd>?QCK&{VpmJZCE1lWVP|vkrqrxmZ(dlnPv5fw4+=> z`zNmdZz(QaUX*8giua(Wc*#!&w|4_T#HZT=*+=#B5g7scaYk7pcknku|Vrz33wzm?S3Y(WrYg9O?$DkN-5jq(n~vDLFNZ#D7^=r zt|$dM+prC`JIUsj#@MH{6VbSr(SO2QbVyjA=0$M>WK7AP{+_XWQQ0BnEkwj+%4oNL=1SPUm+VU6l zdVLrVZdHRW1Ap>(sowo5dXpQ~z>C%fFU_$PEOCpPaD@9BR0&emZ@MvEWA5MR4DyA> zm5Rr&?zgS6VY?I;|B(Ej8G`_l>VC-C>;3-|IYiY^YXv$Fmn^&b9bG z_hEJ{dG?_%B(DxVx2?4D;zDQkTx%?&CubIBUwGds|C(>x(qB3|vwHU2%+gm|on4c( zF*i25Fx#o^A2zdN>Fj_Uxc?(z`Nh_1CmuLAGrKT0zxa(K#ys`EKO#m7eFjaI*ODtc jo-GXu=8df^o}TH