Last Week in Pony May 7, 2023
For reasons of migraine and work, there was no Pony Development Sync meeting this week nor did we hold the Office Hours meeting. But, we did discuss compile-time expressions a bit and probably will a lot more in the future.
Items of Note
Ubuntu 18.04 is no longer supported
Ubuntu 18.04 reached it’s end of life in April. In keeping with our support policy, we have stopped using doing
ponyc CI against it and no longer do nightly or release builds for Ubuntu 18.04 and distributions built off of it.
ponylang/release shared docker image is deprecated
Ages ago, we had a shared docker image called
ponylang/release. We stopped using in the ponylang organization quite some time ago. This week we remove the Dockerfile and associated source for creating the image. No new updates will be provided. The last existing image will continue to exist in the ponylang DockerHub.
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 we are going to look at one of our Frequently Asked Question with regard to a bit of syntactic sugar: What does
Foo() do if my
Foo class has both
apply() methods? Does it call both?
Since Pony classes have syntactic sugar for both
apply() it can be confusing as to what a single
Foo() will do. It will call both so is equivalent to
Foo.create().apply(). However, it does not work exactly as one might expect.
Foo() is broken into
Foo which calls
() which calls
.apply() on the newly created
Foo. Note that both of these method have zero arguments in the example. If either has arguments then there will be an error for
not enough arguments pointing to the relevant stage.
Major changes in Pony go through a community driven process where members of the community can write up “requests for change” that detail what they think should be changed and why. RFCs can range from simple to complex. We welcome your participation.
Most of the conversation related to the “Static arrays of numbers” RFC is about Matthias wanting to add a
Vector type to Pony which is related to “static arrays of numbers” as any “static array” is actually a
Vector. This in turn lead to some conversation about
ponyta which features amongst other things, a vector type and compile time expressions.
To learn more about
ponyta, check out Luke Cheeseman’s presentation on it at the Pony VUG from many years ago.
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!