Mothers Ruin Software (Mastodon):
Enhanced the decoding of Saved Application State to
extract a couple of categories of data that were previously being ignored:
- For a sandboxed, document-based app, the
security-scoped bookmarks that
are associated with an
NSDocument
will now be shown, usually as an
additional archive labeled _NSDocument [Security-Scoped Bookmarks].
This is an array of bookmark data blobs, and is where AppKit squirrels away the
security-scoped URL for a document, such that the app can re-open it upon restoration.
- For an
NSResponder
that opts into the +restorableStateKeyPaths
mechanism, the associated data will now be shown as an archive with the suffix
[Keyed State Data]. This is a dictionary of saved values, by key path.
[…]
When showing Mach-O information (after opening a bundle or a bare executable), if the
executable is part of a Universal binary, Archaeology now shows the offset and size
of the architecture slice within that binary (since we can never remember the right
otool(1)
incantation for this). Archaeology also now shows the linker-assigned
UUID for each Mach-O architecture (which is even more arcane to extract).
Previously:
Archaeology Developer Tool Document Model Mac Mac App Mach-O macOS 15 Sequoia Sandboxing Security Scoped Bookmarks
Mothers Ruin Software (Mastodon):
Changed the info pane to show Quarantine rather than Downloaded.
Modern macOS likes to quarantine files that are opened by a sandboxed app, seemingly resulting in more
non-download quarantines than actual downloads. You can still click on the quarantine date here
to see what app triggered it and how — for example, “Downloaded by Safari” (for a true
download) or “Opened by Hex Editor” (for a sandboxed app). If the quarantine has already
triggered a Gatekeeper prompt (and you proceeded with opening the item anyway, in whatever tortured
way macOS now requires), the quarantine text is grayed out.
[…]
Added the linker-assigned UUID to the Executable Information inspector.
This is what Local Network Privacy uses.
The appy command line tool has a new ‑‑show-components
(-c
)
option, to show the details of an app’s components right in Terminal, without launching the Apparency app.
This gives information such as bundle identifiers, versions, signing identities, and
various flags (Gatekeeper, notarization, etc), all in a single plain text table.
You can customize which columns are included using the ‑‑add-column
(-C
)
option.
Previously:
Code Signing Developer Tool Gatekeeper Mac Mac App Sandboxing sequa
Jeff Johnson:
I found that the Apple Files app was broken in the simulator, which prevented me from setting up my app properly for my screenshots. I couldn’t share a file on my Mac with the simulator. I couldn’t save a file on the simulator, for example from my own app or from the Apple Photos app, in the Files app. I couldn’t even create a new folder in the Files app.
[…]
The cause was that I had created a symbolic link from ~/Library/Developer/CoreSimulator
to /Users/Shared/Developer/CoreSimulator
on my Mac. Apparently the Simulator app did not like that now, even though it worked before: my symlink is not new. Perhaps the Xcode 16.4 update broke it. The solution was to delete the symlink and go back to keeping the CoreSimulator
directory inside the ~/Library/Developer
directory.
Bug Files.app Mac macOS 15 Sequoia Programming Simulator Symbolic Links
Whatever, Jamie (via Hacker News):
This last decade has seen an inundation of new JavaScript runtimes (and engines in equal measure), enabling us to run JavaScript in all manner of contexts with precise fitness for task. Through these, we’ve seen the language spread to the Cloud, the edge, Smart TVs, mobile devices, and even microcontrollers.
In this article, we’ll explore what’s driving this diversity, and why no one runtime or engine suffices for all purposes.
[…]
The earliest polyglot engine was Rhino, which was made in 1997 as an effort to write Netscape Navigator – JavaScript engine and all – fully in Java. Rhino supports two-way interop between Java and JavaScript, based on the JVM. That is to say, it allows JavaScript to implement Java interfaces and call Java class methods, while allowing Java to define JavaScript classes, run scripts, and more. By 2006, it was included in JDK 6, and by 2008, it was the basis of the Helma runtime, nowadays known as RingoJS.
[…]
While Deno and CloudFlare Workers (which run on the workerd runtime) continue Node.js’s tradition of using V8, we see Bun employing JavaScriptCore, WinterJS using SpiderMonkey, and LLRT on QuickJS. No longer is the backend solely a stage for Node.js and V8 – it’s now fashionable to pick a runtime and engine optimised for the task.
Compiler Electron History Interpreter JavaScript Just-In-Time Compilation (JIT) Netscape Node.js Programming React Native Web