<html>
<head>
<style>
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Verdana
}
</style>
</head>
<body class='hmmessage'>
> And then, er...what is left in pkg?<BR><BR>
<BR>
Sorry, that was an unfinished thought.<BR>
Various other things left, none of them will move.<BR>
You might argue to move .sa files, but doesn't really matter, leave it alone, unless it is super duper convenient to move them along with the .so. It might be, because of how build_standalone works, or maybe only out of laziness.<BR>
Except .so.5 along with .so.<BR>
<BR>
- Jay<BR><BR> <BR>
<HR id=stopSpelling>
From: hosking@cs.purdue.edu<BR>To: jay.krell@cornell.edu<BR>Date: Thu, 2 Jul 2009 16:08:26 -0400<BR>CC: m3devel@elegosoft.com<BR>Subject: Re: [M3devel] ROOT<BR><BR>
<DIV><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=EC_Apple-style-span>
<DIV style="WORD-WRAP: break-word"><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=EC_Apple-style-span>
<DIV style="WORD-WRAP: break-word"><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=EC_Apple-style-span><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=EC_Apple-style-span><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=EC_Apple-style-span><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=EC_Apple-style-span><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=EC_Apple-style-span><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=EC_Apple-style-span><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=EC_Apple-style-span><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=EC_Apple-style-span>
<DIV><SPAN style="FONT-SIZE: medium" class=EC_Apple-style-span>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=EC_Apple-interchange-newline>
<BLOCKQUOTE><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=EC_Apple-style-span>
<DIV style="FONT-FAMILY: Verdana; FONT-SIZE: 10pt" class=EC_hmmessage>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><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=EC_Apple-style-span>
<DIV style="FONT-FAMILY: Verdana; FONT-SIZE: 10pt" class=EC_hmmessage> 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><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=EC_Apple-style-span>
<DIV style="FONT-FAMILY: Verdana; FONT-SIZE: 10pt" class=EC_hmmessage> 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><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=EC_Apple-style-span>
<DIV style="FONT-FAMILY: Verdana; FONT-SIZE: 10pt" class=EC_hmmessage>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><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=EC_Apple-style-span>
<DIV style="FONT-FAMILY: Verdana; FONT-SIZE: 10pt" class=EC_hmmessage> 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><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=EC_Apple-style-span>
<DIV style="FONT-FAMILY: Verdana; FONT-SIZE: 10pt" class=EC_hmmessage>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><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=EC_Apple-style-span>
<DIV style="FONT-FAMILY: Verdana; FONT-SIZE: 10pt" class=EC_hmmessage> 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><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=EC_Apple-style-span>
<DIV style="FONT-FAMILY: Verdana; FONT-SIZE: 10pt" class=EC_hmmessage> <BR> - Jay<BR> <BR>
<HR id=EC_stopSpelling>
From:<SPAN class=EC_Apple-converted-space> </SPAN><A href="mailto:jay.krell@cornell.edu">jay.krell@cornell.edu</A><BR>To:<SPAN class=EC_Apple-converted-space> </SPAN><A href="mailto:jay.krell@cornell.edu">jay.krell@cornell.edu</A>;<SPAN class=EC_Apple-converted-space> </SPAN><A href="mailto:hosking@cs.purdue.edu">hosking@cs.purdue.edu</A>;<SPAN class=EC_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=EC_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=EC_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=EC_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=EC_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=EC_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=EC_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>