<html>
<head>
<style>
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Verdana
}
</style>
</head>
<body class='hmmessage'>
They really don't seem to be there, on 10.4.<BR>
I haven't check the libs yet but they are not in the headers or man pages.<BR>
Do you have installed the "multiple SDKs" (headers/libs for multiple OS versions)?<BR>
Look at in /Developer/SDKs.<BR>
Anyway, they also aren't on OpenBSD so a dual approach will be needed<BR>
which I think is ok.<BR>
Heck, probably one set of Modula-3 but #ifdefed C.<BR>
 <BR>
 - Jay<BR><BR><BR><BR>

<HR id=stopSpelling>
<BR>
From: hosking@cs.purdue.edu<BR>To: jay.krell@cornell.edu<BR>Date: Tue, 13 Jan 2009 08:01:33 +1100<BR>CC: m3devel@elegosoft.com<BR>Subject: Re: [M3devel] a note on user thread -- *context not 'universal'<BR><BR><BR>
<DIV><SPAN class=EC_Apple-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=EC_Apple-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=EC_Apple-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=EC_Apple-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=EC_Apple-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=EC_Apple-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=EC_Apple-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=EC_Apple-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=EC_Apple-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>They *are* available on Darwin 10.5 and I am pretty sure they were there on 10.4.  Have you installed the developer kit (with man pages)?</DIV></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></DIV></SPAN></DIV><BR>
<DIV>
<DIV>On 13 Jan 2009, at 01:05, Jay wrote:</DIV><BR class=EC_Apple-interchange-newline>
<BLOCKQUOTE><SPAN class=EC_Apple-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 class=EC_hmmessage style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana">just a note, that make/get/set/swapcontext are not available on Darwin (10.4) and OpenBSD.<BR>I didn't check NetBSD. It is on Linux, Solaris, FreeBSD.<BR> <BR><BR>A "dual" approach where some ports use setjmp/longjmp, some use *context, probably reasonable.<BR> <BR><BR>Another approach that would probably work is you double up the jmpbuf.<BR>Always make a copy before setjmp and setjmp to the copy.<BR>That way if longjmp "scrambles" it, no matter.<BR>If you can't even copy them, well, setjmp to the "original", copy it away, and then<BR>recopy before any setjmp.<BR> <BR><BR>However, this is inefficient and using *context is probably better, where it is available.<BR> <BR><BR>question:<BR> <BR><BR>On Windows, you can "reserve" virtual memory, and "commit" it.<BR>"reserve" is allocating just the address space.<BR>"commit" I think is ensuring there is room in a pagefile.<BR>Reserve is cheaper. You can overrreserve but I guess not long-term overcommit.<BR>Usually stacks are only ever at first reserved, and then commited gradually,<BR>like a page at a time.<BR> <BR><BR>Whatever *context documentation I could find, didn't talk about this.<BR>They either used a local char array, or a called mmap.<BR>On at least some platforms, there a flag to mmap to indicate you are creating a stack.<BR> <BR> <BR>Do we really need the assembly _fpsetjmp?<BR><BR> - Jay<BR><BR></DIV></SPAN></BLOCKQUOTE></DIV><BR></body>
</html>