Lazy module linking with swift

(Timur Yusipov) #1

The question is about lazy module linking with swift. AFAIK swift does not support this feature out of the box.


If you have some module called Dynamic with a class DynamicClass and have another module called DynamicClient where you import Dynamic and use DynamicClass, then swift will force a linker to generate a load command to dynamically link against Dynamic.framework in runtime. This feature is called autolinking.


Autolinking can be disabled using private swift compiler flag disable-autolink-framework {name} as described in this stackoverflow question.

However, if you use this flag, the linker reports an undefined symbol error, which is pretty obvious, so this flag does not help.

It would be great to avoid swift's eager linking in favor of lazy one. Is this anyhow possible or planned for implementation?