<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>