[Mono-devel-list] CLS compliance

Olaf Monien olaf at atozed.com
Wed Jun 15 05:44:09 EDT 2005

Atsushi Eno wrote:
> The same argument about pascal compiler bug was there.
> http://galactus.ximian.com/pipermail/mono-devel-list/2005-June/012409.html

Sorry, I was not yet subscribed to this list when that was discussed.
However, this is not really about XML.MiniParser - its just an example,
other spots with the same issue may exist.

Its not really a Pascal compiler bug btw. (besides that the "error"
should be labled a "warning", which is currently under discussion)

>> I did not try to find out what CLS compliancy requirements are not met
>> in detail, but there is one which causes this class to be less usable
>> with some .NET languages:
> This is not true. Microsoft VBC did not complain anything.

Huh? Where did I mention VBC? Even if it did not complain, it does not
mean that this works. Did you try to access line *and* Line from VB?

>> ps: the [CLSCompliant(*false*)] correctly declares  that piece of code
>> to be non-compliant, but of course it does not make Pascal-compilers
>> case-senstive ;-)
> This should not matter. Those case insensitive compilers should
> avoid to examine those non-CLSCompliant types.

You are missing the point: If you have identifiers in *protected* or
*public* interfaces which differ by their case only, how should a
case-insensitive compiler access them? As long as you do not *touch*
them, the compiler still can produce the code though. (Basically VBC
just *hides* the fact that there are inaccessible things)

> If you were right,
> then ANY types that is not CLSCompliant must not contain such
> case-insensitively equivalent names, no?

"Must not" is relative - in private sections, you can do whatever you
want, but public/protected interfaces are the problem here - if
portability is one of the goals.

More information about the Mono-devel-list mailing list