[M3devel] LONGCARD, release branch... A R G H

Jay K jay.krell at cornell.edu
Sun Feb 21 22:09:28 CET 2010


Dragisa, I didn't change or break anything here.

 

 

You can use the older upgrade.sh, or you can do what Tony said. None

  of the options seem to be well known, neither mine nor the old ways.

 

 

I find Tony's steps long and tedious, so much so that he made some mistakes below (sysutils

   isn't in old releases, so needs to be in the first pass (and the second pass), m3cc is needed at some point).

  Obviously others did too, as they where automated first in the *.sh files.

  Who can remember that order?

 

 

I just made it all easier, automated, portable, maintainable. And I did it years ago.

 For some definition of easier/automated/portable/maintable.

  To me .sh is not maintainable, and .py is more portable -- I'd rather depend on Python than Cygwin.

  Writing .sh that works across Linux, *BSD, Solaris, seems to be quite a battle. I can't remember all the rules for "how to write portable .sh" (see the Autoconf documentation), and I witness Olaf struggle with that too, I can hardly grasp the .sh language in the first place, and I suspect it is "overly string based", in the genre of severely flawed languages like cmd and Tcl. (Look at what '{' and '}' mean in Tcl. They aren't lexically scoping, as they appear to be, they are actually a string escape mechanism.)

  However I still don't have OpenBSD/mips64 Python, and I use *.sh there (haven't been there in a while, small probably with libffi).

 

 

 The automated builds use mostly *.sh, though making the .msis and .debs use Python.

 

 

Given a system

   - not written in C 

   - with necessary circular dependencies  

   - that doesn't use make/autoconf 

 

 

Not necessarily bad things any of them (circular dependencies are

just unavoidable), it's never going to be among the easiest to build. 

 

 

Since I do occasionally go back to old releases, and find running cminstall annoying, I've made the current config files compatible with older releases. The .py scripts do upgrade them first. Where .sh probably doesn't.

 

 

We do provide prebuilt binaries, just that I don't always know where to get them

esp. up to date ones.

 

 

 - Jay

 


From: hosking at cs.purdue.edu
Date: Sun, 21 Feb 2010 14:30:50 -0500
To: dragisha at m3w.org
CC: m3devel at elegosoft.com; jay.krell at cornell.edu
Subject: Re: [M3devel] LONGCARD, release branch... A R G H

Hi Dragisa,


I too am a luddite and have never used any of Jay's scripts.  I even still have essentially the same *old* monolithic config files on my system.


Here is the general strategy.


Take an old release.




Compile and ship the following in order...


m3middle
m3objfile
m3linker
m3back
m3front
m3quake
cm3


You now have a *new* compiler in cm3/TARGET/cm3 linked against the *old* libraries (m3core, libm3, sysutils).


Now, compile and ship new libraries using the new compiler...


m3core
libm3
sysutils


And build a new compiler against the new libraries...



m3middle
m3objfile
m3linker
m3back
m3front
m3quake
cm3


You now have a *new* compiler in cm3/TARGET/cm3 linked against the *new* libraries.


You should now be able to rebuild everything using the new compiler.




Hope this helps!


-- Tony


(PS  Let me know if you have any problems with this.   I have a feeling there are some tweaks I have made to the m3makefiles to make this go through smoothly.)







Antony Hosking | Associate Professor | Computer Science | Purdue University
305 N. University Street | West Lafayette | IN 47907 | USA
Office +1 765 494 6001 | Mobile +1 765 427 5484



On 21 Feb 2010, at 10:17, Dragiša Durić wrote:

Can you PLEASE enable other people to use this system, TOO. As we once
used it, before all this moving-target-****??????

PLEASE, I just need minimal compiler runtime so I can use STANDARD
scripts and PROCEDURES so I can use my RPM packaging I HAD TO REINVENT
and RECODE every single time you found it INTERESTING and FUNNY to
CHANGE ALL OVER????!!!

And I thought I am INSIDE of this development process. Do we really
think other people will not be bored by our
change-it-all-again-and-again games??? Do I have to spend some fixed
weekly time on this list so I won't miss LATEST and GREATEST IDEAS and
PRACTICES?

Sorry for all this "screaming" but I am really dissapointed to see all
this changed AGAIN! What do you people think potentital users of this
systems are?? And what measure of torturing people are ready to endure
along the way?


On Sun, 2010-02-21 at 12:57 +0000, Jay K wrote:

./upgrade.py && ./do-cm3-std.py realclean skipgcc && ./do-cm3-std.py

buildship skipgcc 
-- 
Dragiša Durić <dragisha at m3w.org>

 		 	   		  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://m3lists.elegosoft.com/pipermail/m3devel/attachments/20100221/2369f979/attachment-0002.html>


More information about the M3devel mailing list