9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
* aux/depend
@ 1995-09-12 22:02 Martin
  0 siblings, 0 replies; 5+ messages in thread
From: Martin @ 1995-09-12 22:02 UTC (permalink / raw)


> We run one of the netlib sites.  Netlib is a library of
> free software, papers, and other useful stuff mostly
> of a mathematical nature.  Each directory in netlib
> contains a .depend file that lists what symbols are
> exported from each file in the directory and the 
> external symbols which that file references.

What brings up a related question.  I wonder why Plan 9 still
uses the special `ar'-format for object module libraries.  If
ordinary directories were used instead, there would be no need
to remember the syntax of `ar'-commands for maintaining libraries
and it would also simplify updating libraries with `mk'.

I considered the idea to use directories for object modules
instead of archives more than once under Unix (especially after
long fights with the shortcomings of the special rules for
updating libraries with `make' :-/).  Sometimes I wondered(*) why
so much special stuff was put into `make', instead of making
`ld'(**) recognize a directory as object module library.  Like
in an archive there could even be a `__.SYMDEF'-File in a
directory to speed up the search.

*: As so often, the answer might be `for historical reasons',
another answer might be that archives did use the disk space
more efficiently in the ancient days.
**: There is no need to modify `ld' internally to implement that.
Some time ago I wrote an awk-script to generate the file arguments
for `ld' based on the `nm'-output of the `.o'-files.  In that way
I circumvented the clumsy library update through `make'-rules.)

> Depend mirrors the nelib directory structure.  In each
> directory appears a file for each symbol exported by
> a program (as listed in .depend).  Reading one of these
> files yields the transitive closure of all the files
> needed to resolve that symbol.

> It's a way of giving someone what they asked for instead
> of the whole contents of the directory.

The mechanism described above looks very promising and powerful,
because it is more general than a special case for `ld'.

What I always missed under Unix are `true libraries for interpreted
languages'.  E.g., it would be nice if a number of (private or public)
`standard functions' for shell- or awk-scripts could be placed
into separate files and have all the required files automatically
included in scripts as they are finally executed.  A description of
the dependencies between the files, combined with a transitive
closure, both much like described above, would be necessary to
pull in exactly the required files from the library (but no more!).

To summarize: I think the idea behind "aux/depend" is well worth
to be considered in more detail, because it not only could help
to get rid of `ar'-archives and their special treatment in `mk'
and `ld', but would also help to have a general library features
available for all interpreted languages.

--Martin






^ permalink raw reply	[flat|nested] 5+ messages in thread

* aux/depend
@ 1995-09-13 12:52 presotto
  0 siblings, 0 replies; 5+ messages in thread
From: presotto @ 1995-09-13 12:52 UTC (permalink / raw)


I surely wouldn't mind seeing ar bite the dust.






^ permalink raw reply	[flat|nested] 5+ messages in thread

* aux/depend
@ 1995-09-12 22:53 forsyth
  0 siblings, 0 replies; 5+ messages in thread
From: forsyth @ 1995-09-12 22:53 UTC (permalink / raw)


>>I screwed up.  It shouldn't have been on the release, i.e., its
>>usefulness is limited.

not a bit of it: it's always good to have more examples
of interesting or even curious uses of 9P servers.






^ permalink raw reply	[flat|nested] 5+ messages in thread

* aux/depend
@ 1995-09-12 21:23 Jeremy
  0 siblings, 0 replies; 5+ messages in thread
From: Jeremy @ 1995-09-12 21:23 UTC (permalink / raw)


What does aux/depend do?  It seems to be a filesystem which can synthesise
files based on rules, and generate tar files, but I couldn't get it to do
anything other than mirror a directory structure (no files).  There is no
mention in the man pages or in any other programs.

	J






^ permalink raw reply	[flat|nested] 5+ messages in thread

* aux/depend
@ 1995-09-12 15:16 presotto
  0 siblings, 0 replies; 5+ messages in thread
From: presotto @ 1995-09-12 15:16 UTC (permalink / raw)


I screwed up.  It shouldn't have been on the release, i.e., its
usefulness is limited.

We run one of the netlib sites.  Netlib is a library of
free software, papers, and other useful stuff mostly
of a mathematical nature.  Each directory in netlib
contains a .depend file that lists what symbols are
exported from each file in the directory and the 
external symbols which that file references.

Depend mirrors the nelib directory structure.  In each
directory appears a file for each symbol exported by
a program (as listed in .depend).  Reading one of these
files yields the transitive closure of all the files
needed to resolve that symbol.

It's a way of giving someone what they asked for instead
of the whole contents of the directory.


------ original message follows ------

>From cse.psu.edu!9fans-outgoing-owner Tue Sep 12 02:29:19 EDT 1995
Received: by colossus.cse.psu.edu id <45677>; Tue, 12 Sep 1995 02:20:58 -0400
Received: from staff.cs.su.OZ.AU ([129.78.8.1]) by colossus.cse.psu.edu with SMTP id <45678>; Tue, 12 Sep 1995 02:20:41 -0400
Received: from suede.sw.oz.au by staff.cs.su.OZ.AU (mail from jeremy for
	9fans@cse.psu.edu)
	with MHSnet (insertion MHSnet site: swallow.sw.oz.au); Tue, 12 Sep 1995 16:20:11 +1000
Received: from suede.sw.oz.au by swallow.sw.oz.au with SMTP
	id GAA22584; Tue, 12 Sep 1995 06:20:04 GMT (8.6.10/Unixware)
	(from jeremy@suede.sw.oz.au for <9fans@cse.psu.edu>)
Received: by suede.sw.oz.au
	id AA26208; Tue, 12 Sep 1995 16:23:18 +1000 (5.x/1.34)
	(from jeremy@suede.sw.oz.au for 9fans@cse.psu.edu)
From:	"Jeremy Fitzhardinge" <jeremy@suede.sw.oz.au>
Message-Id: <9509121623.ZM26206@suede.sw.oz.au>
Date:	Tue, 12 Sep 1995 17:23:16 -0400
X-Face: '6U=%Tv\k1<Ek%ql%PN^v`Db4bakr[v~y]\u7"GbO#I=]N{l1=#P,glz$9q>l-:?\$C[D@G  7(vl~w8&y}!f\bh#w<Y*S~bEBTI:s&.QR>L#n,TGKh>T.c7eT5-y)Hl'i;A1z$9?*lD.k}yqshddFb  l[EC}c=;uc%x'}uh3E91p&oE<q$w1r&U0yw.Sb3V&uw 
X-Mailer: Z-Mail (3.2.0 06sep94)
To:	9fans@cse.psu.edu
Subject: aux/depend
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Sender: owner-9fans@cse.psu.edu
Precedence: bulk
Reply-To: 9fans@cse.psu.edu

What does aux/depend do?  It seems to be a filesystem which can synthesise
files based on rules, and generate tar files, but I couldn't get it to do
anything other than mirror a directory structure (no files).  There is no
mention in the man pages or in any other programs.

	J







^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~1995-09-13 12:52 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1995-09-12 22:02 aux/depend Martin
  -- strict thread matches above, loose matches on Subject: below --
1995-09-13 12:52 aux/depend presotto
1995-09-12 22:53 aux/depend forsyth
1995-09-12 21:23 aux/depend Jeremy
1995-09-12 15:16 aux/depend presotto

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).