Archive for October 17, 2025

Friday, October 17, 2025

Swift Profile Recorder

Johannes Weiss and Mitchell Allison (forum):

Swift Profile Recorder, an in-process sampling profiler for Swift services, is now available as an open source project.

[…]

Swift Profile Recorder enables you to:

  • Adopt profiling without extra privileges or system dependencies, allowing you to add profiling across a variety of compute environments with constrained permissions.
  • Collect samples using curl, allowing you to easily read profiler output via an HTTP endpoint without needing to learn specific tooling like perf, sample, DTrace, or eBPF (bpftrace).
  • Integrate with existing tools for visualization and analysis by supporting multiple industry-standard formats, including Linux perf script format, both the pprof file format as well as the /debug/pprof/profile endpoints, and also the collapsed format as used by the original FlameGraphs.

Apple has used Swift Profile Recorder at scale for several years as a tool for operating and debugging Swift services in production. Alongside the recent announcement of swift-parca, the Swift server ecosystem now has multiple profiling tools and approaches.

I’m intrigued by the idea of an app being able to profile itself.

Swift Proposal: Module Selectors for Name Disambiguation

SE-0491 (via Becca Royal-Gordon):

We propose that Swift’s grammar be extended so that, wherever an identifier is written in source code to reference a declaration, it can be prefixed by ModuleName:: to disambiguate which module the declaration is expected to come from. This syntax will provide a way to resolve several types of name ambiguities and conflicts.

[…]

That may sound like a farfetched edge case, but it’s surprisingly common for a module to contain a type with the same name. For instance, the XCTest module includes an XCTest class, which is a base class for XCTestCase and XCTestSuite. To avoid this kind of trouble, developers must be careful to give modules different names from the types inside them—the Observation module, for example, might have been called Observable if it didn’t have a type with that name.

[…]

We could allow a special token, or no token, to be used in place of the module name to force a lookup to start at the top level, but not restrict it to a specific module.

[…]

There is currently no way to add a module selector to a use of a subscript.

End of Support for Windows 10

Fight to Repair:

A coalition of businesses, nonprofits, and elected officials (including Fight To Repair’s parent organization, the Secure Resilient Future Foundation) has formally petitioned Microsoft to extend Windows 10 support, which is currently slated to end on October 14th.

With more than a billion Windows 10 devices operating globally, it is estimated that hundreds of millions fail to meet the minimum hardware requirements needed to upgrade to Windows 11.

Via Scott Larson (via Hacker News):

Microsoft’s design of Windows 11 is a concern because:

  1. Computer manufacturers, due to pressure from Microsoft, are designing new computers with artificial limitations like TPM and Secure Boot. These unnecessary add-ins push consumers to unnecessary hardware upgrades.
  2. In the setup of newly purchased consumer-grade computers, there is obfuscation in the installation language. Many of the default choices are aimed at confusing customers into selecting options that share data with vendors:
    • The process of setting up OneDrive to act as a backup of data. Without consent, the setup of this configuration moves all customers’ data to the cloud service, re-points all the user folders to a cloud-specific OneDrive folder that’s very difficult to revert.
    • The process of selecting a browser is obfuscated by Microsoft’s Edge Browser setup
  3. The AI tool Co-pilot is installed and enabled without consent. Removal is difficult or nonexistent.
  4. The history tracking tool “Recall” that is due to be released, sometime in the future, saves snapshots of your user experience into Microsoft’s OneDrive cloud. It looks great on paper, but in reality, this feature, along with others, will be used to move forward a surveillance state.
  5. Windows 11 prevents the complete uninstall of many of its built-in features. They can be removed from one user account, but they can be reinstalled during an update, or if you upgrade your computer, without your consent.
  6. Microsoft Edge is forced on users as a replacement by obfuscating choice in various ways.

Colin Cornaby:

One of the biggest values of my 2019 Mac Pro has been having a single machine that can run Windows and macOS. With Windows 10 losing support that’s basically the end of Boot Camp. Sort of grumpy Apple never added Windows 11 support.

Intel Macs are on the way out anyway. And I built an Intel Windows box last year. But what an inauspicious end for a killer setup. Can’t even repurpose it as a pure Windows box without hacking the Windows install to bypass the TPM check (which may not work forever.)

Previously: