Commit Graph

122 Commits

Author SHA1 Message Date
Nuno Cruces
c6a907bb9d experimental: cleanup context keys (#2175)
Signed-off-by: Nuno Cruces <ncruces@users.noreply.github.com>
2024-04-06 21:04:55 +09:00
Takeshi Yoneda
c4532da719 testing: pass N, P into Run of hammer (#2146)
Signed-off-by: Takeshi Yoneda <t.y.mathetake@gmail.com>
2024-03-12 10:34:42 +09:00
Takeshi Yoneda
3c7bc733c5 Nuke old singlepass compiler, enable optimizing compiler by default (#2130)
Signed-off-by: Takeshi Yoneda <t.y.mathetake@gmail.com>
2024-03-07 15:26:45 +09:00
Takeshi Yoneda
77ad69f97c interpreter: v128.store shouldn't commit change when offset overflows (#2096)
Signed-off-by: Takeshi Yoneda <t.y.mathetake@gmail.com>
2024-02-27 11:36:56 +09:00
Takeshi Yoneda
08998eda2d wazevo(regalloc): spill the unused values with high priority (#2082)
Signed-off-by: Takeshi Yoneda <t.y.mathetake@gmail.com>
2024-02-20 16:22:09 +09:00
Takeshi Yoneda
9c0c7c4a02 wazevo(frontend): missing listener.After call in br_if target (#2078)
Signed-off-by: Takeshi Yoneda <t.y.mathetake@gmail.com>
2024-02-20 11:36:40 +09:00
Takeshi Yoneda
ea4a07e3cf wazevo(amd64): imported func calls / global.get (#1952)
Signed-off-by: Takeshi Yoneda <t.y.mathetake@gmail.com>
2024-01-24 11:35:16 -08:00
Anuraag Agrawal
5c70d8bbcc threads: add decoding of shared memory (#1914)
Signed-off-by: Anuraag Agrawal <anuraaga@gmail.com>
2024-01-11 19:32:08 -08: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
Crypt Keeper
2f8dd23097 adds experimental sys.Errno to begin decoupling from the syscall package (#1582)
Signed-off-by: Adrian Cole <adrian@tetrate.io>
2023-07-17 08:13:29 +08:00
guangwu
df428249a3 chore: pkg imported more than once (#1541)
Signed-off-by: guoguangwu <guoguangwu@magic-shield.com>
2023-06-29 07:49:43 +08:00
Nuno Cruces
c8ee0baaf8 compiler: test traps report correct line numbers (#1528)
Signed-off-by: Nuno Cruces <ncruces@users.noreply.github.com>
2023-06-20 08:04:02 +10:00
Crypt Keeper
e31856d360 updates external tool versions (#1498)
Signed-off-by: Adrian Cole <adrian@tetrate.io>
2023-06-02 15:53:29 +08:00
Takeshi Yoneda
256b7a4bf9 dwarf: ignores tombstone entries in inlined information (#1488)
Signed-off-by: Takeshi Yoneda <t.y.mathetake@gmail.com>
2023-05-22 15:56:33 +10: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
f2c8caaf92 Generically convert to string in hammer recovery (#1479)
Signed-off-by: Anuraag Agrawal <anuraaga@gmail.com>
2023-05-17 13:51:20 +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
Achille
daad2fdb66 experimental: add FunctionListener and FunctionListenerFactory implementations (#1444)
Signed-off-by: Achille Roussel <achille.roussel@gmail.com>
2023-05-09 17:03:08 +08: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
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
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
Crypt Keeper
b9e03dc691 Makes host function index insertion order (#1370)
This makes host functions index consistently on insertion order, rather
than lexicographic order. This helps with ABI such as Emscripten, which
need an expected order.

This also constrains the internal code around host functions to only one
export name. More than one was never used. By restricting this, logic is
simpler and smaller.

Signed-off-by: Adrian Cole <adrian@tetrate.io>
2023-04-17 17:18:11 +01:00
Takeshi Yoneda
8ac9a54923 wasm: reduces allocs during import resolution (#1361)
Signed-off-by: Takeshi Yoneda <takeshi@tetrate.io>
2023-04-13 12:35:04 +09:00
Takeshi Yoneda
3cbd881201 binary: makes NameMap and IndirectNameMap slices over values, not ptrs (#1351)
Signed-off-by: Takeshi Yoneda <takeshi@tetrate.io>
2023-04-10 21:27:50 +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
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
Crypt Keeper
451c792ee8 Avoids returning ExitError on exit code zero, and optimizes for no allocations (#1284)
Fixes #1283

Signed-off-by: Adrian Cole <adrian@tetrate.io>
2023-03-24 16:42:30 +01:00
Takeshi Yoneda
cd1110c088 Avoids allocation of exports map per instance (#1275)
Signed-off-by: Takeshi Yoneda <takeshi@tetrate.io>
2023-03-23 16:37:56 +09: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
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
e42987a17a Holds memory/func defs, and validated elements as values in wasm.Module (#1224)
Signed-off-by: Takeshi Yoneda <takeshi@tetrate.io>
2023-03-13 14:52:01 +09:00
Takeshi Yoneda
7466f0e7bd Holds most fields as slice of values, not ptrs in wasm.Module (#1221)
Signed-off-by: Takeshi Yoneda <takeshi@tetrate.io>
2023-03-13 12:50:36 +09:00
Takeshi Yoneda
24e4d5dfa0 Generates typeIDs at compilation time (#1218)
Signed-off-by: Takeshi Yoneda <takeshi@tetrate.io>
2023-03-10 13:46:08 +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
Edoardo Vacchi
117474c477 refactor binary encoding to its own package (#1187)
move binary encoder to its own package

Signed-off-by: Edoardo Vacchi <evacchi@users.noreply.github.com>
2023-03-03 07:21:22 +08:00