[M3devel] thread test results on Win7 64-bit

Daniel Alejandro Benavides D. dabenavidesd at yahoo.es
Thu Mar 24 00:41:35 CET 2011


Hi all:
that is correct, it could be not NIL and still be wrong if V1 doesn't hold the characters of src are not those of buff mentione cin green book, page 160 or p 37 of:
ftp://apotheca.hpl.hp.com/pub/dec/SRC/research-reports/SRC-053.pdf

rd.buff[rd.st + i - rd.lo] = src(rd)[i]

The other thing is that as WrRep module section 6.8 in green book, page 151 says is needed or in SRC-RR-053, p 21 sec 8, collector is not relocating, does it hold this?


Aside, does a procedure type hold ADDRESS and its values are valid, as we could trace untraced objects, records, procedures in an unmovable heap and change them absolutely but in terms of an unsafe RT, that is to communicate better its abstraction low level in the RT, or high level like with traced ones.

Thanks in advance


--- El mar, 22/3/11, Rodney M. Bates <rodney_bates at lcwb.coop> escribió:

> De: Rodney M. Bates <rodney_bates at lcwb.coop>
> Asunto: Re: [M3devel] thread test results on Win7 64-bit
> Para: "m3devel" <m3devel at elegosoft.com>
> Fecha: martes, 22 de marzo, 2011 13:45
> 
> 
> The only subscript operation in this line is rd.buff[0].
>  From the declaration of buff in RdClass.i3:32, buff has
> type REF ARRAY OF CHAR.  If buff were NIL, it should
> give
> a different runtime error (probably segfault).  With
> the
> subscript being statically zero, the only way this could
> happen is if buff was allocated with a zero NUMBER. 
> I
> didn't go looking for that, but it seems unlikely.
> 
> Otherwise, it would have to be a corrupted heap object or
> maybe miscompiled code.  Or the runtime error message
> is
> wrong.  From this shallow reasoning, I would put my
> bet on
> the corrupted object.
> 
> On 03/16/2011 07:13 PM, Tony Hosking wrote:
> > This is the offending line:
> >
> > On Mar 16, 2011, at 6:50 PM, Coleburn, Randy wrote:
> >
> >> ***
> >> *** runtime error:
> >> *** An array subscript was out of range.
> >> *** file "..\src\rw\FileRd.m3", line 83
> >> ***
> >
> > n := rd.sourceH.read(
> > SUBARRAY(LOOPHOLE(ADR(rd.buff[0]), ByteArrayPtr)^, 0,
> > MIN (NUMBER(rd.buff^), BIG)), mayBlock := NOT
> dontBlock)
> >
> > I am very suspicious about this... anyone have any
> insights?
> >
> 
>



      



More information about the M3devel mailing list