Miguel de Icaza miguel@ximian.com
20 Jul 2001 16:13:52 -0400

> Yes.  I just got back to this.  I modified raw_buffer_load() to fail the
> mmap() call.  The alternate code which allocs some memory and loads it with
> read() works fine.  The assembly loads OK and the SIGSEGV is gone.
> However, for the following C# program, compiled with csc 7.00.9254,

Mhm.  I wonder why mmap succeeds, but does not actually work.  Seems
like mmap does not work correctly on cygwin.

> The current nonfunctioning code agrees with the Tiny Format table spec in
> the ECMA draft Partition II Metadata, section 25.2.2.  But that spec looks
> broken.  How can you have a format field which is 2 bits wide in some cases
> and 3 in others?  Here the 3 LSBs are 0x6, which matches both TINY (0x6&0b11
> == 0x2) and TINY1 (0x6&0b111 == 0x6).

You are correct.  The idea is to compare against a value, and there
are three possible values TINY, TINY1 and FAT.  It would seem sensible
to use three values from 0 to 3 in there.  So I think some detective
work to see what Beta2 actually produces is needed here.

I will write a few tests shortly to track this bad boy down.

> What is your process for reporting spec issues to ECMA and/or Microsoft?

You can email Sam Ruby (rubys@us.ibm.com).