| 1 Dec 2025 |
emily | if it was working up until the 26 SDK then I imagine they might have interest in keeping it working | 18:05:33 |
emily | would be a lot cleaner than worrying about keeping an SDK around for years | 18:05:48 |
emily | especially if we get to the point of "new LLVM chokes on the old SDK now" etc. | 18:05:59 |
emily | (or more plausibly, new Swift chokes on Swift parts of the old SDK) | 18:06:17 |
Randy Eckenrode | The problem is Foundation reexports Observable. That makes import Foundation immediately fail because it hits macros right away. | 18:06:44 |
emily | they won't have any way of knowing that it matters for someone to have it work without us letting them know after all | 18:06:47 |
emily | it surely can't be hard to just skip over macro definitions when bootstrapping right? | 18:07:13 |
Randy Eckenrode | The parser has no idea without support. It needs swift-syntax, which is written in Swift. | 18:07:52 |
emily | (I mean, maybe it can be, but the people working on the Swift bootstrap would know better than I :) ) | 18:07:53 |
Randy Eckenrode | If we hit that point, we can bootstrap from a binary distribution or a know good one. | 18:08:03 |
Randy Eckenrode | I think it’a one guy working on it: | 18:08:23 |
Randy Eckenrode | * | 18:08:27 |
Randy Eckenrode | * | 18:08:42 |
Randy Eckenrode | * | 18:09:35 |
emily | if we're planning ahead about things like a binary bootstrap or an old compiler or an old SDK I don't see why we shouldn't spend that effort on taking 5 minutes to open a bug report upstream… | 18:09:48 |
toonn | Are you sure the macros are not used in any code hit during a compiler compile? | 18:10:13 |
emily | are we talking about Foundation.framework/Versions/C/Modules/Foundation.swiftmodule/x86_64-apple-macos.swiftinterface? I see e.g.
@available(macOS 12, iOS 15, tvOS 15, watchOS 8, visionOS 1, *)
@freestanding(expression) public macro bundle() -> Foundation.Bundle = #externalMacro(module: "FoundationMacros", type: "BundleMacro")
| 18:11:17 |
Randy Eckenrode | Because I’m going probably going to have to reproduce with the recommended build scripts and toolchains, which will require more than five minutes. Also, five minutes spent on that is time not spent on other things. | 18:11:21 |
emily | which seems like it would be really easy to parse and just map to a stub error | 18:11:30 |
emily | by definition they can't really be, since the point of the bootstrap compiler is to compile the compiler, and the bootstrap compiler can't do macros | 18:11:49 |
emily | so basically the only way they could be used is if there's a macOS-specific code path in the parts of the compiler that handle macros that uses stuff from the SDK that uses macros | 18:12:10 |
emily | which seems really unlikely / very avoidable | 18:12:18 |
Randy Eckenrode | Yes, when building SwiftPM. If I try to turn around and build a Swift with macro support, swift-syntax fails in Concurrency because the TaskLocal property wrapper was changed to a macro in Swift 6. | 18:13:01 |
Randy Eckenrode | On macOS, you use Xcode to build Swift. You’re not intended to build from no Swift compiler. | 18:14:19 |
emily | the Environment section of the bug tracker says "Provide the Swift version, tag, or revision. If you suspect that the problem might be specific to a particular development platform or deployment target, please specify them as well.", so I expect a bug report with a Nix build is acceptable, fwiw | 18:14:27 |
Randy Eckenrode | This bootstrap path is meant to replace cross-compilation for bringing up new targets. | 18:14:49 |
Randy Eckenrode | I also don’t want to have a conversation about our SDKs with Apple dev tools guys …. | 18:16:58 |
emily | mpv does not build on the kosmickrisp branch fwiw | 18:19:25 |
emily | > Running phase: installCheckPhase
> Executing versionCheckPhase
> Did not find version 0.40.0 in the output of the command /nix/store/p1a85d42gasrfil0jg9wnhd5fsxiw6h7-mpv-0.40.0/bin/mpv --help
>
> Did not find version 0.40.0 in the output of the command /nix/store/p1a85d42gasrfil0jg9wnhd5fsxiw6h7-mpv-0.40.0/bin/mpv --version
| 18:19:28 |
emily | very weird, since it is in fact in the output… | 18:19:55 |