Commit Graph

109 Commits

Author SHA1 Message Date
Takeshi Yoneda
27624049dc wazevo(frontend): faster non-imported global access (#1889)
Some checks failed
Release CLI / Pre-release build (push) Has been cancelled
Release CLI / Pre-release test (macos-12) (push) Has been cancelled
Release CLI / Pre-release test (ubuntu-22.04) (push) Has been cancelled
Release CLI / Pre-release test (windows-2022) (push) Has been cancelled
Release CLI / Release (push) Has been cancelled
Signed-off-by: Takeshi Yoneda <t.y.mathetake@gmail.com>
2023-12-22 08:04:48 -08:00
Takeshi Yoneda
756ecc58e2 Simplifies wasm.ElementInstance struct (#1754)
Signed-off-by: Takeshi Yoneda <t.y.mathetake@gmail.com>
2023-10-05 08:11:21 +09:00
Takeshi Yoneda
aca6ab2fb3 wazevo: fixes many params function listeners (#1728)
Signed-off-by: Takeshi Yoneda <t.y.mathetake@gmail.com>
2023-09-22 12:40:10 +09:00
Takeshi Yoneda
57b44b653f experimental: removes Parameters API from StackIterator (#1716)
Signed-off-by: Takeshi Yoneda <t.y.mathetake@gmail.com>
2023-09-18 15:14:34 +09:00
Takeshi Yoneda
6515656e5f Completes migration of enginetest to integration_tests (#1707)
Signed-off-by: Takeshi Yoneda <t.y.mathetake@gmail.com>
2023-09-14 10:02:18 +09:00
Takeshi Yoneda
5250820c1c Migrates enginetest into integration tests (#1705)
Signed-off-by: Takeshi Yoneda <t.y.mathetake@gmail.com>
2023-09-13 13:56:25 +09:00
Takeshi Yoneda
c9019e6406 wazevo: supports for LookupFunction API (#1704)
Signed-off-by: Takeshi Yoneda <t.y.mathetake@gmail.com>
2023-09-13 12:36:56 +09:00
Takeshi Yoneda
b8262fe4fb Lifts LookupFunction into ModuleInstance from ModuleEngine (#1636)
Signed-off-by: Takeshi Yoneda <t.y.mathetake@gmail.com>
2023-08-18 10:46:50 +09:00
Takeshi Yoneda
112c0d445d wazevo: adds support for local.tee, selects (#1634)
Signed-off-by: Takeshi Yoneda <t.y.mathetake@gmail.com>
2023-08-17 11:30:27 +09:00
Takeshi Yoneda
a9c5a44690 wazevo: adds support for imported memory (#1628)
Signed-off-by: Takeshi Yoneda <t.y.mathetake@gmail.com>
2023-08-14 15:47:18 +09:00
Takeshi Yoneda
7c88d2a9d4 wazevo: adds support for load instructions (#1624)
Signed-off-by: Takeshi Yoneda <t.y.mathetake@gmail.com>
2023-08-11 11:22:24 +09:00
Chris O'Hara
50394cc1fa engine: call FunctionListener.Abort in correct order (#1501) 2023-06-01 19:53:04 -07:00
Anuraag Agrawal
714368bcea Remove threads support (#1487)
Signed-off-by: Anuraag Agrawal <anuraaga@gmail.com>
2023-05-22 12:18:36 +10:00
Anuraag Agrawal
bc96257575 Implement WebAssembly threads proposal with interpreter (#1460)
Signed-off-by: Anuraag Agrawal <anuraaga@gmail.com>
2023-05-16 12:22:17 +08:00
Takeshi Yoneda
80452a94c3 Bulk lazy initialization of FunctionDefinitions (#1425)
Signed-off-by: Takeshi Yoneda <t.y.mathetake@gmail.com>
Co-authored-by: Edoardo Vacchi <evacchi@users.noreply.github.com>
2023-05-12 08:02:40 +10:00
Achille
78c35acd6e experimental: remove return value of FunctionListener.Before (#1453)
Signed-off-by: Achille Roussel <achille.roussel@gmail.com>
Co-authored-by: Crypt Keeper <64215+codefromthecrypt@users.noreply.github.com>
2023-05-11 11:52:10 +08:00
Achille
a105c43629 experimental: remove error parameter from FunctionListener.After (#1452)
Signed-off-by: Achille Roussel <achille.roussel@gmail.com>
2023-05-11 06:48:26 +08:00
Thomas Pelletier
ef3d671195 experimental: split program counter and source offset resolution (#1448)
Signed-off-by: Thomas Pelletier <thomas@pelletier.codes>
2023-05-09 13:34:01 -07:00
Thomas Pelletier
ed17e523ba experimental: expose source offset to Listener (#1433)
Signed-off-by: Thomas Pelletier <thomas@pelletier.codes>
Signed-off-by: Achille Roussel <achille.roussel@gmail.com>
Co-authored-by: Achille Roussel <achille.roussel@gmail.com>
2023-05-09 08:18:27 +08:00
Takeshi Yoneda
cdaf6d41c8 interpreter: refactors around FunctionDefinition (#1420)
Signed-off-by: Takeshi Yoneda <t.y.mathetake@gmail.com>
2023-05-01 12:07:47 +09:00
Takeshi Yoneda
f47b0d3362 Reduces FunctionDefinition usages (#1419)
Signed-off-by: Takeshi Yoneda <t.y.mathetake@gmail.com>
2023-05-01 10:37:43 +08:00
Nuno Cruces
77e8d72d67 api: adds CallWithStack to avoid allocations (#1407)
Signed-off-by: Nuno Cruces <ncruces@users.noreply.github.com>
2023-05-01 08:52:40 +09:00
Thomas Pelletier
0bfb4b52eb Give Listener a read-only view of globals (#1404)
* experimental: give listener r/o view of globals

Signed-off-by: Thomas Pelletier <thomas@pelletier.codes>

* experimental: add global support to interpreter

Signed-off-by: Thomas Pelletier <thomas@pelletier.codes>

* exp: replace globals proxy with module interface

Signed-off-by: Thomas Pelletier <thomas@pelletier.codes>

* exp: trim down experimental.InternalModule

Signed-off-by: Thomas Pelletier <thomas@pelletier.codes>

* Replace globals view slice with constantGlobal

Signed-off-by: Thomas Pelletier <thomas@pelletier.codes>

* Fix tests after merge

Signed-off-by: Thomas Pelletier <thomas@pelletier.codes>

* Address PR feedback

Signed-off-by: Thomas Pelletier <thomas@pelletier.codes>

* Rename methods of experimental.Module

Signed-off-by: Thomas Pelletier <thomas@pelletier.codes>

* Run make check

Signed-off-by: Thomas Pelletier <thomas@pelletier.codes>

* Add WazeroOnlyType to constantGlobal

Signed-off-by: Thomas Pelletier <thomas@pelletier.codes>

---------

Signed-off-by: Thomas Pelletier <thomas@pelletier.codes>
2023-04-29 00:07:28 -07:00
Nuno Cruces
197facf7a9 Close certain api interfaces for external implementation (#1396)
This adds a new type `internalapi.WazeroOnly` which should be embedded on types users are likely to accidentally implement despite docs saying otherwise.

Signed-off-by: Nuno Cruces <ncruces@users.noreply.github.com>
2023-04-28 15:32:32 +08:00
Takeshi Yoneda
3c1c76e2a1 debug: includes Go stack trace in the face of Go runtime errors (#1401)
Signed-off-by: Takeshi Yoneda <takeshi@tetrate.io>
2023-04-25 10:45:20 +09:00
Thomas Pelletier
9aca08c5e6 Provide new StackIterator to Before Listener hook (#1363)
Signed-off-by: Thomas Pelletier <thomas@pelletier.codes>
2023-04-18 08:22:58 +09:00
Takeshi Yoneda
5464903d8f interpreter: use slice of values on functions, not ptrs (#1357)
Signed-off-by: Takeshi Yoneda <takeshi@tetrate.io>
2023-04-12 11:35:13 +09:00
Takeshi Yoneda
f167939c88 wazeroir: avoids allocation with InclusiveRange (#1345)
Signed-off-by: Takeshi Yoneda <takeshi@tetrate.io>
2023-04-07 12:14:39 +09:00
Takeshi Yoneda
df8586e58b interpreter: reduces allocations in lowerIR (#1343)
Signed-off-by: Takeshi Yoneda <takeshi@tetrate.io>
2023-04-06 15:04:39 +09:00
Takeshi Yoneda
cc28399052 wazeroir: reuses allocated slices for a module (#1342)
Signed-off-by: Takeshi Yoneda <takeshi@tetrate.io>
2023-04-05 20:26:44 +09:00
Edoardo Vacchi
0dc152d672 wazeroir: migrate vector, table, branch and all other remaining ops to compact repr (#1334)
Signed-off-by: Edoardo Vacchi <evacchi@users.noreply.github.com>
Co-authored-by: Takeshi Yoneda <takeshi@tetrate.io>
2023-04-05 09:38:49 +09:00
Edoardo Vacchi
f3ef84c9b3 wazeroir: Load Ops, Store Ops, Set, Pick, Select, CallIndirect (#1329)
Signed-off-by: Edoardo Vacchi <evacchi@users.noreply.github.com>
Co-authored-by: Takeshi Yoneda <t.y.mathetake@gmail.com>
2023-04-01 08:00:27 +09:00
Edoardo Vacchi
8887799da7 wazeroir: move unary byte ops to UnionOperator (#1320)
Signed-off-by: Edoardo Vacchi <evacchi@users.noreply.github.com>
2023-03-31 08:07:12 +09:00
Edoardo Vacchi
c5d37877bd wazeroir: migrate unary operations to UnionOperation (#1318)
* refactor: OperationCall, OperationGlobalGet, OperationGlobalSet

* refactor: Constant Operations

Signed-off-by: Edoardo Vacchi <evacchi@users.noreply.github.com>

---------
2023-03-30 12:57:45 +02:00
Edoardo Vacchi
37135067b6 wazeroir: rm nullary Operations, move interpreterOp to UnionOperation (#1310)
Signed-off-by: Edoardo Vacchi <evacchi@users.noreply.github.com>
2023-03-30 16:57:41 +09:00
Edoardo Vacchi
54ba876002 interpreter: add u1, u2 int64 to interpreterOp (#1298)
Signed-off-by: Edoardo Vacchi <evacchi@users.noreply.github.com>
2023-03-29 08:26:29 +09:00
Takeshi Yoneda
fa722dd9e3 Implements api.Function directly over engine specific callEngine (#1297)
Signed-off-by: Takeshi Yoneda <takeshi@tetrate.io>
2023-03-28 16:49:35 +09:00
Takeshi Yoneda
0857336746 Removes wasm.FunctionInstance type (#1294)
Signed-off-by: Takeshi Yoneda <takeshi@tetrate.io>
2023-03-28 14:43:44 +09:00
Takeshi Yoneda
cd606bde04 Refactors NewModuleEngine and NewCallEngine (#1291)
Signed-off-by: Takeshi Yoneda <takeshi@tetrate.io>
2023-03-27 09:40:55 +09:00
Takeshi Yoneda
a4226906cf Deletes wasm.CallCtx (#1280)
Signed-off-by: Takeshi Yoneda <takeshi@tetrate.io>
2023-03-24 17:00:43 -07:00
Takeshi Yoneda
cd05a22df2 Reduces allocations during instantiation (#1267)
Signed-off-by: Takeshi Yoneda <takeshi@tetrate.io>
2023-03-22 18:55:58 +09:00
Takeshi Yoneda
c20073d228 Removes unnecessary .Index field of FunctionInstance (#1270)
Signed-off-by: Takeshi Yoneda <takeshi@tetrate.io>
2023-03-22 18:55:35 +09:00
Takeshi Yoneda
e17a85146a Holds wasm.Code as values on wasm.Module (#1243)
Signed-off-by: Takeshi Yoneda <takeshi@tetrate.io>
2023-03-15 14:45:54 +09:00
Takeshi Yoneda
350e81e632 Holds function types as values, not ptrs in wasm.Module (#1227)
Signed-off-by: Takeshi Yoneda <takeshi@tetrate.io>
2023-03-15 13:45:52 +09:00
Takeshi Yoneda
aba4ede088 Removes usage of host functions with Wasm optocdes (#1241)
Signed-off-by: Takeshi Yoneda <takeshi@tetrate.io>
2023-03-15 13:42:53 +09:00
Takeshi Yoneda
38fc1cf76c Deletes callContext.withMemory (#1214)
Signed-off-by: Takeshi Yoneda <takeshi@tetrate.io>
2023-03-08 15:42:39 +09:00
Takeshi Yoneda
ad968dc3fe Pass correct api.Module to host functions (#1213)
Fixes #1211

Previously, host functions are getting api.Module for the "originating" module, 
which is the module for api.Function currently invoked, except that the api.Module 
is modified by withMemory with the caller's memory instance, therefore there 
haven't been no problem for most cases. The only issues were the methods 
besides Memory() of api.Module, and this commit fixes them.

Signed-off-by: Takeshi Yoneda <takeshi@tetrate.io>
2023-03-08 15:05:48 +09:00
Clifton Kaznocha
ecb5b1ad03 Close and return immediately if the context is already canceled (#1158)
Signed-off-by: Clifton Kaznocha <ckaznocha@users.noreply.github.com>
Co-authored-by: Clifton Kaznocha <ckaznocha@users.noreply.github.com>
2023-02-24 09:58:07 +08:00
Takeshi Yoneda
0547a8e0ab wazeroir: uses u64 as unique keys for labels (#1142)
Signed-off-by: Takeshi Yoneda <takeshi@tetrate.io>
2023-02-21 08:24:59 +09:00
Takeshi Yoneda
381f26db20 wazeroir: less allocations with Labels (#1141)
Signed-off-by: Takeshi Yoneda <takeshi@tetrate.io>
2023-02-20 17:09:17 +09:00