<html>
<head>
<style>
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Verdana
}
</style>
</head>
<body class='hmmessage'>
ps: I think there's another funny thing here:<br>I think you can have:<br><br>INTERFACE FooInterface;<br><br>PROCEDURE SafeFunction();<br>PROCEDURE UnsafeFunction()=ADDRESS;<br><br>END FooInterface.<br><br>Despite being in a safe interface, UnsafeFunction either can't be called<br>from safe code, or at least its return value can't be used? Or at least<br>can't be done anything with but compare to NIL?<br>I think.<br>Therefore this interface could be said to be "partially unsafe".<br><br>Perhaps not a useful middle ground though.<br><br> - Jay<br><br><hr id="stopSpelling">From: jay.krell@cornell.edu<br>To: hosking@cs.purdue.edu<br>CC: m3devel@elegosoft.com<br>Subject: RE: [M3devel] RC merge<br>Date: Fri, 11 Sep 2009 21:26:00 +0000<br><br>



<style>
.ExternalClass .EC_hmmessage P
{padding:0px;}
.ExternalClass body.EC_hmmessage
{font-size:10pt;font-family:Verdana;}
</style>


Yes and no. I agree I made a small mess. I'm not sure you have quite described how it should be.<br><br>I propose a few options:<br> 1 - asis, probably not<br> 2 - rename/merge ThreadUnsafe to ThreadInternal<br> 3 - move the part that external folks use, probably just MyId, to Thread, and then move ThreadUnsafe back to ThreadF, maybe ThreadInternal to ThreadF too<br><br>2 at least removes one interface that I added, reducing the three similar ThreadF, ThreadUnsafe, ThreadInternal, to just two, ThreadF and ThreadInternal<br><br>3 maybe gratuitously breaks folks but is a clean result<br><br> 4 - like you said, make all ThreadF users unsafe; but IF it is just MyId, and I'm not sure it is, which seems harmless, right? seems wrong to make them unsafe.<br><br> - Jay<br><br><hr id="EC_stopSpelling">From: hosking@cs.purdue.edu<br>To: jay.krell@cornell.edu<br>Date: Fri, 11 Sep 2009 16:51:11 -0400<br>CC: m3devel@elegosoft.com<br>Subject: Re: [M3devel] RC merge<br><br><div>Sorry, it looks like my commit failed last night because of need to merge with your ThreadUnsafe stuff.</div><div><br></div><div>FYI, we really should think about making ThreadF UNSAFE since anyone invoking on it is exposed to dangerous parts of the run-time system.  Is there any need for it really to be safe?</div><div><br></div><div>On 11 Sep 2009, at 16:05, Jay K wrote:<div><br class="EC_EC_Apple-interchange-newline"><blockquote><span class="EC_EC_Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;"><div class="EC_EC_hmmessage" style="font-size: 10pt; font-family: Verdana;">Tony I'll double check if I see the hang. NT386 still crashes.<br><br><a href="http://www.modula3.com/cm3/ChangeLog-2009">http://www.modula3.com/cm3/ChangeLog-2009</a><br><br>"<br>2009-09-08 05:54 hosking<br><pre><br>  * m3-libs/m3core/src/: convert/CConvert.m3,<br>    runtime/common/RTAllocator.m3, runtime/common/RTCollector.m3,<br>    runtime/common/RTCollectorSRC.i3, runtime/common/RTHeapInfo.m3,<br>    runtime/common/RTHeapRep.i3, runtime/common/RTHeapRep.m3,<br>    runtime/common/RTHeapStats.m3, runtime/common/RTLinker.m3,<br>    runtime/common/RTOS.i3, runtime/ex_frame/RTExFrame.m3,<br>    runtime/ex_stack/RTExStack.m3, thread/POSIX/ThreadF.i3,<br>    thread/POSIX/ThreadPosix.m3, thread/PTHREAD/ThreadF.i3,<br>    thread/PTHREAD/ThreadPThread.m3, thread/WIN32/ThreadF.i3,<br>    thread/WIN32/ThreadWin32.m3:<br><br>  Tidy up use of thread.inCritical to only occur in allocation sequences and in<br>  thread stoppage.  This simplifies reasoning.  Refactored use of heap lock<br>  in the process.  This may be better implemented on PTHREAD targets using a<br>  recursive pthread mutex instead of one we roll ourselves from a non-recursive<br>  mutex.<br><br>  Still witnessing random hangs in Juno and mentor on I386_DARWIN.<br>  Strange, I thought this was working previously.<br>  I wonder if there is some sort of race in the GUI code somewhere?<br>"<br><br>??</pre>-  Jay<br><br><br><hr id="EC_EC_stopSpelling">From:<span class="EC_EC_Apple-converted-space"> </span><a href="mailto:hosking@cs.purdue.edu">hosking@cs.purdue.edu</a><br>To:<span class="EC_EC_Apple-converted-space"> </span><a href="mailto:jay.krell@cornell.edu">jay.krell@cornell.edu</a><br>Date: Fri, 11 Sep 2009 12:46:19 -0400<br>CC:<span class="EC_EC_Apple-converted-space"> </span><a href="mailto:m3devel@elegosoft.com">m3devel@elegosoft.com</a><br>Subject: Re: [M3devel] RC merge<br><br>No, the hangs in Juno and mentor are no longer there.  I cannot reproduce them on I386_DARWIN.<br><div><span class="EC_EC_EC_Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;"><div style="word-wrap: break-word;"><span class="EC_EC_EC_Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;"><div style="word-wrap: break-word;"><span class="EC_EC_EC_Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;"><span class="EC_EC_EC_Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;"><span class="EC_EC_EC_Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;"><span class="EC_EC_EC_Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;"><span class="EC_EC_EC_Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;"><span class="EC_EC_EC_Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;"><span class="EC_EC_EC_Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;"><span class="EC_EC_EC_Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;"><div><span class="EC_EC_EC_Apple-style-span" style="font-size: medium;"><font class="EC_EC_EC_Apple-style-span" color="#0000ff" face="'Gill Sans'"><br></font></span></div></span></span></span></span></span></span></span></span></div></span></div></span></div><div><div>On 11 Sep 2009, at 10:24, Jay K wrote:</div><br class="EC_EC_EC_Apple-interchange-newline"><blockquote><span class="EC_EC_EC_Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;"><div class="EC_EC_EC_hmmessage" style="font-size: 10pt; font-family: Verdana;">But the hangs are still present, right? Worth merging without that fixed?<br> <br>How does one do it easily?<br>I wish we used Perforce. :(<br><br> - Jay<br><br> <br><hr id="EC_EC_EC_stopSpelling">From:<span class="EC_EC_EC_Apple-converted-space"> </span><a href="mailto:hosking@cs.purdue.edu">hosking@cs.purdue.edu</a><br>To:<span class="EC_EC_EC_Apple-converted-space"> </span><a href="mailto:m3devel@elegosoft.com">m3devel@elegosoft.com</a><br>Date: Fri, 11 Sep 2009 09:45:23 -0400<br>Subject: [M3devel] RC merge<br><br>Can someone merge my recent deep fixes to pthreads threading over to the release branch?  I won't get a chance to do so until next Monday at the earliest.<br><div><br><div><span class="EC_EC_EC_EC_Apple-style-span" style="text-transform: none; text-indent: 0px; border-collapse: separate; font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; white-space: normal; letter-spacing: normal; color: rgb(0, 0, 0); word-spacing: 0px;"><div style="word-wrap: break-word;"><span class="EC_EC_EC_EC_Apple-style-span" style="text-transform: none; text-indent: 0px; border-collapse: separate; font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; white-space: normal; letter-spacing: normal; color: rgb(0, 0, 0); word-spacing: 0px;"><div style="word-wrap: break-word;"><span class="EC_EC_EC_EC_Apple-style-span" style="text-transform: none; text-indent: 0px; border-collapse: separate; font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; white-space: normal; letter-spacing: normal; color: rgb(0, 0, 0); word-spacing: 0px;"><span class="EC_EC_EC_EC_Apple-style-span" style="text-transform: none; text-indent: 0px; border-collapse: separate; font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; white-space: normal; letter-spacing: normal; color: rgb(0, 0, 0); word-spacing: 0px;"><span class="EC_EC_EC_EC_Apple-style-span" style="text-transform: none; text-indent: 0px; border-collapse: separate; font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; white-space: normal; letter-spacing: normal; color: rgb(0, 0, 0); word-spacing: 0px;"><span class="EC_EC_EC_EC_Apple-style-span" style="text-transform: none; text-indent: 0px; border-collapse: separate; font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; white-space: normal; letter-spacing: normal; color: rgb(0, 0, 0); word-spacing: 0px;"><span class="EC_EC_EC_EC_Apple-style-span" style="text-transform: none; text-indent: 0px; border-collapse: separate; font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; white-space: normal; letter-spacing: normal; color: rgb(0, 0, 0); word-spacing: 0px;"><span class="EC_EC_EC_EC_Apple-style-span" style="text-transform: none; text-indent: 0px; border-collapse: separate; font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; white-space: normal; letter-spacing: normal; color: rgb(0, 0, 0); word-spacing: 0px;"><span class="EC_EC_EC_EC_Apple-style-span" style="text-transform: none; text-indent: 0px; border-collapse: separate; font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; white-space: normal; letter-spacing: normal; color: rgb(0, 0, 0); word-spacing: 0px;"><span class="EC_EC_EC_EC_Apple-style-span" style="text-transform: none; text-indent: 0px; border-collapse: separate; font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; white-space: normal; letter-spacing: normal; color: rgb(0, 0, 0); word-spacing: 0px;"><div><font class="EC_EC_EC_EC_Apple-style-span" color="#0000ff"><font class="EC_EC_EC_EC_Apple-style-span" face="Gill Sans"><span class="EC_EC_EC_EC_Apple-style-span" style="font-family: 'Gill Sans'; color: rgb(0, 0, 255);"><span class="EC_EC_EC_EC_Apple-style-span" style="font-family: 'Gill Sans'; color: rgb(0, 0, 255);">Antony Hosking</span></span></font></font><font class="EC_EC_EC_EC_Apple-style-span" face="Gill Sans"><span class="EC_EC_EC_EC_Apple-style-span" style="font-family: 'Gill Sans';"><span class="EC_EC_EC_EC_Apple-style-span" style="font-family: 'Gill Sans';"><span class="EC_EC_EC_EC_Apple-converted-space"> </span>|<span class="EC_EC_EC_EC_Apple-converted-space"> </span></span></span><span class="EC_EC_EC_EC_Apple-style-span" style="font-family: 'Gill Sans';"><span class="EC_EC_EC_EC_Apple-style-span" style="font-family: 'Gill Sans';">Associate Professor</span></span><span class="EC_EC_EC_EC_Apple-style-span" style="font-family: 'Gill Sans';"><span class="EC_EC_EC_EC_Apple-style-span" style="font-family: 'Gill Sans';"> | Computer Science | Purdue University</span></span></font></div><div><font class="EC_EC_EC_EC_Apple-style-span" face="GillSans-Light"><span class="EC_EC_EC_EC_Apple-style-span" style="font-family: GillSans-Light;">305 N. University Street | West Lafayette | IN 47907 | USA</span></font></div><div><font class="EC_EC_EC_EC_Apple-style-span" color="#0000ff" face="Gill Sans"><span class="EC_EC_EC_EC_Apple-style-span" style="font-family: 'Gill Sans'; color: rgb(0, 0, 255);"><span class="EC_EC_EC_EC_Apple-style-span" style="font-family: 'Gill Sans'; color: rgb(0, 0, 255);">Office</span></span></font><font class="EC_EC_EC_EC_Apple-style-span" face="GillSans-Light"><span class="EC_EC_EC_EC_Apple-style-span" style="font-family: GillSans-Light;"><span class="EC_EC_EC_EC_Apple-style-span" style="font-family: GillSans-Light;"> +1 765 494 6001 |<span class="EC_EC_EC_EC_Apple-converted-space"> </span></span></span></font><font class="EC_EC_EC_EC_Apple-style-span" color="#0000ff" face="Gill Sans"><span class="EC_EC_EC_EC_Apple-style-span" style="font-family: 'Gill Sans'; color: rgb(0, 0, 255);"><span class="EC_EC_EC_EC_Apple-style-span" style="font-family: 'Gill Sans'; color: rgb(0, 0, 255);">Mobile</span></span></font><font class="EC_EC_EC_EC_Apple-style-span" face="GillSans-Light"><span class="EC_EC_EC_EC_Apple-style-span" style="font-family: GillSans-Light;"><span class="EC_EC_EC_EC_Apple-style-span" style="font-family: GillSans-Light;"><span class="EC_EC_EC_EC_Apple-converted-space"> </span>+1 765 427 5484</span></span></font></div><div><font class="EC_EC_EC_EC_Apple-style-span" face="GillSans-Light"><br class="EC_EC_EC_EC_khtml-block-placeholder"></font></div></span></span></span></span></span></span></span><br class="EC_EC_EC_EC_Apple-interchange-newline"></span></div></span></div></span><br class="EC_EC_EC_EC_Apple-interchange-newline"></div><br></div></div></span><br class="EC_EC_EC_Apple-interchange-newline"></blockquote></div><br></div></span><br class="EC_EC_Apple-interchange-newline"></blockquote></div><br></div></body>
</html>