Sign in

Ivan Tokar

@ivantokar.bsky.social
26 followers 74 following 108 posts

Full-Stack & Product Engineer. Swift on Server · macOS/iOS · Web. Building products and OSS. ivantokar.com

PostsRepliesMedia
Ivan Tokar @ivantokar.bsky.social · 1h
You write code differently when you know you will support it next year. Quick tricks become less attractive. Clear names, simple APIs, logs, tests, and boring solutions start to look much better. Ownership changes engineering taste.
000
Ivan Tokar @ivantokar.bsky.social · 2h
A Swift 6.4 Linux report shows a changed working directory breaking a macro that reads a relative file. Not confirmed as a general bug yet. forums.swift.org/t/psa-swift-6-4-0-… #SwiftLang
forums.swift.org
PSA: Swift 6.4.0 breaks non-inlined macros from reading from disk on linux
As the title states, I am observing my macros that read from disk to no longer work as expected on Linux using the 6.4.0 toolchain. However, they do work as expected if I inline the macro and when expanding it. Is this change documented somewhere or is it a bug with the new build system? I know this behavior isn't officially supported, but it has worked with toolchains before 6.4.0.
000
Ivan Tokar @ivantokar.bsky.social · 3h
Not every refactor needs a big plan. Renaming one confusing type, deleting one unused layer, or making one API clearer can improve a codebase today. Small cleanup done often is easier than waiting for a rewrite.
000
Ivan Tokar @ivantokar.bsky.social · 6h
I value good defaults more every year. Every option in an API or product asks someone to make a decision. A good default removes that work while still leaving an escape hatch for the cases that really need it.
000
Ivan Tokar @ivantokar.bsky.social · 6h
#Swift System is exploring native Win32 file APIs. The first pitch adds a Win32 namespace and preserves Windows errors instead of forcing them into Errno. forums.swift.org/t/pitch-a-win32-na…
forums.swift.org
[Pitch] A `Win32` namespace and `Win32.Error` for System, with a roadmap for Windows-native file system APIs
Hi System community! I'd like to pitch a series of proposals for Windows-native file system API in System, built on the Win32 base API and HANDLE rather than the C runtime's POSIX compatibility layer that backs FileDescriptor. This series aims to bring System's Windows support up to par with its POSIX counterpart, and it begins by introducing a Win32 namespace to hold these APIs and a Win32.Error type for them to throw. The full series of proposals is available and tracked in this draft PR: ...
000
Ivan Tokar @ivantokar.bsky.social · 7h
Better #AI models are useful, but cheaper good models may change products even more. When each request costs less, you can use AI in places where it was too expensive before. Cost is part of product design too. openai.com/index/introducing-gpt-6-… #OpenAI
openai.com
openai.com
000
Ivan Tokar @ivantokar.bsky.social · 9h
Swift on the server gets more interesting when cloud support stops being a community-only job. Official cloud libraries do not make Swift mainstream overnight, but they remove one more reason to avoid it for backend work. #ServerSideSwift xenospectrum.com/en/google-cloud-sw…
xenospectrum.com
xenospectrum.com
011
Ivan Tokar @ivantokar.bsky.social · 9h
Swift Subprocess may expose CPU time and peak memory per child process. Subprocess owns the lifecycle point where this data can be collected reliably. forums.swift.org/t/pitch-subprocess… #SwiftLang
forums.swift.org
[Pitch] Subprocess: Reporting the CPU time and peak memory of terminated child processes
This pitch proposes adding resource usage reporting to swift-subprocess: the CPU time and peak memory of every child process it runs. Subprocess has to provide this itself, because user code cannot obtain it through today's API surface. Author: @jakepetroules Implementation: swiftlang/swift-subprocess#226 Introduction ExecutionResult currently tells you how a subprocess ended, through terminationStatus. This pitch adds a ResourceUsage value with the child's user CPU time, system CPU time, and...
011
Ivan Tokar @ivantokar.bsky.social · 20h
Coding agents are moving from short tasks to ongoing work. That makes supervision more important, not less. The useful skill is becoming: give clear work, set limits, check the result, and know when to take control back.
010
Ivan Tokar @ivantokar.bsky.social · 23h
Coding agents are moving from short tasks to ongoing work. That makes supervision more important, not less. The useful skill is becoming: give clear work, set limits, check the result, and know when to take control back.
001
Ivan Tokar @ivantokar.bsky.social · 03/10/2026
The first version tells you if an idea can work. The second version tells you if the product can stay healthy. That is where you start fixing shortcuts, simplifying the model, and turning a quick solution into something you can keep building.
000
Ivan Tokar @ivantokar.bsky.social · 03/10/2026
SE-0550 changed during review: Swift's proposed per-function sanitizer control is now @instrumentation(disable: ...), with nested closures/local functions inheriting it. The review is extended to Oct 8. forums.swift.org/t/se-0550-nosaniti… #SwiftLang
forums.swift.org
SE-0550: `@noSanitize` attribute for functions
Hello, Swift community! The review of SE-0550: @noSanitize attribute for functions begins now and runs through September 30th, 2026. Reviews are an important part of the Swift evolution process. All review feedback should be either on this forum thread or, if you would like to keep your feedback private, directly to me as the review manager by DM. When contacting the review manager directly, please put "SE-0550" in the subject line. What goes into a review? The goal of the review process is t...
000
Ivan Tokar @ivantokar.bsky.social · 03/10/2026
Deleting code is one of the best forms of maintenance when you know why it is safe. Less code means fewer paths to understand, fewer tests to keep, and fewer places for bugs to hide. The hard part is proving that nobody needs it.
000
Ivan Tokar @ivantokar.bsky.social · 03/10/2026
OpenAI's GPT-6 guide points to a more concurrent agent loop: async tools let the model keep working while slow calls run, and GPT-6.1 Sol can delegate independent work to subagents in beta. openai.com/index/practical-guide-bu… #AI #AIAgents
openai.com
openai.com
000
Ivan Tokar @ivantokar.bsky.social · 03/10/2026
SE-0554 proposes deployment-target conditional compilation for Swift: compile code based on the app's minimum OS target, rather than runtime availability. forums.swift.org/t/se-0554-deployme… #SwiftLang
forums.swift.org
SE-0554: Deployment target conditional compilation
Hi all, The review of SE-0554: Deployment target conditional compilation beings now and runs through October 12, 2026. Reviews are an important part of the Swift evolution process. All review feedback should be either on this forum thread or, if you would like to keep your feedback private, directly to the review manager via the forum messaging feature. When contacting the review manager directly, please keep the proposal link at the top of the message. Trying it out Toolchains with a prototy...
000
Ivan Tokar @ivantokar.bsky.social · 03/10/2026
I keep liking small APIs more. Fewer options mean fewer things to learn, test, document, and keep working. You can always add another option later. Removing one after people depend on it is much harder.
000
Ivan Tokar @ivantokar.bsky.social · 03/10/2026
The interesting part of cloud coding agents is not that they can write more code. It is that work can continue after you close the laptop. That changes the workflow more than another jump in model quality. community.openai.com/t/meet-the-all…
community.openai.com
community.openai.com
000
Ivan Tokar @ivantokar.bsky.social · 03/10/2026
If you distribute Mac software outside the App Store, check your Developer ID certificate. Apple's original Sub-CA expires Feb 1, 2027. Affected .pkg files must be re-signed; securely timestamped, notarized Mac apps already shipped keep working. developer.apple.com/news/?id=w4atic… #macOS
developer.apple.com
Upcoming expiration of Developer ID Certification Authority (Sub-CA) - Latest News - Apple Developer
000
Ivan Tokar @ivantokar.bsky.social · 03/10/2026
#Apple says macOS will add more controls around Full Disk Access, requiring more explicit user action. The interesting part is the reason: broad disk access becomes much riskier as apps gain more autonomous capabilities. developer.apple.com/news/?id=p6zjoj… #macOS
developer.apple.com
Updates to Full Disk Access in macOS - Latest News - Apple Developer
We give developers powerful APIs to build incredible capabilities into their apps for Apple products, backed by a set of controls designed to protect users’ private data. Full Disk Access largely sidesteps these controls in order to allow backup apps to function properly on the Mac. Some developers are using Full Disk Access in ways that could put users at risk, exposing everything on their systems—including files, mail, messages, and even browsing history—without users’ full knowledge and understanding. For communication apps, this can also compromise the privacy of the people users are communicating with.Going forward, we will introduce additional controls to ensure that users who genuinely wish to grant an app this extraordinary level of access can only do so with very explicit user action. Addressing this is critical. As AI agents become increasingly capable and autonomous, the risks associated with this level of access will grow substantially. We are committed to ensuring users cl
021
Ivan Tokar @ivantokar.bsky.social · 02/10/2026
AI can make a first version of a feature very fast. The slow part is still deciding if the feature is right, checking edge cases, and keeping the code easy to change later. Speed helps, but it does not remove engineering work.
000
Ivan Tokar @ivantokar.bsky.social · 02/10/2026
SwiftNIO once had an aggregate HTTP header limit. A parser migration accidentally removed it, and years later the gap resurfaced as a security issue. The Gray Rhino Files #003: ivantokar.com/posts/the-limit-that-…
ivantokar.com
The Limit That Wasn’t a Limit: SwiftNIO’s Unbounded HTTP Headers
A SwiftNIO parser migration kept HTTP working but silently lost an old resource limit, years before the missing invariant returned as a security issue.
011
Ivan Tokar @ivantokar.bsky.social · 02/10/2026
Swift Collections' Deque hides a ring buffer behind familiar Swift collection semantics. A source-level look at indexing, split storage and copy-on-write. ivantokar.com/posts/swift-collectio… #SwiftLang
ivantokar.com
Swift Collections: Why Deque Uses a Ring Buffer
A source-level look at how Swift Collections implements Deque with circular storage, copy-on-write value semantics, and familiar integer indexing.
000
Ivan Tokar @ivantokar.bsky.social · 02/10/2026
#Apple killed the EU Core Technology Fee, but alternative distribution is not fee-free. Apps distributed via marketplaces or the web now face a 5% Core Technology Commission on digital transactions. developer.apple.com/support/apps-in… #iOSDev
developer.apple.com
Changes for apps in the European Union - Support - Apple Developer
Changes to iOS, iPadOS, Safari, and the App Store that impact developers’ apps in the EU to comply with the Digital Markets Act (DMA).
000
Ivan Tokar @ivantokar.bsky.social · 02/10/2026
Apple's new EU terms are simpler, but payment choices now come with a 12-month commitment. You can combine IAP, alternative in-app payments and web links, but once you change the mix, that election stays in effect for a year. developer.apple.com/support/apps-in… #iOSDev
developer.apple.com
Changes for apps in the European Union - Support - Apple Developer
Changes to iOS, iPadOS, Safari, and the App Store that impact developers’ apps in the EU to comply with the Digital Markets Act (DMA).
000
Ivan Tokar @ivantokar.bsky.social · 02/10/2026
In open source, adding features is the visible part. The real long-term work is fixing docs, closing old issues, removing dead code, and keeping upgrades safe. Maintenance is not separate from the product. It is the product.
010
Ivan Tokar @ivantokar.bsky.social · 02/10/2026
#Apple's EU terms are live, but the DMA question remains. A new legal analysis questions fees on steered purchases, payment-display rules and warning screens. www.ashurstperkinscoie.com/en/insig… #iOSDev
ashurstperkinscoie.com
Apple updates App Store developer terms in the EU
Effective, October 1, 2026, Apple will apply a set of unified business terms to apps that developers distribute in the European Union.
000
Ivan Tokar @ivantokar.bsky.social · 02/10/2026
Apple says its new EU terms resolve its Commission disputes. The Coalition for App Fairness and 17 other groups argue the fees and restrictions still fail the DMA. appfairness.org/open-letter-apples-… #iOSDev
appfairness.org
Open Letter: Apple’s New EU App Store Terms Still Fail the DMA - Coalition for App Fairness
BRUSSELS: The Coalition for App Fairness, alongside 17 other organisations representing app developers, associations, digital businesses, news media publishers, consumer organisations and civil society groups, has published a joint letter raising serious concerns over Apple's new business terms for
001
Ivan Tokar @ivantokar.bsky.social · 02/10/2026
The older I get as an engineer, the less impressed I am by clever code and the more I value code that makes the next change obvious. “Boring” is often just another word for well-understood.
000
Ivan Tokar @ivantokar.bsky.social · 01/10/2026
Swift 6.4 feels less like “another language release” and more like Swift testing how far it can travel: servers, C interop, embedded, WebAssembly. The interesting question now is not where Swift belongs, but where it can become the practical choice.
110
Ivan Tokar @ivantokar.bsky.social · 01/10/2026
Apple’s new EU developer terms take effect today. What stands out to me is how much “platform engineering” now includes business rules, distribution models, payments, and regulation. Shipping an app is increasingly more than shipping software.
000
Ivan Tokar @ivantokar.bsky.social · 01/10/2026
AI is making code cheaper to produce, but not necessarily software cheaper to own. Someone still has to choose the right problem, shape the system, review trade-offs, and live with the result six months later.
000
Ivan Tokar @ivantokar.bsky.social · 01/10/2026
Cross-platform Swift still needs different imports for low-level C APIs: Darwin, Glibc, Musl, Android, WASILibc, CRT… A new pitch proposes one common name: CSystem. forums.swift.org/t/pitch-standard-n… #SwiftLang
forums.swift.org
[Pitch] Standard name for common low level C interfaces
There continues to be a need for Swift code to directly use low level C interfaces provided by the operating system platform. These are exposed by the modules in stdlib/public/Platform including Glibc, CRT, WASILibc, Android, Musl, as well as Darwin in Apple SDKs. The fact that they all have different names requires cross platform code to start with an ever growing and tedious to maintain chain of #if os(...) and #if canImport(...). #if canImport(Darwin) import Darwin #elseif canImport(Glibc) i...
011
Ivan Tokar @ivantokar.bsky.social · 01/10/2026
Molecules of Swift #002: Tuple Patterns. Keep a tuple while you need the whole value. Take it apart when separate names make the next code clearer. ivantokar.com/posts/tuple-patterns-… #SwiftLang #MoS
ivantokar.com
Tuple Patterns: Destructure Values Where You Use Them
Use Swift tuple patterns to take tuples apart, ignore values you do not need, and match several values at once.
011
Ivan Tokar @ivantokar.bsky.social · 01/10/2026
Swift’s Networking Workgroup is leaning toward a native Swift HTTP stack, not only wrappers over existing backends. The goal: control over performance and behavior. #SwiftLang forums.swift.org/t/networking-workg…
forums.swift.org
[Networking Workgroup] Public meeting — Monday, September 28, 2026 — Agenda and call for topics
The Networking Workgroup meets again on Monday, September 28, 2026, and everyone is welcome. Logistics When: Monday, September 28, 2026, 8:30–9:30 AM PDT (see this time in your local timezone) Where: WebEx Draft agenda Welcome and recap of action items from the last meeting (5 min) Update: swift-networking-types repository and evolution process draft (5 min) Repository setup Currency types: IP Addresses and Ports (requirements thread) Evolution process draft, mirroring the Swift evolution p...
011
Ivan Tokar @ivantokar.bsky.social · 01/10/2026
Voice in #Codex has its own usage, so for plain dictation I moved speech-to-text outside it. open-wispr + large-v3-turbo handles my Ukrainian + English mix really well. Hold hotkey → speak → release → text at the cursor. It works anywhere github.com/human37/open-wispr #Whisper #OpenSource
github.com
GitHub - human37/open-wispr: Local, private voice dictation for macOS
Local, private voice dictation for macOS. Contribute to human37/open-wispr development by creating an account on GitHub.
000
Ivan Tokar @ivantokar.bsky.social · 30/09/2026
A Swift isolation bug can make actor/protocol conformance behave differently across module boundaries with default @MainActor isolation. A compiler fix is on main, but hasn't shipped. forums.swift.org/t/actors-conformin… #SwiftLang
forums.swift.org
Actors conforming to protocols in default @MainActor isolation targets
I've come across some behavior in default @MainActor isolation targets that I can't explain. Consider the following protocol defined in a @MainActor module, and an actor that conforms to the protocol: // Default main actor isolation module protocol P { func perform() async } actor A: P { func perform() async {} } I was surprised this compiled. It seems that P is effectively @MainActor P, and so an arbitrary actor shouldn't be allowed to conform. And if I explicitly make P into @MainActor, ...
011
Ivan Tokar @ivantokar.bsky.social · 30/09/2026
#GRDB can turn a #SQLite query into a stream of fresh values by tracking the database region behind the read. I looked at ValueObservation, DatabaseRegion, transaction events, and concurrent reads. ivantokar.com/posts/grdb-turning-sq… #SwiftLang
ivantokar.com
GRDB: Turning SQLite Queries into Live Application State
A source-level look at how GRDB turns SQLite query regions and transaction events into live application state.
011
Ivan Tokar @ivantokar.bsky.social · 30/09/2026
Swift may change `Float.pi`. SE-0552 proposes the nearest representable Float instead of forcing π to round toward zero. Only Float changes; Double and the other standard floating-point types already match the new rule. forums.swift.org/t/se-0552-rounding… #SwiftLang
forums.swift.org
SE-0552: Rounding of Float.pi
Hello, Swift community! The review of SE-0552: Rounding of Float.pi begins now and runs through October 6, 2026. Reviews are an important part of the Swift evolution process. All review feedback should be either on this forum thread or, if you would like to keep your feedback private, directly to me as the review manager by email or DM. When contacting the review manager directly, please put "SE-0552" in the subject line. What goes into a review? The goal of the review process is to improve t...
000
Ivan Tokar @ivantokar.bsky.social · 29/09/2026
Swift may get per-function sanitizer control. SE-0550 targets low-level code where instrumentation interferes with the operation, while review discussion considers a more general instrumentation API. forums.swift.org/t/se-0550-nosaniti… #SwiftLang
forums.swift.org
forums.swift.org
000
Ivan Tokar @ivantokar.bsky.social · 29/09/2026
When is a Swift tuple enough, and when do you need a named type? I'm launching Molecules of Swift, a new series exploring small Swift features and patterns. ivantokar.com/posts/tuples-group-va… #SwiftLang
ivantokar.com
Tuples: Group Values Without Creating a Type
Swift tuples give a few related values a useful local shape without forcing every temporary relationship into a new named type.
141
Ivan Tokar @ivantokar.bsky.social · 29/09/2026
SwiftPM has a proxy gap: Git can resolve dependencies while SwiftPM's binary-target download fails. SE-0549 adds proxy config for SwiftPM HTTP operations. forums.swift.org/t/review-se-0549-p… #SwiftLang
forums.swift.org
[Review] SE-0549: Package Manager HTTP Proxy Configuration
Hello, Swift community! The review of SE-0549: Package Manager HTTP Proxy Configuration begins now and runs through September 28, 2026. Reviews are an important part of the Swift evolution process. All review feedback should be either on this forum thread or, if you would like to keep your feedback private, directly to me as the review manager by email or DM. When contacting the review manager directly, please put "SE-0549" in the subject line. What goes into a review? The goal of the review ...
000
Ivan Tokar @ivantokar.bsky.social · 29/09/2026
Swift Concurrency may get a cheap, stable task ID. SE-0553 proposes `Task.currentID` for tracing, logging and profiling, targeting single-digit-nanosecond access with no allocations. IDs are process-local, stable and never reused. forums.swift.org/t/se-0553-task-ide… #SwiftLang
forums.swift.org
SE-0553: Task Identity
Hi everyone. The review of SE-0553: Task Identity begins now and runs through October 7th, 2026. Reviews are an important part of the Swift evolution process. All review feedback should be either on this forum thread or, if you would like to keep your feedback private, directly to me as the review manager by DM. When contacting the review manager directly, please put "SE-0553" in the subject line. What goes into a review? The goal of the review process is to improve the proposal under review t...
000
Ivan Tokar @ivantokar.bsky.social · 28/09/2026
How does swift-dependencies make overrides follow async work? I looked at its TaskLocal storage, @Dependency lookup, testing model, and SwiftUI integration. ivantokar.com/posts/swift-dependenc… #SwiftLang
ivantokar.com
swift-dependencies: Dependency Injection with Task-Local Values
A source-level look at how swift-dependencies scopes dependency values with TaskLocal state, makes overrides testable, and integrates the same model with SwiftUI.
011
Ivan Tokar @ivantokar.bsky.social · 27/09/2026
SwiftUI’s new ArrangementView separates primary/secondary content from its layout. Split arrangements, axes and ratios can adapt without device-specific view trees. developer.apple.com/documentation/U… #SwiftUI #iOSDev
developer.apple.com
SwiftUI updates | Apple Developer Documentation
Learn about important changes to SwiftUI.
011
Ivan Tokar @ivantokar.bsky.social · 27/09/2026
Google’s Antigravity SDK now supports offline local agents. The interesting part is hybrid routing: cloud planning while source code stays with local models. developers.googleblog.com/introduci… #AI #AIAgents
developers.googleblog.com
Introducing Support for Local AI Models in the Antigravity SDK- Google Developers Blog
Build privacy-first AI agents with the Google Antigravity SDK. Now supporting offline, local workflows via LiteRT, Gemma 4 26B, and hybrid orchestration.
000
Ivan Tokar @ivantokar.bsky.social · 26/09/2026
GitHub’s CSS-in-JS → CSS Modules migration shows safe re-platforming: feature flags, visual regression tests and a compatibility layer let old and new code coexist. github.blog/engineering/architectur… #ProductEngineering
github.blog
Improving site performance by shipping more CSS
How we fully migrated github.com away from CSS-in-JS.
000
Ivan Tokar @ivantokar.bsky.social · 26/09/2026
Google Cloud API Gateway can now expose OpenAPI REST operations as MCP tools. That can remove a separate MCP service, but good agent tools still need deliberate scope and permissions. developers.googleblog.com/turn-your… #AI #AIAgents
developers.googleblog.com
Turn your REST APIs into MCP tools with Google Cloud API Gateway- Google Developers Blog
Expose REST APIs to AI agents instantly. Google Cloud API Gateway now acts as a native MCP server via OpenAPI 3 annotations, requiring zero new infrastructure.
110
Ivan Tokar @ivantokar.bsky.social · 26/09/2026
napshot testing is more than screenshots. I looked at how swift-snapshot-testing composes value transforms and diffing to support UI, JSON, text, requests, and custom representations. ivantokar.com/posts/swift-snapshot-…
ivantokar.com
swift-snapshot-testing: Snapshot Testing as a Composition of Transform and Diff
A source-level look at how swift-snapshot-testing separates value transformation from diffing, and why that makes snapshot strategies reusable far beyond screenshots.
000
Ivan Tokar @ivantokar.bsky.social · 25/09/2026
Cloudflare fixed a Containers flaw where reused dm-thin blocks could retain previous-tenant data because zeroing was disabled. VM isolation wasn't enough: storage reuse also had to preserve the tenant boundary. #ProductEngineering blog.cloudflare.com/containers-cros…
blog.cloudflare.com
How Cloudflare addressed a cross-tenant data exposure vulnerability in Containers
000
Ivan Tokar @ivantokar.bsky.social · 25/09/2026
swift-http-types gives Swift shared HTTP request, response, and field types without owning the transport. I looked at its field semantics, Foundation bridge, and internals. ivantokar.com/posts/swift-http-type… #Swift #OpenSource
ivantokar.com
swift-http-types: Giving Swift a Shared Vocabulary for HTTP
A source-level look at how swift-http-types models HTTP messages, preserves protocol semantics, and bridges the same types into Foundation.
000