<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ccl, branch v0.2.0</title>
<subtitle>A configuration language inspired by textproto</subtitle>
<id>https://code.roseh.moe/ccl/atom/?h=v0.2.0</id>
<link rel='self' href='https://code.roseh.moe/ccl/atom/?h=v0.2.0'/>
<link rel='alternate' type='text/html' href='https://code.roseh.moe/ccl/'/>
<updated>2025-11-25T01:43:59Z</updated>
<entry>
<title>Improve documentation</title>
<updated>2025-11-25T01:43:59Z</updated>
<author>
<name>Rose Hogenson</name>
<email>rosehogenson@posteo.net</email>
</author>
<published>2025-11-25T01:43:59Z</published>
<link rel='alternate' type='text/html' href='https://code.roseh.moe/ccl/commit/?id=571334f15fb7d5602784bcddd11a843a03af2f30'/>
<id>urn:sha1:571334f15fb7d5602784bcddd11a843a03af2f30</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Disallow control characters in strings</title>
<updated>2025-11-25T01:43:44Z</updated>
<author>
<name>Rose Hogenson</name>
<email>rosehogenson@posteo.net</email>
</author>
<published>2025-11-25T01:43:44Z</published>
<link rel='alternate' type='text/html' href='https://code.roseh.moe/ccl/commit/?id=456b784f4ff742bf604340e62c11da47b46b2950'/>
<id>urn:sha1:456b784f4ff742bf604340e62c11da47b46b2950</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Only allow "true" and "false" for bool</title>
<updated>2025-11-25T00:18:03Z</updated>
<author>
<name>Rose Hogenson</name>
<email>rosehogenson@posteo.net</email>
</author>
<published>2025-11-25T00:12:09Z</published>
<link rel='alternate' type='text/html' href='https://code.roseh.moe/ccl/commit/?id=36acb0052bde87b82fb6c08d3a57680f8bea4e5f'/>
<id>urn:sha1:36acb0052bde87b82fb6c08d3a57680f8bea4e5f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Don't allow decoding bool as int</title>
<updated>2025-11-25T00:16:33Z</updated>
<author>
<name>Rose Hogenson</name>
<email>rosehogenson@posteo.net</email>
</author>
<published>2025-11-25T00:06:33Z</published>
<link rel='alternate' type='text/html' href='https://code.roseh.moe/ccl/commit/?id=c61422f65bf1859da9336d764bb328b1882ec287'/>
<id>urn:sha1:c61422f65bf1859da9336d764bb328b1882ec287</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Improve error handling</title>
<updated>2025-11-22T16:26:09Z</updated>
<author>
<name>Rose Hogenson</name>
<email>rosehogenson@posteo.net</email>
</author>
<published>2025-11-22T16:26:09Z</published>
<link rel='alternate' type='text/html' href='https://code.roseh.moe/ccl/commit/?id=da798b651e8efc766cf66a39ccef906681f0b17a'/>
<id>urn:sha1:da798b651e8efc766cf66a39ccef906681f0b17a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Holy shit fuzzing is so cool</title>
<updated>2025-11-19T03:20:29Z</updated>
<author>
<name>Rose Hogenson</name>
<email>rosehogenson@posteo.net</email>
</author>
<published>2025-11-19T03:20:29Z</published>
<link rel='alternate' type='text/html' href='https://code.roseh.moe/ccl/commit/?id=933c9c9721bf20bc00dab85a75546a7573c31747'/>
<id>urn:sha1:933c9c9721bf20bc00dab85a75546a7573c31747</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add a helper function for readability</title>
<updated>2025-10-31T02:45:39Z</updated>
<author>
<name>Rose Hogenson</name>
<email>rosehogenson@posteo.net</email>
</author>
<published>2025-10-31T02:45:39Z</published>
<link rel='alternate' type='text/html' href='https://code.roseh.moe/ccl/commit/?id=b25fc1dbacf79d795f80ae07a5785877c2b0fdb0'/>
<id>urn:sha1:b25fc1dbacf79d795f80ae07a5785877c2b0fdb0</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Small cleanup</title>
<updated>2025-10-31T02:18:15Z</updated>
<author>
<name>Rose Hogenson</name>
<email>rosehogenson@posteo.net</email>
</author>
<published>2025-10-31T02:18:15Z</published>
<link rel='alternate' type='text/html' href='https://code.roseh.moe/ccl/commit/?id=4ff064043759c3b25cca2555cc50efa48c855f8a'/>
<id>urn:sha1:4ff064043759c3b25cca2555cc50efa48c855f8a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Set the lexer as a field on parser</title>
<updated>2025-10-31T02:09:35Z</updated>
<author>
<name>Rose Hogenson</name>
<email>rosehogenson@posteo.net</email>
</author>
<published>2025-10-31T02:04:42Z</published>
<link rel='alternate' type='text/html' href='https://code.roseh.moe/ccl/commit/?id=e4f0185460ab348d596877606b2d4a99b4c27ffb'/>
<id>urn:sha1:e4f0185460ab348d596877606b2d4a99b4c27ffb</id>
<content type='text'>
goos: linux
goarch: amd64
pkg: roseh.moe/pkg/ccl
cpu: AMD Ryzen 9 5900X 12-Core Processor
         │ baseline.txt │              new.txt               │
         │    sec/op    │   sec/op     vs base               │
Parse-24    4.808µ ± 0%   4.739µ ± 0%  -1.44% (p=0.000 n=20)
</content>
</entry>
<entry>
<title>Use a classic struct iterator instead of iter.Pull</title>
<updated>2025-10-31T01:50:19Z</updated>
<author>
<name>Rose Hogenson</name>
<email>rosehogenson@posteo.net</email>
</author>
<published>2025-10-31T01:45:11Z</published>
<link rel='alternate' type='text/html' href='https://code.roseh.moe/ccl/commit/?id=aa8a935f620a053cc9c3c65587b433f3e8d3a6e9'/>
<id>urn:sha1:aa8a935f620a053cc9c3c65587b433f3e8d3a6e9</id>
<content type='text'>
iter.Pull doesn't provide much value here. Actually the lexer is
probably simpler this way, and iter.Pull also destroys stack traces for
panics in the lexer.

Ouch

goos: linux
goarch: amd64
pkg: roseh.moe/pkg/ccl
cpu: AMD Ryzen 9 5900X 12-Core Processor
         │ baseline.txt │             itern't.txt             │
         │    sec/op    │   sec/op     vs base                │
Lex-24      1.436µ ± 0%   1.320µ ± 0%   -8.05% (p=0.000 n=20)
Parse-24    7.846µ ± 0%   4.801µ ± 0%  -38.82% (p=0.000 n=20)
geomean     3.356µ        2.517µ       -24.99%
</content>
</entry>
</feed>
