Update on Module Stability and Module Interface Files

That's a good question. As noted, this is going to depend on the -enable-library-evolution mode for now, and that's probably what you want anyway for frameworks that ship as a binary. Even though you don't need the full ABI compatibility guarantee because of the bundling with the final app, someone else might make a binary framework of their own that depends on yours, and ideally their framework wouldn't be revlocked with yours. (Especially since there's no checking for that right now!)

Anyway, -enable-library-evolution does impose a few additional restrictions on code even if you don't use @_frozen, so you could try it out on your framework with a downloadable toolchain and see if you're going to hit any of those. Most libraries we've tried it with for testing purposes haven't run into those restrictions, though. (IIRC they're mostly around inlinable struct initializers.)

1 Like