<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Verdana
}
--></style>
</head>
<body class='hmmessage'>
I understand but I have a variety of systems and a variety of installs lying around.<BR>
I usually make do with whatever I have.<BR>
It is untidy, but only slightly.<BR>
  For some definition of "only slightly".<BR>
I keep hoping we can say 5.8 release is the new base, abandon all others, but we don't have it yet.<BR>
 <BR>
 - Jay<BR>
 <BR>
<HR id=stopSpelling>
Subject: Re: [M3commit] CVS Update: cm3<BR>From: hosking@cs.purdue.edu<BR>Date: Wed, 10 Feb 2010 12:53:39 -0500<BR>CC: jkrell@elego.de; m3commit@elegosoft.com<BR>To: jay.krell@cornell.edu<BR><BR><BASE>
<DIV><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=ecxApple-style-span><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=ecxApple-style-span>
<DIV style="WORD-WRAP: break-word"><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=ecxApple-style-span><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=ecxApple-style-span><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=ecxApple-style-span><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=ecxApple-style-span><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=ecxApple-style-span><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=ecxApple-style-span><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=ecxApple-style-span><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=ecxApple-style-span>
<DIV><FONT class=ecxApple-style-span color=#0000ff face="'Gill Sans'"><SPAN style="FONT-SIZE: medium" class=ecxApple-style-span>We've been over this before.  The run-time libraries (including sysutils) can be assumed to bootstrap from a *new* compiler, which has itself been compiled against the *old* libraries.  Then, you can build a *new new* compiler linked against the *new* libraries.  Let's not make the libraries have braindead code when it is not necessary.  They should be kept clean going forward!</SPAN></FONT></DIV></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></DIV></SPAN></SPAN></DIV><BR>
<DIV>
<DIV>On 10 Feb 2010, at 12:00, Jay K wrote:</DIV><BR class=ecxApple-interchange-newline>
<BLOCKQUOTE><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; WORD-SPACING: 0px" class=ecxApple-style-span>
<DIV style="FONT-FAMILY: Verdana; FONT-SIZE: 10pt" class=ecxhmmessage>sysutils has somewhat of a need to know if it is using user threads.<BR>We've been over this multiple times through the years.<BR>Never seems to be 100% resolved, but a solid 99%.<BR> <BR> <BR>It runs a process and waits.<BR>Historically in sysutils and m3core this was sleep/wait(nohang) in a loop.<BR>It was identified by people as a major performance problem.<BR> Because the process exits fairly quickly but you have to wait for the sleep to finish.<BR> Sleep being Modula-3 Thread.Sleep I guess -- call into the user thread scheduler.<BR>By and by, most platforms got kernel threads. Changing it to be wait(hang)<BR>became good, faster, no deadlock. But openbsd comes along with lame<BR>pthreads, usermode at that, so we use user threads, and wait(hang)<BR>could deadlock..<BR> <BR> <BR>There is an interface in m3core to handle this stuff, but if<BR>you bootstrap from an old build, it isn't there.<BR> <BR> <BR>Mitigating factor as I understand that we don't use threads agressively,<BR>so the deadlock isn't actually likely.<BR>"we" meaning code that launches processes.<BR> <BR> <BR>I understand that ideally you don't care if you are using userthreads or kernelthreads.<BR>But the abstraction historically was incomplete.<BR> <BR> <BR> - Jay<BR><BR> <BR>> From:<SPAN class=ecxApple-converted-space> </SPAN><A href="mailto:hosking@cs.purdue.edu">hosking@cs.purdue.edu</A><BR>> Date: Wed, 10 Feb 2010 10:16:24 -0500<BR>> To:<SPAN class=ecxApple-converted-space> </SPAN><A href="mailto:jkrell@elego.de">jkrell@elego.de</A><BR>> CC:<SPAN class=ecxApple-converted-space> </SPAN><A href="mailto:m3commit@elegosoft.com">m3commit@elegosoft.com</A><BR>> Subject: Re: [M3commit] CVS Update: cm3<BR>><SPAN class=ecxApple-converted-space> </SPAN><BR>> Huh? Cryptic comment.<BR>><SPAN class=ecxApple-converted-space> </SPAN><BR>> On 10 Feb 2010, at 12:20, Jay Krell wrote:<BR>><SPAN class=ecxApple-converted-space> </SPAN><BR>> > CVSROOT: /usr/cvs<BR>> > Changes by: jkrell@birch. 10/02/10 12:20:55<BR>> ><SPAN class=ecxApple-converted-space> </SPAN><BR>> > Modified files:<BR>> > cm3/m3-libs/sysutils/src/POSIX/: m3makefile<SPAN class=ecxApple-converted-space> </SPAN><BR>> ><SPAN class=ecxApple-converted-space> </SPAN><BR>> > Log message:<BR>> > I had this change around: expose if we are using user threads, i.e. if we are OpenBSD<BR>><SPAN class=ecxApple-converted-space> </SPAN><BR></DIV></SPAN></BLOCKQUOTE></DIV><BR>                                     </body>
</html>