logo

drewdevault.com

[mirror] blog and personal website of Drew DeVault git clone https://hacktivis.me/git/mirror/drewdevault.com.git

Status-update-July-2021.md (2506B)


  1. ---
  2. title: Status update, July 2021
  3. date: 2021-07-15
  4. outputs: [html, gemtext]
  5. ---
  6. Hallo uit Nederland! I'm writing to you from a temporary workstation in
  7. Amsterdam, pending the installation of a better one that I'll put together after
  8. I visit a furniture store today. I've had to slow a few things down somewhat
  9. while I prepare for this move, and I'll continue to be slower for some time
  10. following it, but things are moving along regardless.
  11. One point of note is that the maintainer for [aerc][0], Reto Brunner, has
  12. stepped down from his role. I'm looking for someone new to fill his shoes;
  13. please [let me know][1] if you are interested.
  14. [0]: https://aerc-mail.org
  15. [1]: mailto:sir@cmpwn.com
  16. As far as the language project is concerned, there has been some significant
  17. progress. We've broken ground on the codegen rewrite, and it's looking much
  18. better than its predecessor. I expect progress on this front to be fairly quick.
  19. In the meanwhile, a new contributor has come onboard to help with floating-point
  20. math operations, and I merged their first patch this morning — adding
  21. math::abs, math::copysign, etc. Another contributor has been working in a
  22. similar space, and sent in an f32-to-string function last week. I implemented
  23. DNS resolution and a "dial" function as well, which you can read about in my
  24. [previous post about a finger client][2].
  25. [2]: /2021/06/24/finger-client.html
  26. I also started writing some POSIX utilities in the new language for fun:
  27. ```hare
  28. use fmt;
  29. use fs;
  30. use getopt;
  31. use io;
  32. use main;
  33. use os;
  34. export fn utilmain() (io::error | fs::error | void) = {
  35. const cmd = getopt::parse(os::args);
  36. defer getopt::finish(&cmd);
  37. if (len(cmd.args) == 0) {
  38. io::copy(os::stdout, os::stdin)?;
  39. return;
  40. };
  41. for (let i = 0z; i < len(cmd.args); i += 1z) {
  42. const file = match (os::open(cmd.args[i])) {
  43. err: fs::error => fmt::fatal("Error opening '{}': {}",
  44. cmd.args[i], fs::strerror(err)),
  45. file: *io::stream => file,
  46. };
  47. defer io::close(file);
  48. io::copy(os::stdout, file)?;
  49. };
  50. };
  51. ```
  52. We're still looking for someone to contribute in cryptography, and in date/time
  53. support &mdash; please [let me know][1] if you want to help.
  54. In SourceHut news, I have mostly been focused on writing the GraphQL API for
  55. lists.sr.ht. I have made substantial progress, and I had hoped to ship the first
  56. version before publishing today's status updates, but I was delayed due to
  57. concerns with the move abroad. I hope to also have sr.ht available for Alpine
  58. 3.14 in the near future.