commit: 8ab53347d049909d5563f88192ab317cc3c4c7dd
parent a5763a5715dce67c8cf185fc493eab5ecd911815
Author: Drew DeVault <sir@cmpwn.com>
Date: Thu, 15 Jul 2021 09:32:24 +0200
Status update
Diffstat:
2 files changed, 112 insertions(+), 0 deletions(-)
diff --git a/content/blog/Status-update-July-2021.gmi b/content/blog/Status-update-July-2021.gmi
@@ -0,0 +1,42 @@
+Hallo uit Nederland! I’m writing to you from a temporary workstation in Amsterdam, pending the installation of a better one that I’ll put together after I visit a furniture store today. I’ve had to slow a few things down somewhat while I prepare for this move, and I’ll continue to be slower for some time following it, but things are moving along regardless.
+
+One point of note is that the maintainer for aerc, Reto Brunner, has stepped down from his role. I’m looking for someone new to fill his shoes; please let me know if you are interested.
+
+As far as the language project is concerned, there has been some significant progress. We’ve broken ground on the codegen rewrite, and it’s looking much better than its predecessor. I expect progress on this front to be fairly quick. In the meanwhile, a new contributor has come onboard to help with floating-point math operations, and I merged their first patch this morning — adding math::abs, math::copysign, etc. Another contributor has been working in a similar space, and sent in an f32-to-string function last week. I implemented DNS resolution and a “dial” function as well, which you can read about in my previous post about a finger client.
+
+=> gemini://drewdevault.com/2021/06/24/finger-client.gmi Previously: A finger client
+
+I also started writing some POSIX utilities in the new language for fun:
+
+```
+use fmt;
+use fs;
+use getopt;
+use io;
+use main;
+use os;
+
+export fn utilmain() (io::error | fs::error | void) = {
+ const cmd = getopt::parse(os::args);
+ defer getopt::finish(&cmd);
+
+ if (len(cmd.args) == 0) {
+ io::copy(os::stdout, os::stdin)?;
+ return;
+ };
+
+ for (let i = 0z; i < len(cmd.args); i += 1z) {
+ const file = match (os::open(cmd.args[i])) {
+ err: fs::error => fmt::fatal("Error opening '{}': {}",
+ cmd.args[i], fs::strerror(err)),
+ file: *io::stream => file,
+ };
+ defer io::close(file);
+ io::copy(os::stdout, file)?;
+ };
+};
+```
+
+We’re still looking for someone to contribute in cryptography, and in date/time support — please let me know if you want to help.
+
+In SourceHut news, I have mostly been focused on writing the GraphQL API for lists.sr.ht. I have made substantial progress, and I had hoped to ship the first version before publishing today’s status updates, but I was delayed due to concerns with the move abroad. I hope to also have sr.ht available for Alpine 3.14 in the near future.
diff --git a/content/blog/Status-update-July-2021.md b/content/blog/Status-update-July-2021.md
@@ -0,0 +1,70 @@
+---
+title: Status update, July 2021
+date: 2021-07-15
+outputs: [html, gemtext]
+---
+
+Hallo uit Nederland! I'm writing to you from a temporary workstation in
+Amsterdam, pending the installation of a better one that I'll put together after
+I visit a furniture store today. I've had to slow a few things down somewhat
+while I prepare for this move, and I'll continue to be slower for some time
+following it, but things are moving along regardless.
+
+One point of note is that the maintainer for [aerc][0], Reto Brunner, has
+stepped down from his role. I'm looking for someone new to fill his shoes;
+please [let me know][1] if you are interested.
+
+[0]: https://aerc-mail.org
+[1]: mailto:sir@cmpwn.com
+
+As far as the language project is concerned, there has been some significant
+progress. We've broken ground on the codegen rewrite, and it's looking much
+better than its predecessor. I expect progress on this front to be fairly quick.
+In the meanwhile, a new contributor has come onboard to help with floating-point
+math operations, and I merged their first patch this morning — adding
+math::abs, math::copysign, etc. Another contributor has been working in a
+similar space, and sent in an f32-to-string function last week. I implemented
+DNS resolution and a "dial" function as well, which you can read about in my
+[previous post about a finger client][2].
+
+[2]: /2021/06/24/finger-client.html
+
+I also started writing some POSIX utilities in the new language for fun:
+
+```hare
+use fmt;
+use fs;
+use getopt;
+use io;
+use main;
+use os;
+
+export fn utilmain() (io::error | fs::error | void) = {
+ const cmd = getopt::parse(os::args);
+ defer getopt::finish(&cmd);
+
+ if (len(cmd.args) == 0) {
+ io::copy(os::stdout, os::stdin)?;
+ return;
+ };
+
+ for (let i = 0z; i < len(cmd.args); i += 1z) {
+ const file = match (os::open(cmd.args[i])) {
+ err: fs::error => fmt::fatal("Error opening '{}': {}",
+ cmd.args[i], fs::strerror(err)),
+ file: *io::stream => file,
+ };
+ defer io::close(file);
+ io::copy(os::stdout, file)?;
+ };
+};
+```
+
+We're still looking for someone to contribute in cryptography, and in date/time
+support — please [let me know][1] if you want to help.
+
+In SourceHut news, I have mostly been focused on writing the GraphQL API for
+lists.sr.ht. I have made substantial progress, and I had hoped to ship the first
+version before publishing today's status updates, but I was delayed due to
+concerns with the move abroad. I hope to also have sr.ht available for Alpine
+3.14 in the near future.