<feed xmlns='http://www.w3.org/2005/Atom'>
<title>assembler/src, branch main</title>
<subtitle>Rust library for parsing assembly languages</subtitle>
<id>https://code.benbridle.com/assembler/atom?h=main</id>
<link rel='self' href='https://code.benbridle.com/assembler/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://code.benbridle.com/assembler/'/>
<updated>2025-04-27T00:38:40Z</updated>
<entry>
<title>Replace ansi library with inked library</title>
<updated>2025-04-27T00:38:40Z</updated>
<author>
<name>Ben Bridle</name>
<email>ben@derelict.engineering</email>
</author>
<published>2025-04-27T00:38:40Z</published>
<link rel='alternate' type='text/html' href='https://code.benbridle.com/assembler/commit/?id=c13c1f2748598343e01128c3f734df309aa4a26d'/>
<id>urn:sha1:c13c1f2748598343e01128c3f734df309aa4a26d</id>
<content type='text'>
The inked library handles colours correctly on Windows. The log library
has also been updated to the newer version which uses inked internally.
</content>
</entry>
<entry>
<title>Report all symbols involved in a cyclic dependency error</title>
<updated>2025-04-01T04:15:31Z</updated>
<author>
<name>Ben Bridle</name>
<email>ben@derelict.engineering</email>
</author>
<published>2025-04-01T04:15:31Z</published>
<link rel='alternate' type='text/html' href='https://code.benbridle.com/assembler/commit/?id=1400c0cc3bdd7f685d63fe174286dd106337e735'/>
<id>urn:sha1:1400c0cc3bdd7f685d63fe174286dd106337e735</id>
<content type='text'>
Without this, it's difficult to sort out a cyclic dependency error when
many large source files are involved.
</content>
</entry>
<entry>
<title>Fix resolver error</title>
<updated>2025-04-01T04:12:05Z</updated>
<author>
<name>Ben Bridle</name>
<email>ben@derelict.engineering</email>
</author>
<published>2025-04-01T04:10:51Z</published>
<link rel='alternate' type='text/html' href='https://code.benbridle.com/assembler/commit/?id=1cc0269f75b8b2dd979c01ef4a500a09a0cc4354'/>
<id>urn:sha1:1cc0269f75b8b2dd979c01ef4a500a09a0cc4354</id>
<content type='text'>
To check if a particular definition was defining a particular symbol,
the names of the definition and reference were being compared, when the
namespace-aware Symbol::defines method should have been used instead.

This was causing an issue where a namespaced definition would be marked
as resolving a with the same name in a different namespace. This was
resulting in a very complicated and incorrect cyclic dependency error.
</content>
</entry>
<entry>
<title>Tidy source code</title>
<updated>2025-04-01T04:08:03Z</updated>
<author>
<name>Ben Bridle</name>
<email>ben@derelict.engineering</email>
</author>
<published>2025-04-01T04:07:49Z</published>
<link rel='alternate' type='text/html' href='https://code.benbridle.com/assembler/commit/?id=5253be190b1cac16fe4f8658491959e15e52f1b3'/>
<id>urn:sha1:5253be190b1cac16fe4f8658491959e15e52f1b3</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Don't print original source in redefinition errors</title>
<updated>2025-03-24T21:59:30Z</updated>
<author>
<name>Ben Bridle</name>
<email>ben@derelict.engineering</email>
</author>
<published>2025-03-24T21:59:30Z</published>
<link rel='alternate' type='text/html' href='https://code.benbridle.com/assembler/commit/?id=34ca33d86fd47ca912751bd8578e66f449639a7c'/>
<id>urn:sha1:34ca33d86fd47ca912751bd8578e66f449639a7c</id>
<content type='text'>
The source context of the original definition of a redefined symbol was
being printed when reporting a redefinition error. Since only the
source code containing the redefinition was available, if the original
definition was in a different file then the source context of the
original definition would just pull from this source code and the
context shown would be completely nonsensical.
</content>
</entry>
<entry>
<title>Update version to 2.2.0</title>
<updated>2025-03-17T23:03:59Z</updated>
<author>
<name>Ben Bridle</name>
<email>ben@derelict.engineering</email>
</author>
<published>2025-03-17T22:49:12Z</published>
<link rel='alternate' type='text/html' href='https://code.benbridle.com/assembler/commit/?id=24080dd75092ea5ef8c10fd179aa28b8db534c7f'/>
<id>urn:sha1:24080dd75092ea5ef8c10fd179aa28b8db534c7f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Large restructure</title>
<updated>2025-03-17T22:50:29Z</updated>
<author>
<name>Ben Bridle</name>
<email>ben@derelict.engineering</email>
</author>
<published>2025-03-17T22:50:19Z</published>
<link rel='alternate' type='text/html' href='https://code.benbridle.com/assembler/commit/?id=f8a694267d3981b0437c05fc248406116ea9ec06'/>
<id>urn:sha1:f8a694267d3981b0437c05fc248406116ea9ec06</id>
<content type='text'>
Files were moved to be better organised, error messages were changed to
be more general, and a Compiler type was added to the library.
</content>
</entry>
<entry>
<title>Fix Tokeniser::end_of_line method</title>
<updated>2025-03-16T22:44:29Z</updated>
<author>
<name>Ben Bridle</name>
<email>bridle.benjamin@gmail.com</email>
</author>
<published>2025-03-16T22:44:29Z</published>
<link rel='alternate' type='text/html' href='https://code.benbridle.com/assembler/commit/?id=eb45fad24cf28035f526eda45cbd5fb2ff1c337d'/>
<id>urn:sha1:eb45fad24cf28035f526eda45cbd5fb2ff1c337d</id>
<content type='text'>
The method hadn't been changed since back when the chars field was a
stack of characters that were removed as they were consumed. The method
now works with the current design of the Tokeniser.
</content>
</entry>
<entry>
<title>Implement source chains</title>
<updated>2025-03-11T03:18:01Z</updated>
<author>
<name>Ben Bridle</name>
<email>ben@derelict.engineering</email>
</author>
<published>2025-03-11T03:18:01Z</published>
<link rel='alternate' type='text/html' href='https://code.benbridle.com/assembler/commit/?id=a9e9dd452e23fa2e816df926a56c1f743eb32488'/>
<id>urn:sha1:a9e9dd452e23fa2e816df926a56c1f743eb32488</id>
<content type='text'>
A SourceSpan can now contain a child SourceSpan, ad infinitum, in order
to represent a chain of locations. The report_source_issue function
has been changed to print the entire chain, instead of just one
SourceSpan.

The report_source_issue function has also been changed to correctly
print SourceSpans that extend across multiple source lines.
</content>
</entry>
<entry>
<title>Prevent duplicate parent and child entries for source units</title>
<updated>2025-03-11T03:13:23Z</updated>
<author>
<name>Ben Bridle</name>
<email>ben@derelict.engineering</email>
</author>
<published>2025-03-11T03:13:23Z</published>
<link rel='alternate' type='text/html' href='https://code.benbridle.com/assembler/commit/?id=bd7955cbc1c1746f37dcb0742603994fd2e04c90'/>
<id>urn:sha1:bd7955cbc1c1746f37dcb0742603994fd2e04c90</id>
<content type='text'>
The parent and child collections for hierarchical source units were
previously vecs, and would receive one entry for every symbol matched.
This was easily leading to many dozens of duplicate entries per unit,
which, while not impacting performance, seemed wasteful. The collection
types were changed to HashSets to prevent the collection of duplicate
entries.
</content>
</entry>
</feed>
