[M3devel] ROOT

Tony Hosking hosking at cs.purdue.edu
Thu Jul 2 22:08:26 CEST 2009


On 2 Jul 2009, at 15:30, Jay wrote:

> Btw, I must say, that Modula-3 often bucks the trend, often with  
> reason and benefit.
> However the "trend" has a lot of people behind it, using it, fixing  
> it, making sure it works.
> The "trend", the popular practice, would include put the files in / 
> usr/local/cm3/lib and not pkg.

I am fine with this.

>   Or, well, pkg could be an unused copy, but that's fairly pointless  
> and wasteful.

I don't know what the reasons were for putting them in the pkg  
directories in the first place.

>  My use of hardlinks is not exactly "trendy".
> But I was kinda sorta not breaking the "pkg philosophy".

Does anyone recall if there was any real "philosophy" here?

> It's like the putting an extra unused copy in pkg, but without much  
> space wastage (just directory entries)
>
> At least then the whole symlink/root thing can go away at least.
> 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.

I oppose hard links in general.

>  The runpath won't be huge then also, no matter how all the other  
> debating goes.
>
>
> 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.

RIght.

> Really the current hardlink solution is extremely close to this, but  
> again, also not "trendy".
> .a/.sa files would remain where they are, in pkg, though, of course,  
> there is "very trendy" precedent against that too.

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).

>  And then, er...what is left in pkg?

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).

>
>  - Jay
>
> From: jay.krell at cornell.edu
> To: jay.krell at cornell.edu; hosking at cs.purdue.edu;  
> m3devel at elegosoft.com
> Date: Thu, 2 Jul 2009 19:23:55 +0000
> Subject: Re: [M3devel] ROOT
>
>
> >> But why would you compile a new cm3 with an old m3core?
>
> That is what the "release" builds do on the Tinderbox.
>   If you can fix that, please do. :)
> Notice how I broke them the other day?
> But not the "last ok" build?
>
> They start with a 5.4 compiler.
>  They do NOT build m3core, libm3.
>  Not sure about m3cc.
>  They start with sysutils, then, in whatever order,
>    m3quake, m3middle, m3front, m3back, cm3.
>  Then they use that new cm3 to build
>    m3cc if not done already
>   (clean)
>    m3core, libm3, sysutils, m3front/quake/back/middle, cm3.
>
> At some point, you know, cm3 could not build m3core, when
> cm3 didn't know about LONGINT and m3core used it.
> I don't know if 5.4 is such a version.
>
>
>  > I thought the use of -rpath overcomes the need for LD_LIBRARY_PATH?
>
> That's not the entire story.
> If you use -rpath and point to /usr/local/cm3/pkg/foo/linux, then
>   - you end up with a huge presumably inefficient runpath
>    This can be addressed by using /usr/local/cm3/lib instead.
>
>   - you end up with insecure /tmp for distribution builds
>   This can be addressed by using $origin or changing how  
> distribution builds are done.
>
>  - 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.
>
>   > Is LD_LIBRARY_PATH so bad if you insist on moving the libraries  
> someplace other than the rpath used in their linkage?
>
> 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.
> "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.
>
> If we force everyone to install to /usr/local/cm3 or /opt/cm3, the  
> issue is reduced, granted
>
>
> - Jay
>
>
>
> ________________________________
> CC: m3devel at elegosoft.com
> From: hosking at cs.purdue.edu
> To: jay.krell at cornell.edu
> Subject: Re: [M3devel] ROOT
> Date: Thu, 2 Jul 2009 12:40:18 -0400
>
> 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.
>
>
> Antony Hosking | Associate Professor | Computer Science | Purdue  
> University
> 305 N. University Street | West Lafayette | IN 47907 | USA
> Office +1 765 494 6001 | Mobile +1 765 427 5484
>
>
>
>
> On 2 Jul 2009, at 12:19, Jay wrote:
>
>
> Seems broken to me to depend on
> the source directory structure
>
> Like m3overrides? But yes, I agree.
> m3overrides seems broken too.
>
> - Jay
>
>
>
>
>
>
>
>
> ----------------------------------------
> From: hosking at cs.purdue.edu
> To: m3devel at elegosoft.com
> Date: Thu, 2 Jul 2009 11:49:34 -0400
> Subject: [M3devel] ROOT
>
> Where did variable ROOT come from? Do I really need to define it?
> Seems broken to me to depend on the source directory structure as it
> sets that structure in stone.
>
>
>
>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://m3lists.elegosoft.com/pipermail/m3devel/attachments/20090702/5fe3724f/attachment-0002.html>


More information about the M3devel mailing list