<feed xmlns='http://www.w3.org/2005/Atom'>
<title>xavi/nanowasm, branch master</title>
<subtitle>The tiny WebAssembly interpreter that does not block you.
</subtitle>
<id>https://gitea.privatedns.org/xavi/nanowasm/atom?h=master</id>
<link rel='self' href='https://gitea.privatedns.org/xavi/nanowasm/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/nanowasm/'/>
<updated>2026-02-16T17:46:06+00:00</updated>
<entry>
<title>section.c: Remove debug log</title>
<updated>2026-02-16T17:46:06+00:00</updated>
<author>
<name>Xavier Del Campo Romero</name>
<email>xavi92@disroot.org</email>
</author>
<published>2026-02-16T17:46:06+00:00</published>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/nanowasm/commit/?id=3f915cb9468ade6a3801bea5ecac08b488e2836a'/>
<id>urn:sha1:3f915cb9468ade6a3801bea5ecac08b488e2836a</id>
<content type='text'>
This call to nwp_log was only meant for debugging purposes during
early versions of the library.
</content>
</entry>
<entry>
<title>Add i32.xor</title>
<updated>2025-11-15T17:53:32+00:00</updated>
<author>
<name>Xavier Del Campo Romero</name>
<email>xavi92@disroot.org</email>
</author>
<published>2025-11-15T17:53:32+00:00</published>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/nanowasm/commit/?id=4e4964c65700636e7411ea2d83b7f25ca4ad1377'/>
<id>urn:sha1:4e4964c65700636e7411ea2d83b7f25ca4ad1377</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add select operator</title>
<updated>2025-11-15T17:53:12+00:00</updated>
<author>
<name>Xavier Del Campo Romero</name>
<email>xavi92@disroot.org</email>
</author>
<published>2025-11-15T17:53:12+00:00</published>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/nanowasm/commit/?id=6c2108e6bd19ffa47b33f61501f25db47ddb4cfb'/>
<id>urn:sha1:6c2108e6bd19ffa47b33f61501f25db47ddb4cfb</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Check memory linear accesses are within bounds</title>
<updated>2025-11-15T17:50:55+00:00</updated>
<author>
<name>Xavier Del Campo Romero</name>
<email>xavi92@disroot.org</email>
</author>
<published>2025-11-15T17:50:55+00:00</published>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/nanowasm/commit/?id=b1034b86023672e6750da49b01a7d429cd8339d0'/>
<id>urn:sha1:b1034b86023672e6750da49b01a7d429cd8339d0</id>
<content type='text'>
WebAssembly defines how many pages of linear memory are owned by the
instance on startup. This limit can then be bumped via the grow_memory
operator.

Therefore, accesses outside the defined bounds are considered an
exception.
</content>
</entry>
<entry>
<title>Add br_table</title>
<updated>2025-11-15T17:48:16+00:00</updated>
<author>
<name>Xavier Del Campo Romero</name>
<email>xavi92@disroot.org</email>
</author>
<published>2025-11-15T17:48:16+00:00</published>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/nanowasm/commit/?id=0b2a1fd9439d5ab1cdc076d7b9f1e763c4900b74'/>
<id>urn:sha1:0b2a1fd9439d5ab1cdc076d7b9f1e763c4900b74</id>
<content type='text'>
br_table is in fact a generalization of other branch types like br or
br_if, since br_table contains several branches for the same pc inside
the nw_lo section.

Therefore, this kind of branch forced some changes to nwp_break and
those relying on it.
</content>
</entry>
<entry>
<title>Add nwp_type_str</title>
<updated>2025-11-15T17:45:20+00:00</updated>
<author>
<name>Xavier Del Campo Romero</name>
<email>xavi92@disroot.org</email>
</author>
<published>2025-11-15T17:44:47+00:00</published>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/nanowasm/commit/?id=4a356bf56051361f2c72037f4fb043f8fdaa576c'/>
<id>urn:sha1:4a356bf56051361f2c72037f4fb043f8fdaa576c</id>
<content type='text'>
This private function allows to decode an enum nw_type to a
human-readable string.
</content>
</entry>
<entry>
<title>Add i32.shr_{s,u}</title>
<updated>2025-11-12T23:57:36+00:00</updated>
<author>
<name>Xavier Del Campo Romero</name>
<email>xavi92@disroot.org</email>
</author>
<published>2025-11-12T23:57:36+00:00</published>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/nanowasm/commit/?id=ac1796a1281aa6a6c9da3e407cb871d321da9d6c'/>
<id>urn:sha1:ac1796a1281aa6a6c9da3e407cb871d321da9d6c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>call_import.c: Fix prev_ret</title>
<updated>2025-11-11T23:35:04+00:00</updated>
<author>
<name>Xavier Del Campo Romero</name>
<email>xavi92@disroot.org</email>
</author>
<published>2025-11-11T23:35:04+00:00</published>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/nanowasm/commit/?id=c3d6bac9d716433ca31f7d39332b2a6a96d8187d'/>
<id>urn:sha1:c3d6bac9d716433ca31f7d39332b2a6a96d8187d</id>
<content type='text'>
So far, this variable was only being assigned by unwind.c, which is
called only for WebAssembly functions. However, it is still mandatory
to report the last returned value from imported functions, too, as
prev_ret is relied upon by operators such as `drop`.
</content>
</entry>
<entry>
<title>execute.c: Report exception also on repeated callback</title>
<updated>2025-11-11T23:33:40+00:00</updated>
<author>
<name>Xavier Del Campo Romero</name>
<email>xavi92@disroot.org</email>
</author>
<published>2025-11-11T23:33:40+00:00</published>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/nanowasm/commit/?id=be7c97ce6ae43d677b28d455506fdaedf944a25b'/>
<id>urn:sha1:be7c97ce6ae43d677b28d455506fdaedf944a25b</id>
<content type='text'>
So far, exceptions coming from the pc callback were only being reported
on its first call. However, pc callbacks might assign a continuation
callback if the operation cannot be completed on a single call.
</content>
</entry>
<entry>
<title>Fix prev_op</title>
<updated>2025-11-11T23:32:15+00:00</updated>
<author>
<name>Xavier Del Campo Romero</name>
<email>xavi92@disroot.org</email>
</author>
<published>2025-11-11T23:32:15+00:00</published>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/nanowasm/commit/?id=cf2882c2e754f49c46ce2ca12c3ca07e4cabc459'/>
<id>urn:sha1:cf2882c2e754f49c46ce2ca12c3ca07e4cabc459</id>
<content type='text'>
Assigning prev_op inside nwp_execute defeated the purpose because this
function is meant to start the state machine for the given instruction.

In other words, inspecting prev_op would in fact return the current
opcode, instead of the previous opcode.
</content>
</entry>
</feed>
