Skip to content

Last Week in Pony - January 21, 2024

Update your HTTP library related dependencies.

Items of Note

That week we discovered a bug related to OpenSSL 3.2.

This week, we released new versions of ponylang/net_ssl, ponylang/http, and ponylang/http_server to fix the issue on the Pony side of things.

If you use any of those libraries, we advise updating as soon as possible.

Pony Development Sync

Audio from the January 16th, 2023 sync is available.

Today’s sync featured a couple of interesting topics. We had a discussion about improvements that could be made to the ponylang/http library.

We also discussed whether a small “library” that Sean is working on should go through the RFC process to become part of the standard library or should be done as a library under the ponylang organization. It was eventually decided to open an RFC for inclusion in the standard library and for discussion of nuances of adding a “validation error” type. The audio mentions code that demonstrates the key principles of the validation library. You can find a gist of the code here.

Office Hours

We have an open Zoom meeting every week for the community to get together and well, do whatever they want. In theory, Sean T. Allen “owns” the meeting and will often set an agenda. Anyone is welcome to show up and participate. Got a Pony related problem you need help solving and prefer to do it synchronously? Give Office Hours a try. The meeting is open to anyone. Stay up-to-date with the schedule by subscribing to the Office Hours calender. Hopefully, we’ll see you at an Office Hours soon.

There was no Office Hours this week. Sean was spending the holiday afternoon candlepin bowling and forgot it was a Monday aka Office Hours day.

Releases

Community Resource Highlight

We like to take a moment in each Last Week in Pony to highlight a community resource. There are many community resources that can go unappreciated until just the right time when someone hops into the Ponylang Zulip asking a question or facing a problem we have all had at one time or another. Well here in Last Week in Pony, we make it just the right time to highlight one of our excellent community resources.

This week let us look at a pattern in Pony code concerning the Supply Chain of dependencies. Due to Pony’s asynchronous, actor model design we can find ourselves in situations where we might naively want to “communicate back” failure. This is not the best approach due to the way Pony error handling works and the requirement that constructors be total functions. Taken together, these two intentional design elements require rethinking how we handle creating objects that can fail creation. The short answer to this problematic situation is to fully initialize our dependencies – allow us to handle their error scenarios separately – then supply these fully initialized dependencies to the constructor. This pattern is called dependency injection.


Last Week In Pony is a weekly blog post to catch you up on the latest news for the Pony programming language. To learn more about Pony, check out our website, our Twitter account @ponylang, or our Zulip community.

Got something you think should be featured? There’s a GitHub issue for that! Add a comment to the open “Last Week in Pony” issue.

Interested in making a change, or keeping up with changes to Pony? Check out the RFC repo. Contributors welcome!