| 2 Dec 2025 |
Randy Eckenrode | * swiftpm> /nix/store/v86inqkxp9l2hk5z3laa6mlzpn8877y1-apple-sdk-15.5/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib/swift/_Concurrency.swiftmodule/arm64e-apple-macos.swiftinterface:29:40: error: macros are not supported in this compiler
swiftpm> @freestanding(expression) public macro isolation<T>() -> T = Builtin.IsolationMacro
swiftpm> ^
swiftpm> /nix/store/v86inqkxp9l2hk5z3laa6mlzpn8877y1-apple-sdk-15.5/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib/swift/_Concurrency.swiftmodule/arm64e-apple-macos.swiftinterface:4439:72: error: macros are not supported in this compiler
swiftpm> @attached(accessor) @attached(peer, names: prefixed(`$`)) public macro TaskLocal() = #externalMacro(module: "SwiftMacros", type: "TaskLocalMacro")
| 01:39:49 |
Randy Eckenrode | Great. The 15.5 SDK has the TaskLocal change. | 01:39:59 |
emily | how is it defined in the 14.x SDK? | 01:52:07 |
emily | https://github.com/swiftlang/swift/pull/70902#pullrequestreview-1833189110 | 01:53:17 |
emily | fwiw, it looks like it was an issue for Android too. | 01:53:23 |
emily | and it's now conditional https://github.com/swiftlang/swift/commit/8d67a3723146c417a1986febfb207d1fe962a0d8 | 01:54:11 |
emily | perhaps a later version of the SDK will pick that up? | 01:54:19 |
emily | (maybe not, if the .swiftinterface is after that) | 01:55:46 |
Randy Eckenrode | It’s a property wrapper. They changed it to a macro in Swift 6.0. | 01:56:07 |
Randy Eckenrode | https://github.com/swiftlang/swift/blame/36a3c6e61101419f4557781da79f291445cdfa1b/stdlib/public/Concurrency/TaskLocal.swift#L17-L30 | 01:58:03 |
emily | I wonder if building against the version of the libraries in the Swift sources rather than using the SDK for the bootstrap would solve it – since the conditional is there in the source. alternatively –
shion:~/Developer/swift (empty) (no description set)
❭ rg macro_unsupported
include/swift/AST/DiagnosticsSema.def
8083:ERROR(macro_unsupported,none,
lib/Sema/TypeCheckMacros.cpp
247: macro->diagnose(diag::macro_unsupported);
1253: ctx.Diags.diagnose(loc, diag::macro_unsupported);
1616: attachedTo->diagnose(diag::macro_unsupported);
1761: diag::macro_unsupported);
lib/Sema/TypeCheckDeclPrimary.cpp
1189: ctx.Diags.diagnose(initExpr->getLoc(), diag::macro_unsupported);
I wonder what happens if you just make these emit a warning rather than an error.
| 01:58:18 |
emily | (ofc, not a good long-term solution to patch like that, but it's something that we could go to upstream about) | 01:58:37 |
Randy Eckenrode | The guard isn’t in the swiftinterface. Either Apple strips it from their SDK build, or it doesn’t get put in there. | 01:59:29 |
emily | yeah, I guess the guards are processed before generating the .swiftinterface. so making the compiler not immediately die when it sees a macro definition, and avoiding the .swiftinterfaces in favour of the source code when bootstrapping, are the two options there. | 02:00:25 |
Randy Eckenrode | That works for Concurrency, but it doesn’t work for Foundation. | 02:00:34 |
emily | well, they do have their FOSS Foundation, right? but yeah, making the macro definitions not immediately kill it seems like the easier thing to try. | 02:01:25 |
Randy Eckenrode | Building swift-corelibs-foundation on Darwin isn’t really supported by upstream. | 02:02:55 |
Randy Eckenrode | Their Swift-based Foundation is a subset of the full Foundation APIs. | 02:03:08 |
Randy Eckenrode | I’m getting crashes in the compiler. The C++ bootstrap just isn’t ready for use yet. | 02:07:00 |
Randy Eckenrode | Oh, neat. LLVM 16 was removed. That’s going to make building Swift 5.10.1 suck. Maybe I’ll just copy the existing derivation for bootstrap purposes. | 02:17:57 |
Randy Eckenrode | Oh, right. It does wrapper crimes. | 02:19:16 |
samasaur | it also doesn't work on linux at the moment | 02:19:40 |
samasaur | https://github.com/NixOS/nixpkgs/issues/461474 or https://github.com/NixOS/nixpkgs/issues/462451 (i think they're the same issue) | 02:20:35 |
emily | maybe a 6.2 binary might be an easier stopgap while the bootstrap compiler bakes | 02:22:15 |
samasaur | if anybody has ideas about that issue, do let me know; it's entirely unfamiliar to me | 02:28:57 |
Randy Eckenrode | I’m going to try applying https://github.com/swiftlang/swift/pull/83211. | 02:41:00 |
Randy Eckenrode | https://github.com/swiftlang/swift/issues/83018 | 02:41:47 |
Randy Eckenrode | I tried looking at where Swiftly downloads toolchains. There’s no platform definition for Darwin. I don’t know if it’s installing from Xcode or what. | 02:42:22 |
Randy Eckenrode | There are .pkg files on the Swift website. | 02:43:10 |
Randy Eckenrode | I didn’t try seeing whether we can extract those or not. | 02:43:19 |