<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Verdana
}
--></style>
</head>
<body class='hmmessage'>
Tony there is something a bit gray that you are missing.<BR>
 <BR>
 <BR>
The behavior with @M3nogc we don't necessarily consider bad/wrong/buggy.<BR>
  It is a consistent assertion failure. Not an access violation.<BR>
It could just be Trestle not being fully supported on Windows.<BR>
Olaf says Trestle was never fully ported.<BR>
I'm not sure anyone knows what is missing, and if Juno really demonstrates that or not.<BR>
 <BR>
 <BR>
However, versions before Feb 20 consistently act like current versions act with @M3nogc.<BR>
 Before Feb 20 without @M3nogc.<BR>
 Current with @M3nogc.<BR>
 <BR>
 <BR>
What I'd like to see is current without @M3nogc to act just as bad but no worse than before Feb 20. I think the current behavior without @M3nogc is worse. It's just "fail vs. no fail".<BR>
 <BR>
 <BR>
Now, that is apples and oranges. For example, I relatively recently changed the default initial allocation size and maybe incremental allocation sizes. In particular..I forget the exact details but I think changed from malloc to VirtualAlloc, and VirtualAlloc allocates in 64K chunks. I guess I should review that..but that was more recent I think, after Feb 20. I have to check.<BR>
The code was a bit flawed somehow and I improved it somehow. I forget. Almost everything is subject to rerererereview when there is a bug, granted.<BR>
 <BR>
 <BR>
I agree as well that Feb 20 might have just uncovered a preexisting problem.<BR>
 <BR>
 <BR>
But much is unclear and figuring this out I don't think will be easy. :(<BR>
<BR> <BR>
 - Jay<BR><BR><BR> <BR>
