[Rd] R pkg install should fail for unsuccessful DLL copy on windows?

Jan Gorecki j@goreck| @end|ng |rom w|t@edu@p|
Thu May 30 05:14:52 CEST 2019


Hi Toby,
AFAIK it has not been addressed in R. You can handle the problem on
your package side, see
https://github.com/Rdatatable/data.table/pull/3237
Regards,
Jan


On Thu, May 30, 2019 at 4:46 AM Toby Hocking <tdhock5 using gmail.com> wrote:
>
> Hi all,
>
> I am having an issue related to installing packages on windows with
> R-3.6.0. When installing a package that is in use, I expected R to stop
> with an error. However I am getting a warning that the DLL copy was not
> successful, but the overall package installation IS successful. This is
> quite dangerous because the old DLL and the new R code could be
> incompatible.
>
> I am definitely not the first person to have this issue.
> * Matt Dowle reported
> https://bugs.r-project.org/bugzilla/show_bug.cgi?id=17478 which was never
> addressed.
> * Jim Hester reported
> https://bugs.r-project.org/bugzilla/show_bug.cgi?id=17453 which was
> apparently addressed in R-3.5.1, via
> https://github.com/wch/r-source/commit/828a04f9c428403e476620b1905a1d8ca41d0bcd
>
> But I am now having the same issue in R-3.6.0 -- is this a regression in R?
> or is there another fix that I can use?
>
> Below is the minimal R code that I used to reproduce the issue. Essentially,
> * I start R with --vanilla and set options repos=cloud and warn=2 (which I
> expect should convert warnings to errors).
> * I do library(penaltyLearning) and then install the package from source,
> which results in the
>   warnings. I expected there should be an error.
>
> th798 using cmp2986 MINGW64 ~/R
> $ R --vanilla -e "options(repos='https://cloud.r-project.org',
> warn=2);library(penaltyLearning);install.packages('penaltyLearning',
> type='source');getOption('warn');sessionInfo()"
>
> R version 3.6.0 (2019-04-26) -- "Planting of a Tree"
> Copyright (C) 2019 The R Foundation for Statistical Computing
> Platform: x86_64-w64-mingw32/x64 (64-bit)
>
> R is free software and comes with ABSOLUTELY NO WARRANTY.
> You are welcome to redistribute it under certain conditions.
> Type 'license()' or 'licence()' for distribution details.
>
> R is a collaborative project with many contributors.
> Type 'contributors()' for more information and
> 'citation()' on how to cite R or R packages in publications.
>
> Type 'demo()' for some demos, 'help()' for on-line help, or
> 'help.start()' for an HTML browser interface to help.
> Type 'q()' to quit R.
>
> > options(repos='https://cloud.r-project.org',
> warn=2);library(penaltyLearning);install.packages('penaltyLearning',
> type='source');getOption('warn');sessionInfo()
> Loading required package: data.table
> Registered S3 methods overwritten by 'ggplot2':
>   method         from
>   [.quosures     rlang
>   c.quosures     rlang
>   print.quosures rlang
> trying URL '
> https://cloud.r-project.org/src/contrib/penaltyLearning_2018.09.04.tar.gz'
> Content type 'application/x-gzip' length 2837289 bytes (2.7 MB)
> ==================================================
> downloaded 2.7 MB
>
> * installing *source* package 'penaltyLearning' ...
> ** package 'penaltyLearning' successfully unpacked and MD5 sums checked
> ** using staged installation
> ** libs
> c:/Rtools/mingw_64/bin/g++  -std=gnu++11 -I"C:/PROGRA~1/R/R-36~1.0/include"
> -DNDEBUG          -O2 -Wall  -mtune=generic -c interface.cpp -o interface.o
> c:/Rtools/mingw_64/bin/g++  -std=gnu++11 -I"C:/PROGRA~1/R/R-36~1.0/include"
> -DNDEBUG          -O2 -Wall  -mtune=generic -c largestContinuousMinimum.cpp
> -o largestContinuousMinimum.o
> largestContinuousMinimum.cpp: In function 'int
> largestContinuousMinimum(int, double*, double*, int*)':
> largestContinuousMinimum.cpp:38:27: warning: 'start' may be used
> uninitialized in this function [-Wmaybe-uninitialized]
>        index_vec[0] = start;
>                            ^
> c:/Rtools/mingw_64/bin/g++  -std=gnu++11 -I"C:/PROGRA~1/R/R-36~1.0/include"
> -DNDEBUG          -O2 -Wall  -mtune=generic -c modelSelection.cpp -o
> modelSelection.o
> /usr/bin/sed: -e expression #1, char 1: unknown command: `C'
> c:/Rtools/mingw_64/bin/g++ -shared -s -static-libgcc -o penaltyLearning.dll
> tmp.def interface.o largestContinuousMinimum.o modelSelection.o
> -LC:/PROGRA~1/R/R-36~1.0/bin/x64 -lR
> installing to C:/Program
> Files/R/R-3.6.0/library/00LOCK-penaltyLearning/00new/penaltyLearning/libs/x64
> ** R
> ** data
> ** byte-compile and prepare package for lazy loading
> ** help
> *** installing help indices
>   converting help for package 'penaltyLearning'
>     finding HTML links ... done
>     GeomTallRect                            html
>     IntervalRegressionCV                    html
>     IntervalRegressionCVmargin              html
>     IntervalRegressionInternal              html
>     IntervalRegressionRegularized           html
>     IntervalRegressionUnregularized         html
>     ROChange                                html
>     change.colors                           html
>     change.labels                           html
>     changeLabel                             html
>     check_features_targets                  html
>     check_target_pred                       html
>     coef.IntervalRegression                 html
>     demo8                                   html
>     featureMatrix                           html
>     featureVector                           html
>     geom_tallrect                           html
>     labelError                              html
>     largestContinuousMinimumC               html
>     largestContinuousMinimumR               html
>     modelSelection                          html
>     modelSelectionC                         html
>     modelSelectionR                         html
>     neuroblastomaProcessed                  html
>     oneSkip                                 html
>     plot.IntervalRegression                 html
>     predict.IntervalRegression              html
>     print.IntervalRegression                html
>     squared.hinge                           html
>     targetIntervalROC                       html
>     targetIntervalResidual                  html
>     targetIntervals                         html
>     theme_no_space                          html
> ** building package indices
> ** testing if installed package can be loaded from temporary location
> WARNING: moving package to final location failed, copying instead
> Warning in file.copy(instdir, dirname(final_instdir), recursive = TRUE,  :
>   problem copying C:\Program
> Files\R\R-3.6.0\library\00LOCK-penaltyLearning\00new\penaltyLearning\libs\x64\penaltyLearning.dll
> to C:\Program
> Files\R\R-3.6.0\library\penaltyLearning\libs\x64\penaltyLearning.dll:
> Permission denied
> ** testing if installed package can be loaded from final location
> ** testing if installed package keeps a record of temporary installation
> path
> * DONE (penaltyLearning)
>
> The downloaded source packages are in
> 'C:\Users\th798\AppData\Local\Temp\RtmpUrOoFE\downloaded_packages'
> [1] 2
> R version 3.6.0 (2019-04-26)
> Platform: x86_64-w64-mingw32/x64 (64-bit)
> Running under: Windows 10 x64 (build 17134)
>
> Matrix products: default
>
> locale:
> [1] LC_COLLATE=English_United States.1252
> [2] LC_CTYPE=English_United States.1252
> [3] LC_MONETARY=English_United States.1252
> [4] LC_NUMERIC=C
> [5] LC_TIME=English_United States.1252
>
> attached base packages:
> [1] stats     graphics  grDevices utils     datasets  methods   base
>
> other attached packages:
> [1] penaltyLearning_2018.09.04 data.table_1.12.2
>
> loaded via a namespace (and not attached):
>  [1] Rcpp_1.0.1       assertthat_0.2.1 dplyr_0.8.1      crayon_1.3.4
>  [5] R6_2.4.0         grid_3.6.0       plyr_1.8.4       magic_1.5-9
>  [9] gtable_0.3.0     magrittr_1.5     scales_1.0.0     ggplot2_3.1.1
> [13] pillar_1.4.0     rlang_0.3.4      lazyeval_0.2.2   geometry_0.4.1
> [17] tools_3.6.0      glue_1.3.1       purrr_0.3.2      munsell_0.5.0
> [21] abind_1.4-7      compiler_3.6.0   pkgconfig_2.0.2  colorspace_1.4-1
> [25] tidyselect_0.2.5 tibble_2.1.1
> >
> >
> ]0;MINGW64:/c/Users/th798/R
> th798 using cmp2986 MINGW64 ~/R
> $
>
> related blog post: https://tdhock.github.io/blog/2019/windows-dll/
>
>         [[alternative HTML version deleted]]
>
> ______________________________________________
> R-devel using r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel



More information about the R-devel mailing list