Yes. The interesting new thing in crates and assemblies is that they define a granularity for *static* linking. A crate or assembly is whole-crate compiled, therefore statically linked and checked *up to* its interface requirements with other crates/assemblies.
Composition of crates/assemblies *may* occur at compile time (in the whole-program case), or it *may* occur at run time (due to dynamic libraries and dynamic binding). What I'm suggesting is that once this distinction exists, we acknowledge its existence in the type system and define our collision requirements and scopes accordingly. We cannot allow non-lexical anti-collision checks to manifest at runtime. So if we are going to admit non-lexical anti-collision requirements, we have to restrict the scope of those items to some unit that is statically compiled and checked. Jonathan On Wed, Jul 24, 2013 at 6:13 AM, Ben Kloosterman <[email protected]> wrote: > Crates / Assemblies are the compilation unit which contain many modules. * > *** > > ** ** > > *From:* [email protected] [mailto:[email protected]] > *On Behalf Of *Alex Rozenshteyn > *Sent:* Wednesday, 24 July 2013 9:00 PM > *To:* Discussions about the BitC language > *Subject:* Re: [bitc-dev] A solution for overlapping and colliding > instances**** > > ** ** > > Why wouldn't it be a link-time failure (as opposed to a compile-time > failure)? >
_______________________________________________ bitc-dev mailing list [email protected] http://www.coyotos.org/mailman/listinfo/bitc-dev
