[Mono-list] Some questions about shared assemlies, strong names...

Fergus Henderson fjh@cs.mu.OZ.AU
Sun, 4 May 2003 21:55:16 +1000

On 04-May-2003, Paolo Molaro <lupus@ximian.com> wrote:
> I may have not expressed myself clearly. [...]

Yes, I misunderstood what you meant by the 99%.
Now that you've explained, I'm in much closer agreement.

> So, we're back at the name clashes: how big is the problem?
> I maintain that it's relevant in a tiny 1 percent of the cases, from
> the number of name clashes that I saw happening, for example, with the
> programs packaged for Debian. The clashes are rare, hence my 1% figure
> (that refers to the 100% of use cases for shared assemblies, not strong
> names) though I agree they are still an issue.

Having hit a name clash already (for "gc.dll") when trying to port
Mercury to run on Mono, I am probably more sensitive to this issue
than most ;-).  I still haven't solved that, BTW.

With the projects packaged for Debian, it's relatively easy for each new
project that comes along to avoid name clashes with existing projects,
since there is a central repository of Debian packages at debian.org.
It's more difficult to avoid name clashes in cases where packages are
distributed individually by their originating organizations, as will
likely be the case for .NET CLR libraries, rather than being grouped in
a central repository.  Without a central repository, there is no simple
way to check if a name is already in use.

Name clashes seem to me to be a reasonably common occurrence.
For example, there are at least half a dozen different computer-related
things called "mercury".  Google finds at least one other "mercury.dll"
in addition to the one for the University of Melbourne Mercury project.

The Mercury compiler was originally named "mc", but this was later changed
to "mmc", for Melbourne Mercury Compiler, to avoid clashing with the
"Midnight Commander".  Unfortunately Microsoft then released the
"Microsoft Management Console"...

Even the name "mono" is not unique; if you google for "mono.exe"
you will find several variants, with the name "mono" often being used
as an abbreviation for "monophonic" (as in mono vs stereo)
or "monochromatic" (as in mono vs colour).

So I do think name clashes are an issue worth solving.

Fergus Henderson <fjh@cs.mu.oz.au>  |  "I have always known that the pursuit
The University of Melbourne         |  of excellence is a lethal habit"
WWW: <http://www.cs.mu.oz.au/~fjh>  |     -- the last words of T. S. Garp.