Status update, April 2021 April 15, 2021 on Drew DeVault's blog

Another month goes by! I’m afraid that I have very little to share this month. You can check out the sourcehut “what’s cooking” post for sourcehut news, but outside of that I have focused almost entirely on the programming language project this month, for which the details are kept private.

The post calling for contributors led to a lot of answers and we’ve brought several new people on board — thanks for answering the call! I’d like to narrow the range of problems we still need help with. If you’re interested in (and experienced in) the following problems, we need your help:

Shoot me an email if you want to help. We don’t have the bandwidth to mentor inexperienced programmers right now, so please only reach out if you have an established background in systems programming.

Here’s a teaser of one of the stdlib APIs written by our new contributors, unix::passwd:

// A Unix-like group file entry.
export type grent = struct {
	// Name of the group
	name: str,
	// Optional encrypted password
	password: str,
	// Numerical group ID
	gid: uint,
	// List of usernames that are members of this group, comma separated
	userlist: str,
};

// Reads a Unix-like group entry from a stream. The caller must free the result
// using [grent_finish].
export fn nextgr(stream: *io::stream) (grent | io::EOF | io::error | invalid);

// Frees resources associated with [grent].
export fn grent_finish(ent: grent) void;

// Looks up a group by name in a Unix-like group file. It expects a such file at
// /etc/group. Aborts if that file doesn't exist or is not properly formatted.
//
// See [nextgr] for low-level parsing API.
export fn getgroup(name: str) (grent | void);

That’s all for now. These updates might be light on details for a while as we work on this project. See you next time!

⇒ This article is also available on gemini.

Have a comment on one of my posts? Start a discussion in my public inbox by sending an email to ~sircmpwn/public-inbox@lists.sr.ht [mailing list etiquette]

Articles from blogs I read Generated by openring

Loopr: A Loop/Reduction Macro for Clojure

I write a lot of reductions: loops that combine every element from a collection in some way. For example, summing a vector of integers: (reduce (fn [sum x] (+ sum x)) 0 [1 2 3]) ; => 6 If you’re not familiar with Clojure’s reduce, it takes a reducing func…

via Aphyr: Posts June 23, 2022

What's cooking on SourceHut? June 2022

Hello everyone! Let’s get straight into the news today. Our user count today is 29,612 users, of which 576 have joined since the last update. Remember to be patient with these new users as they learn the ropes. Welcome! GraphQL Adnan continues to ship GraphQL…

via Blogs on Sourcehut June 15, 2022

Status update, June 2022

Hi! Yesterday I’ve finally finished up and merged push notification support for the soju IRC bouncer and the goguma Android client! Highlights & PM notifications should now be delivered much more quickly, and power consumption should go down. Additionally…

via emersion June 15, 2022