Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cross compilation support (configurable destinations) #1098

Merged
merged 1 commit into from
Apr 25, 2017

Conversation

weissi
Copy link
Contributor

@weissi weissi commented Apr 19, 2017

General

This adds experimental support for cross compilation or more precisely configurable destinations for binaries to SwiftPM. The basic idea is that you hand a JSON file in the format described below to SwiftPM (ie. swift build --destination my-destination.json). SwiftPM will then invoke the swiftc/clang with the appropriate arguments. The --destination switch is optional and if omitted SwiftPM will use the destination as appropriate for the host OS as it previously did.

destination.json File Format

{
    "version": 1,
    "sdk": <path to the SDK for the target platform: String>,
    "toolchain-bin-dir": <path to the toolchain's bin dir: String>,
    "target": <LLVM target triple: String>,
    "extra-cc-flags": <extra C compiler arguments: [String]>,
    "extra-swiftc-flags": <extra Swift compiler arguments: [String]>,
    "dynamic-library-extension": <extension of dynamic library files: String>,
    "extra-cpp-flags": <extra C++ compiler flags: [String]>
}

Example: compile for macOS on macOS

{
    "version": 1,
    "sdk": "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/",
    "toolchain-bin-dir": "/Library/Developer/Toolchains/swift-3.1-RELEASE.xctoolchain/usr/bin",
    "target": "x86_64-apple-macosx10.10",
    "extra-cc-flags": [
        "-arch", "x86_64",
        "-mmacosx-version-min=10.10"
    ],
    "extra-swiftc-flags": [],
    "extra-cpp-flags": ["-lc++"],
    "dynamic-library-extension": "dylib"
}

Example: compile for Ubuntu Linux on macOS (SDK required)

{
    "version": 1,
    "sdk": "/Users/johannes/cross-toolchain/ubuntu-xenial.sdk",
    "toolchain-bin-dir": "/Users/johannes/cross-toolchain/swift.xctoolchain/usr/bin",
    "target": "linux-unknown-x86_64",
    "dynamic-library-extension": "so",
    "extra-cc-flags": [
        "-fPIC"
    ],
    "extra-swiftc-flags": [
        "-use-ld=gold"
    ],
    "extra-cpp-flags": ["-lstdc++"]
}

Some Words About Cross Compilation

To cross compile a binary, you will need a cross compilation toolchain which consists of the toolchain itself and an SDK. For example compiling an iPhone binary from your Mac will use /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk or similar. If you want to compile a Swift binary for say Ubuntu Xenial on your Mac, you'll need the following pieces of software

  • a compiler being able to cross compile ✅ (swiftc and clang are able to do that)
  • the basic Swift libraries (like libswiftCore) for Ubuntu ✅ (that's part of the Swift distribution for Ubuntu)
  • an SDK for Ubuntu Linux ✅ (that can be assembled from the .deb packages available from Ubuntu)
  • an ELF linker that runs on macOS ✅ (the gold linker from the GNU binutils can be compiled on macOS)

In other words, all the pieces of software are available for free online, they just need to be assembled in the correct way. An example script to do that all for Ubuntu Xenial can be found in a separate PR.

@ddunbar
Copy link
Contributor

ddunbar commented Apr 19, 2017

@swift-ci please smoke test

@@ -57,6 +57,15 @@ public enum Result<Value, ErrorType: Swift.Error> {
}
}

public func flatMap<U>(_ transform: (Value) -> Result<U, ErrorType>) -> Result<U, ErrorType> {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This method needs doc comments and tests. Can you propose this as a separate change?

Copy link
Contributor Author

@weissi weissi Apr 19, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done (it's a separate commit so far, @aciidb0mb3r want me to make a separate PR?)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Separate PR would be nice but commit sounds fine too!

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

here you go: #1100

@@ -33,5 +33,7 @@ public class ToolOptions {
/// Disables sandboxing when executing subprocesses.
public var shouldDisableSandbox = false

public var destinationDescriptionPath: AbsolutePath?
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please add doc comments.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

@@ -149,6 +149,10 @@ public class SwiftTool<Options: ToolOptions> {
option: parser.add(option: "--experimental-use-v4-manifest", kind: Bool.self),
to: { _, on in Versioning.simulateVersionFour = on })

binder.bind(
option: parser.add(option: "--destination", kind: PathArgument.self),
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unless we want this to be hidden option, we should add help text.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I thought we'd add it as an experimental feature first but happy to add text. @aciidb0mb3r / @ddunbar any opinions?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, then no help text needed.

@@ -82,7 +69,7 @@ public struct UserToolchain: Toolchain, ManifestResourceProvider {
}

// Look for llbuild in bin dir.
llbuild = binDir.appending(component: "swift-build-tool")
llbuild = lookup(fromEnv: "LLBUILD_EXEC") ?? binDir.appending(component: "swift-build-tool")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this needed for this patch?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

no, removed

@@ -234,7 +234,7 @@ public final class ManifestLoader: ManifestLoaderProtocol {
// and validates it.

// Compute the path to runtime we need to load.
let runtimePath = resources.libDir.appending(component: String(manifestVersion.rawValue)).asString
let runtimePath = resources.libDir.asString
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This shouldn't be changed.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

}
}

public struct Destination {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks like something which should be a part of toolchain and not each target and product.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@aciidb0mb3r the problem is that Product requires the shared library extension which is calculated from the Destination. So I just wired the Destination through everything. Prefer me to wire through the extension only or the UserToolchain?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, for outname property? I think we should just lift that into the Build module. Doing that should allow keeping the destination completely inside the toolchain.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done


public var extraCCFlags: [String]

public var extraSwiftCFlags: [String]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can use let, right?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes, but it's a value type so changes only affect the very local variable. I'm happy to make it let but don't think it makes much difference because it's a struct. Let me know what you think.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think its better to start with let unless you really need var because it is part of the API. If something is let, clients won't have a question "what happens if I change the value". It also helps in case you need to convert the struct to a class.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

cool, changed.

Copy link
Contributor

@aciidgh aciidgh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think my major feedback is, moving the destination to be part of the UserToolchain and not have it per target and product. Also, please add some brief Swift doc comments where applicable.

@weissi weissi force-pushed the jw-cross-compilation branch from f18c819 to fe75f07 Compare April 19, 2017 16:39
@weissi
Copy link
Contributor Author

weissi commented Apr 19, 2017

thanks very much @aciidb0mb3r for your review. Will work on the bigger items tomorrow, fixed some smaller ones.

@weissi weissi force-pushed the jw-cross-compilation branch 8 times, most recently from 889b7f6 to 455b06e Compare April 20, 2017 13:58
@weissi
Copy link
Contributor Author

weissi commented Apr 20, 2017

hey @aciidb0mb3r I now moved Destination from the PackageModel module into the Build module and took the outname out into the Build module too. Is this roughly what you were thinking?

@weissi
Copy link
Contributor Author

weissi commented Apr 20, 2017

@aciidb0mb3r I also added a new property "extra-cpp-flags" for flags for C++, I discovered earlier that that was still handled through #if os(macOS) which is bad...

@@ -268,6 +268,8 @@ public final class PackageBuilder {
}
}

private let outputFileName: (String, PackageModel.ProductType) -> RelativePath
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The package builder is the convention system that loads a package from disk, it doesn't need to care about the output file name. We should move the computation of output path/name into the class ProductBuildDescription (It is inside BuildPlan.swift file).

@@ -785,7 +789,8 @@ public final class PackageBuilder {
sources: Sources(paths: swiftSources, root: potentialModule.path),
dependencies: moduleDependencies,
productDependencies: productDeps,
swiftVersion: try swiftVersion())
swiftVersion: try swiftVersion()
)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please avoid the diffs that do not contribute any functionality.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sorry about that, didn't spot those, removed.

type: .systemModule,
sources: sources,
dependencies: []
)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These diffs are not required, right?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sorry about that, didn't spot those, removed.

@@ -41,6 +41,9 @@ public class Product {
/// The name of the product.
public let name: String

/// The output file name of the product.
public let outname: RelativePath
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As I commented above, we don't need to have the outname inside the target. It can be a build time thing.

binDir = AbsolutePath(CommandLine.arguments[0], relativeTo: currentWorkingDirectory).parentDirectory
#endif
toolchain = try! UserToolchain(binDir)
toolchain = try! UserToolchain(destination: Destination.hostDestination())
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We do these special things here to run tests inside Xcode, please ensure the tests work inside Xcode too by generating a project using Utilities/bootstrap --generate-xcodeproj

}
}

