[Mono-devel-list] Volunteers for LateIndexGet?

Marco Ridoni marco.ridoni at virgilio.it
Fri Apr 25 08:05:50 EDT 2003


As most of you probably know, we have a problem with Microsoft.VisualBasic,
specifically with its undocumented behaviour. Due to licensing reasons, the
people who work on the MVB runtime for Mono cannot legally reverse-engineer
the code and write compatible sources, while we are allowed to work on
documentation provided by third parties, even MS itself, which,
unfortunately didn't publish anything on the internals of MVB and is not
expected to do so (from their point of view this would actually make little
sense).

As MonoBasic is progressing we find it harder and harder to work around the
limitations of not having access to many runtime functions. I guess it's
time to ask for a little help for specific tasks, since I suppose many
people would like to contribute but don't know what the priorities are. The
function which holds the top spot in our priority list is

Microsoft.VisualBasic.CompilerServices.LateBinding.LateIndexGet()

This function resolves "late" accesses to arrays, class members, etc and
it's present in MVB for many reasons, the most notable ones being that VB
has some peculiarities which don't allow to resolve everything at compile
time. See this example:
'================
Dim a(3) As String
Dim o As Object

o = a
Console.WriteLine (o(0))
'================
This is possible because VB uses late binding as a standard features. If
something cannot be resolved at compile time, the compiler simply generates
a call to LateIndexGet (or one of the methods in the LateBinding class)
which will resolve it at run-time, when the type of variables/objects will
be known.

What we need is someone to document this function (and possibly any
non-trivial function it calls) and its behaviour. This documentation will
serve as the basis to write code to be added to Mono's MVB runtime. The key
part is: thou shalt NOT write the documentationa AND the code.

Thanks


Marco Ridoni
marco.ridoni at virgilio.it






More information about the Mono-devel-list mailing list