Importing the right version of a module (such as the standard library) when more than one are available is just a search-paths problem. Supporting multiple versions of the language's syntax and ABI, though, as far as I can tell, requires the switch to be deeply baked into the compiler.
So I don't really see how we can get away with a "general" solution, beyond perhaps some SwiftPM support for libraries that provide source or binaries for multiple language versions. On Wed, Aug 3, 2016 at 12:44 PM, Douglas Gregor <dgre...@apple.com> wrote: > > > On Aug 3, 2016, at 1:16 AM, Brent Royal-Gordon via swift-dev < > swift-...@swift.org> wrote: > > > >> On Jul 29, 2016, at 5:55 PM, Jacob Bandes-Storch via swift-evolution < > swift-evolution@swift.org> wrote: > >> > >> • a top-of-file "shebang"-style comment indicating the version, > something like //#swift(4), mirroring the "#if swift" syntax > > > > `import Swift 3.1`? > > > > I think this brings up two interesting questions: > > > > * Do we want to be able to mix files using different versions of Swift > in the same module? > > No. It simplifies the problem greatly if the whole module is compiled with > a single Swift version. > > > * Do we want to extend these backwards compatibility features beyond the > standard library to other modules? > > If we can design generally-useful features for handling language > versioning, that the standard library can adopt, that would be great. > > - Doug > >
_______________________________________________ swift-evolution mailing list swift-evolution@swift.org https://lists.swift.org/mailman/listinfo/swift-evolution