<feed xmlns='http://www.w3.org/2005/Atom'>
<title>chad-fast/src/CHAD, branch hashable-gadt</title>
<subtitle>An implementation of CHAD, towards performance
</subtitle>
<id>https://git.tomsmeding.com/chad-fast/atom?h=hashable-gadt</id>
<link rel='self' href='https://git.tomsmeding.com/chad-fast/atom?h=hashable-gadt'/>
<link rel='alternate' type='text/html' href='https://git.tomsmeding.com/chad-fast/'/>
<updated>2025-01-28T15:58:51Z</updated>
<entry>
<title>Pretty-printer that supports extension fields</title>
<updated>2025-01-28T15:58:51Z</updated>
<author>
<name>Tom Smeding</name>
<email>t.j.smeding@uu.nl</email>
</author>
<published>2025-01-28T15:58:51Z</published>
<link rel='alternate' type='text/html' href='https://git.tomsmeding.com/chad-fast/commit/?id=3e04b03acd5e7138e0f6241133585f22ddb73060'/>
<id>urn:sha1:3e04b03acd5e7138e0f6241133585f22ddb73060</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add ext field to remaining AST constructors</title>
<updated>2025-01-27T14:08:02Z</updated>
<author>
<name>Tom Smeding</name>
<email>t.j.smeding@uu.nl</email>
</author>
<published>2025-01-27T14:08:02Z</published>
<link rel='alternate' type='text/html' href='https://git.tomsmeding.com/chad-fast/commit/?id=88fae8c2914b805a733b71de58ab672124e6069c'/>
<id>urn:sha1:88fae8c2914b805a733b71de58ab672124e6069c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>WIP accum top-level args</title>
<updated>2024-11-26T14:25:13Z</updated>
<author>
<name>Tom Smeding</name>
<email>tom@tomsmeding.com</email>
</author>
<published>2024-11-26T14:25:13Z</published>
<link rel='alternate' type='text/html' href='https://git.tomsmeding.com/chad-fast/commit/?id=ae2b1b71a91d60d3bd1dfb21fce98c05c1a4fcbb'/>
<id>urn:sha1:ae2b1b71a91d60d3bd1dfb21fce98c05c1a4fcbb</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Prepare for introducing top-level args in accum mod</title>
<updated>2024-11-23T11:12:03Z</updated>
<author>
<name>Tom Smeding</name>
<email>tom@tomsmeding.com</email>
</author>
<published>2024-11-23T11:12:03Z</published>
<link rel='alternate' type='text/html' href='https://git.tomsmeding.com/chad-fast/commit/?id=7774da51c532006da82617ce307d136897693280'/>
<id>urn:sha1:7774da51c532006da82617ce307d136897693280</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Configuration for CHAD</title>
<updated>2024-11-14T18:27:57Z</updated>
<author>
<name>Tom Smeding</name>
<email>tom@tomsmeding.com</email>
</author>
<published>2024-11-14T18:27:57Z</published>
<link rel='alternate' type='text/html' href='https://git.tomsmeding.com/chad-fast/commit/?id=b8c162ce9cb1faeec621b751fff9aff46e022417'/>
<id>urn:sha1:b8c162ce9cb1faeec621b751fff9aff46e022417</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Benchmark</title>
<updated>2024-11-07T22:11:36Z</updated>
<author>
<name>Tom Smeding</name>
<email>tom@tomsmeding.com</email>
</author>
<published>2024-11-07T22:11:36Z</published>
<link rel='alternate' type='text/html' href='https://git.tomsmeding.com/chad-fast/commit/?id=92ddb2263ae495c229badcc209c76a1252bd2752'/>
<id>urn:sha1:92ddb2263ae495c229badcc209c76a1252bd2752</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Towards a test suite</title>
<updated>2024-10-07T12:34:27Z</updated>
<author>
<name>Tom Smeding</name>
<email>t.j.smeding@uu.nl</email>
</author>
<published>2024-10-07T12:34:27Z</published>
<link rel='alternate' type='text/html' href='https://git.tomsmeding.com/chad-fast/commit/?id=72eddb67bb6f048fc2076184be3a32169026a832'/>
<id>urn:sha1:72eddb67bb6f048fc2076184be3a32169026a832</id>
<content type='text'>
</content>
</entry>
<entry>
<title>WIP better zero/plus, fixing Accum (...)</title>
<updated>2024-09-13T21:07:04Z</updated>
<author>
<name>Tom Smeding</name>
<email>tom@tomsmeding.com</email>
</author>
<published>2024-09-13T21:07:04Z</published>
<link rel='alternate' type='text/html' href='https://git.tomsmeding.com/chad-fast/commit/?id=94938d648e021d2ace0f3b7bf383d256449d619f'/>
<id>urn:sha1:94938d648e021d2ace0f3b7bf383d256449d619f</id>
<content type='text'>
The accumulator implementation was wrong because it forgot (in accumAdd)
to take into account that values may be variably-sized. Furthermore, it
was also complexity-inefficient because it did not build up a sparse
value. Thus let's go for the Haskell-interpreter-equivalent of what a
real, fast, compiled implementation would do: just a tree with mutable
variables. In practice one can decide to indeed flatten parts of that
tree, i.e. using a tree representation for nested pairs is bad, but that
should have been done _before_ execution and for _all_ occurrences of
that type fragment, not live at runtime by the accumulator
implementation.
</content>
</entry>
</feed>
