<html>
<head>
<style>
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
FONT-SIZE: 10pt;
FONT-FAMILY:Tahoma
}
</style>
</head>
<body class='hmmessage'>new Windows builds in ~jkrell on modula3.elegosoft.com from current CVS (ie: a different checkout than where I have edits):<BR>
% ls -l<BR>total 4480<BR>-rw------- 1 jkrell jkrell  882018 2007-12-18 15:04 cm3-min-WIN32-NT386-d5.5.0-symbols.zip<BR>-rw------- 1 jkrell jkrell 3679897 2007-12-18 15:05 cm3-min-WIN32-NT386-d5.5.0.zip<BR><BR>
Windows /might/ have it easy with LONGINT, however Windows still has it tricky, and maybe not easy, maybe the same trickiness.<BR>
 <BR>
In particular, what you do is:<BR>
  get an existing binary release<BR>
    That gives you cm3 and a pkg repository with m3core and libm3.<BR>
    buildship ONLY cm3<BR>
    and upgrade-compiler, since ship of cm3 doesn't actually do anything perhaps, at least on Windows where the file is in use <BR>
 <BR>
  And then, after having built a new compiler, go and build everything else with it.<BR>
 <BR>
"Normally" you might build things from the bottom of a dependency graph and on up -- m3core, libm3, cm3.<BR>
However in this case you must stick with the old m3core and libm3 and only build cm3.<BR>
The current m3core/libm3 cannot be built with an old compiler, but an old compiler can build a new compiler.<BR>
 <BR>
upgrade.cmd automates this and I suspect upgrade.sh does as well.<BR>
 <BR>
I'll be able to do Mac OS X 10.4 builds before Linux PowerPC, but should get to Linux PowerPC in a few days.<BR>
 <BR>
Perl can written in a readable maintainable fashion, really.<BR>
The bigger "problem" is regular expressions -- with great power/density comes great responsibility..<BR>
There is the /x flag to make them able to take comments, but it is badly flawed in that comments<BR>
confuse the parser. It's a case of regexps being overly woven into the syntax.<BR>
my $re = RegExp->new("..") sould have sufficed without messing up the syntax.<BR>
 <BR>
<BR> - Jay<BR><BR><BR>

<HR id=stopSpelling>
<BR>
> Date: Tue, 18 Dec 2007 14:52:15 +0100<BR>> From: wagner@elegosoft.com<BR>> To: mika@async.caltech.edu<BR>> CC: m3devel@elegosoft.com; mika@camembert.async.caltech.edu<BR>> Subject: Re: [M3devel] Providing some current CM3 bootstrap archives, was: Re: m3cg build failure on powerpc/darwin<BR>> <BR>> Quoting Mika Nystrom <mika@async.caltech.edu>:<BR>> <BR>> ><BR>> > Hi Olaf,<BR>> ><BR>> > I'm sorry to say there is a bit of a problem with your bootstrap for<BR>> > FreeBSD. FreeBSD is beautifully *backward*-compatible, but it's not<BR>> > *forward*-compatible (it may be within a major release, but it's not<BR>> > generally forward-compatible across major releases). The distribution<BR>> > you built on 6.3-PRERELEASE will work for sure on 6.x (x>=3), may work<BR>> > on 6.x (x<3), and will almost certainly not work on y.x (y<6). To<BR>> > remedy this I built a bootstrap on 4.11. It is located at<BR>> ><BR>> > http://www.async.caltech.edu/~mika/cm3-min-POSIX-FreeBSD4-d5.5.0.tgz<BR>> ><BR>> > This compiler should work on pretty much any FreeBSD 4.x, 5.x, and<BR>> > possibly also 6.x.<BR>> <BR>> I was afraid that there is no forward compatibility. So it's<BR>> great that we've got a 4.11 build, I'll add it to our site this evening.<BR>> I don't think anybody will still use any older versions.<BR>> <BR>> > I have to say that it was a bit of an ordeal. I had problems from<BR>> > an old cm3.cfg (mine just never seems to get upgraded right), with<BR>> > -g instead of -gstabs+. I also had two sets of problems stemming<BR>> > from LONGINT: first, of course, my old compiler didn't know what<BR>> > LONGINT was so I searched through my email and indeed I found<BR>> > something from Tony referring to building a bootstrap on NT386 from<BR>> > which I could infer what to do: one has to check out a "mixed"<BR>> > repository mixing the "devel_LONGINT_start" tagged sources with the<BR>> > CVS head. The problems with Int64.i3 and Long.m3 that I think we've<BR>> > seen on other platforms reared their ugly heads here too (although<BR>> > these may have been due to my -g issues, i.e., not having an<BR>> > up-to-date back-end?)<BR>> ><BR>> > In short, in order to build a bootstrap from a pre-LONGINT compiler<BR>> > at the moment, you have to be an expert at this, pretty much, you<BR>> > have to remember approximately where in the mailing list archive<BR>> > the answers are, and I would say it's a good chance that 100% of<BR>> > the scripts that purport to be able to do things like bootstrap<BR>> > cm3, well, they don't work at all. I don't even want to think about<BR>> > bootstrapping CM3 with PM3 or SRC M3...(I think there are systems<BR>> > for which some of those are all that's available?)<BR>> <BR>> I thought that the upgrade.sh script would take care of the<BR>> pre-LONGINT / LONGINT transition, at least it worked for me<BR>> on FreeBSD. At least if you start with a 5.4 release CM3.<BR>> <BR>> Outdated config files are of course always nasty; FreeBSD itself<BR>> has complex support in form of the mergemaster utilty for its<BR>> own upgrades for these problems. I'm afraid we'll not easily reach<BR>> this level in CM3.<BR>> <BR>> The bootstrap scripts for CM3 with PM3 or even SRC M3 are from the<BR>> beginning of the open source CM3 distribution; they did work at<BR>> some point in time, but have not been used since. Perhaps they should<BR>> rather be deleted or moved to an old-stuff directory.<BR>> <BR>> Sorry for all the inconveniences, but you seem to have coped well ;-)<BR>> <BR>> Thank you very much,<BR>> <BR>> Olaf<BR>> > Mika<BR>> ><BR>> > P.S. I checked in a little bugfix (C++ism removal) for m3gdb as part<BR>> > of this.<BR>> -- <BR>> Olaf Wagner -- elego Software Solutions GmbH<BR>> Gustav-Meyer-Allee 25 / Gebäude 12, 13355 Berlin, Germany<BR>> phone: +49 30 23 45 86 96 mobile: +49 177 2345 869 fax: +49 30 23 45 86 95<BR>> http://www.elegosoft.com | Geschäftsführer: Olaf Wagner | Sitz: Berlin<BR>> Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: DE163214194<BR>> <BR><BR><br /><hr />The best games are on Xbox 360.  Click here for a special offer on an Xbox 360 Console. <a href='http://www.xbox.com/en-US/hardware/wheretobuy/' target='_new'>Get it now!</a></body>
</html>