Hello, future readers! I am writing to you from one day in the past. I finished my plans for today early and thought I’d get a head start on writing the status updates for tomorrow, or rather, for today. From your reference frame, that is.
Let’s start with Wayland. First, as you might have heard, The Wayland Protocol is now free for anyone to read, and has been relicensed as CC-BY-SA. Enjoy! It’s still not quite done, but most of it’s there. In development news, wlroots continues to enjoy incremental improvements, and is being refined further and further towards a perfect citizen of the ecosystem in which it resides. Sway as well has seen many small bugfixes and improvements. Both have been been stable for a while now: the only meaningful changes will be, for the most part, a steady stream of bug fixes and performance improvements.
Moving on from Wayland, then, there are some interesting developments in the
world of email as well. aerc has seen some minor changes to how it handles
templates and custom email headers, and a series of other small features and
improvements: drafts, a :choose
meta-command, and fixes for OpenBSD and Go
1.15. Additionally, I’ve joined Simon Ser to work on
Alps together, to put the finishing touches on
our lightweight & customizable webmail client before
Migadu puts it into production.
On the SourceHut front, lots of cool stuff came out this month. You might have seen the announcement this week that we’ve added Plan 9 support to the CI — a world first :D I also just published the first bits of the new, experimental GraphQL API for git.sr.ht, which you can play with here. And, of course, the long-awaited project hub was released this month! Check it out here to get your projects listed. I’ll post about all of this in more detail on the sr.ht-announce mailing list later today.
That’s all for today! I’ll see you next month. Thank you once more for your wonderful support.
...
/* sys::write */ fn write(fd: int, buf: *void, count: size) size;fn puts(s: str) size = { let n = write(1, s: *char, len(s)); n += write(1, “\n”: *char, 1); n; };
export fn main int = { puts(“Hello world!”); 0; };
$ ./[redacted] < example.[redacted] | qbe > example.S $ as -o example.o example.S $ ld -o example lib/sys/[redacted]s.o example.o lib/sys/lib[redacted]rt.a $ wc -c example 9640 $ ./example Hello world!