<HR id=stopSpelling>
From: hosking@cs.purdue.edu<BR>To: jay.krell@cornell.edu<BR>Date: Tue, 22 Sep 2009 21:40:27 -0400<BR>CC: m3devel@elegosoft.com<BR>Subject: Re: [M3devel] CM3 5.8 Release Engineering, was Re: back again -- cm3 status worse?<BR><BR>
<DIV><SPAN class=ecxApple-style-span style="WORD-SPACING: 0px; FONT: 12px Helvetica; TEXT-TRANSFORM: none; COLOR: rgb(0,0,0); TEXT-INDENT: 0px; WHITE-SPACE: normal; LETTER-SPACING: normal; BORDER-COLLAPSE: separate">
<DIV style="WORD-WRAP: break-word"><SPAN class=ecxApple-style-span style="WORD-SPACING: 0px; FONT: 12px Helvetica; TEXT-TRANSFORM: none; COLOR: rgb(0,0,0); TEXT-INDENT: 0px; WHITE-SPACE: normal; LETTER-SPACING: normal; BORDER-COLLAPSE: separate">
<DIV style="WORD-WRAP: break-word"><SPAN class=ecxApple-style-span style="WORD-SPACING: 0px; FONT: 12px Helvetica; TEXT-TRANSFORM: none; COLOR: rgb(0,0,0); TEXT-INDENT: 0px; WHITE-SPACE: normal; LETTER-SPACING: normal; BORDER-COLLAPSE: separate"><SPAN class=ecxApple-style-span style="WORD-SPACING: 0px; FONT: 12px Helvetica; TEXT-TRANSFORM: none; COLOR: rgb(0,0,0); TEXT-INDENT: 0px; WHITE-SPACE: normal; LETTER-SPACING: normal; BORDER-COLLAPSE: separate"><SPAN class=ecxApple-style-span style="WORD-SPACING: 0px; FONT: 12px Helvetica; TEXT-TRANSFORM: none; COLOR: rgb(0,0,0); TEXT-INDENT: 0px; WHITE-SPACE: normal; LETTER-SPACING: normal; BORDER-COLLAPSE: separate"><SPAN class=ecxApple-style-span style="WORD-SPACING: 0px; FONT: 12px Helvetica; TEXT-TRANSFORM: none; COLOR: rgb(0,0,0); TEXT-INDENT: 0px; WHITE-SPACE: normal; LETTER-SPACING: normal; BORDER-COLLAPSE: separate"><SPAN class=ecxApple-style-span style="WORD-SPACING: 0px; FONT: 12px Helvetica; TEXT-TRANSFORM: none; COLOR: rgb(0,0,0); TEXT-INDENT: 0px; WHITE-SPACE: normal; LETTER-SPACING: normal; BORDER-COLLAPSE: separate"><SPAN class=ecxApple-style-span style="WORD-SPACING: 0px; FONT: 12px Helvetica; TEXT-TRANSFORM: none; COLOR: rgb(0,0,0); TEXT-INDENT: 0px; WHITE-SPACE: normal; LETTER-SPACING: normal; BORDER-COLLAPSE: separate"><SPAN class=ecxApple-style-span style="WORD-SPACING: 0px; FONT: 12px Helvetica; TEXT-TRANSFORM: none; COLOR: rgb(0,0,0); TEXT-INDENT: 0px; WHITE-SPACE: normal; LETTER-SPACING: normal; BORDER-COLLAPSE: separate"><SPAN class=ecxApple-style-span style="WORD-SPACING: 0px; FONT: 12px Helvetica; TEXT-TRANSFORM: none; COLOR: rgb(0,0,0); TEXT-INDENT: 0px; WHITE-SPACE: normal; LETTER-SPACING: normal; BORDER-COLLAPSE: separate">
<DIV><SPAN class=ecxApple-style-span style="FONT-SIZE: medium"><FONT class=ecxApple-style-span face="'Gill Sans'" color=#0000ff><BR></FONT></SPAN></DIV></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></DIV></SPAN></DIV></SPAN></DIV>
<DIV>
<DIV>On 22 Sep 2009, at 08:16, Jay K wrote:</DIV><BR class=ecxApple-interchange-newline>
<BLOCKQUOTE><SPAN class=ecxApple-style-span style="WORD-SPACING: 0px; FONT: medium Helvetica; TEXT-TRANSFORM: none; COLOR: rgb(0,0,0); TEXT-INDENT: 0px; WHITE-SPACE: normal; LETTER-SPACING: normal; BORDER-COLLAPSE: separate">
<DIV class=ecxhmmessage style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana">Yes there is fairly definitely a problem on Windows and it dates, I think, to this change:<BR> <BR> <BR>2009-02-16 02:20  hosking<BR>  * m3-libs/m3core/src/: Csupport/VAX/dtoa.c, Csupport/big-endian/dtoa.c,<BR>    Csupport/little-endian/dtoa.c, convert/CConvert.i3,<BR>    convert/CConvert.m3, runtime/I386_DARWIN/RTThread.m3,<BR>    runtime/common/RTCollector.m3, runtime/common/RTHeapRep.i3,<BR>    runtime/common/RTOS.i3, thread/POSIX/ThreadPosix.m3,<BR>    thread/PTHREAD/ThreadF.i3, thread/PTHREAD/ThreadPThread.m3,<BR>    thread/PTHREAD/ThreadPThreadC.c, thread/PTHREAD/ThreadPThreadC.i3,<BR>    thread/WIN32/ThreadWin32.m3:<BR>  Clean up RTOS.LockHeap/RTOS.UnlockHeap implementations to better match underlying pthread semantics.<BR>  This means that RTOS.WaitHeap must be called while RTOS.LockHeap is held.<BR>  RTOS.BroadcastHeap can be called whether RTOS.LockHeap is held or not.<BR></DIV></SPAN></BLOCKQUOTE>
<DIV><BR></DIV>
<DIV>I'm not convinced that this change itself broke things, but perhaps instead exposed the brokenness.  In any case, debugging this in the head will probably be easiest.  If we have an example that deterministically breaks then I think we have a place to start.  My suggestion for now, since it appears to trigger the problem, is to use @M3nogc.</DIV>
<DIV><BR></DIV></DIV>                                     </body>
</html>