Status update, July 2020 July 15, 2020 on Drew DeVault's blog

Hello again! Another month of FOSS development behind us, and we’re back again to share the results. I took a week off at the end of June, so my progress this month is somewhat less than usual. Regardless, I have some updates for you, mainly in the domain of SourceHut work.

But before we get to that, let’s go over this month’s small victories. One was the invention of the BARE message format, which I wrote a blog post about if you want to learn more. Since that article, five new implementations have appeared from various authors: Rust, Python, JavaScript, D, and Zig.

I also wrote a couple of not-blogposts for this site (drewdevault.com), including a page dispelling misconceptions about static linking, and a page (that I hope you’ll contribute to!) with videos of people editing text. Just dropping a link here in case you missed them; they didn’t appear in RSS and aren’t blog posts. To help find random stuff like that on this site, I’ve also established a misc page.

Okay, on to SourceHut. Perhaps the most exciting development is the addition of continuous integration to the mailing lists. I’ve been working towards this for some time now, and it’s the first of many features which are now possible thanks to the addition of the project hub. I intend to complete some follow-up work improving the CI feature further still in the coming weeks. I’m also planning an upgrade for the hardware that runs hg.sr.ht during the same timeframe.

That’s all the news I have for now, somewhat less than usual. Some time off was much-needed, though. Thanks for your continued support, and I hope you continue to enjoy using my software!

...
$ cat main.$ext
use io;
use strings;
use sys;

export fn main void = { for (let i = 0; sys::envp[i] != null; i += 1) { let s = strings::from_c(sys::envp[i]); io::println(s); }; }; $ $redacted run main.$ext error: main.$ext:8:41: incorrect type (&char) for parameter 1 (&char) let s = strings::from_c(sys::envp[i]); ^— here $ vim main.$ext $ cat main.$ext use io; use strings; use sys;

export fn main void = { for (let i = 0; sys::envp[i] != null; i += 1) { let s = strings::from_c(sys::envp[i]); io::println(s); free(s); }; }; $ $redacted run main.$ext DISPLAY=:0 EDITOR=vim

Articles from blogs I read Generated by openring

Colorado SB26-051 Age Attestation

Colorado is presently considering a bill, SB26-051, patterned off of California’s AB1043, which establishes civil penalties for software developers who do not request age information for their users. The bills use a broad sense of “Application Store” whic…

via Aphyr: Posts March 6, 2026

npmx: A Lesson in Open Source's Collaboration Feedback Loops

npmx launched today, and witnessing its incredible development journey has taught me a lot about what I’m calling the collaboration feedback loops of successful Open Source projects — patterns where every contribution to a project makes future contributions…

via Vlad's Website March 3, 2026

Status update February 2026

Hey there! 4 months since last time? But I wrote in between! Let’s start. hare-lex, hare-template # I ended the last year with something I’m really proud of. hare-lex and hare-template provides really good tools for Hare users. hare-lex is based on good graph…

via Willow's feed February 26, 2026