Swift Unwrapped - podcast cover

Swift Unwrapped

JP Simard, Jesse Squires, Spec Network, Inc.swiftunwrapped.github.io
Discussions on the Swift programming language and other projects at Swift.org

Episodes

32: Migrating to Swift 4

https://swift.org/migration-guide-swift4/ Using two Swift Package Manager manifest files: https://github.com/realm/SwiftLint/blob/0.23.0/Package.swift https://github.com/realm/SwiftLint/blob/0.23.0/Package%40swift-4.swift Leave a review on iTunes and join http://spectrum.chat/specfm/swift-unwrapped

Oct 09, 201722 minEp. 33

31: Compile Times

Measuring Swift compile times in Xcode 9: https://www.jessesquires.com/blog/measuring-compile-times-xcode9/ Profiling your Swift compilation times: http://irace.me/swift-profiling Guarding Against Long Compiles: http://khanlou.com/2016/12/guarding-against-long-compiles/ Type checker performance tests: Directory: https://github.com/apple/swift/tree/master/validation-test/Sema/type_checker_perf PR: https://github.com/apple/swift/pull/11494 Mailing list discussions: Ben Asher: https://lists.swift.o...

Oct 02, 201725 minEp. 32

30: Weak References with Mike Ash

Friday Q&A: https://mikeash.com/pyblog/friday-qa-2017-09-22-swift-4-weak-references.html Leave a review on iTunes: https://itunes.apple.com/us/podcast/swift-unwrapped/id1209817203?mt=2 Chat with us at: http://spectrum.chat/specfm/swift-unwrapped

Sep 25, 201731 minEp. 31

29: Notes from Ted Kremenek, Recent Proposals & Xcode 9 GM

iPhone X keynote + GM seeds for Xcode 9, Swift 4 Synthesizing Equatable and Hashable: https://github.com/apple/swift-evolution/blob/master/proposals/0185-synthesize-equatable-hashable.md Sourcery: https://github.com/krzysztofzablocki/Sourcery Improved pointers: https://github.com/apple/swift-evolution/blob/master/proposals/0184-unsafe-pointers-add-missing.md Notes from Ted Kremenek LibDispatch correction: https://twitter.com/pedantcoder/status/904951873483956225...

Sep 18, 201733 minEp. 30

28: Refactoring Engine

Swift.org blog post on Swift Local Refactoring: https://swift.org/blog/swift-local-refactoring/ Clang-based refactoring engine: http://lists.llvm.org/pipermail/cfe-dev/2017-June/054286.html Adding indexing support to Clangd: http://lists.llvm.org/pipermail/cfe-dev/2017-May/053869.html Small PR demonstrating implementing a refactoring action to simplify long number literal format: https://github.com/apple/swift/pull/11711 SR-5746: https://bugs.swift.org/browse/SR-5746 All Swift refactoring action...

Sep 11, 201733 minEp. 29

27: Concurrency with Chris Lattner

Please take a minute to leave a review on iTunes and join us on Spectrum chat if you'd like to discuss the show. Concurrency manifesto: https://gist.github.com/lattner/31ed37682ef1576b16bca1432ea9f782 Tweet from Chris: https://twitter.com/clattner_llvm/status/898310296183357441 Ted Kremenek's email: https://lists.swift.org/pipermail/swift-evolution/Week-of-Mon-20170814/038891.html Chris's email: https://lists.swift.org/pipermail/swift-evolution/Week-of-Mon-20170814/038892.html Async/Await propos...

Sep 04, 20171 hrEp. 27

26: Swift 5 Goals

Mailing List: https://lists.swift.org/pipermail/swift-evolution/Week-of-Mon-20170807/038645.html Swift Evolution Readme: https://github.com/apple/swift-evolution/blob/master/README.md Please take a minute to leave a review on iTunes (https://itunes.apple.com/us/podcast/swift-unwrapped/id1209817203) and join us on http://spectrum.chat/specfm/swift-unwrapped if you'd like to discuss the show.

Aug 28, 201735 minEp. 28

25: ABI Stability – Calling Convention, Runtime and Standard Library

ABI Stability Manifesto: https://github.com/apple/swift/blob/master/docs/ABIStabilityManifesto.md ABI Dashboard: https://swift.org/abi-stability ABI Docs: https://github.com/apple/swift/tree/master/docs/ABI Please take a minute to leave a review on iTunes (https://itunes.apple.com/us/podcast/swift-unwrapped/id1209817203) and join us on http://spectrum.chat/specfm/swift-unwrapped if you'd like to discuss the show.