public struct Destination {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please add a short description about this structure.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done


public let extraSwiftCFlags: [String]

public let extraCPPFlags: [String]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please add a doc comment for each property

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

let sdkPlatformFrameworksPath = AbsolutePath(platformPath).appending(components: "Developer", "Library", "Frameworks")

let devDirPath = try Process.checkNonZeroExit(args: "xcode-select", "-p").chomp()
let sysFWPath = AbsolutePath(sdkPath).appending(component: "System")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please avoid abbreviated variable names. We try to follow Swift design guidelines https://swift.org/documentation/api-design-guidelines/

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

@aciidgh aciidgh force-pushed the jw-cross-compilation branch 3 times, most recently from 76572bc to 65d4811 Compare April 24, 2017 18:50
@weissi weissi force-pushed the jw-cross-compilation branch from 65d4811 to 4218b22 Compare April 25, 2017 11:04
@aciidgh
Copy link
Contributor

aciidgh commented Apr 25, 2017

@swift-ci please smoke test

@aciidgh
Copy link
Contributor

aciidgh commented Apr 25, 2017

@swift-ci please smoke test

2 similar comments
@aciidgh
Copy link
Contributor

aciidgh commented Apr 25, 2017

@swift-ci please smoke test

@aciidgh
Copy link
Contributor

aciidgh commented Apr 25, 2017

@swift-ci please smoke test

@weissi weissi force-pushed the jw-cross-compilation branch 2 times, most recently from c0d307e to 51c05a6 Compare April 25, 2017 11:44
@aciidgh
Copy link
Contributor

aciidgh commented Apr 25, 2017

@swift-ci please smoke test

1 similar comment
@aciidgh
Copy link
Contributor

aciidgh commented Apr 25, 2017

@swift-ci please smoke test

@weissi weissi force-pushed the jw-cross-compilation branch from 51c05a6 to a45aa0e Compare April 25, 2017 13:38
@aciidgh
Copy link
Contributor

aciidgh commented Apr 25, 2017

@swift-ci please smoke test

1 similar comment
@aciidgh
Copy link
Contributor

aciidgh commented Apr 25, 2017

@swift-ci please smoke test

@weissi weissi force-pushed the jw-cross-compilation branch from a45aa0e to 23c1611 Compare April 25, 2017 13:59
@aciidgh
Copy link
Contributor

aciidgh commented Apr 25, 2017

@swift-ci please smoke test

1 similar comment
@aciidgh
Copy link
Contributor

aciidgh commented Apr 25, 2017

@swift-ci please smoke test

@aciidgh aciidgh merged commit ff9879d into swiftlang:master Apr 25, 2017
jpsim added a commit to swiftunwrapped/swiftunwrapped.github.io that referenced this pull request Nov 15, 2020
diff --git a/01631c29.md b/01631c29.md
index 9eb43fc..92adfb7 100644
--- a/01631c29.md
+++ b/01631c29.md
@@ -9,13 +9,13 @@ permalink: /episodes/01631c29/
 * 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:
- 01631c29.md 0168727e.md 040a84c3.md 074b618b.md 083dd5d3.md 0bd2405c.md 107053e7.md 115f3199.md 11b58ca9.md 1DMLbJg5.md 1f861221.md 1f9301c7.md 1ff40107.md 20d4b31e.md 22a6c652.md 22af29a8.md 22df931e.md 23334b91.md 23be3a4e.md 24e5304c.md 254085cb.md 259160c9.md 2b098627.md 2b182911.md 2cdb62f6.md 30f2577f.md 324c2e91.md 339bc516.md 35316396.md 3fb2a021.md 3fdcca35.md 409cbdc5.md 41e38050.md 4367aeeb.md 451cc858.md 4e7ad642.md 502c0857.md 5375fa65.md 5b33cc85.md 5ebe2061.md 60637761.md 620464c0.md 62272338.md 6d5d06fc.md 6d603539.md 6eeb2070.md 7748396d.md 77984302.md 791e3bc9.md 7e0227d3.md 8279a6e2.md 839af3db.md 852dd010.md 8ce32daf.md 8f07264c.md 901ba4e4.md 90f863bd.md 9337cd60.md 96773dee.md 96f9f099.md 983844da.md 99a0c58b.md 9d6eaee7.md DasaMAiV.md EDeUfIq2.md Gemfile Gemfile.lock LICENSE Makefile README.md _config.yml a8736bc8.md aC5JVWoo.md aef515ab.md b1715d76.md b452f159.md b850afa9.md c7b4b5ed.md c81902b1.md cef2e6bc.md d21a251a.md d4af5de6.md d6b421a4.md d725b7da.md d80e524d.md d98ccfc2.md de7f2c8e.md e3bbe72b.md e50ce5a7.md e682713a.md e6f9d8e6.md e7074e80.md f3cf9a35.md f57eb2a3.md fc6058df.md fdbc74ca.md fxMk4ipF.md img index.md scripts Why String.CharacterView is not a MutableCollection: https://oleb.net/blog/2017/02/why-is-string-characterview-not-a-mutablecollection/
- 01631c29.md 0168727e.md 040a84c3.md 074b618b.md 083dd5d3.md 0bd2405c.md 107053e7.md 115f3199.md 11b58ca9.md 1DMLbJg5.md 1f861221.md 1f9301c7.md 1ff40107.md 20d4b31e.md 22a6c652.md 22af29a8.md 22df931e.md 23334b91.md 23be3a4e.md 24e5304c.md 254085cb.md 259160c9.md 2b098627.md 2b182911.md 2cdb62f6.md 30f2577f.md 324c2e91.md 339bc516.md 35316396.md 3fb2a021.md 3fdcca35.md 409cbdc5.md 41e38050.md 4367aeeb.md 451cc858.md 4e7ad642.md 502c0857.md 5375fa65.md 5b33cc85.md 5ebe2061.md 60637761.md 620464c0.md 62272338.md 6d5d06fc.md 6d603539.md 6eeb2070.md 7748396d.md 77984302.md 791e3bc9.md 7e0227d3.md 8279a6e2.md 839af3db.md 852dd010.md 8ce32daf.md 8f07264c.md 901ba4e4.md 90f863bd.md 9337cd60.md 96773dee.md 96f9f099.md 983844da.md 99a0c58b.md 9d6eaee7.md DasaMAiV.md EDeUfIq2.md Gemfile Gemfile.lock LICENSE Makefile README.md _config.yml a8736bc8.md aC5JVWoo.md aef515ab.md b1715d76.md b452f159.md b850afa9.md c7b4b5ed.md c81902b1.md cef2e6bc.md d21a251a.md d4af5de6.md d6b421a4.md d725b7da.md d80e524d.md d98ccfc2.md de7f2c8e.md e3bbe72b.md e50ce5a7.md e682713a.md e6f9d8e6.md e7074e80.md f3cf9a35.md f57eb2a3.md fc6058df.md fdbc74ca.md fxMk4ipF.md img index.md scripts One for the Unicode Nerds: https://oleb.net/blog/2014/06/one-for-the-unicode-nerds/
+    * 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://www.objc.io/issues/9-strings/unicode/
 * Unsafe API proposal: https://github.com/apple/swift/pull/7479
 * SipHash:
- 01631c29.md 0168727e.md 040a84c3.md 074b618b.md 083dd5d3.md 0bd2405c.md 107053e7.md 115f3199.md 11b58ca9.md 1DMLbJg5.md 1f861221.md 1f9301c7.md 1ff40107.md 20d4b31e.md 22a6c652.md 22af29a8.md 22df931e.md 23334b91.md 23be3a4e.md 24e5304c.md 254085cb.md 259160c9.md 2b098627.md 2b182911.md 2cdb62f6.md 30f2577f.md 324c2e91.md 339bc516.md 35316396.md 3fb2a021.md 3fdcca35.md 409cbdc5.md 41e38050.md 4367aeeb.md 451cc858.md 4e7ad642.md 502c0857.md 5375fa65.md 5b33cc85.md 5ebe2061.md 60637761.md 620464c0.md 62272338.md 6d5d06fc.md 6d603539.md 6eeb2070.md 7748396d.md 77984302.md 791e3bc9.md 7e0227d3.md 8279a6e2.md 839af3db.md 852dd010.md 8ce32daf.md 8f07264c.md 901ba4e4.md 90f863bd.md 9337cd60.md 96773dee.md 96f9f099.md 983844da.md 99a0c58b.md 9d6eaee7.md DasaMAiV.md EDeUfIq2.md Gemfile Gemfile.lock LICENSE Makefile README.md _config.yml a8736bc8.md aC5JVWoo.md aef515ab.md b1715d76.md b452f159.md b850afa9.md c7b4b5ed.md c81902b1.md cef2e6bc.md d21a251a.md d4af5de6.md d6b421a4.md d725b7da.md d80e524d.md d98ccfc2.md de7f2c8e.md e3bbe72b.md e50ce5a7.md e682713a.md e6f9d8e6.md e7074e80.md f3cf9a35.md f57eb2a3.md fc6058df.md fdbc74ca.md fxMk4ipF.md img index.md scripts https://github.com/apple/swift/blob/master/stdlib/public/core/SipHash.swift.gyb
- 01631c29.md 0168727e.md 040a84c3.md 074b618b.md 083dd5d3.md 0bd2405c.md 107053e7.md 115f3199.md 11b58ca9.md 1DMLbJg5.md 1f861221.md 1f9301c7.md 1ff40107.md 20d4b31e.md 22a6c652.md 22af29a8.md 22df931e.md 23334b91.md 23be3a4e.md 24e5304c.md 254085cb.md 259160c9.md 2b098627.md 2b182911.md 2cdb62f6.md 30f2577f.md 324c2e91.md 339bc516.md 35316396.md 3fb2a021.md 3fdcca35.md 409cbdc5.md 41e38050.md 4367aeeb.md 451cc858.md 4e7ad642.md 502c0857.md 5375fa65.md 5b33cc85.md 5ebe2061.md 60637761.md 620464c0.md 62272338.md 6d5d06fc.md 6d603539.md 6eeb2070.md 7748396d.md 77984302.md 791e3bc9.md 7e0227d3.md 8279a6e2.md 839af3db.md 852dd010.md 8ce32daf.md 8f07264c.md 901ba4e4.md 90f863bd.md 9337cd60.md 96773dee.md 96f9f099.md 983844da.md 99a0c58b.md 9d6eaee7.md DasaMAiV.md EDeUfIq2.md Gemfile Gemfile.lock LICENSE Makefile README.md _config.yml a8736bc8.md aC5JVWoo.md aef515ab.md b1715d76.md b452f159.md b850afa9.md c7b4b5ed.md c81902b1.md cef2e6bc.md d21a251a.md d4af5de6.md d6b421a4.md d725b7da.md d80e524d.md d98ccfc2.md de7f2c8e.md e3bbe72b.md e50ce5a7.md e682713a.md e6f9d8e6.md e7074e80.md f3cf9a35.md f57eb2a3.md fc6058df.md fdbc74ca.md fxMk4ipF.md img index.md scripts https://github.com/apple/swift/pull/4621
+    * https://github.com/apple/swift/blob/master/stdlib/public/core/SipHash.swift.gyb
+    * https://github.com/apple/swift/pull/4621

 ### Thank You

diff --git a/083dd5d3.md b/083dd5d3.md
index ddaae16..abd2d6a 100644
--- a/083dd5d3.md
+++ b/083dd5d3.md
@@ -19,19 +19,19 @@ In this episode, we cover:
 ---

