| Cocoaphony Blog | https://robnapier.net |
| GitHub | https://github.com/rnapier |
| Twitter (defunct) | https://twitter.com/cocoaphony |
| Cocoaphony Blog | https://robnapier.net |
| GitHub | https://github.com/rnapier |
| Twitter (defunct) | https://twitter.com/cocoaphony |
I'm starting to wonder if it's related to number of modules? We have maybe 100 product dependencies over maybe 80-ish packages. If I remove some, it works. I thought it was some specific package, but it seems more related to the count (or maybe it's total package size?) When I add them back in, Previews can't access Foundation types during startup and crashes.
It's big, but it doesn't feel *that* big compared to other products. It happens for Previews in the top-level app.
With latest Swift from main, things go differently. We still bind the first IUO first:
let result = Int? + _ + _ + _ + _ + _
But before we select the next disjunction, we run the new disjunction pruning pass. Since + has no overloads where the first argument matches the type "Int?", we end up disabling all active choices in the first + disjunction.
Now, disjunction selection sees that one of the remaining disjunctions has zero active choices. This means the current partial solution cannot be extended to a full solution no matter what choices we make, so we backtrack.
We attempt the next choice in the first IUO:
let result = Int + _ + _ + _ + _ + _
This time, some choices from the first + disjunction are pruned, but nothing fails. We select the second IUO disjunction:
let result = Int + Int? + _ + _ + _ + _
With these choices so far, pruning is again able to detect that there are no suitable choices for the first + that take an "Int" and an "Int?", so we are left with zero active choices and we attempt the second choice in the second IUO:
let result = Int + Int + _ + _ + _ + _
This continues:
let result = Int + Int + Int? + _ + _ + _
let result = Int + Int + Int + _ + _ + _
let result = Int + Int + Int + Int? + _ + _
let result = Int + Int + Int + Int + _ + _
...
let result = Int + Int + Int + Int + Int + Int
At this stage, we've bound all the IUO disjunctions in linear time, and only the + disjunctions remain.
The optimizations that were already existing in Swift 6.3 take over. Disjunction selection favors the (Int, Int) -> Int overload choice in each +, these favored choices succeed, and the rest of the problem is solved without further backtracking.
I took a screenshot of this post last week which predicted layoffs at Atlassian including that it would be spun as AI driven layoffs.
Essentially a lot of software companies now have to pay the price for COVID overhiring and AI is a great justification. Amazon and Block led the way but they won’t be the last.
It looks like the ⍼ saga has finally ended!
The unicode character '⍼' was a mystery first noticed in 2022: https://ionathan.ch/2022/04/09/angzarr.html. It's in the Unicode standard as a mathematical symbol. But no one could find any examples of it having been used, and no one knew what it represented. It was like the only record of an extinct species, fossilized in the Unicode standard.
But now someone has found the document it originally came from! It represents the angle 'Azimuth', and the symbol probably comes from the path light takes through a sextant. https://ionathan.ch/2026/02/16/angzarr.html
(@johncarlosbaez might appreciate this symbol!)
I read the piece again and became even more disappointed.
2026: "Docter said Pixar found some parents didn’t want entertainment to force them to have a conversation they weren’t ready for with their children. “We’re making a movie, not hundreds of millions of dollars of therapy,” he said."
2009: