<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Tahoma
}
--></style>
</head>
<body class='hmmessage'>
 - That error is likely from the frontend and will likely occur for any target. Tony's reply implies this as well.<BR>
 <BR>
 - LONGINT is believed to fully work on NT386. But more testing is welcome.<BR>
 <BR>
 - (atomics ditto -- believed to work, testing welcome -- and we should probably use them some, e.g. in MUTEX initialization)<BR>
 <BR>
 - I would be curious to see if threadtest only fails on 64bit Windows. I haven't tried 32bit yet but I will soon.<BR>
   - I was thinking more about this WOW64 GetThreadContext problem and ways to mitigate it, other than cooperative suspend.<BR>
     I had already suggested and started to implement scanning the entire stack -- i.e. not depending on an ability to get ESP from a suspended thread.<BR>
     Like how FreeBSD and OpenBSD work, albeit it is a significant deoptimization.<BR>
     Regarding the rest of the context, perhaps it is a reasonable assumption for now to declare that it doesn't matter? e.g. to know/assume<BR>
     that m3back never leaves a value only in registers, that anything in a register will also be on the stack? And to disable optimization on the<BR>
     hypothetical MINGW platforms. ?<BR>
     But still to confirm if there are no problems on 32bit, and to mull over implementing cooperative suspend..in the little time available...<BR>
     (Oh, and also, I wonder if SuspendThread can suspend a thread while in the kernel, probably, and if GetThreadContext returns<BR>
     the kernel context in that case; should be easy to determine via some experimentation -- which would imply a problem on 32bit Windows also.)<BR>
 <BR>
 <BR>
 - Jay<BR> <BR>

<HR id=stopSpelling>
From: hosking@cs.purdue.edu<BR>Date: Mon, 14 Mar 2011 17:21:01 -0400<BR>To: rcolebur@SCIRES.COM<BR>CC: m3devel@elegosoft.com<BR>Subject: Re: [M3devel] question re LONGINT<BR><BR>
<META name=Generator content="Microsoft SafeHTML">This is a known problem which I am still to fix.  I know what the issue is...
<DIV>You can probably make do by reading counts[i] to a variable, incrementing, and assigning.<BR>
<DIV><BR>
<DIV>
<DIV>On Mar 14, 2011, at 5:14 PM, Coleburn, Randy 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 lang=EN-US>
<DIV style="page: WordSection1" class=ecxWordSection1>
<DIV style="FONT-FAMILY: Calibri, sans-serif; MARGIN-BOTTOM: 0pt; MARGIN-LEFT: 0in; FONT-SIZE: 11pt; MARGIN-RIGHT: 0in">I was making some local mods to Mika’s threadtest program to help me debug things a bit more on Windows.</DIV>
<DIV style="FONT-FAMILY: Calibri, sans-serif; MARGIN-BOTTOM: 0pt; MARGIN-LEFT: 0in; FONT-SIZE: 11pt; MARGIN-RIGHT: 0in"> </DIV>
<DIV style="FONT-FAMILY: Calibri, sans-serif; MARGIN-BOTTOM: 0pt; MARGIN-LEFT: 0in; FONT-SIZE: 11pt; MARGIN-RIGHT: 0in">I am trying to do:</DIV>
<DIV style="FONT-FAMILY: Calibri, sans-serif; MARGIN-BOTTOM: 0pt; MARGIN-LEFT: 0in; FONT-SIZE: 11pt; MARGIN-RIGHT: 0in">   INC(counts[i]);</DIV>
<DIV style="FONT-FAMILY: Calibri, sans-serif; MARGIN-BOTTOM: 0pt; MARGIN-LEFT: 0in; FONT-SIZE: 11pt; MARGIN-RIGHT: 0in">Where counts is REF ARRAY OF LONGINT</DIV>
<DIV style="FONT-FAMILY: Calibri, sans-serif; MARGIN-BOTTOM: 0pt; MARGIN-LEFT: 0in; FONT-SIZE: 11pt; MARGIN-RIGHT: 0in"> </DIV>
<DIV style="FONT-FAMILY: Calibri, sans-serif; MARGIN-BOTTOM: 0pt; MARGIN-LEFT: 0in; FONT-SIZE: 11pt; MARGIN-RIGHT: 0in">The compiler is complaining:</DIV>
<DIV style="FONT-FAMILY: Calibri, sans-serif; MARGIN-BOTTOM: 0pt; MARGIN-LEFT: 0in; FONT-SIZE: 11pt; MARGIN-RIGHT: 0in">"..\src\Main.m3", line 189: ** INTERNAL CG ERROR *** unable to find integer type?  type=Int.64  s/o/a=64/0/32</DIV>
<DIV style="FONT-FAMILY: Calibri, sans-serif; MARGIN-BOTTOM: 0pt; MARGIN-LEFT: 0in; FONT-SIZE: 11pt; MARGIN-RIGHT: 0in"> </DIV>
<DIV style="FONT-FAMILY: Calibri, sans-serif; MARGIN-BOTTOM: 0pt; MARGIN-LEFT: 0in; FONT-SIZE: 11pt; MARGIN-RIGHT: 0in">I’m not sure what the status of LONGINT is on Windows.  If it is not fully implemented, let me know and I’ll switch to REF ARRAY OF INTEGER, but I really need LONGINT.</DIV>
<DIV style="FONT-FAMILY: Calibri, sans-serif; MARGIN-BOTTOM: 0pt; MARGIN-LEFT: 0in; FONT-SIZE: 11pt; MARGIN-RIGHT: 0in"> </DIV>
<DIV style="FONT-FAMILY: Calibri, sans-serif; MARGIN-BOTTOM: 0pt; MARGIN-LEFT: 0in; FONT-SIZE: 11pt; MARGIN-RIGHT: 0in">Regards,</DIV>
<DIV style="FONT-FAMILY: Calibri, sans-serif; MARGIN-BOTTOM: 0pt; MARGIN-LEFT: 0in; FONT-SIZE: 11pt; MARGIN-RIGHT: 0in">Randy Coleburn</DIV>
<DIV style="FONT-FAMILY: Calibri, sans-serif; MARGIN-BOTTOM: 0pt; MARGIN-LEFT: 0in; FONT-SIZE: 11pt; MARGIN-RIGHT: 0in"> </DIV></DIV></DIV></SPAN></BLOCKQUOTE></DIV><BR></DIV></DIV>                                          </body>
</html>