Rob Napier

@cocoaphony
2.5K Followers
537 Following
4.3K Posts
Swift and Go. Love 'em both. They make me mad in completely different ways. Infosec as required. robnapier.net
Cocoaphony Bloghttps://robnapier.net
GitHubhttps://github.com/rnapier
Twitter (defunct)https://twitter.com/cocoaphony

NINETY DAYS

NINETY INCIDENTS

NINETY PERCENT

YOU PAID FOR ALL FIVE NINES BUT YOU’LL ONLY NEED THE EDGE

#github

If only this WWDC wasn‘t happening in the USA… land of the ICE 🤷‍♂️ #wwdc26

RE: https://mastodon.social/@lapcatsoftware/116278367466232058

For me, the StM feature that’s worth the whole price. Everything else is just bonus. I hate autoplay videos so much.

Got some spare time this weekend? Why not visit https://saytheprime.com and make a short video of yourself saying some digits of the currently largest known prime number, to help contribute to our collaborative prime-saying project?
Say the Prime

We're attempting to get a collection of humans to say every digit of the newly-discovered (and currently largest-known prime number) Mersenne prime M136279841, and hope to achieve this before another larger prime is discovered.

Do I trust this computer?, my iPhone asks me for what has to be the thousandth time using the same computer logged into the same Apple ID. Enter your passcode, it demands once again, reflecting the hardware, software, and services working together in a way only Apple can deliver.
One day I'll watch a "Why did famous company/brand X die" video and the answer will be something other than private equity. That day is not today.

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.