 * Dollar Sign
- 01631c29.md 0168727e.md 040a84c3.md 074b618b.md 083dd5d3.md 0bd2405c.md 107053e7.md 115f3199.md 11b58ca9.md 1DMLbJg5.md 1f861221.md 1f9301c7.md 1ff40107.md 20d4b31e.md 22a6c652.md 22af29a8.md 22df931e.md 23334b91.md 23be3a4e.md 24e5304c.md 254085cb.md 259160c9.md 2b098627.md 2b182911.md 2cdb62f6.md 30f2577f.md 324c2e91.md 339bc516.md 35316396.md 3fb2a021.md 3fdcca35.md 409cbdc5.md 41e38050.md 4367aeeb.md 451cc858.md 4e7ad642.md 502c0857.md 5375fa65.md 5b33cc85.md 5ebe2061.md 60637761.md 620464c0.md 62272338.md 6d5d06fc.md 6d603539.md 6eeb2070.md 7748396d.md 77984302.md 791e3bc9.md 7e0227d3.md 8279a6e2.md 839af3db.md 852dd010.md 8ce32daf.md 8f07264c.md 901ba4e4.md 90f863bd.md 9337cd60.md 96773dee.md 96f9f099.md 983844da.md 99a0c58b.md 9d6eaee7.md DasaMAiV.md EDeUfIq2.md Gemfile Gemfile.lock LICENSE Makefile README.md _config.yml a8736bc8.md aC5JVWoo.md aef515ab.md b1715d76.md b452f159.md b850afa9.md c7b4b5ed.md c81902b1.md cef2e6bc.md d21a251a.md d4af5de6.md d6b421a4.md d725b7da.md d80e524d.md d98ccfc2.md de7f2c8e.md e3bbe72b.md e50ce5a7.md e682713a.md e6f9d8e6.md e7074e80.md f3cf9a35.md f57eb2a3.md fc6058df.md fdbc74ca.md fxMk4ipF.md img index.md scripts https://github.com/apple/swift-evolution/blob/master/proposals/0144-allow-single-dollar-sign-as-valid-identifier.md
+    * https://github.com/apple/swift-evolution/blob/master/proposals/0144-allow-single-dollar-sign-as-valid-identifier.md
 * Swift Weekly
- 01631c29.md 0168727e.md 040a84c3.md 074b618b.md 083dd5d3.md 0bd2405c.md 107053e7.md 115f3199.md 11b58ca9.md 1DMLbJg5.md 1f861221.md 1f9301c7.md 1ff40107.md 20d4b31e.md 22a6c652.md 22af29a8.md 22df931e.md 23334b91.md 23be3a4e.md 24e5304c.md 254085cb.md 259160c9.md 2b098627.md 2b182911.md 2cdb62f6.md 30f2577f.md 324c2e91.md 339bc516.md 35316396.md 3fb2a021.md 3fdcca35.md 409cbdc5.md 41e38050.md 4367aeeb.md 451cc858.md 4e7ad642.md 502c0857.md 5375fa65.md 5b33cc85.md 5ebe2061.md 60637761.md 620464c0.md 62272338.md 6d5d06fc.md 6d603539.md 6eeb2070.md 7748396d.md 77984302.md 791e3bc9.md 7e0227d3.md 8279a6e2.md 839af3db.md 852dd010.md 8ce32daf.md 8f07264c.md 901ba4e4.md 90f863bd.md 9337cd60.md 96773dee.md 96f9f099.md 983844da.md 99a0c58b.md 9d6eaee7.md DasaMAiV.md EDeUfIq2.md Gemfile Gemfile.lock LICENSE Makefile README.md _config.yml a8736bc8.md aC5JVWoo.md aef515ab.md b1715d76.md b452f159.md b850afa9.md c7b4b5ed.md c81902b1.md cef2e6bc.md d21a251a.md d4af5de6.md d6b421a4.md d725b7da.md d80e524d.md d98ccfc2.md de7f2c8e.md e3bbe72b.md e50ce5a7.md e682713a.md e6f9d8e6.md e7074e80.md f3cf9a35.md f57eb2a3.md fc6058df.md fdbc74ca.md fxMk4ipF.md img index.md scripts Issue 39, https://swiftweekly.github.io/issue-39/
- 01631c29.md 0168727e.md 040a84c3.md 074b618b.md 083dd5d3.md 0bd2405c.md 107053e7.md 115f3199.md 11b58ca9.md 1DMLbJg5.md 1f861221.md 1f9301c7.md 1ff40107.md 20d4b31e.md 22a6c652.md 22af29a8.md 22df931e.md 23334b91.md 23be3a4e.md 24e5304c.md 254085cb.md 259160c9.md 2b098627.md 2b182911.md 2cdb62f6.md 30f2577f.md 324c2e91.md 339bc516.md 35316396.md 3fb2a021.md 3fdcca35.md 409cbdc5.md 41e38050.md 4367aeeb.md 451cc858.md 4e7ad642.md 502c0857.md 5375fa65.md 5b33cc85.md 5ebe2061.md 60637761.md 620464c0.md 62272338.md 6d5d06fc.md 6d603539.md 6eeb2070.md 7748396d.md 77984302.md 791e3bc9.md 7e0227d3.md 8279a6e2.md 839af3db.md 852dd010.md 8ce32daf.md 8f07264c.md 901ba4e4.md 90f863bd.md 9337cd60.md 96773dee.md 96f9f099.md 983844da.md 99a0c58b.md 9d6eaee7.md DasaMAiV.md EDeUfIq2.md Gemfile Gemfile.lock LICENSE Makefile README.md _config.yml a8736bc8.md aC5JVWoo.md aef515ab.md b1715d76.md b452f159.md b850afa9.md c7b4b5ed.md c81902b1.md cef2e6bc.md d21a251a.md d4af5de6.md d6b421a4.md d725b7da.md d80e524d.md d98ccfc2.md de7f2c8e.md e3bbe72b.md e50ce5a7.md e682713a.md e6f9d8e6.md e7074e80.md f3cf9a35.md f57eb2a3.md fc6058df.md fdbc74ca.md fxMk4ipF.md img index.md scripts Slava Pestov changed variadic closure arguments to be @escaping by default, which is technically a source breaking change, but only for invalid code.
- 01631c29.md 0168727e.md 040a84c3.md 074b618b.md 083dd5d3.md 0bd2405c.md 107053e7.md 115f3199.md 11b58ca9.md 1DMLbJg5.md 1f861221.md 1f9301c7.md 1ff40107.md 20d4b31e.md 22a6c652.md 22af29a8.md 22df931e.md 23334b91.md 23be3a4e.md 24e5304c.md 254085cb.md 259160c9.md 2b098627.md 2b182911.md 2cdb62f6.md 30f2577f.md 324c2e91.md 339bc516.md 35316396.md 3fb2a021.md 3fdcca35.md 409cbdc5.md 41e38050.md 4367aeeb.md 451cc858.md 4e7ad642.md 502c0857.md 5375fa65.md 5b33cc85.md 5ebe2061.md 60637761.md 620464c0.md 62272338.md 6d5d06fc.md 6d603539.md 6eeb2070.md 7748396d.md 77984302.md 791e3bc9.md 7e0227d3.md 8279a6e2.md 839af3db.md 852dd010.md 8ce32daf.md 8f07264c.md 901ba4e4.md 90f863bd.md 9337cd60.md 96773dee.md 96f9f099.md 983844da.md 99a0c58b.md 9d6eaee7.md DasaMAiV.md EDeUfIq2.md Gemfile Gemfile.lock LICENSE Makefile README.md _config.yml a8736bc8.md aC5JVWoo.md aef515ab.md b1715d76.md b452f159.md b850afa9.md c7b4b5ed.md c81902b1.md cef2e6bc.md d21a251a.md d4af5de6.md d6b421a4.md d725b7da.md d80e524d.md d98ccfc2.md de7f2c8e.md e3bbe72b.md e50ce5a7.md e682713a.md e6f9d8e6.md e7074e80.md f3cf9a35.md f57eb2a3.md fc6058df.md fdbc74ca.md fxMk4ipF.md img index.md scripts Issue 42, https://swiftweekly.github.io/issue-42/
- 01631c29.md 0168727e.md 040a84c3.md 074b618b.md 083dd5d3.md 0bd2405c.md 107053e7.md 115f3199.md 11b58ca9.md 1DMLbJg5.md 1f861221.md 1f9301c7.md 1ff40107.md 20d4b31e.md 22a6c652.md 22af29a8.md 22df931e.md 23334b91.md 23be3a4e.md 24e5304c.md 254085cb.md 259160c9.md 2b098627.md 2b182911.md 2cdb62f6.md 30f2577f.md 324c2e91.md 339bc516.md 35316396.md 3fb2a021.md 3fdcca35.md 409cbdc5.md 41e38050.md 4367aeeb.md 451cc858.md 4e7ad642.md 502c0857.md 5375fa65.md 5b33cc85.md 5ebe2061.md 60637761.md 620464c0.md 62272338.md 6d5d06fc.md 6d603539.md 6eeb2070.md 7748396d.md 77984302.md 791e3bc9.md 7e0227d3.md 8279a6e2.md 839af3db.md 852dd010.md 8ce32daf.md 8f07264c.md 901ba4e4.md 90f863bd.md 9337cd60.md 96773dee.md 96f9f099.md 983844da.md 99a0c58b.md 9d6eaee7.md DasaMAiV.md EDeUfIq2.md Gemfile Gemfile.lock LICENSE Makefile README.md _config.yml a8736bc8.md aC5JVWoo.md aef515ab.md b1715d76.md b452f159.md b850afa9.md c7b4b5ed.md c81902b1.md cef2e6bc.md d21a251a.md d4af5de6.md d6b421a4.md d725b7da.md d80e524d.md d98ccfc2.md de7f2c8e.md e3bbe72b.md e50ce5a7.md e682713a.md e6f9d8e6.md e7074e80.md f3cf9a35.md f57eb2a3.md fc6058df.md fdbc74ca.md fxMk4ipF.md img index.md scripts Robert Widmann merged changes to reject standalone $ as identifiers, which were accidentally accepted as valid.
- 01631c29.md 0168727e.md 040a84c3.md 074b618b.md 083dd5d3.md 0bd2405c.md 107053e7.md 115f3199.md 11b58ca9.md 1DMLbJg5.md 1f861221.md 1f9301c7.md 1ff40107.md 20d4b31e.md 22a6c652.md 22af29a8.md 22df931e.md 23334b91.md 23be3a4e.md 24e5304c.md 254085cb.md 259160c9.md 2b098627.md 2b182911.md 2cdb62f6.md 30f2577f.md 324c2e91.md 339bc516.md 35316396.md 3fb2a021.md 3fdcca35.md 409cbdc5.md 41e38050.md 4367aeeb.md 451cc858.md 4e7ad642.md 502c0857.md 5375fa65.md 5b33cc85.md 5ebe2061.md 60637761.md 620464c0.md 62272338.md 6d5d06fc.md 6d603539.md 6eeb2070.md 7748396d.md 77984302.md 791e3bc9.md 7e0227d3.md 8279a6e2.md 839af3db.md 852dd010.md 8ce32daf.md 8f07264c.md 901ba4e4.md 90f863bd.md 9337cd60.md 96773dee.md 96f9f099.md 983844da.md 99a0c58b.md 9d6eaee7.md DasaMAiV.md EDeUfIq2.md Gemfile Gemfile.lock LICENSE Makefile README.md _config.yml a8736bc8.md aC5JVWoo.md aef515ab.md b1715d76.md b452f159.md b850afa9.md c7b4b5ed.md c81902b1.md cef2e6bc.md d21a251a.md d4af5de6.md d6b421a4.md d725b7da.md d80e524d.md d98ccfc2.md de7f2c8e.md e3bbe72b.md e50ce5a7.md e682713a.md e6f9d8e6.md e7074e80.md f3cf9a35.md f57eb2a3.md fc6058df.md fdbc74ca.md fxMk4ipF.md img index.md scripts Issue 43, https://swiftweekly.github.io/issue-43/
- 01631c29.md 0168727e.md 040a84c3.md 074b618b.md 083dd5d3.md 0bd2405c.md 107053e7.md 115f3199.md 11b58ca9.md 1DMLbJg5.md 1f861221.md 1f9301c7.md 1ff40107.md 20d4b31e.md 22a6c652.md 22af29a8.md 22df931e.md 23334b91.md 23be3a4e.md 24e5304c.md 254085cb.md 259160c9.md 2b098627.md 2b182911.md 2cdb62f6.md 30f2577f.md 324c2e91.md 339bc516.md 35316396.md 3fb2a021.md 3fdcca35.md 409cbdc5.md 41e38050.md 4367aeeb.md 451cc858.md 4e7ad642.md 502c0857.md 5375fa65.md 5b33cc85.md 5ebe2061.md 60637761.md 620464c0.md 62272338.md 6d5d06fc.md 6d603539.md 6eeb2070.md 7748396d.md 77984302.md 791e3bc9.md 7e0227d3.md 8279a6e2.md 839af3db.md 852dd010.md 8ce32daf.md 8f07264c.md 901ba4e4.md 90f863bd.md 9337cd60.md 96773dee.md 96f9f099.md 983844da.md 99a0c58b.md 9d6eaee7.md DasaMAiV.md EDeUfIq2.md Gemfile Gemfile.lock LICENSE Makefile README.md _config.yml a8736bc8.md aC5JVWoo.md aef515ab.md b1715d76.md b452f159.md b850afa9.md c7b4b5ed.md c81902b1.md cef2e6bc.md d21a251a.md d4af5de6.md d6b421a4.md d725b7da.md d80e524d.md d98ccfc2.md de7f2c8e.md e3bbe72b.md e50ce5a7.md e682713a.md e6f9d8e6.md e7074e80.md f3cf9a35.md f57eb2a3.md fc6058df.md fdbc74ca.md fxMk4ipF.md img index.md scripts Rintaro Ishizaki has submitted a pull request to fix SR-2843. In type parsing, P1 & P2.Type (new protocol syntax) was incorrect.
- 01631c29.md 0168727e.md 040a84c3.md 074b618b.md 083dd5d3.md 0bd2405c.md 107053e7.md 115f3199.md 11b58ca9.md 1DMLbJg5.md 1f861221.md 1f9301c7.md 1ff40107.md 20d4b31e.md 22a6c652.md 22af29a8.md 22df931e.md 23334b91.md 23be3a4e.md 24e5304c.md 254085cb.md 259160c9.md 2b098627.md 2b182911.md 2cdb62f6.md 30f2577f.md 324c2e91.md 339bc516.md 35316396.md 3fb2a021.md 3fdcca35.md 409cbdc5.md 41e38050.md 4367aeeb.md 451cc858.md 4e7ad642.md 502c0857.md 5375fa65.md 5b33cc85.md 5ebe2061.md 60637761.md 620464c0.md 62272338.md 6d5d06fc.md 6d603539.md 6eeb2070.md 7748396d.md 77984302.md 791e3bc9.md 7e0227d3.md 8279a6e2.md 839af3db.md 852dd010.md 8ce32daf.md 8f07264c.md 901ba4e4.md 90f863bd.md 9337cd60.md 96773dee.md 96f9f099.md 983844da.md 99a0c58b.md 9d6eaee7.md DasaMAiV.md EDeUfIq2.md Gemfile Gemfile.lock LICENSE Makefile README.md _config.yml a8736bc8.md aC5JVWoo.md aef515ab.md b1715d76.md b452f159.md b850afa9.md c7b4b5ed.md c81902b1.md cef2e6bc.md d21a251a.md d4af5de6.md d6b421a4.md d725b7da.md d80e524d.md d98ccfc2.md de7f2c8e.md e3bbe72b.md e50ce5a7.md e682713a.md e6f9d8e6.md e7074e80.md f3cf9a35.md f57eb2a3.md fc6058df.md fdbc74ca.md fxMk4ipF.md img index.md scripts DougGregor fixed an unintentional source-breaking change from Swift 3 regarding implicitly-unwrapped optionals and type inference.
+    * Issue 39, https://swiftweekly.github.io/issue-39/
+        * Slava Pestov changed variadic closure arguments to be @escaping by default, which is technically a source breaking change, but only for invalid code.
+    * Issue 42, https://swiftweekly.github.io/issue-42/
+        * Robert Widmann merged changes to reject standalone $ as identifiers, which were accidentally accepted as valid.
+    * Issue 43, https://swiftweekly.github.io/issue-43/
+        * Rintaro Ishizaki has submitted a pull request to fix SR-2843. In type parsing, P1 & P2.Type (new protocol syntax) was incorrect.
+        * DougGregor fixed an unintentional source-breaking change from Swift 3 regarding implicitly-unwrapped optionals and type inference.
 * Minor source breaking change for sugared types: https://github.com/apple/swift/commit/4ebac86895383ad15e34de3671c6f423e96cfc98
 * Running the entire test suite with version 3 or 4: https://github.com/apple/swift/commit/1fcd7d725d1c23a27d4ea31e34e20f182e0b8c37
 * Ignored Labels for single-"Any"-argument functions
- 01631c29.md 0168727e.md 040a84c3.md 074b618b.md 083dd5d3.md 0bd2405c.md 107053e7.md 115f3199.md 11b58ca9.md 1DMLbJg5.md 1f861221.md 1f9301c7.md 1ff40107.md 20d4b31e.md 22a6c652.md 22af29a8.md 22df931e.md 23334b91.md 23be3a4e.md 24e5304c.md 254085cb.md 259160c9.md 2b098627.md 2b182911.md 2cdb62f6.md 30f2577f.md 324c2e91.md 339bc516.md 35316396.md 3fb2a021.md 3fdcca35.md 409cbdc5.md 41e38050.md 4367aeeb.md 451cc858.md 4e7ad642.md 502c0857.md 5375fa65.md 5b33cc85.md 5ebe2061.md 60637761.md 620464c0.md 62272338.md 6d5d06fc.md 6d603539.md 6eeb2070.md 7748396d.md 77984302.md 791e3bc9.md 7e0227d3.md 8279a6e2.md 839af3db.md 852dd010.md 8ce32daf.md 8f07264c.md 901ba4e4.md 90f863bd.md 9337cd60.md 96773dee.md 96f9f099.md 983844da.md 99a0c58b.md 9d6eaee7.md DasaMAiV.md EDeUfIq2.md Gemfile Gemfile.lock LICENSE Makefile README.md _config.yml a8736bc8.md aC5JVWoo.md aef515ab.md b1715d76.md b452f159.md b850afa9.md c7b4b5ed.md c81902b1.md cef2e6bc.md d21a251a.md d4af5de6.md d6b421a4.md d725b7da.md d80e524d.md d98ccfc2.md de7f2c8e.md e3bbe72b.md e50ce5a7.md e682713a.md e6f9d8e6.md e7074e80.md f3cf9a35.md f57eb2a3.md fc6058df.md fdbc74ca.md fxMk4ipF.md img index.md scripts https://github.com/apple/swift/commit/30c4235193b64050f8110ef5598c7efb4501e0da
+    * https://github.com/apple/swift/commit/30c4235193b64050f8110ef5598c7efb4501e0da
 * Xcode 8.2 last release for Swift 2.3!

