Archive for January 22, 2025

Wednesday, January 22, 2025

Swift Proposal: Opt-in Strict Memory Safety Checking

SE-0458:

For example, Swift solves null references with optional types. Statically, Swift prevents you from using an optional reference without checking it first. If you’re sure it’s non-null, you can use the ! operator, which is safe because Swift will dynamically check for nil. If you really can’t afford that dynamic check, you can use unsafelyUnwrapped. This can still be correct if you can prove that the reference is definitely non-null for some reason that Swift doesn’t know. But it is an unsafe feature because it admits violations if you’re wrong.

[…]

A compiler flag -strict-memory-safety that enables warnings for all uses of unsafe constructs within a given module. All warnings will be in the diagnostic group Unsafe, enabling precise control over memory-safety-related warnings per SE-0443. When strict memory safety is enabled, the StrictMemorySafety feature will be set: #if hasFeature(StrictMemorySafety) can be used to detect when Swift code is being compiled in this mode.

[…]

Because UnsafeBufferPointer and UnsafePointer are @unsafe types, this code will get a warning regardless of whether the declarations were marked @unsafe, because having unsafe types in the signature of a declaration implies that they are @unsafe. This helps us identify more unsafe code even when the libraries we depend on haven’t enabled strict safety checking themselves.

To suppress these warnings, the expressions involving unsafe code must be marked with unsafe in the same manner as one would mark a throwing expression with try or an asynchronous expression with async.

Previously:

Opting Out of Visual Look Up and iCloud Photos

Bogdan:

This is much worse [than Photos.app’s Enhanced Visual Search]: open an image containing a “landmark” in the Preview app, then open the Inspector. An icon will appear which, when clicked, will popup information about the landmark. Verified with a JPEG with no GPS metadata. Take a screenshot of the opened image, the same works in the screenshot. This is system level and turning it off in the Photos app has no effect.

I found that Preview will identify landmarks—i.e. it is sending a neural hash of my photo to Apple’s servers—even without my having the inspector open and even though I have Enhanced Visual Search unchecked in Photos.app’s settings. I think this is due to the Visual Look Up feature introduced in macOS 12.3. The way to turn this off is unintuitive. It’s not in the settings for Photos or Preview or even Privacy. Instead, you go to System Settings ‣ Spotlight and uncheck Siri Suggestions.

Jeff Johnson:

Why does photoanalysisd want to phone home?

I don’t have iCloud Photos enabled. I don’t have Enhanced Visual Search enabled. And I wasn’t doing anything with photos. This just happened randomly in the background.

I don’t know what this is or how to turn it off. Maybe it’s downloading place names based on geotags? I assume it’s not related to Visual Look Up, which uses mediaanalysisd.

Jeff Johnson:

Before I enabled iCloud on the new Mac, I installed a configuration profile created with Apple Configurator app. The purpose of the configuration profile was to prevent iCloud from silently enabling features that I don't want. I discussed this technique last year in a blog post about how to stop iCloud Keychain with a profile. My configuration profile disables not only iCloud Keychain but also iCloud Photos, Siri, Diagnostic Submission, and Apple Personalized Advertising.

But there was a bug where it instead enabled iCloud Photos and locked the setting so that he couldn’t disable it.

Previously:

App Store Trader Status Deadline

Apple:

Starting February 17, 2025: Due to the European Union’s Digital Services Act, apps without trader status will be removed from the App Store in the European Union until trader status is provided and verified, if necessary.

Apple:

To determine if you’re a trader, you should consider a range of non-exhaustive and non-exclusive factors (see those listed on page 2 in the EC’s Guidance), which may include:

Whether you make revenue as a result of your app, for example if your app includes in-app purchases, or if it’s a paid or ad-sponsored app — especially if you’re transacting in large volumes

[…]

Whether you develop your app in connection with your trade, business, craft, or profession—meaning that you’re acting in a professional/business capacity. You’re unlikely to be a trader for EU law purposes if you’re acting “for purposes which are outside your trade, business, craft, or profession.” For example, if you’re a hobbyist and you developed your app with no intention of commercializing it, you may not be considered a trader.

When I looked at this last year, it seemed like anyone selling apps would be considered a trader. This guidance from Apple adds confusion: what is a large volume? What does it mean to offer an app for sale with no intention of commercializing it?

Luc Vandal:

Still receiving this (again) despite confirmation that the status for my account is fine. This doesn’t inspire much confidence. Anyone else?

Drew McCormack:

Apple’s trader registration for the new EU rules is a complete shambles. I sent them the documents last March. They didn’t process them in time, and they expired. So, I get in contact and get assigned an issue number and person assigned to the issue, pay for up-to-date docs, and send them again. Silence. And the threats of cutting off my apps continue to flow in.

Previously:

ViewSonic VP2788-5K

Efosa Udinmwen:

ViewSonic’s VP2788-5K is a compact device with a 99% DCI-P3 color gamut and robust connectivity options, including Thunderbolt 4, HDMI 2.1, USB-C and A, and DisplayPort.

[…]

The monitor is expected to be available in the first quarter of 2025, possibly before the end of March.

DisplaySpecifications:

ViewSonic VP2788-5K was unveiled at Pepcom Digital Experience earlier this month and now the company is ready with the full list of specifications for this monitor. This professional monitor from the ViewSonic ColorPro series boasts a 27-inch IPS display with a 5K resolution (5120 x 2880 px) and a 219 ppi pixel density. […] The display delivers 500 nits of brightness and a 2000:1 static contrast ratio. It has an AGLR coating with 48% haze.

Via Paul Haddad:

This one’s claim to fame is 75Hz refresh rate. Honestly having a hard time keeping track of all the new retina monitors.

Previously: