<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Tahoma
}
--></style>
</head>
<body class='hmmessage'><div dir='ltr'>
Daniel I think you are maybe saying that either we need to write an NT/ARM backend like we have for NT/x86, or we need to generate C, or something else. Yes. True. I want to generate C. That should greatly reduce future porting work, might compile faster, might compile slower, will provide tremendous and portable debugability gains (and some debuggability loss on some systems). Writing other processor/OS specific backends is surely fun and interesting too, but more work, more difficult, and less value. We should also look into generating Java and/or C# and/or Microsoft .NET IL, i.e. for Windows Phone but this is an even larger tangent. C# has optional unsafety so is a somewhat different topic than generating Java. But this is still tangential to the topic at hand, and it is still very difficult to understand anything you say.<br><br><br>Linux/ia64 can plod along just fine using the existing gcc backend.<br>NT/ARM might be able to too eventually.<br>NT/AMD64 certainly could.<br><br><br>Mark, please try out what I said and ignore all the speculating. Linux/ia64 can be made to work without much change to the existing system.<br><br><br>Daniel's tangent: VMS isn't clearly as easy, but it has definite potential. gcc does support VMS/Alpha. So does binutils. I have a working gcc cross compiler and linker to target VMS/Alpha. That is an important piece. It was enough to build a native gcc for VMS/Alpha, that didn't work, but probably only because I was missing environment variables on the target (to find headers/libraries). These are important pieces, given our current situation (ie: no C generating backend).<br><br><br>But I have approximately zero time to devote to this stuff any longer, sorry.<br><br><br> - Jay<br><br><div><hr id="stopSpelling">Date: Thu, 6 Oct 2011 16:31:08 +0100<br>From: dabenavidesd@yahoo.es<br>To: mark@wickensonline.co.uk; jay.krell@cornell.edu<br>CC: m3devel@elegosoft.com<br>Subject: Re: [M3devel] CM3 on IA64?<br><br><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td style="font:inherit" valign="top">Hi all:<br>for instance:<br>http://forums.theregister.co.uk/forum/2/2011/05/18/james_on_arm_and_windows/<br><br>Again sorry for any inconvenience I may cause by this stuff.<br><br>The argument seems to be we did that already (ix86 and from AMD_64 for 8086) and don't think it's a good idea to do it again. I sort of disagree given the AMD64 support for that arguing.<br><br>Thanks in advance<br><br>--- El <b>jue, 6/10/11, Daniel Alejandro Benavides D. <i><dabenavidesd@yahoo.es></i></b> escribió:<br><blockquote style="margin-left:5px;padding-left:5px"><br>De: Daniel Alejandro Benavides D. <dabenavidesd@yahoo.es><br>Asunto: Re: [M3devel] CM3 on IA64?<br>Para: mark@wickensonline.co.uk, "Jay K" <jay.krell@cornell.edu><br>CC: "m3devel" <m3devel@elegosoft.com><br>Fecha: jueves, 6 de octubre, 2011
 10:20<br><br><div id="ecxyiv283771742"><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td style="font-family:inherit;font-style:inherit;font-variant:inherit;font-weight:inherit;font-size:inherit;line-height:inherit;font-size-adjust:inherit;font-stretch:inherit" valign="top">Hi all:<br>my point is just to say, we would need alter SPIN protocol to load the M3RT without the WinRT (nor Win32), isn't that what you wanted Jay, sorry if not what you mentioned once? I mean you sort of wanted to drop C Windows dependences, well unless we develop further the idea, we won't be advancing too much in W8 arena and this is coming very soon, worse that we won't have much HW to boot any other OS that one would want to support, but we could provide the VM images for them.<br>It tourns out that OpenVMS had something to do with DEC-WRL which loved Modula-2, and the things they used had relation with that in their VMS, as a side story they tried
 to promote their language without too much success:<br>http://billwake.blogspot.com/1997_05_01_archive.html<br><br>This is portrait in some external parts of the VMS freeware, like
 here:<br>http://ia64.vsm.com.au/conan/sys$common/syslib/sys$starlet_c.tlb?search=x<br><br>I think DEC had a NT386 ahead of time interpreter for NT Alpha, we could move faster from that as well in these platforms, using our own MIPS VM, for commonly used OSes (cross-compiling from Linux host which is what we lack as for now):<br>http://www.usenix.org/publications/library/proceedings/usenix-nt97/full_papers/chernoff/chernoff.pdf<br><br>The cost associated with this is not as high as having OS ready but merely device drivers, and or the VM machinery like for OSF, etc and stuff.<br><br>Thanks in advance<br><br>--- El <b>mar, 4/10/11, Daniel Alejandro Benavides D. <i><dabenavidesd@yahoo.es></i></b> escribió:<br><blockquote style="margin-left:5px;padding-left:5px"><br>De: Daniel Alejandro Benavides D. <dabenavidesd@yahoo.es><br>Asunto: Re: [M3devel] CM3 on IA64?<br>Para: mark@wickensonline.co.uk, "Jay
 K" <jay.krell@cornell.edu><br>CC: "m3devel" <m3devel@elegosoft.com><br>Fecha: martes, 4 de octubre, 2011 17:28<br><br><div id="ecxyiv283771742"><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td style="font-family:inherit;font-style:inherit;font-variant:inherit;font-weight:inherit;font-size:inherit;line-height:inherit;font-size-adjust:inherit;font-stretch:inherit" valign="top">Hi all:<br>yeah, but as you said it is bigger problem if we get to afford a machine to boot from, this is to say, can we create boots from W8 machine from source to OpenVMS.<br>This is a big question, and the thing is what is the W8 idea boot from anything but OSS (who was/is the OpenVMs engineer), then it is a sound question if the future is W8, where is the OpenVMS guy here (Mark you do know so surely). Well that's the question, I think. Can you solve it, and why not or why is not that the question here? Tell me if doesn't make that sense
 to you. I would be peacefully leave the email if not, I have the right I mean you have the doubt, don't you?<br>Thanks in advance<br><br>--- El <b>mar, 4/10/11, Jay K <i><jay.krell@cornell.edu></i></b> escribió:<br><blockquote style="margin-left:5px;padding-left:5px"><br>De: Jay K <jay.krell@cornell.edu><br>Asunto: RE: [M3devel] CM3 on IA64?<br>Para: dabenavidesd@yahoo.es, mark@wickensonline.co.uk<br>CC: "m3devel" <m3devel@elegosoft.com><br>Fecha: martes, 4 de octubre, 2011 17:11<br><br><div id="ecxyiv283771742">

