<feed xmlns='http://www.w3.org/2005/Atom'>
<title>torque-asm, branch v2.5.0</title>
<subtitle>Lightweight meta-assembler</subtitle>
<id>https://code.benbridle.com/torque-asm/atom?h=v2.5.0</id>
<link rel='self' href='https://code.benbridle.com/torque-asm/atom?h=v2.5.0'/>
<link rel='alternate' type='text/html' href='https://code.benbridle.com/torque-asm/'/>
<updated>2025-04-27T04:17:57Z</updated>
<entry>
<title>Update version to 2.5.0</title>
<updated>2025-04-27T04:17:57Z</updated>
<author>
<name>Ben Bridle</name>
<email>ben@derelict.engineering</email>
</author>
<published>2025-04-27T04:17:57Z</published>
<link rel='alternate' type='text/html' href='https://code.benbridle.com/torque-asm/commit/?id=3fe1a4f983904340d8bac580164b3862376d7acf'/>
<id>urn:sha1:3fe1a4f983904340d8bac580164b3862376d7acf</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Implement &lt;abs&gt; operator for expressions</title>
<updated>2025-04-27T04:17:32Z</updated>
<author>
<name>Ben Bridle</name>
<email>ben@derelict.engineering</email>
</author>
<published>2025-04-27T04:17:32Z</published>
<link rel='alternate' type='text/html' href='https://code.benbridle.com/torque-asm/commit/?id=058938fed4562d4802c7b7d8dc52524dbde354cb'/>
<id>urn:sha1:058938fed4562d4802c7b7d8dc52524dbde354cb</id>
<content type='text'>
The &lt;abs&gt; operator returns the absolute value of an integer.
</content>
</entry>
<entry>
<title>Update assembler and log libraries</title>
<updated>2025-04-27T00:42:28Z</updated>
<author>
<name>Ben Bridle</name>
<email>ben@derelict.engineering</email>
</author>
<published>2025-04-27T00:41:59Z</published>
<link rel='alternate' type='text/html' href='https://code.benbridle.com/torque-asm/commit/?id=a417f9b6440871bbec26520f0921189ee156e9ff'/>
<id>urn:sha1:a417f9b6440871bbec26520f0921189ee156e9ff</id>
<content type='text'>
This update replaces all uses of the ansi library with the new inked
library. This means that terminal colours will now be handled correctly
under Windows.
</content>
</entry>
<entry>
<title>Update version to 2.4.0</title>
<updated>2025-04-26T02:47:21Z</updated>
<author>
<name>Ben Bridle</name>
<email>ben@derelict.engineering</email>
</author>
<published>2025-04-26T02:47:21Z</published>
<link rel='alternate' type='text/html' href='https://code.benbridle.com/torque-asm/commit/?id=9dd8608b300d0984a018ed888039506dc886fa4a'/>
<id>urn:sha1:9dd8608b300d0984a018ed888039506dc886fa4a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Allow label references in pinned address calculations</title>
<updated>2025-04-26T02:45:05Z</updated>
<author>
<name>Ben Bridle</name>
<email>ben@derelict.engineering</email>
</author>
<published>2025-04-26T02:44:50Z</published>
<link rel='alternate' type='text/html' href='https://code.benbridle.com/torque-asm/commit/?id=50592a5184e701dd09eee024bb773ec57c1cd6bf'/>
<id>urn:sha1:50592a5184e701dd09eee024bb773ec57c1cd6bf</id>
<content type='text'>
This is a relaxation of the rule where a label reference could not
be used in any context that could change the length of an assembled
program.

We implement this in the bytecode stage by naively calculating an
initial address for each label as before. If a pinned address is
calculated from a label reference, some of the calculated addresses
could be incorrect. We then attempt to run the bytecode stage, which
will calculate a more accurate address for each label based on how
pinned addresses are calculated. If the address of any label was
changed by running this stage, we re-run the stage up to three more
times until all labels stabilise. If the labels fail to stabilise, we
return an error.
</content>
</entry>
<entry>
<title>Implement first-class string literals</title>
<updated>2025-04-26T01:00:51Z</updated>
<author>
<name>Ben Bridle</name>
<email>ben@derelict.engineering</email>
</author>
<published>2025-04-26T01:00:51Z</published>
<link rel='alternate' type='text/html' href='https://code.benbridle.com/torque-asm/commit/?id=e5447e2568e24db9a5218bbe452b856266ca39ae'/>
<id>urn:sha1:e5447e2568e24db9a5218bbe452b856266ca39ae</id>
<content type='text'>
This feature promotes strings to a first-class type in the language.
If a string is passed to an invocation via the new string-type argument,
the string will be passed as a whole value. String arguments can still
be passed to an invocation via an integer-type argument, in which case
they'll be broken apart into individual characters with the macro being
invoked once per character.

String-type macro arguments are declared like "name".
</content>
</entry>
<entry>
<title>Fix misleading error message</title>
<updated>2025-04-25T21:31:58Z</updated>
<author>
<name>Ben Bridle</name>
<email>ben@derelict.engineering</email>
</author>
<published>2025-04-25T21:30:24Z</published>
<link rel='alternate' type='text/html' href='https://code.benbridle.com/torque-asm/commit/?id=83e5107684a37aa825d626c19a2af7fd6bfc231a'/>
<id>urn:sha1:83e5107684a37aa825d626c19a2af7fd6bfc231a</id>
<content type='text'>
The code here is really expecting a block value, but has received an
integer value. This catches the case where an integer value is
incorrectly included in a macro definition body alongside block tokens.
</content>
</entry>
<entry>
<title>Implement &lt;tal&gt; operator for expressions</title>
<updated>2025-04-25T21:09:59Z</updated>
<author>
<name>Ben Bridle</name>
<email>ben@derelict.engineering</email>
</author>
<published>2025-04-25T21:09:59Z</published>
<link rel='alternate' type='text/html' href='https://code.benbridle.com/torque-asm/commit/?id=4b53479153806e3a1e7a4944313f77dc262117b2'/>
<id>urn:sha1:4b53479153806e3a1e7a4944313f77dc262117b2</id>
<content type='text'>
The &lt;tal&gt; operator returns the number of set bits in the binary
representation of an integer. For negative numbers, only a single sign
bit is counted in the result.
</content>
</entry>
<entry>
<title>Add a rust-toolchain file</title>
<updated>2025-04-25T20:28:17Z</updated>
<author>
<name>Ben Bridle</name>
<email>ben@derelict.engineering</email>
</author>
<published>2025-04-25T20:27:47Z</published>
<link rel='alternate' type='text/html' href='https://code.benbridle.com/torque-asm/commit/?id=8c30c7fbe9b869fb78765a4b7994858f0c8f8182'/>
<id>urn:sha1:8c30c7fbe9b869fb78765a4b7994858f0c8f8182</id>
<content type='text'>
This file will make the project build with the nightly toolchain by
default, which will make building the project slightly easier for other
people.
</content>
</entry>
<entry>
<title>Update version to 2.3.0</title>
<updated>2025-04-18T08:48:26Z</updated>
<author>
<name>Ben Bridle</name>
<email>ben@derelict.engineering</email>
</author>
<published>2025-04-18T08:48:26Z</published>
<link rel='alternate' type='text/html' href='https://code.benbridle.com/torque-asm/commit/?id=23d61c0a0192dac7e79cb42c71a3efff705f19c6'/>
<id>urn:sha1:23d61c0a0192dac7e79cb42c71a3efff705f19c6</id>
<content type='text'>
</content>
</entry>
</feed>
