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

Reply via email to