[Mono-devel-list] sharing generic instantitions
Michal Moskal
michal.moskal at gmail.com
Sat Jul 2 08:50:50 EDT 2005
Hello,
As far as I know the MS implementation of generics uses sharing of
code in certain situations. For example if we have a method foo<T>()
the code for foo<object>() and foo<string>() will be shared. However
the code for foo<int>() and foo<double>() will probably not be shared,
because the sizes of int and double are different.
There is a problem, when you use the type parameter, for instance
foo<T> () { ... new Hashtable <T,int> () ... }. You need to know its
value, so it has to be actually passed, just like a regular parameter.
This is explained in more detail here:
http://blogs.msdn.com/joelpob/archive/2004/11/17/259224.aspx
Is this feature planned in Mono?
This is mostly a performance issue. I don't know how bad could be the
impact of lack of this feature, because of:
http://bugzilla.ximian.com/show_bug.cgi?id=75444
but as far as I can see in the Nemerle compiler, using highly generic code
the amount of generated code is 3x as big as with version using boxing
everything to object.
--
Michal Moskal,
http://nemerle.org/~malekith/
More information about the Mono-devel-list
mailing list