Hin-Tak Leung wrote:
--- On Thu, 30/7/09, Martin Maechler <maech...@stat.math.ethz.ch> wrote:
"HL" == Hin-Tak
Leung <hintak_le...@yahoo.co.uk>
on Thu, 30 Jul
2009 08:59:01 +0000 (GMT) writes:
HL> --- On Thu, 30/7/09, Martin Maechler
<maech...@stat.math.ethz.ch>
wrote:
>> I'm not sure this addresses all the
problems that your
>> patch
>> tried to fix,
>> but in any case, your patch
re-installing the --vanilla
>> behavior
>> unconditionally (without the
.libPaths()[1] detection) was
>> not
>> suffificient.
HL> But I think .libPaths should not be
_implicitly_ user-/site- overridded - afterall, non-standard
locations are already catered for with the -l option (which
presumbably does the same thing as declaring R_LIBS, just
explicitly).
We are talking *only* about the case where no '-l' (or
'lib.loc') was specified, and the default has always been
to
take the first entry in .libPaths() .... [ with all
its
problems when that is not writable, but that's a different
story]
HL> This is analogous to installing system
libraries and run-time relocation - while people do install
binaries and libraries in non-standard locations and
customize their $PATH and $LD_LIBRARY_PATH to reflect that
either at the user- or site- level, it would be quite
strange to allow ./configure or other equivalent software
building tools to peek at the first part of PATH or
LD_LIBRARY_PATH and put executables in the former and
libraries in the latter... That's almost anarchy :-).
The comparison is interesting, and slightly off I think:
Again, we are only talking about the case when there's
*no*
default library location specified for package
*installation*.
HOWEVER,
the case I mentioned, where I have scenarios where I was
able to
use
'R_LIBS=...:...:.... R CMD check
<mypkg>'
using non-default library locations, not for installation
(because that would be <mypkg>.Rcheck
anyway), but for
searching of package *dependencies* of <mypkg>
is also something that has stopped working in the current
R-devel, because it uses our site-wide Rprofile and that
sets
R_LIBS differently itself.
--
Anyway, I think it would not be a bad course to still
*allow*
"vanilla-INSTALL" but keep the current R-devel
default
behavior.
But maybe we can find something better.
(and hopefully other R core members will explain more
clearly
why they think it was "the correct" default behavior to
obey
site-wide and user-specific Rprofile
settings)
But there is always a shipped default? $R_HOME/library , and I seem to recall for
non-admin users, $HOME/R/<arch> . .libPath() is $R_HOME/library on R --vanilla .
If the user or site admin choose a configuration to prepend .libPath() with a
customization via Rprofile/R_LIBS, it stands to reason that he/she should also
do -l for installation? (or rather, it should happen the other way round - if
one choose to install, *consciously*, elsewhere than the default, than
Rprofile/R_LIBS is required)
Nonetheless, I think we are drifting a little. the original problem was that it is not possible to upgrade/overwrite a package and its associated resources like its namespace when that package is loaded. Maybe the correct solution is to unload the said package, unregister the dlls/shared-libraries, and unload a namespace on installation. I seem to recall that there are some issues about dll unloading on windows, but that's a technicality...
... that cannot be solved easily while we try to make R behave as
similar as possible on all platforms in order to simplify
maintainability of the code.
Uwe Ligges
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel