XOM 1.4.0 Released. Now With Special LLM Sauce
I’ve released version 1.4.0 of XOM, my open source library for processing XML with Java. It’s available from the usual places including Maven Central (xom:xom:1.4.0) and https://xom.nu/. This is the first release coded with LLM assistance.
Most importantly, this release fixes a bug in URI normalization that incorrectly resolved /.. paths when computing base URIs in canonical XML. This is an edge condition I first noted about 20 years ago and promptly forgot about. More recently with LLM assistance, I was able to triage a number of old issues like this one, and then resolve it. The LLM didn’t find the bug, but it did verify it, explain it, write tests for it, and code the fix.
I’m not sure exactly which model pulled off this feat. I used GitHub Copilot which switches between different models from different vendors for different tasks. I don’t know exactly how it decides which job to route to whom. But whichever one it selected did the job.
This release also made a number of changes in the build system and source repository to harden the build and release process against supply chain attacks. In particular, dependencies are now loaded from the Maven repository system with Apache Ivy, and several manual steps have been automated. Many of these are tasks I’ve been wanting to do for some time, but Copilot reduced the effort involved to the point where they were too cheap and easy not to do. It’s like having a team of junior developers at my beck and call. I assign issues to them, they do the work, and after a few rounds of code review, the PR is merged.
I haven’t found vibe coding or one shot development very useful for Java or Python (yet). Even when I give an LLM a simple undergraduate type assignment, the initial solution is still obviously lacking and needs some expert code review. However, for individual features and bug fixing LLMs are clearly ready for prime time, something I wouldn’t have said a year ago. This feels like the biggest improvement in software development since test driven development in the 90’s.