<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'">For M3 system development tools like m3cgcat m3cggen, standalone is generally best. True, most users don't need to ship those tools.</font></span></div></span></span></span></span></span></span></span></span></div></span></div></span> </div><br><div><div>On 26 Jun 2009, at 12:40, Jay wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div><br>I was thinking of starting an email thread on this.<br><br><br>I believe the reasons to make things standalone are:<br><br> - unshipped built-global tools run during the build, such as m3bundle, stub generators, PklFonts, etc. <br> I think these could be addressed but it'd take some work.<br><br><br> - "Tony's convenience", still being discussed.<br> A think this was a stronger case prior to -rpath where having "separate runnable backups"<br> was more difficult. Or perhaps still since -rpath isn't yet everywhere, AMD64_DARWIN in particular.<br> Personally when I revert to a backup I copy it back to the real place, sometimes<br> with an entire package store,<br> but it is reasonable to not have to do that, and even reasonable to reduce it to one file<br> instead of roughly three in two directories.<br> This would really only apple to cm3 and m3cgcat. For it to include m3cggen would<br> definitely be surprising.<br> It is also "nice to have" cm3 statically linked because when cross building to a new<br> platform, you don't have to get shared libraries working before running cm3. But<br> you could toggle that for this scenario.<br><br> I had thought there was also a requirement around bootstrapping from an older<br> build, where old cm3 can't build new m3core/libm3, but I don't see that now.<br><br> - inability on some platforms to ship in use files, could be worked around, but<br> partly related to previous, and more than that; in particular cm3 shouldn't ship<br> m3core.so/libm3.so that it uses, if you intend to run that cm3 again<br><br><br> - possibly so they can be redistributed with fewer files<br> This is the typical reason in the larger world for reducing dynamic linking, <br> as well to be independent of changes to those files.<br> But I don't think "we" intend that to happen for "our" stuff.<br> And I think we intend for now to always ship everything together,<br> so versioning and compatibility can be ignored. I think.<br> There are still a few sprinkled standalones, like in games.<br> Which is why I was going to start email.<br> If someone really wanted to copy solitaire around without installing its dependencies,<br> rebuild it from source?<br><br><br> - cminstall, because it runs so early <br> Though this could be addressed via -rpath = $ORIGIN and putting<br> the .so files it needs next to it, and not duplicating them.<br><br><br> The reason to make things not standalone is several efficiency gains.<br> You share the code in memory, you share it on disk, you don't copy it around<br> as many times, locally or over the network. The savings are generally pretty large.<br><br><br> - Jay<br><br><br>________________________________<br><blockquote type="cite">Date: Fri, 26 Jun 2009 12:24:47 -0400<br></blockquote><blockquote type="cite">From: <a href="mailto:rcolebur@scires.com">rcolebur@scires.com</a><br></blockquote><blockquote type="cite">To: <a href="mailto:m3commit@elegosoft.com">m3commit@elegosoft.com</a>; <a href="mailto:m3devel@elegosoft.com">m3devel@elegosoft.com</a><br></blockquote><blockquote type="cite">Subject: [M3commit] log messages for committed changes<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">Hey, I've seen several of these type messages (see below). My question is "WHY"? Just to state that it doesn't need to be standalone begs the question why was it made standalone in the first place and what is the reason why it no longer needs to be that way.<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">Maybe this is part of a larger rant on my part, but when folks commit changes, I would encourage everyone to provide some rationale and detail in the log message.<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">There are few people like Olaf and Tony that have enough perspective with the whole system to be able to look at the details of what was changed and try to reverse something that goes against core principals or that will cause problems elsewhere. For the rest of us, and for documentation of the system evolution, it is important that the log messages be as detailed as possible, at least to give the rationale why a change is being made. I know documentation is not glamorous and doesn't directly affect the code, but it is nonetheless important, and if done well can be a real benefit.<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">Thanks for listening. I'll step down off my soapbox now.<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">Regards,<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">Randy Coleburn<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">Jay Krell 6/26/2009 10:12 AM>>><br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">CVSROOT:/usr/cvs<br></blockquote><blockquote type="cite">Changes by:<a href="mailto:jkrell@birch.09">jkrell@birch.09</a>/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><blockquote type="cite"><br></blockquote></div></blockquote></div><br></body></html>