[M3devel] Providing some current CM3 bootstrap archives, was: Re: m3cg build failure on powerpc/

Jay jay.krell at cornell.edu
Tue Dec 18 15:17:03 CET 2007


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



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


More information about the M3devel mailing list