<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/hashx/src/compiler, branch arti-v1.9.0</title>
<subtitle>mirror of https://gitlab.torproject.org/tpo/core/arti
</subtitle>
<id>http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v1.9.0</id>
<link rel='self' href='http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v1.9.0'/>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/'/>
<updated>2025-10-08T14:00:07Z</updated>
<entry>
<title>hashx: A couple of comments about register ranges</title>
<updated>2025-10-08T14:00:07Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2025-10-08T13:55:42Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=ea75d75ad6962f6cd684aad09510ebb3fc1f94d3'/>
<id>urn:sha1:ea75d75ad6962f6cd684aad09510ebb3fc1f94d3</id>
<content type='text'>
</content>
</entry>
<entry>
<title>hashx: Make exceptions for clippy warnings from dynasm.</title>
<updated>2025-10-08T14:00:07Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2025-10-07T19:21:56Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=bc3e0565d10bf6d67ea7e872a8fee35a1f457bf9'/>
<id>urn:sha1:bc3e0565d10bf6d67ea7e872a8fee35a1f457bf9</id>
<content type='text'>
The new conversion mechanisms in dynasm 4.0 make clippy unhappy
under aarch64.
</content>
</entry>
<entry>
<title>hashx: Make RegisterId::x() return u8 on aarch64</title>
<updated>2025-10-07T19:18:12Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2025-10-07T19:18:12Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=0d796189e5c24c5ac9454bb7eb66ced8216447d8'/>
<id>urn:sha1:0d796189e5c24c5ac9454bb7eb66ced8216447d8</id>
<content type='text'>
(Starting with version 4, dynasm wants something
that implements Into&lt;u8&gt;.)
</content>
</entry>
<entry>
<title>hashx: Provide a u8 accessor for RegisterId.</title>
<updated>2025-10-07T19:17:48Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2025-10-07T19:17:48Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=bcc61d2c94d19f5eb4c0221388003edc2844056f'/>
<id>urn:sha1:bcc61d2c94d19f5eb4c0221388003edc2844056f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>hashx: Fix/ignore clippy lints.</title>
<updated>2025-10-06T17:28:07Z</updated>
<author>
<name>Wesley Aptekar-Cassels</name>
<email>me@wesleyac.com</email>
</author>
<published>2025-10-06T17:28:07Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=6f175184a4e1a0b1d3df99a13e85254a6b43b9ae'/>
<id>urn:sha1:6f175184a4e1a0b1d3df99a13e85254a6b43b9ae</id>
<content type='text'>
Some of these lints are in macros in a way that seems to make them
impossible to avoid, or at least, I can't figure out how to avoid them.
</content>
</entry>
<entry>
<title>Switch Cargo.toml files to edition 2024.</title>
<updated>2025-08-07T15:28:36Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2025-08-06T01:19:58Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=77b0de43b8c67cdb81befe0680a3df43b6ad37bc'/>
<id>urn:sha1:77b0de43b8c67cdb81befe0680a3df43b6ad37bc</id>
<content type='text'>
First, run

```
git grep -l "^edition =" |
    xargs perl -i -pe 's/^edition *=.*/edition = "2024"/;'
```

Second, manually verify that all Cargo.toml files have changed,
and nothing else has changed.

Third, run cargo fmt again.
</content>
</entry>
<entry>
<title>Fix "unnecessary parentheses around assigned value" warning on aarch64.</title>
<updated>2025-01-06T16:03:41Z</updated>
<author>
<name>Alexander Færøy</name>
<email>ahf@torproject.org</email>
</author>
<published>2024-10-10T22:12:12Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=130f920a72168a7d5ba3efe0f6f9d9bb9d575c02'/>
<id>urn:sha1:130f920a72168a7d5ba3efe0f6f9d9bb9d575c02</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix typos</title>
<updated>2024-01-08T18:19:11Z</updated>
<author>
<name>Dimitris Apostolou</name>
<email>dimitris.apostolou@icloud.com</email>
</author>
<published>2024-01-04T18:32:22Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=4eb54be0657862f5d56b047c16c08dabde6a7377'/>
<id>urn:sha1:4eb54be0657862f5d56b047c16c08dabde6a7377</id>
<content type='text'>
</content>
</entry>
<entry>
<title>hashx: Cleanup around Instruction and NUM_INSTRUCTIONS</title>
<updated>2023-08-25T20:14:24Z</updated>
<author>
<name>Micah Elizabeth Scott</name>
<email>beth@torproject.org</email>
</author>
<published>2023-08-25T20:11:47Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=2cb50d1be35a4a6623ff318fcf8ac2620521bb1f'/>
<id>urn:sha1:2cb50d1be35a4a6623ff318fcf8ac2620521bb1f</id>
<content type='text'>
This patch tries to make some of the expressions around NUM_INSTRUCTIONS
more convenient. We can import it directly where it's needed, but most
uses are replaced by new type aliases for InstructionArray and
InstructionVec.

No change to any hashx_cachegrind iai benchmarks
</content>
</entry>
<entry>
<title>hashx: Avoid memcpy in Assembler::finalize()</title>
<updated>2023-08-25T19:46:44Z</updated>
<author>
<name>Micah Elizabeth Scott</name>
<email>beth@torproject.org</email>
</author>
<published>2023-08-25T19:46:44Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=9d081f70363cac0a8de073588cf75f6870153dee'/>
<id>urn:sha1:9d081f70363cac0a8de073588cf75f6870153dee</id>
<content type='text'>
This is a very simple change, just passing 'self' by reference instead of
value. The by-value version generates a memcpy of the entire temporary
program buffer which doesn't optimize out like I expected it would.

The juicy impact here is a much lower cache footprint for compilation,
since we avoid having yet another temporary storage location for the program
data.

generate_compiled_1000x
  Instructions:           271682605 (-0.627292%)
  L1 Accesses:            341834751 (-0.813903%)
  L2 Accesses:                56420 (-39.48365%)
  RAM Accesses:                 618 (-20.25806%)
  Estimated Cycles:       342138481 (-0.867660%)
</content>
</entry>
</feed>
