tl;dr Please vote on the best dates for CALL-BY-NA...
# development
h
tl;dr Please vote on the best dates for CALL-BY-NAME WEEK! See thread for details.
Hi folks! As some of you know, we are in the middle of a transition of rule code from call-by-signature to call-by-name. Once we move all rule invocations to call-by-name we can deprecate call-by-signature, and once we remove it we can greatly simplify the rule graph solver, and make it much faster, which will lead to faster pantsd startup times, especially when you have a lot of plugins and therefore a lot of rules.
However there are still many, many invocations in the code that need to be transitioned to call-by-name.
So we’d like to declare a fixit week for this, AKA “call-by-name week”
Or if anyone wants to come up with a name pun based on 2017's “Call Me By Your Name” starring a young Timothée Chalamet you are welcome to try.
We’re asking folks to volunteer as much time as they can spare that week to doing this migration. There are tools to help automate it (with manual oversight), and in many cases it can also be done manually quite easily.
But step one is picking a week.
So I will shortly put a poll here, please vote for all weeks that you can help out in, and we will pick the one with the most uptake.
w
In case anyone needs examples of what’s involved with a call-by-name migration for a backend, it’s pretty mechanical: https://github.com/pantsbuild/pants/pulls?q=is%3Apr+%E2%80%9Ccall-by-name%E2%80%9D+author%3Asureshjoshi+is%3Aclosed And here is the tracking ticket (a bit stale, as there are new backends): https://github.com/pantsbuild/pants/issues/21065
For anyone interested in helping, but concerned they’d be in over their head - I can give guidance on how the migration works, as I’ve said elsewhere:
A "seamless" plugin migration takes about 2 minutes to finish, and most of that is actually just waiting on the pants scheduler, checking, and testing. A typical one takes about 5-7 minutes to handle the cases that the migration script doesn't handle. A "bad" one usually uncovers some sort of error, like a cyclic dependency.
Any backends/plugins/migrations help would be VERY much appreciated - as there are still about 3000 locations in the codebase that need to be updated, and it’s been a lonely road.
c
Or if anyone wants to come up with a name pun based on 2017's “Call Me By Your Name” starring a young Timothée Chalamet you are welcome to try.
I believe that "Call Me Maybe" by Carly Rae Jepsen is also a rich source of inspiration. I am unfortunately in the middle of of a giant migration with a deadline at $DAYJOB. I hope to find a way to participate on the margin because call by name looks awesome for all the reasons listed, but don't' schedule around me.
h
“Call Me Maybe” inspired the Jepsen distributed system safety research project
Specifically the fact that many so-called databases do not guarantee durability
So RPCs to replicas are called… maybe