[Rd] names lost in functions from packages installed by R-devel r74500

Martin Maechler maechler at stat.math.ethz.ch
Tue Apr 3 17:03:02 CEST 2018


>>>>> Francois Rousset <francois.rousset at umontpellier.fr>
>>>>>     on Tue, 3 Apr 2018 16:38:42 +0200 writes:

    > Dear list members,
    > If I install with R-devel r74500 on Windows (sessionInfo below) the 
    > attached 'bugdemo' package with the single function

    > foo <- function() {
    >   named <- c("bar"=TRUE)
    >   print(named)
    >   return(named)
    > }

    > then run

    >> bugdemo::foo()
    > [1] TRUE
    > [1] TRUE

    > The "bar" name is lost. It is not lost when I define foo in the R 
    > session instead of using its packaged version.

    > To reproduce:

    > =======================================

    > install.packages("bugdemo_0.1.1.tar.gz",type="source",repos=NULL)

    > bugdemo::foo()



    > =======================================

    > I also tested whether this was a problem with the "R CMD build" step or 
    > the "install.packages()" step by building with R 3.4.4 and installing 
    > with R-devel, and reciprocally, and the problem appears to be in the 
    > install step of R-devel.

Confirmed.

It is a bug somewhere between the byte compiler and
(de)serialization .. really beyond my own expertise:

If you install  without byte compilation *),  foo() behaves as
expected, i.e., does not "lose" the names.

On the other hand, as you mention, if you define foo in the
globalenv, and call it, the JIT kicks in pretty quickly and you
can see that 'foo' is byte compiled as well, but it still does not break.

This is pretty important, so thank you very much for the nice
reproducible report!

Martin Maechler
ETH Zurich

---
*) R-devel CMD INSTALL --no-byte-compile -l ...

    > F.

    > =============

    >> sessionInfo()
    > R Under development (unstable) (2018-03-31 r74500)
    > Platform: x86_64-w64-mingw32/x64 (64-bit)
    > Running under: Windows 7 x64 (build 7601) Service Pack 1

    > Matrix products: default

    > locale:
    > [1] LC_COLLATE=French_France.1252  LC_CTYPE=French_France.1252 
    > LC_MONETARY=French_France.1252
    > [4] LC_NUMERIC=C                   LC_TIME=French_France.1252

    > attached base packages:
    > [1] stats     graphics  grDevices utils     datasets  methods base

    > other attached packages:
    > [1] bugdemo_0.1.1

    > loaded via a namespace (and not attached):
    > [1] compiler_3.6.0  tools_3.6.0     withr_2.1.2 memoise_1.1.0   
    > digest_0.6.15   devtools_1.13.5
    >> 


    > -- 
    > François Rousset
    > CNRS research scientist 
    > <http://www.isem.univ-montp2.fr/recherche/teams/evolutionary-genetics/staff/roussetfrancois/?lang=en> 
    > - Institut des Sciences de l'Evolution (ISE-M)
    > Université de Montpellier - Dept. Scientifique B3ESTE

    > x[DELETED ATTACHMENT external: bugdemo_0.1.1.tar.gz, application/gzip]
    > ______________________________________________
    > R-devel at r-project.org mailing list
    > https://stat.ethz.ch/mailman/listinfo/r-devel



More information about the R-devel mailing list