<HTML><HEAD>
<STYLE><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Verdana
}
--></STYLE>

<META http-equiv=Content-Type content="text/html; charset=iso-8859-15">
<META content="MSHTML 6.00.6002.18124" name=GENERATOR></HEAD>
<BODY class=hmmessage>
<DIV>Just out of curiosity, is anyone in the M3 community using or planning to use Interix ?</DIV>
<DIV> </DIV>
<DIV>I only plan to use native Windows, not Interix and not Cygwin.</DIV>
<DIV> </DIV>
<DIV>If no one wants Interix, perhaps current Interix efforts should be put on hold until the release is completed?</DIV>
<DIV> </DIV>
<DIV>Regards,</DIV>
<DIV>Randy<BR><BR>>>> Jay K <jay.krell@cornell.edu> 12/1/2009 5:06 AM >>><BR>I should point out that, like NT386, NT386GNU, NT386MINGNU, Interix is also in reality a few variables that can be mixed/matched.<BR>You can use either gcc or Visual C++ compiler and linker, and either the gcc backend or the integrated backend.<BR>In Interix, gcc is gcc (3.x or possibly 4.2), and cc is a wrapper around Visual C++ cl/link.<BR>They both work. For most code, indistinguishably, though definitely a little bit different feature sets.<BR>Interix does /not/, at least on XP, provide the other variables like C runtime, threading library, GUI library.<BR> After XP they do support "mixed mode" -- access to Win32 -- so then those choices would come back maybe.<BR> To help cc work, you can point $C89_COMPILER and $C89_LINKER at Visual C++ compiler/linker.<BR>(Similarly, you know, Intel has a compiler you can use on as I understand, Windows, Linux, MacOSX, x86, amd64, ia64?. I'm not sure it gets as much use as either gcc or Visual C++, but it is out there.)<BR> <BR> - Jay<BR><BR> <BR></DIV>
<DIV>
<HR id=stopSpelling>
</DIV>
<DIV>From: jay.krell@cornell.edu<BR>To: hosking@cs.purdue.edu; jkrell@elego.de<BR>CC: m3devel@elegosoft.com<BR>Subject: RE: [M3devel] [M3commit] CVS Update: cm3<BR>Date: Mon, 30 Nov 2009 18:15:49 +0000<BR><BR>
<STYLE>
.ExternalClass .ecxhmmessage P
{padding:0px;}
.ExternalClass body.ecxhmmessage
{font-size:10pt;font-family:Verdana;}
</STYLE>
Interix is Posix (mostly) on NT, with fast fork.<BR>  Cygwin in comparison is very slow.<BR>  However SIGINFO is not available. Nor is "direct suspend" using a pthread_t I believe.<BR>The older Interix version on XP does not allow access to any Win32 functions.<BR>Newer versions do.<BR>This does seem to be a pretty useful platfom.<BR>Gui should be available too, but I have to work around some problem.<BR> <BR> - Jay<BR><BR> <BR></DIV>
<DIV>
<HR id=ecxstopSpelling>
</DIV>
<DIV>From: hosking@cs.purdue.edu<BR>Date: Mon, 30 Nov 2009 09:48:48 -0500<BR>To: jkrell@elego.de<BR>CC: m3devel@elegosoft.com<BR>Subject: Re: [M3devel] [M3commit] CVS Update: cm3<BR><BR></DIV>
<DIV><SPAN class=ecxecxApple-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=ecxecxApple-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=ecxecxApple-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=ecxecxApple-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=ecxecxApple-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=ecxecxApple-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=ecxecxApple-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=ecxecxApple-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=ecxecxApple-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=ecxecxApple-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=ecxecxApple-style-span style="FONT-SIZE: medium"><FONT class=ecxecxApple-style-span face="'Gill Sans'" color=#0000ff>This whole interix thing is pretty messy.  Why do we care?  If you are on Windows just use Windows threads.   No need to pollute the pthreads code base with unnecessary complications for weird hybrids.</FONT></SPAN></DIV></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></DIV></SPAN></SPAN></DIV><BR>
<DIV>
<DIV>On 30 Nov 2009, at 13:03, Jay Krell wrote:</DIV><BR class=ecxecxApple-interchange-newline>
<BLOCKQUOTE>
<DIV>CVSROOT:<SPAN class=ecxecxApple-tab-span style="WHITE-SPACE: pre"> </SPAN>/usr/cvs<BR>Changes by:<SPAN class=ecxecxApple-tab-span style="WHITE-SPACE: pre"> </SPAN>jkrell@birch.<SPAN class=ecxecxApple-tab-span style="WHITE-SPACE: pre"> </SPAN>09/11/30 13:03:07<BR><BR>Modified files:<BR><SPAN class=ecxecxApple-tab-span style="WHITE-SPACE: pre"></SPAN>cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 <BR><BR>Log message:<BR><SPAN class=ecxecxApple-tab-span style="WHITE-SPACE: pre"></SPAN>keep two thread handles<BR><SPAN class=ecxecxApple-tab-span style="WHITE-SPACE: pre"></SPAN>what to call them is unclear<BR><SPAN class=ecxecxApple-tab-span style="WHITE-SPACE: pre"></SPAN>here we ahve:<BR><SPAN class=ecxecxApple-tab-span style="WHITE-SPACE: pre"></SPAN>joinHandle<BR><SPAN class=ecxecxApple-tab-span style="WHITE-SPACE: pre"></SPAN>suspendResumeHandle<BR><SPAN class=ecxecxApple-tab-span style="WHITE-SPACE: pre"></SPAN><BR><SPAN class=ecxecxApple-tab-span style="WHITE-SPACE: pre"></SPAN>aka:<BR><SPAN class=ecxecxApple-tab-span style="WHITE-SPACE: pre"></SPAN>pthread<BR><SPAN class=ecxecxApple-tab-span style="WHITE-SPACE: pre"></SPAN>ntthread<BR><SPAN class=ecxecxApple-tab-span style="WHITE-SPACE: pre"></SPAN><BR><SPAN class=ecxecxApple-tab-span style="WHITE-SPACE: pre"></SPAN>on all but Interix (and possibly Cygwin), they are equivalent,<BR><SPAN class=ecxecxApple-tab-span style="WHITE-SPACE: pre"></SPAN>either the result of pthread_create or pthread_self<BR><SPAN class=ecxecxApple-tab-span style="WHITE-SPACE: pre"></SPAN><BR><SPAN class=ecxecxApple-tab-span style="WHITE-SPACE: pre"></SPAN>on Interix, once is pthread_create/self, the other is a kernel handle<BR><SPAN class=ecxecxApple-tab-span style="WHITE-SPACE: pre"></SPAN>for suspend/resume<BR><SPAN class=ecxecxApple-tab-span style="WHITE-SPACE: pre"></SPAN><BR><SPAN class=ecxecxApple-tab-span style="WHITE-SPACE: pre"></SPAN>alternate names welcome<BR><SPAN class=ecxecxApple-tab-span style="WHITE-SPACE: pre"></SPAN>the intent seems hoky, but helps much<BR></DIV></BLOCKQUOTE></DIV><BR></BODY></HTML>