Aug 21, 201726 minEp. 26

24: ABI Stability - Mangling

Twitter thread on source stability discussion for episode 22: https://twitter.com/swift_unwrapped/status/892023116377075712 ABI Stability Manifesto: https://github.com/apple/swift/blob/master/docs/ABIStabilityManifesto.md ABI Dashboard: https://swift.org/abi-stability ABI Docs: https://github.com/apple/swift/tree/master/docs/ABI Mike Ash & Gwynne Raskind Friday Q&A 2014-08-08: Swift Name Mangling: https://mikeash.com/pyblog/friday-qa-2014-08-15-swift-name-mangling.html Please take a minu...

Aug 14, 201734 minEp. 25

23: ABI Stability – Data Layout and Metadata

ABI Stability Manifesto: https://github.com/apple/swift/blob/master/docs/ABIStabilityManifesto.md ABI Dashboard: https://swift.org/abi-stability ABI Docs: https://github.com/apple/swift/tree/master/docs/ABI Swift memory layout (Mike Ash): Talk: https://news.realm.io/news/goto-mike-ash-exploring-swift-memory-layout/ Part 1: https://mikeash.com/pyblog/friday-qa-2014-07-18-exploring-swift-memory-layout.html Part 2: https://www.mikeash.com/pyblog/friday-qa-2014-08-01-exploring-swift-memory-layout-pa...

Aug 07, 201738 minEp. 24

22: ABI Stability – The Big Picture

ABI Stability Manifesto: https://github.com/apple/swift/blob/master/docs/ABIStabilityManifesto.md ABI Dashboard: https://swift.org/abi-stability ABI Docs: https://github.com/apple/swift/blob/master/docs/ABI.rst

Jul 31, 201738 minEp. 23

21: New Proposals

Bug of the week (sandboxing!): SR-549 , SR-5061 String newline escaping: SE-0182 Substring perf: SE-0183 String index overhaul: SE-0180 SPM c++ support: SE-0181...

Jul 24, 201727 minEp. 22

20: Swift Migrator

Bug of the week: https://bugs.swift.org/browse/SR-4088 Ted’s email: https://lists.swift.org/pipermail/swift-dev/Week-of-Mon-20170605/004751.html Migrator: https://github.com/apple/swift/tree/master/lib/Migrator Migrating to Swift 4: https://swift.org/migration-guide/, https://help.apple.com/xcode/mac/current/#/deve838b19a1

Jul 17, 201729 minEp. 21

19: WWDC Reactions

Improvement of the week: https://github.com/apple/swift-package-manager/pull/1249 Ted’s email: https://lists.swift.org/pipermail/swift-dev/Week-of-Mon-20170605/004751.html Panel: https://news.realm.io/news/wwdc-2017-swift-panel/ Xcode 9b2 release notes: http://adcdownload.apple.com/Developer_Tools/Xcode_9_beta_2/Release_Notes_for_Xcode_9_beta_2.pdf Ole Begemman’s panel highlights: https://oleb.net/blog/2017/06/chris-lattner-wwdc-swift-panel/...

Jul 10, 201743 minEp. 20

18: Community Open Source Spotlight

SipHash: https://github.com/lorentey/SipHash CryptoSwift: https://github.com/krzyzanowskim/CryptoSwift Result: https://github.com/antitypical/Result Commander: https://github.com/kylef/Commander SwiftyGPIO: https://github.com/uraimo/SwiftyGPIO Stencil: https://github.com/kylef/Stencil Sourcery: https://github.com/krzysztofzablocki/Sourcery SWXMLHash: https://github.com/drmohundro/SWXMLHash YamlSwift: https://github.com/behrang/YamlSwift Yams: https://github.com/jpsim/Yams swift-lsp (in progress)...

Jul 03, 201738 minEp. 19

17: Testing Swift

Testing Swift: https://github.com/apple/swift/blob/master/docs/Testing.rst Lit: LLVM Integrated Tester: http://llvm.org/docs/CommandGuide/lit.html SwiftCI: https://ci.swift.org Announcement: https://swift.org/blog/swift-ci/ Overview: https://swift.org/continuous-integration/ Docs: https://github.com/apple/swift/blob/master/docs/ContinuousIntegration.md Source Compatibility: https://github.com/apple/swift-source-compat-suite Smoke Testing Validation Testing Benchmarking Lint Testing Source Compat...