 ---
diff --git a/107053e7.md b/107053e7.md
index 8ba1e0e..01b3252 100644
--- a/107053e7.md
+++ b/107053e7.md
@@ -9,12 +9,12 @@ permalink: /episodes/107053e7/
 - Server APIs Project: https://swift.org/server-apis/
 - Server APIs Working Group: https://swift.org/blog/server-api-workgroup/
 - HTTP 0.1.0:
- -
- - https://github.com/swift-server/http/releases/tag/0.1.0
- - Docs: https://swift-server.github.io/http/
+    -
+    - https://github.com/swift-server/http/releases/tag/0.1.0
+    - Docs: https://swift-server.github.io/http/
 - Namespacing discussion:
- - https://lists.swift.org/pipermail/swift-server-dev/Week-of-Mon-20170522/000466.html
- - https://github.com/swift-server/http/pull/7
+    - https://lists.swift.org/pipermail/swift-server-dev/Week-of-Mon-20170522/000466.html
+    - https://github.com/swift-server/http/pull/7
 - Can file issues on the repo, no JIRA
 - Dedicated GitHub org: https://github.com/swift-server
 - Which web framework is the fastest? https://github.com/swift-server/which_is_the_fastest
diff --git a/115f3199.md b/115f3199.md
index 52369ce..6265ef9 100644
--- a/115f3199.md
+++ b/115f3199.md
@@ -11,18 +11,18 @@ There's been a much stronger focus on calling ObjC from Swift than the other way
 ### 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
+    - NS_SWIFT_NAME
+    - NS_SWIFT_UNAVAILABLE
+    - NS_REFINED_FOR_SWIFT
+    - NS_SWIFT_NOTHROW
+    - NS_NOESCAPE
+    - NSEXTENSIBLESTRING_ENUM
+    - Nullability Annotations
+    - Generic Annotations
 - ClangImporter (omit needless words logic lives here)
 - PrintAsObjC
- - Kevin Ballard's PR to include unavailable/deprecated/availability attributes: https://github.com/apple/swift/pull/6480
- - ObjC codegen via string manipulation. Very hackable.
+    - Kevin Ballard's PR to include unavailable/deprecated/availability attributes: https://github.com/apple/swift/pull/6480
+    - ObjC codegen via string manipulation. Very hackable.

 ### Proposals on ObjC Interop

diff --git a/1ff40107.md b/1ff40107.md
index 30094e3..7f73735 100644
--- a/1ff40107.md
+++ b/1ff40107.md
@@ -9,8 +9,8 @@ permalink: /episodes/1ff40107/
 # SE-0166: Swift Archival & Serialization

 - NSCoding:
- - https://developer.apple.com/reference/foundation/nscoding
- - http://nshipster.com/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/

@@ -19,12 +19,12 @@ permalink: /episodes/1ff40107/
 - https://github.com/apple/swift-evolution/blob/master/proposals/0167-swift-encoders.md
 - Semantics of Codable Types in Archives
 - NSValueTransformer
- - https://developer.apple.com/reference/foundation/nsvaluetransformer
- - http://nshipster.com/nsvaluetransformer/
+    - https://developer.apple.com/reference/foundation/nsvaluetransformer
+    - http://nshipster.com/nsvaluetransformer/
 - "In the future, we may add API to allow Swift types to provide an Objective-C class to decode as, effectively allowing for user bridging across archival."
 - Similar to Russ Bishop’s proposal
- - Allow Swift types to provide custom Objective-C representations
- - https://github.com/apple/swift-evolution/blob/master/proposals/0058-objectivecbridgeable.md
+    - Allow Swift types to provide custom Objective-C representations
+    - https://github.com/apple/swift-evolution/blob/master/proposals/0058-objectivecbridgeable.md

 ### Thank You

diff --git a/22a6c652.md b/22a6c652.md
index f9f8e93..6001af5 100644
--- a/22a6c652.md
+++ b/22a6c652.md
@@ -8,9 +8,9 @@ permalink: /episodes/22a6c652/

 - Enable core dumps: `ulimit -c unlimited`
 - Mutating functions require exclusive access:
- - https://twitter.com/simjp/status/928714602937905153
- - "Calling a mutating method on a value type is a write access that lasts for the duration of the method."
- - https://github.com/apple/swift-evolution/blob/master/proposals/0176-enforce-exclusive-access-to-memory.md#proposed-solution
+  - https://twitter.com/simjp/status/928714602937905153
+  - "Calling a mutating method on a value type is a write access that lasts for the duration of the method."
+  - https://github.com/apple/swift-evolution/blob/master/proposals/0176-enforce-exclusive-access-to-memory.md#proposed-solution
 - TSan with SwiftPM: https://twitter.com/simjp/status/929140877540278272
 - Running TSan on CI: https://github.com/realm/SwiftLint/pull/1944
 - WIP Adding first-party support for tsan to SwiftPM: https://github.com/apple/swift-package-manager/pull/1390
diff --git a/259160c9.md b/259160c9.md
index ffcf9cc..865f514 100644
--- a/259160c9.md
+++ b/259160c9.md
@@ -9,8 +9,8 @@ permalink: /episodes/259160c9/
 - 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
+    - https://twitter.com/slava_pestov/status/854490613575700480
+    - https://twitter.com/slava_pestov/status/857382737669271552

 ### Thank You

diff --git a/2b098627.md b/2b098627.md
index dfb54c9..a7f3a6a 100644
--- a/2b098627.md
+++ b/2b098627.md
@@ -11,9 +11,9 @@ permalink: /episodes/2b098627/
 * Key Path Expressions as Functions: https://forums.swift.org/t/key-path-expressions-as-functions/19587
 * Implementation: https://github.com/apple/swift/pull/19448
 * Previous discussion threads:
- 01631c29.md 0168727e.md 040a84c3.md 074b618b.md 083dd5d3.md 0bd2405c.md 107053e7.md 115f3199.md 11b58ca9.md 1DMLbJg5.md 1f861221.md 1f9301c7.md 1ff40107.md 20d4b31e.md 22a6c652.md 22af29a8.md 22df931e.md 23334b91.md 23be3a4e.md 24e5304c.md 254085cb.md 259160c9.md 2b098627.md 2b182911.md 2cdb62f6.md 30f2577f.md 324c2e91.md 339bc516.md 35316396.md 3fb2a021.md 3fdcca35.md 409cbdc5.md 41e38050.md 4367aeeb.md 451cc858.md 4e7ad642.md 502c0857.md 5375fa65.md 5b33cc85.md 5ebe2061.md 60637761.md 620464c0.md 62272338.md 6d5d06fc.md 6d603539.md 6eeb2070.md 7748396d.md 77984302.md 791e3bc9.md 7e0227d3.md 8279a6e2.md 839af3db.md 852dd010.md 8ce32daf.md 8f07264c.md 901ba4e4.md 90f863bd.md 9337cd60.md 96773dee.md 96f9f099.md 983844da.md 99a0c58b.md 9d6eaee7.md DasaMAiV.md EDeUfIq2.md Gemfile Gemfile.lock LICENSE Makefile README.md _config.yml a8736bc8.md aC5JVWoo.md aef515ab.md b1715d76.md b452f159.md b850afa9.md c7b4b5ed.md c81902b1.md cef2e6bc.md d21a251a.md d4af5de6.md d6b421a4.md d725b7da.md d80e524d.md d98ccfc2.md de7f2c8e.md e3bbe72b.md e50ce5a7.md e682713a.md e6f9d8e6.md e7074e80.md f3cf9a35.md f57eb2a3.md fc6058df.md fdbc74ca.md fxMk4ipF.md img index.md scripts https://forums.swift.org/t/allow-key-path-literal-syntax-in-expressions-expecting-function-type/16453
- 01631c29.md 0168727e.md 040a84c3.md 074b618b.md 083dd5d3.md 0bd2405c.md 107053e7.md 115f3199.md 11b58ca9.md 1DMLbJg5.md 1f861221.md 1f9301c7.md 1ff40107.md 20d4b31e.md 22a6c652.md 22af29a8.md 22df931e.md 23334b91.md 23be3a4e.md 24e5304c.md 254085cb.md 259160c9.md 2b098627.md 2b182911.md 2cdb62f6.md 30f2577f.md 324c2e91.md 339bc516.md 35316396.md 3fb2a021.md 3fdcca35.md 409cbdc5.md 41e38050.md 4367aeeb.md 451cc858.md 4e7ad642.md 502c0857.md 5375fa65.md 5b33cc85.md 5ebe2061.md 60637761.md 620464c0.md 62272338.md 6d5d06fc.md 6d603539.md 6eeb2070.md 7748396d.md 77984302.md 791e3bc9.md 7e0227d3.md 8279a6e2.md 839af3db.md 852dd010.md 8ce32daf.md 8f07264c.md 901ba4e4.md 90f863bd.md 9337cd60.md 96773dee.md 96f9f099.md 983844da.md 99a0c58b.md 9d6eaee7.md DasaMAiV.md EDeUfIq2.md Gemfile Gemfile.lock LICENSE Makefile README.md _config.yml a8736bc8.md aC5JVWoo.md aef515ab.md b1715d76.md b452f159.md b850afa9.md c7b4b5ed.md c81902b1.md cef2e6bc.md d21a251a.md d4af5de6.md d6b421a4.md d725b7da.md d80e524d.md d98ccfc2.md de7f2c8e.md e3bbe72b.md e50ce5a7.md e682713a.md e6f9d8e6.md e7074e80.md f3cf9a35.md f57eb2a3.md fc6058df.md fdbc74ca.md fxMk4ipF.md img index.md scripts https://forums.swift.org/t/key-path-getter-promotion/11185
- 01631c29.md 0168727e.md 040a84c3.md 074b618b.md 083dd5d3.md 0bd2405c.md 107053e7.md 115f3199.md 11b58ca9.md 1DMLbJg5.md 1f861221.md 1f9301c7.md 1ff40107.md 20d4b31e.md 22a6c652.md 22af29a8.md 22df931e.md 23334b91.md 23be3a4e.md 24e5304c.md 254085cb.md 259160c9.md 2b098627.md 2b182911.md 2cdb62f6.md 30f2577f.md 324c2e91.md 339bc516.md 35316396.md 3fb2a021.md 3fdcca35.md 409cbdc5.md 41e38050.md 4367aeeb.md 451cc858.md 4e7ad642.md 502c0857.md 5375fa65.md 5b33cc85.md 5ebe2061.md 60637761.md 620464c0.md 62272338.md 6d5d06fc.md 6d603539.md 6eeb2070.md 7748396d.md 77984302.md 791e3bc9.md 7e0227d3.md 8279a6e2.md 839af3db.md 852dd010.md 8ce32daf.md 8f07264c.md 901ba4e4.md 90f863bd.md 9337cd60.md 96773dee.md 96f9f099.md 983844da.md 99a0c58b.md 9d6eaee7.md DasaMAiV.md EDeUfIq2.md Gemfile Gemfile.lock LICENSE Makefile README.md _config.yml a8736bc8.md aC5JVWoo.md aef515ab.md b1715d76.md b452f159.md b850afa9.md c7b4b5ed.md c81902b1.md cef2e6bc.md d21a251a.md d4af5de6.md d6b421a4.md d725b7da.md d80e524d.md d98ccfc2.md de7f2c8e.md e3bbe72b.md e50ce5a7.md e682713a.md e6f9d8e6.md e7074e80.md f3cf9a35.md f57eb2a3.md fc6058df.md fdbc74ca.md fxMk4ipF.md img index.md scripts https://forums.swift.org/t/pitch-keypath-based-map-flatmap-filter/6266
+  * https://forums.swift.org/t/allow-key-path-literal-syntax-in-expressions-expecting-function-type/16453
+  * https://forums.swift.org/t/key-path-getter-promotion/11185
+  * https://forums.swift.org/t/pitch-keypath-based-map-flatmap-filter/6266
 * Original "Smart Key Path" proposal: https://github.com/apple/swift-evolution/blob/master/proposals/0161-key-paths.md
 * Kuery: https://github.com/kishikawakatsumi/Kuery

diff --git a/2b182911.md b/2b182911.md
index e398318..5eea090 100644
--- a/2b182911.md
+++ b/2b182911.md
@@ -10,7 +10,7 @@ permalink: /episodes/2b182911/

