[M3commit] CVS Update: cm3
Tony Hosking
hosking at cs.purdue.edu
Fri Jun 26 15:21:59 CEST 2009
We need standalone tools for bootstrapping reasons. I always have
multiple versions of cm3 around when extending/debugging/bootstrapping
the compiler and I don't want them breaking when I ship a broken
runtime!
On 26 Jun 2009, at 09:07, Jay wrote:
>
> ok, I think it is fairly redundant with cm3cg -y, but I can see,
> just tried it, it is much more informative.
> I should use it instead of cm3cg -y and instead of extending cm3cg,
> except, in an extremely bad scenario, if cm3cg reading the file had
> a bug, then you'd cross check cm3cg -y with cm3cgcat.
>
>
> Still it isn't need in "core"/"base" though, almost nobody uses it.
> I was looking at this because I was looking at what was in the
> install archives
> and found m3cggen and cat in core.
>
>
> But also..an old m3cgcat should generally do?
>
>
> My metric for something needing to be built standalone is/was:
> cm3, for some more and less clear reasons
> A non-standalone cm3 cannot ship m3core and libm3 on some
> systems, clear.
> And if you were to build m3core and then copy it "manually", en
> route to building libm3,
> you'd put the compiler in an inconsistent intermediate state.
>
> I used to have in mind something related to an old cm3 being
> possibly unable to
> build a current m3core/libm3, like with the LONGINT change, but I
> don't see that now.
>
> The ship-in-use reason can be worked around really. You'd just
> buildlocal and then
> override the inability to ship builtlocal by just copying the
> file. We copy it currently anyway.
> Though we ship the manpage.
>
> Which leads me to actually ask -- why must cm3 be standalone?
>
>
> Anything for which an unshipped copy is run out of the workspace,
> where the "runpath"
> isn't correct. Like m3bundle and the rpc stub generators.
> Actually these are already a special case -- having to mark them
> standalone --
> probably a better special case is viable...well..it strikes at the
> notion really
> that the unshipped/shipped difference is imho implemented
> incorrectly.
> An alternative would be "shipped here or shipped there", always
> ship somewhere,
> but generally to a new install root, and once it seems good and
> working, then either
> move or copy everything to the "real" place. If you've built
> "everything", this
> resolves to deleting the old and renaming the new root.
>
>
> That is, stuff that has a reason independent of bugs, as a matter
> of course,
> where it fixes things in the normal automated processes, including
> bootstrapping
> from an older build (which I thought made a difference but I don't
> see now).
>
>
> You know, sometimes I break my cm3. In which case I go back to an
> old one.
>
>
> - Jay
>
>
> ________________________________
>> From: hosking at cs.purdue.edu
>> To: jkrell at elego.de
>> Date: Fri, 26 Jun 2009 08:31:22 -0400
>> CC: m3commit at elegosoft.com
>> Subject: Re: [M3commit] CVS Update: cm3
>>
>> Yes, this needs to be standalone because it is used in debugging
>> the compiler and libraries. If they change in bad ways then it will
>> break.
>>
>> On 26 Jun 2009, at 10:12, Jay Krell wrote:
>>
>> CVSROOT: /usr/cvs
>> Changes by: jkrell at birch. 09/06/26 10:12:42
>>
>> Modified files:
>> cm3/m3-sys/m3cgcat/src/: m3makefile
>>
>> Log message:
>> This doesn't need to be standalone.
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://m3lists.elegosoft.com/pipermail/m3commit/attachments/20090626/c0373211/attachment-0002.html>
More information about the M3commit
mailing list