Improve error message on function with inexhaustive matches. First cut at placing floatbox.
Better footnote layout. Start on floating figure support. Improve errors in BoVeX (source positions).
Add heartbleed support
Same-column footnotes are pretty easy with the setup now.
Improve footnote layout (use body font) and fix a bug.
Rickety footnotes are finally in place. More to do.
New version finally renders the document, pretty much the same way
Continuing to chip away at new layout algorithm. Almost to something working, I think...
Fix long-standing annoyance with M-| in aaph/bovex modes
pack-boxes natively returning the vector of boxes is cleaner. use an output argument (ref), which I might like better than these obj backdoors
Rename these to be less confusing and explain why they exist
Chipping away at new layout algorithm
Refactor paragraph parser a bit to make it possible to collect floats
Also get a new certificate if the key changes. Disable SELF_CHECK by default
Add parsing of CRLs and extracting relevant stuff from certs
Some more citations
Some more splitting up of layout.bovex... still more to do
Add x.509 serial number utility, some paper writing
Don't make a temporary directory each day; we rarely need it
Sync before trip
PDF: Finally add the required font flags for embedded fonts.
Fix long-standing bug in font metrics, and clean up a bit.
Add TechReport and subtitles to cite.bovex. Write about some improvements
Better compliance with ISO 19005-1
Update some old documents to use floating point width/height for images
BoVeX: Change type of image width and height to be double, in order to support vector images. Make the wrapper internal.
Clean up and modernize of pdf library
Fix first xref entry to comply with PDF/A
Fix headers, which prevented compiling on linux
Fixed some strict PDF issues
Switch PDF interface to RGBA color format like I should have done a long time ago. After some small bugfixes, SVGs look correct (the supported features, at least)
Did some of the SVG->PDF transformation. It is kinda working, but I need to finish it, and the colors look wrong
Fix some bugs in SVG and improve group flattening. Just convert QuadBezier to Cubic to simplify matters.
Add more transforms to SVG interpreter
Add interface for SVG to pdf library, but it doesn't actually convert yet
OK, I think this will work
Added some support for clip-paths, but there's still a conceptual problem because <clipPath> isn't supposed to have <g> in it :(
Parse and convert rectangle, including roundrect
Add output for round-trip tests, which look good. Some tips on illustrator import/export
More path types, and add basic transform parsing (only matrices)
Some progress on parsing SVGs
Start on a simple SVG parser
Make font loading lazy; move to its own file
Modernization
Fix dumb bug where application data in the same TCP packet as the handshake end would be rejected
Session tickets are working
More cleanup and modernization. Don't need directories.* any more, since not compiling with old-ass MSVC
More cleanup and modernization in here
Clean up and modernize. A bunch of IWYU issues, indentation problems, warnings, etc.. More to do.
Got this compiling with clang64 on msys2, which is my preferred way to do it in 2026. Will retire the mingw build soon.
Split out state machine into individual functions
Chipping away at session tickets, but the state machine needs to be cleaned up for abbreviated handshakes
Add CRT version of decryption. For exotic 16-factor keys, it is 100x faster
IWYU
Don't do quadratic-time buffering
Push incoming data in a chunk
Make IV strategy configurable
Curious IV choice
Fix stupid bug in Write fast path. Add basic parsing/serialization of session ticket extension
Finish renew.exe for now; switch to multi-factor key
PacketParser with error state. Add ASN1 parsing utils. Add certificate expiration parsing.
Add utility to construct unix time_t
renew tool basically works, but could use some additional automation/robustness
Some cleanup
Add PKCS signing (SHA-256) to MultiRSA, and finish implementation of signed CSR.
First pass at CSR encoding, but it is untested
Fix bug in VectorRotate and add VectorConcat
Add basic ASN.1 test
Add some utilities to ASN.1 DER encoder
sync spacebar
Allow wildcards in config file. Start on renew app. A little bit of additional hardening.
Add NextField, like NextToken
Modernize some Util methods to take span/string_view
Add some missing Greek letters and some homoglyphs. A little bit of tweaking. Added light version of Katakana in FixederSysLight2x.
Finally just script fontforge. This was so easy...
Fix long-standing annoyance in font-image: Interpret the png file's path relative to the config file's directory.
QRCode should use 1-bit image
Postgame and video stuff
Add some more overloads for comparing against int
Handle client alerts, and more non-fatal errors from send syscall.
Harden PacketWriter against a self-aliasing append.
Fix a few picky problems in the SHA-1 implementation
Refactor packet size limits, and make configurable
Optimistically write to network buffer instead of always copying into queue
Reorganized Config parsing/representation so that it can be used to drive key renewal and other chores
Add QR check. Move the core encryption routines to the top for clarity and improve the docs a little.
Parse server random from config
Fix out-of-date comment
Oops, we also need the forward functions
Add C Unescape
Ah, this cannot load without derivative files; include those
Fixes for poor gcc
Modernize a bit. Isolate output of run-mnist
Get mnist model working again
Add Lightness calculation in image.h, and improve performance/clarity in similar code from color-util.
Add util tab; improve help text
Add despam. But I think it needs a better interface.
Migrate to new directory structure and UTF-8 database
Suppress some warnings in newish g++; integrate base/macros.h
Add help tab