<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div apple-content-edited="true"><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; -webkit-text-decorations-in-effect: none; text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; -webkit-text-decorations-in-effect: none; text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><span class="Apple-style-span" style="border-collapse: separate; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; -webkit-text-decorations-in-effect: none; text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><span class="Apple-style-span" style="border-collapse: separate; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; -webkit-text-decorations-in-effect: none; text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><span class="Apple-style-span" style="border-collapse: separate; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; -webkit-text-decorations-in-effect: none; text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><span class="Apple-style-span" style="border-collapse: separate; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; -webkit-text-decorations-in-effect: none; text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><span class="Apple-style-span" style="border-collapse: separate; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; -webkit-text-decorations-in-effect: none; text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><span class="Apple-style-span" style="border-collapse: separate; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; -webkit-text-decorations-in-effect: none; text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><span class="Apple-style-span" style="border-collapse: separate; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; -webkit-text-decorations-in-effect: none; text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><div><span class="Apple-style-span" style="font-size: medium;"><font class="Apple-style-span" color="#0000FF" face="'Gill Sans'">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!</font></span></div></span></span></span></span></span></span></span></span></div></span></div></span> </div><br><div><div>On 26 Jun 2009, at 09:07, Jay wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div><br>ok, I think it is fairly redundant with cm3cg -y, but I can see, just tried it, it is much more informative.<br>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.<br><br><br>Still it isn't need in "core"/"base" though, almost nobody uses it.<br>I was looking at this because I was looking at what was in the install archives<br>and found m3cggen and cat in core.<br><br><br>But also..an old m3cgcat should generally do?<br><br><br>My metric for something needing to be built standalone is/was:<br> cm3, for some more and less clear reasons<br> A non-standalone cm3 cannot ship m3core and libm3 on some systems, clear.<br> And if you were to build m3core and then copy it "manually", en route to building libm3,<br> you'd put the compiler in an inconsistent intermediate state.<br><br> I used to have in mind something related to an old cm3 being possibly unable to<br> build a current m3core/libm3, like with the LONGINT change, but I don't see that now.<br><br> The ship-in-use reason can be worked around really. You'd just buildlocal and then<br> override the inability to ship builtlocal by just copying the file. We copy it currently anyway.<br> Though we ship the manpage.<br><br> Which leads me to actually ask -- why must cm3 be standalone?<br><br><br> Anything for which an unshipped copy is run out of the workspace, where the "runpath"<br> isn't correct. Like m3bundle and the rpc stub generators.<br> Actually these are already a special case -- having to mark them standalone --<br> probably a better special case is viable...well..it strikes at the notion really<br> that the unshipped/shipped difference is imho implemented incorrectly.<br> An alternative would be "shipped here or shipped there", always ship somewhere,<br> but generally to a new install root, and once it seems good and working, then either<br> move or copy everything to the "real" place. If you've built "everything", this<br> resolves to deleting the old and renaming the new root.<br><br><br> That is, stuff that has a reason independent of bugs, as a matter of course,<br> where it fixes things in the normal automated processes, including bootstrapping<br> from an older build (which I thought made a difference but I don't see now).<br><br><br> You know, sometimes I break my cm3. In which case I go back to an old one.<br><br><br> - Jay<br><br><br>________________________________<br><blockquote type="cite">From: <a href="mailto:hosking@cs.purdue.edu">hosking@cs.purdue.edu</a><br></blockquote><blockquote type="cite">To: <a href="mailto:jkrell@elego.de">jkrell@elego.de</a><br></blockquote><blockquote type="cite">Date: Fri, 26 Jun 2009 08:31:22 -0400<br></blockquote><blockquote type="cite">CC: <a href="mailto:m3commit@elegosoft.com">m3commit@elegosoft.com</a><br></blockquote><blockquote type="cite">Subject: Re: [M3commit] CVS Update: cm3<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">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.<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">On 26 Jun 2009, at 10:12, Jay Krell wrote:<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">CVSROOT: /usr/cvs<br></blockquote><blockquote type="cite">Changes by: jkrell@birch. 09/06/26 10:12:42<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">Modified files:<br></blockquote><blockquote type="cite">cm3/m3-sys/m3cgcat/src/: m3makefile<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">Log message:<br></blockquote><blockquote type="cite">This doesn't need to be standalone.<br></blockquote><blockquote type="cite"><br></blockquote></div></blockquote></div><br></body></html>