[swift-evolution] #import (project scope import) (former: "Pre-imported modules (sort of PCH)”)

Vanderlei Martinelli vmartinelli at alecrim.com
Sat Jan 30 14:14:58 CST 2016

On second thought in the proposal: maybe bringing `#import` to the party as
a project scope `import` instead of having a dedicated file is a better

Something like:

#import MyAwsomeFramework

The difference between `#import` and the regular `import`: the `#import`
says “import this module everywhere for then entire project even if it was
imported again somewhere” and the `import` says "import this module only
for this file".

The `#import` would be included in any source code file and taken into
account. I know the analyser/compiler have to search each single file for
`global imports`, but they already do something like this when we use
`public let something = “something”` outside a structure/class.

What do you think?


On Tue, Jan 26, 2016 at 12:19 AM, Vanderlei Martinelli via swift-evolution <
swift-evolution at swift.org> wrote:

> Hello everybody.
> I've been following the list, but I have not had time to participate more
> actively. I must say that I am very happy for what has been discussed, the
> more because of what Swift will *not* become than of what it will become.
> ;-)
> OK. In Objective-C and other languages we have “.PCH” files or some kind
> of “prefix headers”. In Swift we do not have header files (thankfully), but
> there is no simple way to “pre-import” modules in a way that all source
> files can “see” them without the need of a big list of “imports” at the
> beginning of each file, every single time. I know that the “.PCH-like” it
> is not a good practice in most cases, but I believe it would be interesting
> in some other cases.
> Today we have some kind of this functionality when using bridging headers,
> but this is in fact a side effect provided by the interoperability with
> Objective-C. I am suggesting a pure Swift version of this functionality.
> I do not know how we can implement this in Swift, but since we now have
> the special case of “Package.swift” to handling SPM things, maybe something
> like “Preimport.swift” or “Modules.swift” or something better than these
> names (I do not like them…) with the intention of saying: “Hi, compiler!
> I'm listing here the modules that are common to the whole project, OK? Can
> you take them into account when compiling each project source code file
> from now?"
> What do you think?
> Regards,
> Vanderlei Martinelli
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20160130/d7a25fbb/attachment.html>

More information about the swift-evolution mailing list