<style>
.ExternalClass #ecxyiv283771742   .ecxyiv283771742hmmessage P
{padding:0px;}
.ExternalClass #ecxyiv283771742   body.ecxyiv283771742hmmessage
{font-size:10pt;font-family:Tahoma;}

</style>
<div><div dir="ltr">
Daniel, please discuss SPIN and alternate m3core implementations on another thread.<br>Your links seem generally interesting, but you only seem to take a shred of a hint from our conversations and go all out on rambly tangents.<br>I do that too sometimes, granted. I almost did here, about quake vs. Python.. m3core in kernel or user mode... <br><br>Mark please ignore Daniel for purposes of bringing up CM3 on IA64.<br><br> - Jay<br><br><div><hr id="ecxyiv283771742stopSpelling">Date: Tue, 4 Oct 2011 22:58:32 +0100<br>From: dabenavidesd@yahoo.es<br>Subject: Re: [M3devel] CM3 on IA64?<br>To: mark@wickensonline.co.uk; jay.krell@cornell.edu<br>CC: m3devel@elegosoft.com<br><br><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td style="font-family:inherit;font-style:inherit;font-variant:inherit;font-weight:inherit;font-size:inherit;line-height:inherit;font-size-adjust:inherit;font-stretch:inherit" valign="top">Hi all:<br>I wish more
 akin the spin approach to skip m3core not embedded to compile assembly and link, with standalone C quake (5K loc or so) was enough in a cross platfrom way.<br><br>The main thing thing is that we would need a very sophisticated apparatus with VM, e.g Mark have you any VM inside (where this sounds like a good task to implement if there is such, I Imagine kqemu is on IA64, right? If not, then this is too onerous, I mean we would need a VM to start with, or at least a driver if we we want this to perform as quickly as possible).<br>I don't know but perhaps you could boot one OS on all machines by just one VM, and then move forward every CPU and OS. The positive side of this is we get a powerful enough VM to boot from (OpenVMS supported), we can solve an intrinsic problem in CM3 and all, the need to get  trapped errors, like machine traps
 isolated handled by the OS.<br><br>There is a complete MSc thesis to sort this out but I haven't get it, if somebody can make a clue of how to get it, that would be great (author is not too much available for doing this work again, at least we could see how that went that way).<br>http://www.unive.it/nqcontent.cfm?a_id=26764<br><br>Python sounds good for the start to boot everything else on it (if quake it's too lame, right Jay, if so, or tell me please if it isn't what doyou think about it).<br><br>http://www.imada.sdu.dk/~joan/security/sec.ps<br><br>I know that the guys working with Shared Data Abstractions explored more the quake idea, like MP quake, if that's what they called that:<br>http://books.google.com/books?ei=dH6LTuzbBcqctwfM0eiSAw&ct=result&id=_6RVAAAAMAAJ<br><br>However I'm not saying that just that sorts out the problem, perhaps a more integrated development environment is needed (AST based like Olivetti STL planned it or wrote
 some part of it, but who cares or who used it anyway, perhaps like CAMEL in ARX OS, the useful part would be the interpreter but for more pedagogical purposes rather than that or if that's the thing we like Baby Modula-3, etc, where objects are not imperative just functional or if you want them then Obliq might appear then), something akin Vulcano and parallel make, but I don't have articles about it to say that .<br><br>Thanks in advance<br><br>--- El <b>mar, 4/10/11, Jay K <i><jay.krell@cornell.edu></i></b> escribió:<br><blockquote style="margin-left:5px;padding-left:5px"><br>De: Jay K <jay.krell@cornell.edu><br>Asunto: Re: [M3devel] CM3 on IA64?<br>Para: mark@wickensonline.co.uk<br>CC: "m3devel" <m3devel@elegosoft.com><br>Fecha: martes, 4 de octubre, 2011 15:57<br><br><div id="ecxyiv283771742ecxyiv1998844698">