Jun 26, 201731 minEp. 15

16: Error Handling in Swift — A History

Error Handling: https://github.com/apple/swift/blob/master/docs/ErrorHandling.rst Rationale and Proposal: https://github.com/apple/swift/blob/master/docs/ErrorHandlingRationale.rst Swift 2.0 blog post: https://developer.apple.com/swift/blog/?id=29 Cocoa error handling: https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/ErrorHandlingCocoa/ErrorHandling/ErrorHandling.html Typed throws vs not discussed in Swift Weekly Brief #68 and #51...

Jun 19, 201736 minEp. 18

15: What's New in Swift 4 (Part 2)

What should you expect with Swift 4? Some great new features and improvements. Ole's Swift 4 playground: https://oleb.net/blog/2017/05/whats-new-in-swift-4-playground/ Swift Evolution Proposal SE-0165: Dictionary and Set Enhancements Swift Evolution Proposal SE-0173: Add MutableCollection.swapAt(_:_:) Swift Evolution Proposal SE-0176: Enforce Exclusive Access to Memory Swift Evolution Proposal SE-0171: Reduce with inout Swift Evolution Proposal SE-0148: Generic Subscripts Swift Evolution Proposa...

Jun 12, 201731 minEp. 17

14: What's New in Swift 4 (Part 1)

What should you expect with Swift 4? Some great new features and improvements. Ole's Swift 4 playground: https://oleb.net/blog/2017/05/whats-new-in-swift-4-playground/ Swift Evolution Proposal SE-0172: One-sided Ranges Swift Evolution Proposal SE-0168: Multi-Line String Literals Swift Evolution Proposal SE-0163: String Revision: Collection Conformance, C Interop, Transcoding Swift Evolution Proposal SE-0178: Add unicodeScalars property to Character Swift Evolution Proposal SE-0169: Improve Inter...

Jun 05, 201726 minEp. 16

13: WWDC Predictions

SwiftPM iOS SwiftPM Cross-Compilation: https://github.com/apple/swift-package-manager/pull/1098 SwiftPM Xcode Better SwiftPM/Xcode integration: https://twitter.com/SmileyKeith/status/862444840008548352 Potential Package.swift support in Xcode Swift Refactoring in Xcode References to "Rename" actions in SourceKit from Xcode 8.3 https://twitter.com/simjp/status/848288462952316928 Swift Syntax Structured Editing Library: https://lists.swift.org/pipermail/swift-dev/Week-of-Mon-20170206/004...

May 29, 201728 minEp. 14

12: Swift Evolution

Moving to Discourse, email from Ted: https://lists.swift.org/pipermail/swift-evolution/Week-of-Mon-20170206/031657.html Nate Cook's Discourse experiment: http://discourse.natecook.com/ Slava tweets: https://twitter.com/slava_pestov/status/854490613575700480 https://twitter.com/slava_pestov/status/857382737669271552 Thank You Thanks to this episode's sponsor, Kobiton : complete mobile device lab solution. Start a 15 day free trial today at https://kobiton.com/swiftunwrapped....

May 22, 201727 minEp. 13

11: Ownership Manifesto

Manifesto: https://github.com/apple/swift/blob/master/docs/OwnershipManifesto.md TL;DR: https://gist.github.com/Gankro/1f79fbf2a9776302a9d4c8c0097cc40e Graydon Hoare, Swift team member, creator of Rust: https://en.wikipedia.org/wiki/Rust_(programming_language) Some work has already landed to enforce exclusivity in Swift 4: https://github.com/apple/swift/pull/9373 https://github.com/apple/swift/pull/9198 https://github.com/apple/swift/pull/9112 Thank You Thanks to this episode's sponsor, BuddyBui...

May 15, 201729 minEp. 12

10: The Variety Show

SE-0168: Multi-line strings Proposal: https://github.com/apple/swift-evolution/blob/master/proposals/0168-multi-line-string-literals.md John Holdsworth (Injection4Xcode): https://twitter.com/Injection4Xcode Took just over 12 months to land: https://github.com/apple/swift/pull/2275 Final PR: https://github.com/apple/swift/pull/8813 Starter Bugs to improve diagnostics: https://bugs.swift.org/browse/SR-4701 Approval Post: https://lists.swift.org/pipermail/swift-evolution-announce/2017-April/000360....

May 08, 201748 minEp. 11

09: String Manifesto

String Manifesto: https://github.com/apple/swift/blob/master/docs/StringManifesto.md Chris Lattner on Swift 4 goals including String re-evaluation: https://lists.swift.org/pipermail/swift-evolution/Week-of-Mon-20160725/025676.html Ole Begemann: Why String.CharacterView is not a MutableCollection: https://oleb.net/blog/2017/02/why-is-string-characterview-not-a-mutablecollection/ One for the Unicode Nerds: https://oleb.net/blog/2014/06/one-for-the-unicode-nerds/ Objc.io article on unicode: https:/...

May 01, 201739 minEp. 10

08: Archival Serialization & Swift Encoders

SE-0166: Swift Archival & Serialization NSCoding: https://developer.apple.com/reference/foundation/nscoding http://nshipster.com/nscoding/ Swift Archival & Serialization: https://github.com/apple/swift-evolution/blob/master/proposals/0166-swift-archival-serialization.md ABI Stability Dashboard: https://swift.org/abi-stability/ SE-0167: Swift Encoders https://github.com/apple/swift-evolution/blob/master/proposals/0167-swift-encoders.md Semantics of Codable Types in Archives NSValueTransfo...

Apr 24, 201730 minEp. 9

07: Access Control - The Saga Continues

Access Control Roller Coaster First came the private/fileprivate change (SE-0025): https://github.com/apple/swift-evolution/blob/master/proposals/0025-scoped-access-level.md Then came open (SE-0117): https://github.com/apple/swift-evolution/blob/master/proposals/0117-non-public-subclassable-by-default.md For the last few weeks, a faction in the community has been proposing undoing it (SE-0159): https://github.com/apple/swift-evolution/blob/master/proposals/0159-fix-private-access-levels.md Wow. ...

Apr 17, 201738 minEp. 8

06: Swift 3.1 Release & SwiftPM Improvements

Swift 3.1 Release Official Swift 3.1 release post: https://swift.org/blog/swift-3-1-released/ Swift 3.1 was first available on Swift for iPad, not macOS 🙀 https://twitter.com/stroughtonsmith/status/844451069228994560 Anna Zaks, program analysis at Apple: https://twitter.com/zaks_anna Visual Debugging with Xcode WWDC 2016: https://developer.apple.com/videos/play/wwdc2016/410/ ASAN: https://en.wikipedia.org/wiki/AddressSanitizer TSAN: https://clang.llvm.org/docs/ThreadSanitizer.html TSAN at WWDC ...

Apr 10, 201745 minEp. 7

05: Objective-C Interoperability

There's been a much stronger focus on calling ObjC from Swift than the other way around, but in this talk we'll cover both directions and the parts of the Swift language involved in the process. ObjC Interop Overview Nikita Lutsenko's talk: https://realm.io/news/altconf-nikita-lutsenko-objc-swift-interoperability/ NS_SWIFT_NAME NS_SWIFT_UNAVAILABLE NS_REFINED_FOR_SWIFT NS_SWIFT_NOTHROW NS_NOESCAPE NSEXTENSIBLESTRING_ENUM Nullability Annotations Generic Annotations ClangImporter (omit needless wo...

Apr 03, 201741 minEp. 6

04: Bridging with Objective-C

Swift has evolved since 1.x to have a fluctuating amount of magic/implicit bridging from ObjC and Foundation types, sometimes going in the opposite direction towards very explicit type conversions. We've started seeing more of what the "steady state" looks like as Swift 3.x/4.x development matures. In the early days, Swift users would need deep compiler internal implementation details to know which NSNumber-representable type could implicitly convert. As of SE-0139 that's a lot clearer...

Mar 27, 201740 minEp. 5

03: Source Stability (What is a Source Breaking Change?)

Every Swift developer who has migrated code bases from Swift 1.x to 2.x, or even the more tedious 2.x to 3.x knows the pain of migrating to new Swift versions. In this episode, we cover: What is a source breaking change? Almost guaranteeing that code that compiles with Swift 3.0 continues to compile with Swift 3.x and even Swift 4.x in Swift 3 mode. Why almost? Because it may be best to prevent code that never should have compiled with Swift 3.0 (i.e. compiled due to egregious bugs in the compil...

Mar 20, 201730 minEp. 4