<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Verdana
}
--></style>
</head>
<body class='hmmessage'>
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>
<HR id=stopSpelling>
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>
<HR id=ecxstopSpelling>
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><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=ecxecxApple-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=ecxecxApple-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=ecxecxApple-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=ecxecxApple-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=ecxecxApple-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=ecxecxApple-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=ecxecxApple-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=ecxecxApple-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=ecxecxApple-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=ecxecxApple-style-span>
<DIV><SPAN style="FONT-SIZE: medium" class=ecxecxApple-style-span><FONT class=ecxecxApple-style-span color=#0000ff face="'Gill Sans'">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 style="WHITE-SPACE: pre" class=ecxecxApple-tab-span> </SPAN>/usr/cvs<BR>Changes by:<SPAN style="WHITE-SPACE: pre" class=ecxecxApple-tab-span> </SPAN>jkrell@birch.<SPAN style="WHITE-SPACE: pre" class=ecxecxApple-tab-span> </SPAN>09/11/30 13:03:07<BR><BR>Modified files:<BR><SPAN style="WHITE-SPACE: pre" class=ecxecxApple-tab-span></SPAN>cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 <BR><BR>Log message:<BR><SPAN style="WHITE-SPACE: pre" class=ecxecxApple-tab-span></SPAN>keep two thread handles<BR><SPAN style="WHITE-SPACE: pre" class=ecxecxApple-tab-span></SPAN>what to call them is unclear<BR><SPAN style="WHITE-SPACE: pre" class=ecxecxApple-tab-span></SPAN>here we ahve:<BR><SPAN style="WHITE-SPACE: pre" class=ecxecxApple-tab-span></SPAN>joinHandle<BR><SPAN style="WHITE-SPACE: pre" class=ecxecxApple-tab-span></SPAN>suspendResumeHandle<BR><SPAN style="WHITE-SPACE: pre" class=ecxecxApple-tab-span></SPAN><BR><SPAN style="WHITE-SPACE: pre" class=ecxecxApple-tab-span></SPAN>aka:<BR><SPAN style="WHITE-SPACE: pre" class=ecxecxApple-tab-span></SPAN>pthread<BR><SPAN style="WHITE-SPACE: pre" class=ecxecxApple-tab-span></SPAN>ntthread<BR><SPAN style="WHITE-SPACE: pre" class=ecxecxApple-tab-span></SPAN><BR><SPAN style="WHITE-SPACE: pre" class=ecxecxApple-tab-span></SPAN>on all but Interix (and possibly Cygwin), they are equivalent,<BR><SPAN style="WHITE-SPACE: pre" class=ecxecxApple-tab-span></SPAN>either the result of pthread_create or pthread_self<BR><SPAN style="WHITE-SPACE: pre" class=ecxecxApple-tab-span></SPAN><BR><SPAN style="WHITE-SPACE: pre" class=ecxecxApple-tab-span></SPAN>on Interix, once is pthread_create/self, the other is a kernel handle<BR><SPAN style="WHITE-SPACE: pre" class=ecxecxApple-tab-span></SPAN>for suspend/resume<BR><SPAN style="WHITE-SPACE: pre" class=ecxecxApple-tab-span></SPAN><BR><SPAN style="WHITE-SPACE: pre" class=ecxecxApple-tab-span></SPAN>alternate names welcome<BR><SPAN style="WHITE-SPACE: pre" class=ecxecxApple-tab-span></SPAN>the intent seems hoky, but helps much<BR></DIV></BLOCKQUOTE></DIV><BR>                                          </body>
</html>