<style>
.ExternalClass #ecxyiv283771742   .ecxyiv283771742ExternalClass #ecxyiv283771742ecxyiv1998844698 .ecxyiv283771742ecxyiv1998844698hmmessage P
{padding:0px;}
.ExternalClass #ecxyiv283771742   .ecxyiv283771742ExternalClass #ecxyiv283771742ecxyiv1998844698 body.ecxyiv283771742ecxyiv1998844698hmmessage
{font-size:10pt;font-family:Tahoma;}
</style>
<div><div dir="ltr">
Sorry. More/correct instruction:<br><br> Don't set any CM3 environment variables. <br> Just make sure some cm3 is in $PATH. <br> Go to a machine with a working cm3. Windows probably not preferred, but it might work. <br> On that machine run that script. <br>  It may or may not work. <br>  If it doesn't work, the errors shouldn't be terrible. You should investigate them. Report them here if stumped (or if you progress). <br>  Once it works, you'll have like cm3-IA64_LINUX-timestamp.tar.gz. <br>  You copy that .tar.gz to your Linux/ia64 machine.  (I use scp.) <br>  tar xfz it. <br>  cd cm3-IA64-LINUX-timestamp <br>  make  <br>  Which may or may not work, but should make a lot of progress. <br>    Once that works, well..more later. It is a major step, but there is a little more to do. <br>  You might have to edit the top of the Makefile. <br><br><br> I can predict
 where the problems will be, but let's see how it goes with minimum hinting from me, ok? <br> You are signed up to waste time, right? :) <br><br><br> Let us know, and please don't give up quickly, thank you,<br>  - Jay<br><br><br><br><br><div>> From: mark@wickensonline.co.uk<br>> To: jay.krell@cornell.edu<br>> Date: Tue, 4 Oct 2011 19:06:44 +0100<br>> CC: m3devel@elegosoft.com<br>> Subject: Re: [M3devel] CM3 on IA64?<br>> <br>> Jay,<br>> <br>> I tried this:<br>> <br>> msw@zx6000 /usr/local/cm3-build/cm3/scripts/python $ echo $CM3_INSTALL<br>> /usr/local/cm3-build/cm3/<br>> <br>> msw@zx6000 /usr/local/cm3-build/cm3/scripts/python $ ./boot1.py<br>> IA64_LINUXTraceback (most recent call last):<br>>   File "./boot1.py", line 5, in <module><br>>     import pylib<br>>   File "/usr/local/cm3-build/cm3/scripts/python/pylib.py", line 569, in<br>> <module><br>>     for a in
 os.popen(CM3 + " -version 2>/dev/null"):<br>> TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'<br>> <br>> Am I missing the executable 'cm3'?<br>> <br>> Mark.<br>> <br>> <br>> On Tue, 2011-10-04 at 01:06 +0000, Jay K wrote:<br>> > Can you give me or any of us ssh access to it?<br>> > <br>> > <br>> > Porting is much much easier these days.<br>> > Really, it is not difficult.<br>> > If gcc supports the target and the target is reasonably Posix<br>> > compliant, there is almost nothing to do.<br>> > These are both true for Linux/ia64.<br>> > <br>> > <br>> > Can you try?<br>> > <br>> > <br>> > See<br>> > http://modula3.elegosoft.com/cgi-bin/cvsweb.cgi/cm3/doc/notes/porting.txt?rev=1.6;content-type=text%2Fplain<br>> > <br>> > <br>> > or just go ahead and<br>> > <br>> > <br>> >   cd
 scripts/python  <br>> >   ./bootstrap.py IA64_LINUX  <br>> > <br>> > <br>> > It *might* just work.<br>> > It will certainly almost work.<br>> > There is really very little to it.<br>> > There never was a whole lot really, but there is a lot less now.<br>> > A big part used to be rewriting /usr/include in Modula-3, which was<br>> > tedious, error-prone, and unsafe.<br>> > That is gone now.<br>> > Before pthreads, another part was dissecting jmpbuf.<br>> > That is gone now -- even for user threads.<br>> > <br>> > <br>> >  - Jay<br>> > <br>> > > Date: Mon, 3 Oct 2011 23:18:17 +0100<br>> > > From: mark@wickensonline.co.uk<br>> > > To: m3devel@elegosoft.com<br>> > > Subject: [M3devel] CM3 on IA64?<br>> > > <br>> > > Hi guys,<br>> > > <br>> > > Has anyone attempted a port of CM3 to Itanium
 architecture?<br>> > > I've recently installed gentoo on my ZX6000 and it's all running<br>> > very <br>> > > nicely.<br>> > > My thoughts turned to what would be involved in getting Modula-3<br>> > running.<br>> > > <br>> > > Kind regards, Mark.<br>> > > <br>> > <br>> <br>> <br></div>                                       </div></div>
</div></blockquote></td></tr></tbody></table></div>                                     </div></div>
</div></blockquote></td></tr></tbody></table></div></blockquote></td></tr></tbody></table></div></blockquote></td></tr></tbody></table></div>                                           </div></body>
</html>