<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; ">On 2 Jul 2009, at 15:30, Jay wrote:</span></div></span></span></span></span></span></span></span></span></div></span></div></span></div><div><br class="Apple-interchange-newline"><blockquote type="cite"><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; 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: 0px; "><div class="hmmessage" style="font-size: 10pt; font-family: Verdana; ">Btw, I must say, that Modula-3 often bucks the trend, often with reason and benefit.<br>However the "trend" has a lot of people behind it, using it, fixing it, making sure it works.<br>The "trend", the popular practice, would include put the files in /usr/local/cm3/lib and not pkg.<br></div></span></blockquote><div><br></div><div>I am fine with this.</div><br><blockquote type="cite"><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; 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: 0px; "><div class="hmmessage" style="font-size: 10pt; font-family: Verdana; ">  Or, well, pkg could be an unused copy, but that's fairly pointless and wasteful.<br></div></span></blockquote><div><br></div><div>I don't know what the reasons were for putting them in the pkg directories in the first place.</div><br><blockquote type="cite"><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; 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: 0px; "><div class="hmmessage" style="font-size: 10pt; font-family: Verdana; "> My use of hardlinks is not exactly "trendy".<br>But I was kinda sorta not breaking the "pkg philosophy".<br></div></span></blockquote><div><br></div><div>Does anyone recall if there was any real "philosophy" here?</div><br><blockquote type="cite"><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; 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: 0px; "><div class="hmmessage" style="font-size: 10pt; font-family: Verdana; ">It's like the putting an extra unused copy in pkg, but without much space wastage (just directory entries)<br><br>At least then the whole symlink/root thing can go away at least.<br>Though just using a relative path to get the source file or copying and commiting a smaller piece of it, would be ok..if someone wants hardlink primitive in cm3 for some reason still.<br></div></span></blockquote><div><br></div><div>I oppose hard links in general.</div><br><blockquote type="cite"><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; 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: 0px; "><div class="hmmessage" style="font-size: 10pt; font-family: Verdana; "> The runpath won't be huge then also, no matter how all the other debating goes.<br> <br> <br>I need some time to settle down and think about it and /try it out/ but at the moment I'm tempted by the ditching of pkg for .so files and just them in lib. It will require probably new builder and config file changes.<br></div></span></blockquote><div><br></div><div>RIght.</div><br><blockquote type="cite"><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; 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: 0px; "><div class="hmmessage" style="font-size: 10pt; font-family: Verdana; ">Really the current hardlink solution is extremely close to this, but again, also not "trendy".<br>.a/.sa files would remain where they are, in pkg, though, of course, there is "very trendy" precedent against that too.<br></div></span></blockquote><div><br></div><div>I suspect that the "pkg" philosophy dates from before .so shared libraries were even supported on most targets (yes, I can remember that long ago).</div><br><blockquote type="cite"><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; 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: 0px; "><div class="hmmessage" style="font-size: 10pt; font-family: Verdana; "> And then, er...what is left in pkg?<br></div></span></blockquote><div><br></div><div>Sources.  For browsing by the various Modula-3 tools.  Come to think of it, that reminds me -- the package browsing tools (eg, m3browser) rely on the .M3EXPORTS and .M3WEB files in the pkg directories.  So, this argues for only moving the .so files to INSTALL_ROOT/lib and leaving the rest (*.a, *.m3x, .M3EXPORTS, .M3WEB, and derived sources in the pkg/TARGET directories where they currently reside).</div><br><blockquote type="cite"><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; 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: 0px; "><div class="hmmessage" style="font-size: 10pt; font-family: Verdana; "> <br> - Jay<br> <br><hr id="stopSpelling">From:<span class="Apple-converted-space"> </span><a href="mailto:jay.krell@cornell.edu">jay.krell@cornell.edu</a><br>To:<span class="Apple-converted-space"> </span><a href="mailto:jay.krell@cornell.edu">jay.krell@cornell.edu</a>;<span class="Apple-converted-space"> </span><a href="mailto:hosking@cs.purdue.edu">hosking@cs.purdue.edu</a>;<span class="Apple-converted-space"> </span><a href="mailto:m3devel@elegosoft.com">m3devel@elegosoft.com</a><br>Date: Thu, 2 Jul 2009 19:23:55 +0000<br>Subject: Re: [M3devel] ROOT<br><br><br><span>>> But why would you compile a new cm3 with an old m3core?</span><br><span></span> <br><span>That is what the "release" builds do on the Tinderbox.</span><br><span>  If you can fix that, please do. :)<br>Notice how I broke them the other day?<br>But not the "last ok" build?</span><br><span><br>They start with a 5.4 compiler.<br> They do NOT build m3core, libm3.<br> Not sure about m3cc.<br> They start with sysutils, then, in whatever order,<br>   m3quake, m3middle, m3front, m3back, cm3.<br> Then they use that new cm3 to build<br>   m3cc if not done already<span class="Apple-converted-space"> </span><br>  (clean)<br>   m3core, libm3, sysutils, m3front/quake/back/middle, cm3.<br><br>At some point, you know, cm3 could not build m3core, when<br>cm3 didn't know about LONGINT and m3core used it.<br>I don't know if 5.4 is such a version.<br></span> <br><span></span> <br><span> > I thought the use of -rpath overcomes the need for LD_LIBRARY_PATH?</span><br><span></span> <br><span>That's not the entire story.</span><br><span>If you use -rpath and point to /usr/local/cm3/pkg/foo/linux, then</span><br><span>  - you end up with a huge presumably inefficient runpath</span><br><span>   This can be addressed by using /usr/local/cm3/lib instead.</span><br><span></span> <br><span>  - you end up with insecure /tmp for distribution builds</span><br><span>  This can be addressed by using $origin or changing how distribution builds are done.</span><br><span></span> <br> - You can't "easily" move the install. Though there are utilities in various OSes to edit the paths later, or you can relink upon install. I didn't make that strategy up.<br><br><span>  > Is LD_LIBRARY_PATH so bad if you insist on moving the libraries someplace other than the rpath used in their linkage?</span><br><span></span><blockquote><span></span> <br><span>I don't understand. Right, if you want to move stuff around, LD_LIBRARY_PATH is one solution. $origin is another. They aren't equivalent and they have various pluses/minus. Searching the web definitely leads me to favor $origin.</span><br><span>"The Sun linker developer say so." Plus, LD_LIBRARY_PATH is not scoped to a particular executable, unless you use wrapper scripts. /etc/ld.so.conf or such on birch including /usr/local/cm3/lib broke my own use of my $HOME/cm3/bin, because those binaries are supposed to use $HOME/cm3/lib, but there is (often) just one LD_LIBRARY_PATH, again, unless you write wrapper scripts.</span><br><span></span> <br><div>If we force everyone to install to /usr/local/cm3 or /opt/cm3, the issue is reduced, granted<br></div><blockquote><span></span><br></blockquote><blockquote><span></span><br></blockquote><blockquote><span>- Jay</span><br></blockquote><blockquote><span></span><br></blockquote><blockquote><span></span><br></blockquote><blockquote><span></span><br></blockquote><blockquote><span>________________________________</span><br></blockquote><blockquote><blockquote><span>CC:<span class="Apple-converted-space"> </span><a href="mailto:m3devel@elegosoft.com"></a><a href="mailto:m3devel@elegosoft.com">m3devel@elegosoft.com</a></span><br></blockquote></blockquote><blockquote><blockquote><span>From:<span class="Apple-converted-space"> </span><a href="mailto:hosking@cs.purdue.edu"></a><a href="mailto:hosking@cs.purdue.edu">hosking@cs.purdue.edu</a></span><br></blockquote></blockquote><blockquote><blockquote><span>To:<span class="Apple-converted-space"> </span><a href="mailto:jay.krell@cornell.edu"></a><a href="mailto:jay.krell@cornell.edu">jay.krell@cornell.edu</a></span><br></blockquote></blockquote><blockquote><blockquote><span>Subject: Re: [M3devel] ROOT</span><br></blockquote></blockquote><blockquote><blockquote><span>Date: Thu, 2 Jul 2009 12:40:18 -0400</span><br></blockquote></blockquote><blockquote><blockquote><span></span><br></blockquote></blockquote><blockquote><blockquote><span>I'm not talking about m3overrides. That is a arguably a special-purpose hack. We shouldn't layer a hack into the *normal* build process.</span><br></blockquote></blockquote><blockquote><blockquote><span></span><br></blockquote></blockquote><blockquote><blockquote><span></span><br></blockquote></blockquote><blockquote><blockquote><span>Antony Hosking | Associate Professor | Computer Science | Purdue University</span><br></blockquote></blockquote><blockquote><blockquote><span>305 N. University Street | West Lafayette | IN 47907 | USA</span><br></blockquote></blockquote><blockquote><blockquote><span>Office +1 765 494 6001 | Mobile +1 765 427 5484</span><br></blockquote></blockquote><blockquote><blockquote><span></span><br></blockquote></blockquote><blockquote><blockquote><span></span><br></blockquote></blockquote><blockquote><blockquote><span></span><br></blockquote></blockquote><blockquote><blockquote><span></span><br></blockquote></blockquote><blockquote><blockquote><span>On 2 Jul 2009, at 12:19, Jay wrote:</span><br></blockquote></blockquote><blockquote><blockquote><span></span><br></blockquote></blockquote><blockquote><blockquote><span></span><br></blockquote></blockquote><blockquote><blockquote><span>Seems broken to me to depend on</span><br></blockquote></blockquote><blockquote><blockquote><span>the source directory structure</span><br></blockquote></blockquote><blockquote><blockquote><span></span><br></blockquote></blockquote><blockquote><blockquote><span>Like m3overrides? But yes, I agree.</span><br></blockquote></blockquote><blockquote><blockquote><span>m3overrides seems broken too.</span><br></blockquote></blockquote><blockquote><blockquote><span></span><br></blockquote></blockquote><blockquote><blockquote><span>- Jay</span><br></blockquote></blockquote><blockquote><blockquote><span></span><br></blockquote></blockquote><blockquote><blockquote><span></span><br></blockquote></blockquote><blockquote><blockquote><span></span><br></blockquote></blockquote><blockquote><blockquote><span></span><br></blockquote></blockquote><blockquote><blockquote><span></span><br></blockquote></blockquote><blockquote><blockquote><span></span><br></blockquote></blockquote><blockquote><blockquote><span></span><br></blockquote></blockquote><blockquote><blockquote><span></span><br></blockquote></blockquote><blockquote><blockquote><span>----------------------------------------</span><br></blockquote></blockquote><blockquote><blockquote><span>From:<span class="Apple-converted-space"> </span><a href="mailto:hosking@cs.purdue.edu"></a><a href="mailto:hosking@cs.purdue.edu">hosking@cs.purdue.edu</a></span><br></blockquote></blockquote><blockquote><blockquote><span>To:<span class="Apple-converted-space"> </span><a href="mailto:m3devel@elegosoft.com"></a><a href="mailto:m3devel@elegosoft.com">m3devel@elegosoft.com</a></span><br></blockquote></blockquote><blockquote><blockquote><span>Date: Thu, 2 Jul 2009 11:49:34 -0400</span><br></blockquote></blockquote><blockquote><blockquote><span>Subject: [M3devel] ROOT</span><br></blockquote></blockquote><blockquote><blockquote><span></span><br></blockquote></blockquote><blockquote><blockquote><span>Where did variable ROOT come from? Do I really need to define it?</span><br></blockquote></blockquote><blockquote><blockquote><span>Seems broken to me to depend on the source directory structure as it</span><br></blockquote></blockquote><blockquote><blockquote><span>sets that structure in stone.</span><br></blockquote></blockquote><blockquote><blockquote><span></span><br></blockquote></blockquote><blockquote><blockquote><span></span><br></blockquote></blockquote><blockquote><blockquote><span></span><br></blockquote></blockquote><span></span><div><br><span></span><br></div></blockquote></div></span></blockquote></div><br></body></html>