[Mono-list] linkage question
Jonathan Pryor
jonpryor at vt.edu
Fri Feb 6 13:20:24 EST 2009
On Fri, 2009-02-06 at 10:52 -0700, Ryan Heaton wrote:
> Interesting. How exactly does an API get identified as "stable"? Some
> kind of compiler flag?
By the author saying that it's stable, signing the assembly (see sn(1)),
and installing it into the GAC (gacutil /i, which requires that the
assembly be signed).
> And how does one install a stable assembly into the GAC?
gacutil /i.
> Just curious; I doubt I'll be using the GAC.
The GAC should not be used lightly. Placing an assembly into the GAC is
saying "the public API will never change [for this primary version] in
an incompatible manner." Thus, for example, you can't rename existing
types or members, or change the accessibility of members from public to
non-public, change the types of members (e.g. field to a property), etc.
Any of which may be needed for "cleanliness" reasons, bug fixes, and the
like.
Which isn't to say that the GAC shouldn't be used -- Gtk# has a stable
API, and certainly should use the GAC to simplify dependencies for other
applications -- but some care and thought needs to be used before
deciding to place assemblies into the GAC.
- Jon
More information about the Mono-list
mailing list