 * 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 🙀
- 01631c29.md 0168727e.md 040a84c3.md 074b618b.md 083dd5d3.md 0bd2405c.md 107053e7.md 115f3199.md 11b58ca9.md 1DMLbJg5.md 1f861221.md 1f9301c7.md 1ff40107.md 20d4b31e.md 22a6c652.md 22af29a8.md 22df931e.md 23334b91.md 23be3a4e.md 24e5304c.md 254085cb.md 259160c9.md 2b098627.md 2b182911.md 2cdb62f6.md 30f2577f.md 324c2e91.md 339bc516.md 35316396.md 3fb2a021.md 3fdcca35.md 409cbdc5.md 41e38050.md 4367aeeb.md 451cc858.md 4e7ad642.md 502c0857.md 5375fa65.md 5b33cc85.md 5ebe2061.md 60637761.md 620464c0.md 62272338.md 6d5d06fc.md 6d603539.md 6eeb2070.md 7748396d.md 77984302.md 791e3bc9.md 7e0227d3.md 8279a6e2.md 839af3db.md 852dd010.md 8ce32daf.md 8f07264c.md 901ba4e4.md 90f863bd.md 9337cd60.md 96773dee.md 96f9f099.md 983844da.md 99a0c58b.md 9d6eaee7.md DasaMAiV.md EDeUfIq2.md Gemfile Gemfile.lock LICENSE Makefile README.md _config.yml a8736bc8.md aC5JVWoo.md aef515ab.md b1715d76.md b452f159.md b850afa9.md c7b4b5ed.md c81902b1.md cef2e6bc.md d21a251a.md d4af5de6.md d6b421a4.md d725b7da.md d80e524d.md d98ccfc2.md de7f2c8e.md e3bbe72b.md e50ce5a7.md e682713a.md e6f9d8e6.md e7074e80.md f3cf9a35.md f57eb2a3.md fc6058df.md fdbc74ca.md fxMk4ipF.md img index.md scripts https://twitter.com/stroughtonsmith/status/844451069228994560
+    * 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
diff --git a/3fdcca35.md b/3fdcca35.md
index f23f57c..7852ff3 100644
--- a/3fdcca35.md
+++ b/3fdcca35.md
@@ -8,9 +8,9 @@ permalink: /episodes/3fdcca35/

