[Rd] Re: library.dynam() & .dynLibs() do not work as documented (PR#7305)

From: <duncan_at_wald.ucdavis.edu>
Date: Sat 23 Oct 2004 - 02:18:08 EST

--d6Gm4EdcadzBjdND

Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

Prof Brian Ripley wrote:
> nor in any sensible way we could document.

>=20

> In R 2.0.0 (and current R-patched and R-devel):
>=20

> > X11()
> > library.dynam()
> Filename Dynamic.Lookup
> base base FALSE
> stats /usr/local/lib/R/library/stats/libs/stats.so TRUE
> methods /usr/local/lib/R/library/methods/libs/methods.so TRUE
> R_X11 /usr/local/lib/R/modules/R_X11.so TRUE
>=20

> whereas 1.9.1 gives
>=20

> > library.dynam()
> [1] "stats" "methods"
>=20

> and the documentation says
>=20

> If 'chname' is not specified, 'library.dynam' returns a character
> vector with the names of packages which have used it in the
> current R session to load shared libraries. This vector is
> returned as 'invisible', unless the 'chname' argument is missing.
>=20

> which is clearly no longer true. I don't see why we want loaded modules=
=20
> in there that have nothing to do with packages, or even non-modules.

Before we try to simply match documentation which was written for a simpler semantic, let's think about what we actually require in the context of versioned packages and where library.dynam() is currently being used and so what is broken.

Returning a character vector with the names of packages which have used it does not permit version information to be included (unless they are in the package name).=20

For quite some time, I have wanted to move to package objects=20 and to return such self-describing objects which contain all their own details such as name, version, DLL, etc. Using names, just as using numbers of graphics devices, is a global mechanism that leads to clumsy code.=20

We can make the code match the documentation, but only if we still want what the documentation states. When we introduce multiple evaluators in the future, lots of things will "challenge" the current semantics and many of them will be desirable. One of these potential changes is the use of multiple concurrent versions of a package.

Comments, before we fix things?=20

 D.=20

>=20

> At that point .dynLibs() gave
>=20

> $base
> DLL name: base
> Filename: base
> Dynamic lookup: FALSE
>=20

> $stats
> DLL name: stats
> Filename: /usr/local/lib/R/library/stats/libs/stats.so
> Dynamic lookup: TRUE
>=20

> [[3]]
> [1] "methods"
>=20

> which seems useless for
>=20

> '.dynLibs' is used for getting or setting the packages that have
> loaded shared libraries (using 'library.dynam').
>=20

> One command later and we have
>=20

> > library(MASS)
> > .dynLibs()
> $base
> DLL name: base
> Filename: base
> Dynamic lookup: FALSE
>=20

> $stats
> DLL name: stats
> Filename: /usr/local/lib/R/library/stats/libs/stats.so
> Dynamic lookup: TRUE
>=20

> $methods
> DLL name: methods
> Filename: /usr/local/lib/R/library/methods/libs/methods.so
> Dynamic lookup: TRUE
>=20

> $R_X11
> DLL name: R_X11
> Filename: /usr/local/lib/R/modules/R_X11.so
> Dynamic lookup: TRUE
>=20

> [[5]]
> [1] "MASS"
>=20

> !
>=20

> --=20
> Brian D. Ripley, ripley@stats.ox.ac.uk
> Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/
> University of Oxford, Tel: +44 1865 272861 (self)
> 1 South Parks Road, +44 1865 272866 (PA)
> Oxford OX1 3TG, UK Fax: +44 1865 272595
--=20 Duncan Temple Lang duncan@wald.ucdavis.edu Department of Statistics work: (530) 752-4782 371 Kerr Hall fax: (530) 752-7099 One Shields Ave.

University of California at Davis
Davis, CA 95616, USA

--d6Gm4EdcadzBjdND
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (OSF1)

iD8DBQFBeTK29p/Jzwa2QP4RAkQ6AJwO+/Rk6+yPx5GRXwn+aJuTJnY3DACfa0Ze +x+pi8+sTc006byhX2jlY5o=
=B3bf
-----END PGP SIGNATURE----- --d6Gm4EdcadzBjdND--



R-devel@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel Received on Sat Oct 23 02:35:02 2004

This archive was generated by hypermail 2.1.8 : Fri 18 Mar 2005 - 09:00:54 EST