<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Tahoma
}
--></style>
</head>
<body class='hmmessage'>
I forgot to reply to this point, which keep coming up:<br><br><br>> starts blurring the line between what is and is not Modula-3. This could<br>> turn out to be a problem if Modula-3 is in future again ported to systems<br>> without complete, modern C environments. By "problem" I mean an extra<br>> bifurcation of application programs: some programs for "POSIX Modula-3"<br><br>
<br>
Cvsup won't work in such a system without a certain amount of work.<br>
<br>
Such a system requires a fairly significant amount of work.<br>
<br>
Nothing discussed here really touches on the work required.<br>
<br>
<br>
Such a system needs threads implemented in *some* fashion.<br>
Either pthreads, or sigaltstack, or jmpbuf smashing, or somehow natively in Modula-3,<br>
but ultimately, you need assembly and/or processor-specificness *somewhere*.<br>
You must save restore registers somewhere. You must setup a stack somewhere. You need preemption somehow (well,<br>
maybe not -- "cooperative suspend").<br>
And you need to provide for file I/O somewhere, depending on what sort of program you want to run.<br>
And socket I/O, ditto.<br>
And keyboard/video/mouse/console functionality, ditto.<br>
You can use more or less of the facilities of the underlying system,
giving you more or less functionality for free/cheap, obligating<br>
you to implement more or less of the functionality you require or desire.<br>
<br>
<br>
Modula-3 layers on top of Posix and Win32, with more or less thickness and state.<br>
<br>
<br>
Modula-3 was kind of interesting in that it provided threads with a
certain amount of portability without requiring an underlying threading
capability, with just<br>
timers for preemption and setjmp/longjmp for context save/restore.<br>
This is still somewhat interesting, e.g. maybe for DJGPP, but pthreads and Win32 threads are widespread now, and providing these<br>
features isn't particularly valuable or differentiating.<br>
You know -- why use Modula-3? One of the reasons in the past was maybe for portable threading. That is still a reason, but<br>
portable threading is not as difficult to write for one's self these days, merely by layering over pthreads and Win32.<br>
<br>
<br>
<br>
- Jay </body>
</html>