 * [Proposal SE-0258](https://github.com/apple/swift-evolution/blob/master/proposals/0258-property-wrappers.md)
 * Review threads:
- 01631c29.md 0168727e.md 040a84c3.md 074b618b.md 083dd5d3.md 0bd2405c.md 107053e7.md 115f3199.md 11b58ca9.md 1DMLbJg5.md 1f861221.md 1f9301c7.md 1ff40107.md 20d4b31e.md 22a6c652.md 22af29a8.md 22df931e.md 23334b91.md 23be3a4e.md 24e5304c.md 254085cb.md 259160c9.md 2b098627.md 2b182911.md 2cdb62f6.md 30f2577f.md 324c2e91.md 339bc516.md 35316396.md 3fb2a021.md 3fdcca35.md 409cbdc5.md 41e38050.md 4367aeeb.md 451cc858.md 4e7ad642.md 502c0857.md 5375fa65.md 5b33cc85.md 5ebe2061.md 60637761.md 620464c0.md 62272338.md 6d5d06fc.md 6d603539.md 6eeb2070.md 7748396d.md 77984302.md 791e3bc9.md 7e0227d3.md 8279a6e2.md 839af3db.md 852dd010.md 8ce32daf.md 8f07264c.md 901ba4e4.md 90f863bd.md 9337cd60.md 96773dee.md 96f9f099.md 983844da.md 99a0c58b.md 9d6eaee7.md DasaMAiV.md EDeUfIq2.md Gemfile Gemfile.lock LICENSE Makefile README.md _config.yml a8736bc8.md aC5JVWoo.md aef515ab.md b1715d76.md b452f159.md b850afa9.md c7b4b5ed.md c81902b1.md cef2e6bc.md d21a251a.md d4af5de6.md d6b421a4.md d725b7da.md d80e524d.md d98ccfc2.md de7f2c8e.md e3bbe72b.md e50ce5a7.md e682713a.md e6f9d8e6.md e7074e80.md f3cf9a35.md f57eb2a3.md fc6058df.md fdbc74ca.md fxMk4ipF.md img index.md scripts [First review](https://forums.swift.org/t/se-0258-property-delegates/23139)
- 01631c29.md 0168727e.md 040a84c3.md 074b618b.md 083dd5d3.md 0bd2405c.md 107053e7.md 115f3199.md 11b58ca9.md 1DMLbJg5.md 1f861221.md 1f9301c7.md 1ff40107.md 20d4b31e.md 22a6c652.md 22af29a8.md 22df931e.md 23334b91.md 23be3a4e.md 24e5304c.md 254085cb.md 259160c9.md 2b098627.md 2b182911.md 2cdb62f6.md 30f2577f.md 324c2e91.md 339bc516.md 35316396.md 3fb2a021.md 3fdcca35.md 409cbdc5.md 41e38050.md 4367aeeb.md 451cc858.md 4e7ad642.md 502c0857.md 5375fa65.md 5b33cc85.md 5ebe2061.md 60637761.md 620464c0.md 62272338.md 6d5d06fc.md 6d603539.md 6eeb2070.md 7748396d.md 77984302.md 791e3bc9.md 7e0227d3.md 8279a6e2.md 839af3db.md 852dd010.md 8ce32daf.md 8f07264c.md 901ba4e4.md 90f863bd.md 9337cd60.md 96773dee.md 96f9f099.md 983844da.md 99a0c58b.md 9d6eaee7.md DasaMAiV.md EDeUfIq2.md Gemfile Gemfile.lock LICENSE Makefile README.md _config.yml a8736bc8.md aC5JVWoo.md aef515ab.md b1715d76.md b452f159.md b850afa9.md c7b4b5ed.md c81902b1.md cef2e6bc.md d21a251a.md d4af5de6.md d6b421a4.md d725b7da.md d80e524d.md d98ccfc2.md de7f2c8e.md e3bbe72b.md e50ce5a7.md e682713a.md e6f9d8e6.md e7074e80.md f3cf9a35.md f57eb2a3.md fc6058df.md fdbc74ca.md fxMk4ipF.md img index.md scripts [Second review](https://forums.swift.org/t/se-0258-property-wrappers-second-review/25843)
- 01631c29.md 0168727e.md 040a84c3.md 074b618b.md 083dd5d3.md 0bd2405c.md 107053e7.md 115f3199.md 11b58ca9.md 1DMLbJg5.md 1f861221.md 1f9301c7.md 1ff40107.md 20d4b31e.md 22a6c652.md 22af29a8.md 22df931e.md 23334b91.md 23be3a4e.md 24e5304c.md 254085cb.md 259160c9.md 2b098627.md 2b182911.md 2cdb62f6.md 30f2577f.md 324c2e91.md 339bc516.md 35316396.md 3fb2a021.md 3fdcca35.md 409cbdc5.md 41e38050.md 4367aeeb.md 451cc858.md 4e7ad642.md 502c0857.md 5375fa65.md 5b33cc85.md 5ebe2061.md 60637761.md 620464c0.md 62272338.md 6d5d06fc.md 6d603539.md 6eeb2070.md 7748396d.md 77984302.md 791e3bc9.md 7e0227d3.md 8279a6e2.md 839af3db.md 852dd010.md 8ce32daf.md 8f07264c.md 901ba4e4.md 90f863bd.md 9337cd60.md 96773dee.md 96f9f099.md 983844da.md 99a0c58b.md 9d6eaee7.md DasaMAiV.md EDeUfIq2.md Gemfile Gemfile.lock LICENSE Makefile README.md _config.yml a8736bc8.md aC5JVWoo.md aef515ab.md b1715d76.md b452f159.md b850afa9.md c7b4b5ed.md c81902b1.md cef2e6bc.md d21a251a.md d4af5de6.md d6b421a4.md d725b7da.md d80e524d.md d98ccfc2.md de7f2c8e.md e3bbe72b.md e50ce5a7.md e682713a.md e6f9d8e6.md e7074e80.md f3cf9a35.md f57eb2a3.md fc6058df.md fdbc74ca.md fxMk4ipF.md img index.md scripts [Third review](https://forums.swift.org/t/se-0258-property-wrappers-third-review/26399)
+  * [First review](https://forums.swift.org/t/se-0258-property-delegates/23139)
+  * [Second review](https://forums.swift.org/t/se-0258-property-wrappers-second-review/25843)
+  * [Third review](https://forums.swift.org/t/se-0258-property-wrappers-third-review/26399)
 * Blog post by [Vincent Padreilles](https://twitter.com/v_pradeilles) on [using property wrappers](https://gist.github.com/vincent-pradeilles/875c9dd165542912f3803f8e01b3e15e)
 * Blog post by [John Sundell](https://twitter.com/johnsundell) on [The Swift 5.1 features that power SwiftUI’s API](https://www.swiftbysundell.com/posts/the-swift-51-features-that-power-swiftuis-api#property-wrappers)
 * [Originally pitched in the Swift forums as "Property Behaviors" in 2015-2016](https://github.com/apple/swift-evolution/blob/master/proposals/0030-property-behavior-decls.md)
diff --git a/451cc858.md b/451cc858.md
index a4170a1..24dffdf 100644
--- a/451cc858.md
+++ b/451cc858.md
@@ -10,5 +10,5 @@ permalink: /episodes/451cc858/
 - Why the Swift Server Working Group's http library doesn't have an Xcode project: https://mobile.twitter.com/daniel_dunbar/status/923691076635914240
 - SE-0186 Removing ownership keywords in protocols: https://github.com/apple/swift-evolution/blob/master/proposals/0186-remove-ownership-keyword-support-in-protocols.md
 - Either/Result type
- - https://github.com/apple/swift-evolution/pull/757
- - https://twitter.com/slava_pestov/status/925133908835835904
+  - https://github.com/apple/swift-evolution/pull/757
+  - https://twitter.com/slava_pestov/status/925133908835835904
diff --git a/4e7ad642.md b/4e7ad642.md
index 3bea7c9..74419d1 100644
--- a/4e7ad642.md
+++ b/4e7ad642.md
@@ -11,7 +11,7 @@ permalink: /episodes/4e7ad642/
 * 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
- 01631c29.md 0168727e.md 040a84c3.md 074b618b.md 083dd5d3.md 0bd2405c.md 107053e7.md 115f3199.md 11b58ca9.md 1DMLbJg5.md 1f861221.md 1f9301c7.md 1ff40107.md 20d4b31e.md 22a6c652.md 22af29a8.md 22df931e.md 23334b91.md 23be3a4e.md 24e5304c.md 254085cb.md 259160c9.md 2b098627.md 2b182911.md 2cdb62f6.md 30f2577f.md 324c2e91.md 339bc516.md 35316396.md 3fb2a021.md 3fdcca35.md 409cbdc5.md 41e38050.md 4367aeeb.md 451cc858.md 4e7ad642.md 502c0857.md 5375fa65.md 5b33cc85.md 5ebe2061.md 60637761.md 620464c0.md 62272338.md 6d5d06fc.md 6d603539.md 6eeb2070.md 7748396d.md 77984302.md 791e3bc9.md 7e0227d3.md 8279a6e2.md 839af3db.md 852dd010.md 8ce32daf.md 8f07264c.md 901ba4e4.md 90f863bd.md 9337cd60.md 96773dee.md 96f9f099.md 983844da.md 99a0c58b.md 9d6eaee7.md DasaMAiV.md EDeUfIq2.md Gemfile Gemfile.lock LICENSE Makefile README.md _config.yml a8736bc8.md aC5JVWoo.md aef515ab.md b1715d76.md b452f159.md b850afa9.md c7b4b5ed.md c81902b1.md cef2e6bc.md d21a251a.md d4af5de6.md d6b421a4.md d725b7da.md d80e524d.md d98ccfc2.md de7f2c8e.md e3bbe72b.md e50ce5a7.md e682713a.md e6f9d8e6.md e7074e80.md f3cf9a35.md f57eb2a3.md fc6058df.md fdbc74ca.md fxMk4ipF.md img index.md scripts Wow. Such email. Very list. https://twitter.com/swiftlybrief/status/846938309666492417
+    * Wow. Such email. Very list. https://twitter.com/swiftlybrief/status/846938309666492417
 * Rejection email: https://lists.swift.org/pipermail/swift-evolution-announce/2017-April/000337.html
 * Doug Gregor opens discussion for expanding private: https://lists.swift.org/pipermail/swift-evolution/Week-of-Mon-20170403/034903.html
 * David Hart, with a new proposal from Doug’s suggestions: https://github.com/apple/swift-evolution/pull/668
@@ -21,7 +21,7 @@ permalink: /episodes/4e7ad642/

 * Features shouldn't be designed and deliberated in isolation. Decisions need to be holistic and forward-thinking. It's the project management equivalent of ABI resilience. "Design Resilience".
 * Robert Widmann's draft modules proposal: https://gist.github.com/CodaFi/cd66b7d70b5cd8e4e8b433fa2ace378a
- 01631c29.md 0168727e.md 040a84c3.md 074b618b.md 083dd5d3.md 0bd2405c.md 107053e7.md 115f3199.md 11b58ca9.md 1DMLbJg5.md 1f861221.md 1f9301c7.md 1ff40107.md 20d4b31e.md 22a6c652.md 22af29a8.md 22df931e.md 23334b91.md 23be3a4e.md 24e5304c.md 254085cb.md 259160c9.md 2b098627.md 2b182911.md 2cdb62f6.md 30f2577f.md 324c2e91.md 339bc516.md 35316396.md 3fb2a021.md 3fdcca35.md 409cbdc5.md 41e38050.md 4367aeeb.md 451cc858.md 4e7ad642.md 502c0857.md 5375fa65.md 5b33cc85.md 5ebe2061.md 60637761.md 620464c0.md 62272338.md 6d5d06fc.md 6d603539.md 6eeb2070.md 7748396d.md 77984302.md 791e3bc9.md 7e0227d3.md 8279a6e2.md 839af3db.md 852dd010.md 8ce32daf.md 8f07264c.md 901ba4e4.md 90f863bd.md 9337cd60.md 96773dee.md 96f9f099.md 983844da.md 99a0c58b.md 9d6eaee7.md DasaMAiV.md EDeUfIq2.md Gemfile Gemfile.lock LICENSE Makefile README.md _config.yml a8736bc8.md aC5JVWoo.md aef515ab.md b1715d76.md b452f159.md b850afa9.md c7b4b5ed.md c81902b1.md cef2e6bc.md d21a251a.md d4af5de6.md d6b421a4.md d725b7da.md d80e524d.md d98ccfc2.md de7f2c8e.md e3bbe72b.md e50ce5a7.md e682713a.md e6f9d8e6.md e7074e80.md f3cf9a35.md f57eb2a3.md fc6058df.md fdbc74ca.md fxMk4ipF.md img index.md scripts fileprivate access can be recreated by creating a private "utility submodule" containing declarations of at least internal access.
+    * fileprivate access can be recreated by creating a private "utility submodule" containing declarations of at least internal access.

 ###Thank You

diff --git a/620464c0.md b/620464c0.md
index 8050eec..d5042bd 100644
--- a/620464c0.md
+++ b/620464c0.md
@@ -7,11 +7,11 @@ permalink: /episodes/620464c0/
 # 40: Dynamic Member Lookup Proposal

 - Introduce User-defined "Dynamic Member Lookup" Types:
- - First version: https://github.com/apple/swift-evolution/pull/768
- - Second version: https://github.com/apple/swift-evolution/pull/774
+  - First version: https://github.com/apple/swift-evolution/pull/768
+  - Second version: https://github.com/apple/swift-evolution/pull/774
 - Implementations:
- - First version: https://github.com/apple/swift/pull/13076
- - Second version: https://github.com/apple/swift/pull/13361
+  - First version: https://github.com/apple/swift/pull/13076
+  - Second version: https://github.com/apple/swift/pull/13361
 - Related "dynamic callable" proposal (gist in progress): https://gist.github.com/lattner/a6257f425f55fe39fd6ac7a2354d693d
 - Chris’s email to Swift Evolution: https://lists.swift.org/pipermail/swift-evolution/Week-of-Mon-20171113/041463.html

diff --git a/6d5d06fc.md b/6d5d06fc.md
index 7ef3e2f..08ba695 100644
--- a/6d5d06fc.md
+++ b/6d5d06fc.md
@@ -10,9 +10,9 @@ permalink: /episodes/6d5d06fc/
 * 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:
- 01631c29.md 0168727e.md 040a84c3.md 074b618b.md 083dd5d3.md 0bd2405c.md 107053e7.md 115f3199.md 11b58ca9.md 1DMLbJg5.md 1f861221.md 1f9301c7.md 1ff40107.md 20d4b31e.md 22a6c652.md 22af29a8.md 22df931e.md 23334b91.md 23be3a4e.md 24e5304c.md 254085cb.md 259160c9.md 2b098627.md 2b182911.md 2cdb62f6.md 30f2577f.md 324c2e91.md 339bc516.md 35316396.md 3fb2a021.md 3fdcca35.md 409cbdc5.md 41e38050.md 4367aeeb.md 451cc858.md 4e7ad642.md 502c0857.md 5375fa65.md 5b33cc85.md 5ebe2061.md 60637761.md 620464c0.md 62272338.md 6d5d06fc.md 6d603539.md 6eeb2070.md 7748396d.md 77984302.md 791e3bc9.md 7e0227d3.md 8279a6e2.md 839af3db.md 852dd010.md 8ce32daf.md 8f07264c.md 901ba4e4.md 90f863bd.md 9337cd60.md 96773dee.md 96f9f099.md 983844da.md 99a0c58b.md 9d6eaee7.md DasaMAiV.md EDeUfIq2.md Gemfile Gemfile.lock LICENSE Makefile README.md _config.yml a8736bc8.md aC5JVWoo.md aef515ab.md b1715d76.md b452f159.md b850afa9.md c7b4b5ed.md c81902b1.md cef2e6bc.md d21a251a.md d4af5de6.md d6b421a4.md d725b7da.md d80e524d.md d98ccfc2.md de7f2c8e.md e3bbe72b.md e50ce5a7.md e682713a.md e6f9d8e6.md e7074e80.md f3cf9a35.md f57eb2a3.md fc6058df.md fdbc74ca.md fxMk4ipF.md img index.md scripts https://github.com/apple/swift/pull/9373
- 01631c29.md 0168727e.md 040a84c3.md 074b618b.md 083dd5d3.md 0bd2405c.md 107053e7.md 115f3199.md 11b58ca9.md 1DMLbJg5.md 1f861221.md 1f9301c7.md 1ff40107.md 20d4b31e.md 22a6c652.md 22af29a8.md 22df931e.md 23334b91.md 23be3a4e.md 24e5304c.md 254085cb.md 259160c9.md 2b098627.md 2b182911.md 2cdb62f6.md 30f2577f.md 324c2e91.md 339bc516.md 35316396.md 3fb2a021.md 3fdcca35.md 409cbdc5.md 41e38050.md 4367aeeb.md 451cc858.md 4e7ad642.md 502c0857.md 5375fa65.md 5b33cc85.md 5ebe2061.md 60637761.md 620464c0.md 62272338.md 6d5d06fc.md 6d603539.md 6eeb2070.md 7748396d.md 77984302.md 791e3bc9.md 7e0227d3.md 8279a6e2.md 839af3db.md 852dd010.md 8ce32daf.md 8f07264c.md 901ba4e4.md 90f863bd.md 9337cd60.md 96773dee.md 96f9f099.md 983844da.md 99a0c58b.md 9d6eaee7.md DasaMAiV.md EDeUfIq2.md Gemfile Gemfile.lock LICENSE Makefile README.md _config.yml a8736bc8.md aC5JVWoo.md aef515ab.md b1715d76.md b452f159.md b850afa9.md c7b4b5ed.md c81902b1.md cef2e6bc.md d21a251a.md d4af5de6.md d6b421a4.md d725b7da.md d80e524d.md d98ccfc2.md de7f2c8e.md e3bbe72b.md e50ce5a7.md e682713a.md e6f9d8e6.md e7074e80.md f3cf9a35.md f57eb2a3.md fc6058df.md fdbc74ca.md fxMk4ipF.md img index.md scripts https://github.com/apple/swift/pull/9198
- 01631c29.md 0168727e.md 040a84c3.md 074b618b.md 083dd5d3.md 0bd2405c.md 107053e7.md 115f3199.md 11b58ca9.md 1DMLbJg5.md 1f861221.md 1f9301c7.md 1ff40107.md 20d4b31e.md 22a6c652.md 22af29a8.md 22df931e.md 23334b91.md 23be3a4e.md 24e5304c.md 254085cb.md 259160c9.md 2b098627.md 2b182911.md 2cdb62f6.md 30f2577f.md 324c2e91.md 339bc516.md 35316396.md 3fb2a021.md 3fdcca35.md 409cbdc5.md 41e38050.md 4367aeeb.md 451cc858.md 4e7ad642.md 502c0857.md 5375fa65.md 5b33cc85.md 5ebe2061.md 60637761.md 620464c0.md 62272338.md 6d5d06fc.md 6d603539.md 6eeb2070.md 7748396d.md 77984302.md 791e3bc9.md 7e0227d3.md 8279a6e2.md 839af3db.md 852dd010.md 8ce32daf.md 8f07264c.md 901ba4e4.md 90f863bd.md 9337cd60.md 96773dee.md 96f9f099.md 983844da.md 99a0c58b.md 9d6eaee7.md DasaMAiV.md EDeUfIq2.md Gemfile Gemfile.lock LICENSE Makefile README.md _config.yml a8736bc8.md aC5JVWoo.md aef515ab.md b1715d76.md b452f159.md b850afa9.md c7b4b5ed.md c81902b1.md cef2e6bc.md d21a251a.md d4af5de6.md d6b421a4.md d725b7da.md d80e524d.md d98ccfc2.md de7f2c8e.md e3bbe72b.md e50ce5a7.md e682713a.md e6f9d8e6.md e7074e80.md f3cf9a35.md f57eb2a3.md fc6058df.md fdbc74ca.md fxMk4ipF.md img index.md scripts https://github.com/apple/swift/pull/9112
+    * https://github.com/apple/swift/pull/9373
+    * https://github.com/apple/swift/pull/9198
+    * https://github.com/apple/swift/pull/9112

 ### Thank You

@@ -21,4 +21,4 @@ Thanks to this episode's sponsor, [BuddyBuild][1]: a continuous integration, con
 Try it free today at https://www.buddybuild.com/.

- [1]: https://www.buddybuild.com/
+  [1]: https://www.buddybuild.com/
diff --git a/6d603539.md b/6d603539.md
index 89e2d7a..cb487b8 100644
--- a/6d603539.md
+++ b/6d603539.md
@@ -15,7 +15,7 @@ permalink: /episodes/6d603539/

 ## 🙏 Thanks to today's sponsor: [Square](https://www.youtube.com/squaredev)

-Check out the tutorial for Square’s In-App Payments SDK for iOS on their new developer YouTube channel: [youtube.com/squaredev](https://www.youtube.com/squaredev)
+Check out the tutorial for Square’s In-App Payments SDK for iOS on their new developer YouTube channel:  [youtube.com/squaredev](https://www.youtube.com/squaredev)

 ## 👋 Get in Touch
diff --git a/6eeb2070.md b/6eeb2070.md
index f76ca37..c62688b 100644
--- a/6eeb2070.md
+++ b/6eeb2070.md
@@ -7,13 +7,13 @@ permalink: /episodes/6eeb2070/
 # 13: WWDC Predictions

 - SwiftPM iOS
- - SwiftPM Cross-Compilation: https://github.com/apple/swift-package-manager/pull/1098
+    - 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
+    - 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/004066.html
+    - 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/004066.html
 - Improvements to Swift Playgrounds on iPad
 - Likely improvements to Xcode Source Extensions (refactoring extensions?)
 - We’re in a quiet period leading up to WWDC
diff --git a/77984302.md b/77984302.md
index f881626..ca4d25a 100644
--- a/77984302.md
+++ b/77984302.md
@@ -9,10 +9,10 @@ permalink: /episodes/77984302/
 - 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
+    - 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
diff --git a/791e3bc9.md b/791e3bc9.md
index 5f8799b..0a4d0ac 100644
--- a/791e3bc9.md
+++ b/791e3bc9.md
@@ -8,7 +8,7 @@ permalink: /episodes/791e3bc9/

 - 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
+  - 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
diff --git a/8279a6e2.md b/8279a6e2.md
index 7b3c6db..b0d17dd 100644
--- a/8279a6e2.md
+++ b/8279a6e2.md
@@ -13,14 +13,14 @@ We wrap up with an overview of method dispatch in Swift.
 ### SourceKit on Linux

 - Swift core team is fixing compiler crashers faster than they're filed!
- - [Slava Pestov](https://twitter.com/slava_pestov) being a driving force behind many of these fixes.
- - [@practicalswift](https://twitter.com/practicalswift) is basically Swift compiler fuzzing as-a-service ;)
- - [Undoing all of @practicalswift's hard work](https://twitter.com/slava_pestov/status/825549445605437440)
+  -  [Slava Pestov](https://twitter.com/slava_pestov) being a driving force behind many of these fixes.
+  - [@practicalswift](https://twitter.com/practicalswift) is basically Swift compiler fuzzing as-a-service ;)
+  - [Undoing all of @practicalswift's hard work](https://twitter.com/slava_pestov/status/825549445605437440)
 - [SourceKit home page](https://github.com/apple/swift/tree/master/tools/SourceKit)
 - [Process Isolation](https://github.com/apple/swift/blob/swift-3.0.2-RELEASE/tools/SourceKit/README.txt#L15-L17)
 - Key contributors to SourceKit:
- - [Brian Croom](https://twitter.com/aikoniv) and his many [SourceKit PRs](https://github.com/apple/swift/pulls?utf8=%E2%9C%93&q=is%3Apr%20author%3Abriancroom%20sourcekit%20is%3Aclosed%20) to help get it linking and compiling on Linux.
- - [Alex Blewitt](https://twitter.com/alblue) and [his numerous attempts](https://github.com/apple/swift/pulls?utf8=%E2%9C%93&q=is%3Apr%20author%3Aalblue%20sourcekit) at getting SourceKit compiling _by default_ on Linux.
+  - [Brian Croom](https://twitter.com/aikoniv) and his many [SourceKit PRs](https://github.com/apple/swift/pulls?utf8=%E2%9C%93&q=is%3Apr%20author%3Abriancroom%20sourcekit%20is%3Aclosed%20) to help get it linking and compiling on Linux.
+  - [Alex Blewitt](https://twitter.com/alblue) and [his numerous attempts](https://github.com/apple/swift/pulls?utf8=%E2%9C%93&q=is%3Apr%20author%3Aalblue%20sourcekit) at getting SourceKit compiling _by default_ on Linux.
 - [SR-1676: Build SourceKit on Linux](https://bugs.swift.org/browse/SR-1676)
 - [CMake homepage](https://cmake.org/)
 - [swift-corelibs-libdispatch](https://github.com/apple/swift-corelibs-libdispatch)
diff --git a/8ce32daf.md b/8ce32daf.md
index 0d2fce0..972821a 100644
--- a/8ce32daf.md
+++ b/8ce32daf.md
@@ -7,8 +7,8 @@ permalink: /episodes/8ce32daf/
 # 35: Performance Profiling on Linux

 - JP's FrenchKit talk on "Performance Profiling Swift on Linux":
- - Video: https://youtu.be/TWeLLTFjqXg
- - Slides: https://speakerdeck.com/jpsim/performance-profiling-swift-on-linux
+  - Video: https://youtu.be/TWeLLTFjqXg
+  - Slides: https://speakerdeck.com/jpsim/performance-profiling-swift-on-linux
 - [Perf](http://www.brendangregg.com/perf.html)
 - [Valgrind](http://valgrind.org/)
 - [Callgrind](http://valgrind.org/docs/manual/cl-manual.html)
diff --git a/983844da.md b/983844da.md
index 58d2e4a..e513ca8 100644
--- a/983844da.md
+++ b/983844da.md
@@ -8,8 +8,8 @@ permalink: /episodes/983844da/

 * Magic file names: https://github.com/apple/swift-evolution/blob/master/proposals/0274-magic-file.md
 * Multi-pattern catch clauses
- 01631c29.md 0168727e.md 040a84c3.md 074b618b.md 083dd5d3.md 0bd2405c.md 107053e7.md 115f3199.md 11b58ca9.md 1DMLbJg5.md 1f861221.md 1f9301c7.md 1ff40107.md 20d4b31e.md 22a6c652.md 22af29a8.md 22df931e.md 23334b91.md 23be3a4e.md 24e5304c.md 254085cb.md 259160c9.md 2b098627.md 2b182911.md 2cdb62f6.md 30f2577f.md 324c2e91.md 339bc516.md 35316396.md 3fb2a021.md 3fdcca35.md 409cbdc5.md 41e38050.md 4367aeeb.md 451cc858.md 4e7ad642.md 502c0857.md 5375fa65.md 5b33cc85.md 5ebe2061.md 60637761.md 620464c0.md 62272338.md 6d5d06fc.md 6d603539.md 6eeb2070.md 7748396d.md 77984302.md 791e3bc9.md 7e0227d3.md 8279a6e2.md 839af3db.md 852dd010.md 8ce32daf.md 8f07264c.md 901ba4e4.md 90f863bd.md 9337cd60.md 96773dee.md 96f9f099.md 983844da.md 99a0c58b.md 9d6eaee7.md DasaMAiV.md EDeUfIq2.md Gemfile Gemfile.lock LICENSE Makefile README.md _config.yml a8736bc8.md aC5JVWoo.md aef515ab.md b1715d76.md b452f159.md b850afa9.md c7b4b5ed.md c81902b1.md cef2e6bc.md d21a251a.md d4af5de6.md d6b421a4.md d725b7da.md d80e524d.md d98ccfc2.md de7f2c8e.md e3bbe72b.md e50ce5a7.md e682713a.md e6f9d8e6.md e7074e80.md f3cf9a35.md f57eb2a3.md fc6058df.md fdbc74ca.md fxMk4ipF.md img index.md scripts https://github.com/apple/swift-evolution/blob/master/proposals/0276-multi-pattern-catch-clauses.md
- 01631c29.md 0168727e.md 040a84c3.md 074b618b.md 083dd5d3.md 0bd2405c.md 107053e7.md 115f3199.md 11b58ca9.md 1DMLbJg5.md 1f861221.md 1f9301c7.md 1ff40107.md 20d4b31e.md 22a6c652.md 22af29a8.md 22df931e.md 23334b91.md 23be3a4e.md 24e5304c.md 254085cb.md 259160c9.md 2b098627.md 2b182911.md 2cdb62f6.md 30f2577f.md 324c2e91.md 339bc516.md 35316396.md 3fb2a021.md 3fdcca35.md 409cbdc5.md 41e38050.md 4367aeeb.md 451cc858.md 4e7ad642.md 502c0857.md 5375fa65.md 5b33cc85.md 5ebe2061.md 60637761.md 620464c0.md 62272338.md 6d5d06fc.md 6d603539.md 6eeb2070.md 7748396d.md 77984302.md 791e3bc9.md 7e0227d3.md 8279a6e2.md 839af3db.md 852dd010.md 8ce32daf.md 8f07264c.md 901ba4e4.md 90f863bd.md 9337cd60.md 96773dee.md 96f9f099.md 983844da.md 99a0c58b.md 9d6eaee7.md DasaMAiV.md EDeUfIq2.md Gemfile Gemfile.lock LICENSE Makefile README.md _config.yml a8736bc8.md aC5JVWoo.md aef515ab.md b1715d76.md b452f159.md b850afa9.md c7b4b5ed.md c81902b1.md cef2e6bc.md d21a251a.md d4af5de6.md d6b421a4.md d725b7da.md d80e524d.md d98ccfc2.md de7f2c8e.md e3bbe72b.md e50ce5a7.md e682713a.md e6f9d8e6.md e7074e80.md f3cf9a35.md f57eb2a3.md fc6058df.md fdbc74ca.md fxMk4ipF.md img index.md scripts https://forums.swift.org/t/se-0276-multi-pattern-catch-clauses/32620
+    * https://github.com/apple/swift-evolution/blob/master/proposals/0276-multi-pattern-catch-clauses.md
+    * https://forums.swift.org/t/se-0276-multi-pattern-catch-clauses/32620
 * Road to Swift 6: https://forums.swift.org/t/on-the-road-to-swift-6/32862

 ## 👋 Get in Touch
diff --git a/9d6eaee7.md b/9d6eaee7.md
index bd27e9f..46afcf6 100644
--- a/9d6eaee7.md
+++ b/9d6eaee7.md
@@ -10,8 +10,8 @@ permalink: /episodes/9d6eaee7/
 * 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:
- 01631c29.md 0168727e.md 040a84c3.md 074b618b.md 083dd5d3.md 0bd2405c.md 107053e7.md 115f3199.md 11b58ca9.md 1DMLbJg5.md 1f861221.md 1f9301c7.md 1ff40107.md 20d4b31e.md 22a6c652.md 22af29a8.md 22df931e.md 23334b91.md 23be3a4e.md 24e5304c.md 254085cb.md 259160c9.md 2b098627.md 2b182911.md 2cdb62f6.md 30f2577f.md 324c2e91.md 339bc516.md 35316396.md 3fb2a021.md 3fdcca35.md 409cbdc5.md 41e38050.md 4367aeeb.md 451cc858.md 4e7ad642.md 502c0857.md 5375fa65.md 5b33cc85.md 5ebe2061.md 60637761.md 620464c0.md 62272338.md 6d5d06fc.md 6d603539.md 6eeb2070.md 7748396d.md 77984302.md 791e3bc9.md 7e0227d3.md 8279a6e2.md 839af3db.md 852dd010.md 8ce32daf.md 8f07264c.md 901ba4e4.md 90f863bd.md 9337cd60.md 96773dee.md 96f9f099.md 983844da.md 99a0c58b.md 9d6eaee7.md DasaMAiV.md EDeUfIq2.md Gemfile Gemfile.lock LICENSE Makefile README.md _config.yml a8736bc8.md aC5JVWoo.md aef515ab.md b1715d76.md b452f159.md b850afa9.md c7b4b5ed.md c81902b1.md cef2e6bc.md d21a251a.md d4af5de6.md d6b421a4.md d725b7da.md d80e524d.md d98ccfc2.md de7f2c8e.md e3bbe72b.md e50ce5a7.md e682713a.md e6f9d8e6.md e7074e80.md f3cf9a35.md f57eb2a3.md fc6058df.md fdbc74ca.md fxMk4ipF.md img index.md scripts https://github.com/apple/swift/pull/11711
- 01631c29.md 0168727e.md 040a84c3.md 074b618b.md 083dd5d3.md 0bd2405c.md 107053e7.md 115f3199.md 11b58ca9.md 1DMLbJg5.md 1f861221.md 1f9301c7.md 1ff40107.md 20d4b31e.md 22a6c652.md 22af29a8.md 22df931e.md 23334b91.md 23be3a4e.md 24e5304c.md 254085cb.md 259160c9.md 2b098627.md 2b182911.md 2cdb62f6.md 30f2577f.md 324c2e91.md 339bc516.md 35316396.md 3fb2a021.md 3fdcca35.md 409cbdc5.md 41e38050.md 4367aeeb.md 451cc858.md 4e7ad642.md 502c0857.md 5375fa65.md 5b33cc85.md 5ebe2061.md 60637761.md 620464c0.md 62272338.md 6d5d06fc.md 6d603539.md 6eeb2070.md 7748396d.md 77984302.md 791e3bc9.md 7e0227d3.md 8279a6e2.md 839af3db.md 852dd010.md 8ce32daf.md 8f07264c.md 901ba4e4.md 90f863bd.md 9337cd60.md 96773dee.md 96f9f099.md 983844da.md 99a0c58b.md 9d6eaee7.md DasaMAiV.md EDeUfIq2.md Gemfile Gemfile.lock LICENSE Makefile README.md _config.yml a8736bc8.md aC5JVWoo.md aef515ab.md b1715d76.md b452f159.md b850afa9.md c7b4b5ed.md c81902b1.md cef2e6bc.md d21a251a.md d4af5de6.md d6b421a4.md d725b7da.md d80e524d.md d98ccfc2.md de7f2c8e.md e3bbe72b.md e50ce5a7.md e682713a.md e6f9d8e6.md e7074e80.md f3cf9a35.md f57eb2a3.md fc6058df.md fdbc74ca.md fxMk4ipF.md img index.md scripts SR-5746: https://bugs.swift.org/browse/SR-5746
+    * https://github.com/apple/swift/pull/11711
+    * SR-5746: https://bugs.swift.org/browse/SR-5746
 * All Swift refactoring actions are defined in https://github.com/apple/swift/blob/master/include/swift/IDE/RefactoringKinds.def
 * Ideas for potential refactoring transformations: https://bugs.swift.org/issues/?jql=labels%3DStarterProposal%20AND%20labels%3DRefactoring%20AND%20resolution%3DUnresolved

diff --git a/c81902b1.md b/c81902b1.md
index 06f686b..2f33585 100644
--- a/c81902b1.md
+++ b/c81902b1.md
@@ -12,8 +12,8 @@ permalink: /episodes/c81902b1/
 * [Swift Evolution PR \#994](https://github.com/apple/swift-evolution/pull/994)
 * [swift-format implementation](https://github.com/google/swift/tree/format)
 * Community Tools
- 01631c29.md 0168727e.md 040a84c3.md 074b618b.md 083dd5d3.md 0bd2405c.md 107053e7.md 115f3199.md 11b58ca9.md 1DMLbJg5.md 1f861221.md 1f9301c7.md 1ff40107.md 20d4b31e.md 22a6c652.md 22af29a8.md 22df931e.md 23334b91.md 23be3a4e.md 24e5304c.md 254085cb.md 259160c9.md 2b098627.md 2b182911.md 2cdb62f6.md 30f2577f.md 324c2e91.md 339bc516.md 35316396.md 3fb2a021.md 3fdcca35.md 409cbdc5.md 41e38050.md 4367aeeb.md 451cc858.md 4e7ad642.md 502c0857.md 5375fa65.md 5b33cc85.md 5ebe2061.md 60637761.md 620464c0.md 62272338.md 6d5d06fc.md 6d603539.md 6eeb2070.md 7748396d.md 77984302.md 791e3bc9.md 7e0227d3.md 8279a6e2.md 839af3db.md 852dd010.md 8ce32daf.md 8f07264c.md 901ba4e4.md 90f863bd.md 9337cd60.md 96773dee.md 96f9f099.md 983844da.md 99a0c58b.md 9d6eaee7.md DasaMAiV.md EDeUfIq2.md Gemfile Gemfile.lock LICENSE Makefile README.md _config.yml a8736bc8.md aC5JVWoo.md aef515ab.md b1715d76.md b452f159.md b850afa9.md c7b4b5ed.md c81902b1.md cef2e6bc.md d21a251a.md d4af5de6.md d6b421a4.md d725b7da.md d80e524d.md d98ccfc2.md de7f2c8e.md e3bbe72b.md e50ce5a7.md e682713a.md e6f9d8e6.md e7074e80.md f3cf9a35.md f57eb2a3.md fc6058df.md fdbc74ca.md fxMk4ipF.md img index.md scripts [SwiftLint](https://github.com/realm/SwiftLint)
- 01631c29.md 0168727e.md 040a84c3.md 074b618b.md 083dd5d3.md 0bd2405c.md 107053e7.md 115f3199.md 11b58ca9.md 1DMLbJg5.md 1f861221.md 1f9301c7.md 1ff40107.md 20d4b31e.md 22a6c652.md 22af29a8.md 22df931e.md 23334b91.md 23be3a4e.md 24e5304c.md 254085cb.md 259160c9.md 2b098627.md 2b182911.md 2cdb62f6.md 30f2577f.md 324c2e91.md 339bc516.md 35316396.md 3fb2a021.md 3fdcca35.md 409cbdc5.md 41e38050.md 4367aeeb.md 451cc858.md 4e7ad642.md 502c0857.md 5375fa65.md 5b33cc85.md 5ebe2061.md 60637761.md 620464c0.md 62272338.md 6d5d06fc.md 6d603539.md 6eeb2070.md 7748396d.md 77984302.md 791e3bc9.md 7e0227d3.md 8279a6e2.md 839af3db.md 852dd010.md 8ce32daf.md 8f07264c.md 901ba4e4.md 90f863bd.md 9337cd60.md 96773dee.md 96f9f099.md 983844da.md 99a0c58b.md 9d6eaee7.md DasaMAiV.md EDeUfIq2.md Gemfile Gemfile.lock LICENSE Makefile README.md _config.yml a8736bc8.md aC5JVWoo.md aef515ab.md b1715d76.md b452f159.md b850afa9.md c7b4b5ed.md c81902b1.md cef2e6bc.md d21a251a.md d4af5de6.md d6b421a4.md d725b7da.md d80e524d.md d98ccfc2.md de7f2c8e.md e3bbe72b.md e50ce5a7.md e682713a.md e6f9d8e6.md e7074e80.md f3cf9a35.md f57eb2a3.md fc6058df.md fdbc74ca.md fxMk4ipF.md img index.md scripts [SwiftFormat](https://github.com/nicklockwood/SwiftFormat)
+  * [SwiftLint](https://github.com/realm/SwiftLint)
+  * [SwiftFormat](https://github.com/nicklockwood/SwiftFormat)

 ## Thanks to this episode's Sponsors

diff --git a/de7f2c8e.md b/de7f2c8e.md
index 0481b89..9486abe 100644
--- a/de7f2c8e.md
+++ b/de7f2c8e.md
@@ -12,9 +12,9 @@ So, we decided to make a podcast about the Swift language and a commentary on th

 If you want to connect with us you can find us and reach out on twitter: [JP Simard][2] & [Jesse Squires][3]

-Be sure to subscribe so you don't miss episode 01 - airing on Monday, March 6th and be sure to check out some of the other development shows that are a part of the [Spec Network][4].
+Be sure to subscribe so you don't miss episode 01 -  airing on Monday, March 6th and be sure to check out some of the other development shows that are a part of the [Spec Network][4].

- [1]: https://swiftweekly.github.io/
- [2]: https://twitter.com/simjp
- [3]: https://twitter.com/jesse_squires
- [4]: https://spec.fm/
+  [1]: https://swiftweekly.github.io/
+  [2]: https://twitter.com/simjp
+  [3]: https://twitter.com/jesse_squires
+  [4]: https://spec.fm/
diff --git a/e3bbe72b.md b/e3bbe72b.md
index 4dd384b..a2dacd0 100644
--- a/e3bbe72b.md
+++ b/e3bbe72b.md
@@ -9,8 +9,8 @@ permalink: /episodes/e3bbe72b/
 ## Relevant Links

 * [SE-0255: Implicit returns from single-expression functions](https://github.com/apple/swift-evolution/blob/master/proposals/0255-omit-return.md)
- 01631c29.md 0168727e.md 040a84c3.md 074b618b.md 083dd5d3.md 0bd2405c.md 107053e7.md 115f3199.md 11b58ca9.md 1DMLbJg5.md 1f861221.md 1f9301c7.md 1ff40107.md 20d4b31e.md 22a6c652.md 22af29a8.md 22df931e.md 23334b91.md 23be3a4e.md 24e5304c.md 254085cb.md 259160c9.md 2b098627.md 2b182911.md 2cdb62f6.md 30f2577f.md 324c2e91.md 339bc516.md 35316396.md 3fb2a021.md 3fdcca35.md 409cbdc5.md 41e38050.md 4367aeeb.md 451cc858.md 4e7ad642.md 502c0857.md 5375fa65.md 5b33cc85.md 5ebe2061.md 60637761.md 620464c0.md 62272338.md 6d5d06fc.md 6d603539.md 6eeb2070.md 7748396d.md 77984302.md 791e3bc9.md 7e0227d3.md 8279a6e2.md 839af3db.md 852dd010.md 8ce32daf.md 8f07264c.md 901ba4e4.md 90f863bd.md 9337cd60.md 96773dee.md 96f9f099.md 983844da.md 99a0c58b.md 9d6eaee7.md DasaMAiV.md EDeUfIq2.md Gemfile Gemfile.lock LICENSE Makefile README.md _config.yml a8736bc8.md aC5JVWoo.md aef515ab.md b1715d76.md b452f159.md b850afa9.md c7b4b5ed.md c81902b1.md cef2e6bc.md d21a251a.md d4af5de6.md d6b421a4.md d725b7da.md d80e524d.md d98ccfc2.md de7f2c8e.md e3bbe72b.md e50ce5a7.md e682713a.md e6f9d8e6.md e7074e80.md f3cf9a35.md f57eb2a3.md fc6058df.md fdbc74ca.md fxMk4ipF.md img index.md scripts [Tweet from Ben Cohen](https://twitter.com/AirspeedSwift/status/1108902065634328581)
- 01631c29.md 0168727e.md 040a84c3.md 074b618b.md 083dd5d3.md 0bd2405c.md 107053e7.md 115f3199.md 11b58ca9.md 1DMLbJg5.md 1f861221.md 1f9301c7.md 1ff40107.md 20d4b31e.md 22a6c652.md 22af29a8.md 22df931e.md 23334b91.md 23be3a4e.md 24e5304c.md 254085cb.md 259160c9.md 2b098627.md 2b182911.md 2cdb62f6.md 30f2577f.md 324c2e91.md 339bc516.md 35316396.md 3fb2a021.md 3fdcca35.md 409cbdc5.md 41e38050.md 4367aeeb.md 451cc858.md 4e7ad642.md 502c0857.md 5375fa65.md 5b33cc85.md 5ebe2061.md 60637761.md 620464c0.md 62272338.md 6d5d06fc.md 6d603539.md 6eeb2070.md 7748396d.md 77984302.md 791e3bc9.md 7e0227d3.md 8279a6e2.md 839af3db.md 852dd010.md 8ce32daf.md 8f07264c.md 901ba4e4.md 90f863bd.md 9337cd60.md 96773dee.md 96f9f099.md 983844da.md 99a0c58b.md 9d6eaee7.md DasaMAiV.md EDeUfIq2.md Gemfile Gemfile.lock LICENSE Makefile README.md _config.yml a8736bc8.md aC5JVWoo.md aef515ab.md b1715d76.md b452f159.md b850afa9.md c7b4b5ed.md c81902b1.md cef2e6bc.md d21a251a.md d4af5de6.md d6b421a4.md d725b7da.md d80e524d.md d98ccfc2.md de7f2c8e.md e3bbe72b.md e50ce5a7.md e682713a.md e6f9d8e6.md e7074e80.md f3cf9a35.md f57eb2a3.md fc6058df.md fdbc74ca.md fxMk4ipF.md img index.md scripts [Swift Foru…
@sebsto
Copy link

sebsto commented Sep 8, 2022

If you happened, like me, to find this because you search a way to cross compile for x86_64 and arm using the swift compiler. There is now (3-4 years later) a much easier solution. Unfortunately, it is not documented by swift build -h

echo "🏗 Building the ARM version"
swift build --configuration release \
            --arch arm64

echo "🏗 Building the x86_64 version"
swift build --configuration release \
            --arch x86_64

I hope it helps

@keith
Copy link
Member

keith commented Sep 8, 2022

You can at least do it in a single invocation https://www.smileykeith.com/2020/12/24/swiftpm-cross-compile/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants