<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Verdana
}
--></style>
</head>
<body class='hmmessage'>
I say we remove vfork from m3core.<BR>
 <BR>
 <BR>
 - We never use it in cm3. To be confirmed.<BR>
 <BR>
 - It cannot be portably wrapped in C without<BR>
    violating Posix. And is that theoretical or real?<BR>
    Posix says you can't return from the caller of vfork.<BR>
    It must exec or _exit.<BR>
    It'd be cool if we could have a jump or tail recursion<BR>
     but that's probably not feasible.<BR>
    Maybe a function pointer?? I can try that out.<BR>
    Would have to see if Posix allows vfork to be a macro through.<BR>
    We could declare a function pointer and then the C implementation<BR>
    could have an #ifdef around it -- not provide the function pointer on all platforms.<BR>
 <BR>
 - It doesn't have a portable name.<BR>
   Witness netbsd2-i386/Unix.i3.<BR>
   I assume that is correct or close?<BR>
   But maybe this is an "ideal" vs. "possible, works" case? (see below)<BR>
 <BR>
IF we ever get to a system where vfork is advantagous against fork, uses should be written in C.<BR>
 <BR>
Unless it can be shown that the NetBSD example is wrong, or unnecessary?<BR>
I'm a little torn. In particular, "header cloning", despite my distaste, is not unique to Modula-3.<BR>
And there is some good chance that the names are actually portable.<BR>
You know, it might be more efficient on Linux to #include <sys/stat.h> and get all the<BR>
stat wrappers, the static libraries probably contain them in the "normal" way.<BR>
If I get back to NetBSD and find they are compatible this way too, then maybe the current form is ok.<BR>
 <BR>
You know, the question is..while types and constants are definitely an issue and reasonably<BR>
dealt with, "function names" maybe aren't?<BR>
 <BR>
 <BR>
Note that vfork doesn't really merit this level of discussion but I'd like to understand the general case.<BR>
Maybe I just need to read more of the Posix spec and maybe it talks about link level naming vs. C source level constructs? Ie. maybe they talk about Ada, Pascal, etc. bindings?? (ie: maybe people really do support languages other than C via acceptable header cloning?)<BR>
 <BR>
 <BR>
 - Jay<BR>                                     </body>
</html>