<feed xmlns='http://www.w3.org/2005/Atom'>
<title>xavi/nanowasm/src/interp, 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>2025-11-15T17:53:32+00:00</updated>
<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 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>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>
<entry>
<title>Add i32_{gt,le}_{s,u}</title>
<updated>2025-11-11T23:31:30+00:00</updated>
<author>
<name>Xavier Del Campo Romero</name>
<email>xavi92@disroot.org</email>
</author>
<published>2025-11-11T23:31:30+00:00</published>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/nanowasm/commit/?id=900fabee73c16bda1542b96d564936e6318d6f58'/>
<id>urn:sha1:900fabee73c16bda1542b96d564936e6318d6f58</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add current_memory and grow_memory operators</title>
<updated>2025-11-10T22:47:36+00:00</updated>
<author>
<name>Xavier Del Campo Romero</name>
<email>xavi92@disroot.org</email>
</author>
<published>2025-11-10T22:47:36+00:00</published>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/nanowasm/commit/?id=6b865a70c0f29e5ca9e13fae4a2a18406f44f4ee'/>
<id>urn:sha1:6b865a70c0f29e5ca9e13fae4a2a18406f44f4ee</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add if and else operators</title>
<updated>2025-11-10T22:47:10+00:00</updated>
<author>
<name>Xavier Del Campo Romero</name>
<email>xavi92@disroot.org</email>
</author>
<published>2025-11-10T22:47:10+00:00</published>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/nanowasm/commit/?id=ba623c7a3a5b450b9b492de50efceea93df96039'/>
<id>urn:sha1:ba623c7a3a5b450b9b492de50efceea93df96039</id>
<content type='text'>
</content>
</entry>
</feed>
