[Mono-dev] How To Convince Mono To Allocate Big Arrays
Luis F. Ortiz
LuisOrtiz at verizon.net
Thu May 8 19:21:03 EDT 2008
On May 8, 2008, at 9:29 AM, Rodrigo Kumpera wrote:
> One important thing I forgot. If you break your patch into a few
> smaller ones the review process will be a lot easier to every one
> involved.
> The first one can introduce new types and configuration foo; then
> other to fix codegen and Array methods and; at last, a bunch of
> fixes to classlib issues -like sockets, file i/o and so on.
>
> Cheers,
> Rodrigo
OK, here is another stab at the changes.
This modifies the following files:
configure.in
mono/metadata/object.c
mono/metadata/object.h
mono/metadata/icall-def.h
mono/metadata/icall.c
mono/metadata/socket-io.c
These files:
1) Add a new configuration option, --enable-big-arrays, which
defines conditionally defines MONO_BIG_ARRAYS in config.h,
2) Add in mono/metadata/object.h :
A) A new typedef for mono_array_size_t to be either guint32 or
guint64
B) A new #define for MONO_ARRAY_MAX_INDEX for the biggest valid
array index, i.e. G_MAXINTxx
C) A new #define for MONO_ARRAY_MAX_SIZE for the biggest valid
array allocation, i.e. G_MAXUINTxx
D) The above all controlled by MONO_BIG_ARRAYS
3) Modify the definitions of mono_array_new(),
mono_array_new_full(), and mono_array_new_specific() to match,
4) Modify the usages of those functions in the metadata directory to
match,
5) Add range checking in ves_icall_System_Array_CreateInstanceImpl64
so it works with or without MONO_BIG_ARRAYS,
6) Attempt to address all the mistakes you pointed out.
These changes, in addition to the other changes I made, pass "make
check" with the exception of Tests.test_0_regress_75832(), as
previously confessed.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Rodrigo1.patch
Type: application/octet-stream
Size: 13581 bytes
Desc: not available
Url : http://lists.ximian.com/pipermail/mono-devel-list/attachments/20080508/0bb19955/attachment.obj
-------------- next part --------------
/Ortiz/Luis
More information about the Mono-devel-list
mailing list