This just in - a fresh hackathon report, this time from Jasper Lievisse Adriaanse (jasper@). Jasper writes,

The next major version of Facter dropped Ruby and has been completely rewritten using C++11 and Boost. While this does make Facter run-time faster, it makes adding new facts almost prohibitively complicated. Previously one would add a new Ruby method which at most would be a dozen lines long if it was a complicated fact to resolve. Now one needs to walk the twisty path of C++ inheritance, wait many moons for builds to compile. Before I could even start to work on Facter I had to update Boost which was committed shortly before the hackathon. After figuring out the right structure to add new OpenBSD "resolvers" I ended up writing the memory, processor, file-system, virtualization, DMI and networking resolvers. Some of these have since been merged upstream.

While I also started to merge our Puppet patches into a new Puppet 4 port, it's far from working right now and needs a lot more work (including PuppetDB and PuppetServer).

Aside from playing with Puppet, I added the "in-place editing" option (-i) to our sed(1). While not a standards-dictated flag it is assumed to be present by many, many scripts in the ports tree. After merging FreeBSD's implementation into ours I started cleaning up the workarounds we have ports for our lack of this option. Also, the 'perl -pi -e' calls are slowly being converted to 'sed -i'. While the speed difference is not noticeable on a fast machine, it does save us from loading libperl and a bunch of others just to do a simple in-place edit. So slower architectures/machines may actually notice a small improvement here.

I also spend some time tame(2)-ing several userland applications, and reworking the octeon/iobus(4) autoconfiguration.

Thanks to nayden@ and the Foundation for this great hackathon at SAIT!