[swift-evolution] [Pitch] Version-pinned patching of public declarations

Ari Weinstein ari at deskconnect.com
Thu Feb 11 16:19:18 CST 2016

Hi all,

I just wanted to throw some more support behind this. Having such a
patching mechanism built-in to the language and allowing developers to work
around the inevitable bugs in frameworks (system or otherwise) would be a
huge boon to the developer community and ultimately, users.

There are some issues with the single version-based patching approach. For
example, if I'm working around a bug in a system framework in iOS 9.0, and
Apple suddenly releases a bug-fix update like iOS 9.0.1 that doesn't fix
the issue, I don't have the opportunity to release an update, and my patch
would break. Additionally, it seems potentially unreasonable for developers
would have to release updates simply to uphold patches for bugs that aren't
fixed (many bugs in iOS system frameworks go several releases before being

In my head, it'd make sense for the version-patching to specify a start and
end version - like, "this patch should be used when using a framework with
a version between 1.2 and 2.0.1." If there is no applicable end version
yet, the developer could specify only a start version, and update the app
with the appropriate end version when the issue has been resolved.


Ari Weinstein
Co-founder of Workflow

On Sun, Jan 17, 2016 at 9:40 PM, Curt Clifton via swift-evolution <
swift-evolution at swift.org> wrote:

> I'm late to this thread and replying via a mail-to link from the archives,
> for both I apologize.
> I wanted to express my support for this proposal. I'm pleased that it
> addresses the specific concerns that I and others raised in the discussion
> of final/sealed-by-default regarding the need for some sort of escape hatch
> to work around framework bugs. Keying patches to specific framework or OS
> revisions seems like a reasonable approach. I brought the idea up at
> Seattle Xcoders this week and there was general agreement that folks were
> happy to update their apps for updated framework versions, whether to
> remove no longer necessary patches or to specify that some patches were
> still needed.
> There are lots of interesting corner cases, of course, to deal with
> customers who update their OS but don't update an app and vice versa, but
> lifting patches to the language level seems like a promising way to improve
> robustness while decreasing the burden on framework authors of dragging "do
> not break" apps along.
> Thanks again for the proposal.
> Cheers,
> Curt
> Curt Clifton, PhD
> Software Developer
> The Omni Group
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20160211/db3a9eee/attachment.html>

More information about the swift-evolution mailing list