Chris Wellons

  1. tugz: a new deflate library with three applications

    I spent a week creating a new deflate implementation from scratch in C named tugz to provide an Info-ZIP-compatible zip program for w64devkit 2.10.1 (released today). I also replaced busybox-w32’s deflate-based unzip, gzip, gunzip, and zcat apps as well. My new deflate performs much better than zlib…

    Published

  2. A new, bespoke static site generator to replace Jekyll

    My blog began as a blosxom (Perl) site running on a VPS. In 2011 I moved to the new GitHub Pages, with the site generated statically by Jekyll (Ruby) on a GitHub server. It was a no-brainer: easier, faster, and cheaper, better in every way. After 15 years of Jekyll, and spurred by a post on m4, this…

    Published

  3. What's been going on in w64devkit the past year

    The past year has been exciting for w64devkit, which like any software distribution is never complete. Peter0x44 joined as co-maintainer, and has pushed the project in good, new directions, with ideas I would never have considered. Many of his improvements have gone back upstream, and so you may benefit…

    Published

  4. A custom virtual machine for the Stars! 4X game

    Stars! is a 1995 4X game (explore, expand, exploit, exterminate) for 16-bit Windows 3.1 that I first played ~28 years ago. While Windows is famously backwards compatible, it’s notoriously difficult to play Stars! today. Windows x64 cannot run 16-bit applications, and playing requires either retro hardware…

    Published

  5. Concurrent, atomic MSI hash tables

    Readers will be familiar with Mask-Step-Index (MSI) hash tables, a technique for building fast, open-addressed hash tables in a dozen lines of code. If multiple threads or processes access an MSI table with at least one still inserting elements, care must be taken to avoid data races. This article will…

    Published

  6. I have officially retired from Emacs

    This article was discussed on reddit and on Hacker News. This past Tuesday I typed C-x C-c in Emacs for the last time after 20 years of daily use. Though nearly half that time was gradually retiring it, switching to modal editing, then to Vim. Emacs is a platform, and I’d grown accustomed to its applications…

    Published

  7. My brave new code-signing world

    The new w64devkit release two weeks ago is the first to be code-signed with my identity, verified by Microsoft’s certificate chain. Currently only the release packaging is signed — the self-extracting archive and its payload — but I will soon code-sign individual EXEs and DLLs within the distribution…

    Published

  8. dcmake: a new CMake debugger UI

    CMake has a --debugger mode since 3.27 (July 2023), allowing software to manipulate it interactively through the Debugger Adaptor Protocol (DAP), an HTTP-like protocol passing JSON messages. Debugger front-ends can start, stop, step, breakpoint, query variables, etc. a live CMake. When I came across…

    Published