<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ccl/lexer.go, branch main</title>
<subtitle>A configuration language inspired by textproto</subtitle>
<id>https://code.roseh.moe/ccl/atom/lexer.go?h=main</id>
<link rel='self' href='https://code.roseh.moe/ccl/atom/lexer.go?h=main'/>
<link rel='alternate' type='text/html' href='https://code.roseh.moe/ccl/'/>
<updated>2025-12-01T18:58:57Z</updated>
<entry>
<title>Get rid of struct token</title>
<updated>2025-12-01T18:58:57Z</updated>
<author>
<name>Rose Hogenson</name>
<email>rosehogenson@posteo.net</email>
</author>
<published>2025-12-01T18:58:57Z</published>
<link rel='alternate' type='text/html' href='https://code.roseh.moe/ccl/commit/?id=55b358e280b16d1d3335b85e5fe12702a264cc1d'/>
<id>urn:sha1:55b358e280b16d1d3335b85e5fe12702a264cc1d</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>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>
<entry>
<title>Remove the regexes</title>
<updated>2025-10-30T18:35:15Z</updated>
<author>
<name>Rose Hogenson</name>
<email>rosehogenson@posteo.net</email>
</author>
<published>2025-10-30T18:04:23Z</published>
<link rel='alternate' type='text/html' href='https://code.roseh.moe/ccl/commit/?id=b1e37119da439b52a2c1f1aca4df2fdc80462f97'/>
<id>urn:sha1:b1e37119da439b52a2c1f1aca4df2fdc80462f97</id>
<content type='text'>
Wow it doesn't look good for regex

goos: linux
goarch: amd64
pkg: roseh.moe/pkg/ccl
cpu: AMD Ryzen 9 5900X 12-Core Processor
         │ baseline.txt │            regexn't.txt             │
         │    sec/op    │   sec/op     vs base                │
Lex-24      8.625µ ± 1%   1.429µ ± 0%  -83.43% (p=0.000 n=20)
Parse-24   18.305µ ± 0%   8.856µ ± 0%  -51.62% (p=0.000 n=20)
geomean     12.57µ        3.557µ       -71.69%
</content>
</entry>
<entry>
<title>Rename to ccl</title>
<updated>2025-10-29T03:34:39Z</updated>
<author>
<name>Rose Hogenson</name>
<email>rosehogenson@posteo.net</email>
</author>
<published>2025-10-29T03:34:39Z</published>
<link rel='alternate' type='text/html' href='https://code.roseh.moe/ccl/commit/?id=2ffdc8b3ded7173a01a91359b730064f3b4ab17c'/>
<id>urn:sha1:2ffdc8b3ded7173a01a91359b730064f3b4ab17c</id>
<content type='text'>
It stands for "cute configuration language," but idk if that's
really important
</content>
</entry>
<entry>
<title>Fix typo</title>
<updated>2025-10-27T01:51:00Z</updated>
<author>
<name>Rose Hogenson</name>
<email>rosehogenson@posteo.net</email>
</author>
<published>2025-10-27T01:51:00Z</published>
<link rel='alternate' type='text/html' href='https://code.roseh.moe/ccl/commit/?id=49ff523aad4d0373e9203698edc79f6fe0130935'/>
<id>urn:sha1:49ff523aad4d0373e9203698edc79f6fe0130935</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Separate the lexer</title>
<updated>2025-10-27T01:36:01Z</updated>
<author>
<name>Rose Hogenson</name>
<email>rosehogenson@posteo.net</email>
</author>
<published>2025-10-27T01:36:01Z</published>
<link rel='alternate' type='text/html' href='https://code.roseh.moe/ccl/commit/?id=5ecab26da844e843ad30776d97d8da3fe28098a6'/>
<id>urn:sha1:5ecab26da844e843ad30776d97d8da3fe28098a6</id>
<content type='text'>
</content>
</entry>
</feed>
