R CMD INSTALL cannot recognize full path on Windows

classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

R CMD INSTALL cannot recognize full path on Windows

Wang Jiefei
Hi all,

Here is a bug(or feature?) that exists at least from R 2020-02-24
r77852 to 2020-03-09 r77919 on Window. Consider this example makefile in a
package
```






*test1=$(shell echo 'runif(3)'|R --vanilla --slave)test2=$(shell echo
'runif(3)'|"C:/Program Files/R/R-devel/bin/R" --vanilla
--slave)test3=$(shell echo 'runif(3)'|"C:/PROGRA~1/R/R-devel/bin/R"
--vanilla --slave)$(info test1 is $(test1))$(info test2 is $(test2))$(info
test3 is $(test3))*
```

I have no problem running the file using GUN make or installing the package
on R 3.6, both give the same result.
```
*C:\Rtools\mingw_64\bin\mingw32-make.exe  *



*test1 is [1] 0.3427626 0.8027041 0.5611914test2 is [1] 0.9904205 0.3922129
0.5970083test3 is [1] 0.3469528 0.1993838 0.8434841mingw32-make: *** No
targets.  Stop.*
*```*

However, on the devel version of R, it cannot recognize both the full and
short path of R and gives an error
```




*test1 is  [1] 0.42686376 0.84126831 0.09538047The filename, directory
name, or volume label syntax is incorrect.test2 isThe filename, directory
name, or volume label syntax is incorrect.test3 is*
```

I found this issue because my package needs to call R functions in the
makefile. The code is similar to:
```
*  myvar = $(shell echo 'runif(3)'|"${R_HOME}/bin/R" --vanilla --slave)*
```
Since *R_HOME *is set to *C:/PROGRA~1/R/R-devel/*, this will result in the
same error as I mentioned above. I do not know whether this is intentional.
If so, what is the correct way to call R function in a makefile?

Best,
Jiefei

        [[alternative HTML version deleted]]

______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
Reply | Threaded
Open this post in threaded view
|

Re: R CMD INSTALL cannot recognize full path on Windows

Wang Jiefei
  Oops, I think both of us forget to cite the r-devel channel.

Best,
Jiefei

On Tue, Mar 10, 2020 at 5:13 AM Wang Jiefei <[hidden email]> wrote:

> Thanks for your quick response, Tomas.
>
> Yes, this is a path issue, I think the problem is related to R, not the
> Rtools make. I built an example package for reproducing the problem:
> https://github.com/Jiefei-Wang/example
>
> Here is the version of my R and Rtools:
> The release R version:
> R version 3.6.2 (2019-12-12)
> Platform: x86_64-w64-mingw32/x64 (64-bit)
> Running under: Windows 10 x64 (build 18362)
>
> The devel R version:
> R Under development (unstable) (2020-03-09 r77919)
> Platform: x86_64-w64-mingw32/x64 (64-bit)
> Running under: Windows 10 x64 (build 18362)
>
> Rtools version 3.5.0.4
>
> Things become interesting after I did more tests. I originally thought
> this might be only related to the devel R, but it seems like the released
> version is also affected. Here is a summary of my test results using the
> example package:
>
> 1. command-line Rtools make: Success
> 2. command-line R CMD INSTALL: Failed on both R3.6.2 and R4.0
> 3. Rstudio install button: Success on R3.6.2 but failed on R4.0
> 4. Rstudio running devtool::install: Success on both
>
> Now the problem becomes more intricate. I have no idea which one goes
> wrong. Here are the details of my test results, I hope it can be helpful:
>
> *Command line:*
> 1. "C:\Rtools\mingw_64\bin\mingw32-make.exe" -f example-master/src/Makevars
> test1 is [1] 0.2039269 0.1454402 0.1578401
> test2 is [1] 0.1919521 0.9257183 0.2130247
> test3 is [1] 0.06255174 0.27555363 0.72737111
> mingw32-make: *** No targets.  Stop.
>
> 2. "C:\Program Files\R\R-3.6.2\bin\R" CMD INSTALL testPackage_1.0.tar.gz
> *** arch - x64
> test1 is [1] 0.1584299 0.9338829 0.9528810
> The filename, directory name, or volume label syntax is incorrect.
> test2 is
> The filename, directory name, or volume label syntax is incorrect.
> test3 is
>
>   3. "C:\Program Files\R\R-devel\bin\R" CMD INSTALL testPackage_1.0.tar.gz
> *** arch - x64
> test1 is [1] 0.2668522 0.9246174 0.0184601
> The filename, directory name, or volume label syntax is incorrect.
> test2 is
> The filename, directory name, or volume label syntax is incorrect.
> test3 is
>
> *R studio:*
> 1. R3.6:  Clicking the install button
> ==> Rcmd.exe INSTALL --no-multiarch --with-keep.source example-master
> * installing to library 'C:/Users/wangj/Documents/R/win-library/3.6'
> * installing *source* package 'testPackage' ...
> ** using staged installation
> ** libs
> test1 is [1] 0.1583112 0.6631700 0.2265564
> test2 is [1] 0.6999799 0.5205237 0.8264029
> test3 is [1] 0.3591798 0.1767392 0.2869383
>
> 2.  R4.0: Clicking the install button
> Rcmd.exe INSTALL --no-multiarch --with-keep.source example-master
> * installing to library 'C:/Program Files/R/R-devel/library'
> * installing *source* package 'testPackage' ...
> ** using staged installation
> ** libs
> test1 is [1] 0.2091070 0.5411138 0.1051517
> The filename, directory name, or volume label syntax is incorrect.
> test2 is
> The filename, directory name, or volume label syntax is incorrect.
> test3 is
>
> 3. R3.6:  devtools::load_all(".")
> devtools::load_all(".")
> Loading testPackage
> Re-compiling testPackage
> -  installing *source* package 'testPackage' ... (364ms)
>    ** using staged installation
>    ** libs
>    test1 is [1] 0.93251741 0.03975758 0.57824150
>    test2 is [1] 0.8681301 0.4801464 0.9112827
>    test3 is [1] 0.430470791 0.008393394 0.341484128
>    test1 is [1] 0.68865768 0.05354531 0.91665539
>    test2 is [1] 0.19473846 0.60293655 0.09421961
>    test3 is [1] 0.90653581 0.12456034 0.09526018
>
> 4. R4.0: devtools::load_all(".")
> Loading testPackage
> Re-compiling testPackage
> ─  installing *source* package 'testPackage' ... (357ms)
>    ** using staged installation
>    ** libs
>    test1 is [1] 0.00545376 0.30696231 0.68752312
>    test2 is [1] 0.1059506 0.7506894 0.8607918
>    test3 is [1] 0.5321226 0.6985332 0.7343680
>    test1 is [1] 0.7722255 0.3881171 0.5611294
>    test2 is [1] 0.5443175 0.8418503 0.3479382
>    test3 is [1] 0.7400557 0.3322797 0.6818899
>
>
> Cheers,
> Jiefei
>
> On Tue, Mar 10, 2020 at 4:11 AM Tomas Kalibera <[hidden email]>
> wrote:
>
>> Hi Jiefei,
>>
>> thanks for your report, but I don't understand from you current
>> description what the problem is. Are you saying that "make" shipped with
>> some recent Rtools is not accepting some forms of PATHs? But, which
>> Rtools then, which version of make, how do you run it?
>>
>> Why are you referring to "R CMD INSTALL" when none of your examples use
>> it? Is "R CMD INSTALL" necessary for reproducing the problem, cannot you
>> just run "make" directly?
>>
>> Or are you reporting a bug inside R itself? (you are referring to
>> specific svn revisions of R). But how could R be involved in this, is it
>> in how it executes make?
>>
>> Please provide a minimal but complete reproducible example, please
>> provide somehow test files that can be used.  Perhaps if you try to do a
>> little bit of debugging on your end, it might help you to narrow down
>> the problem to the point that it will be then easier to understand it.
>> For example: if the problem is in "make", it should be possible to
>> trigger it directly from the command line, then you could easily try
>> with different versions of make and report which ones are the problem..
>>
>> Thanks
>> Tomas
>>
>>
>> On 3/10/20 8:22 AM, Wang Jiefei wrote:
>> > Hi all,
>> >
>> > Here is a bug(or feature?) that exists at least from R 2020-02-24
>> > r77852 to 2020-03-09 r77919 on Window. Consider this example makefile
>> in a
>> > package
>> > ```
>> >
>> >
>> >
>> >
>> >
>> >
>> > *test1=$(shell echo 'runif(3)'|R --vanilla --slave)test2=$(shell echo
>> > 'runif(3)'|"C:/Program Files/R/R-devel/bin/R" --vanilla
>> > --slave)test3=$(shell echo 'runif(3)'|"C:/PROGRA~1/R/R-devel/bin/R"
>> > --vanilla --slave)$(info test1 is $(test1))$(info test2 is
>> $(test2))$(info
>> > test3 is $(test3))*
>> > ```
>> >
>> > I have no problem running the file using GUN make or installing the
>> package
>> > on R 3.6, both give the same result.
>> > ```
>> > *C:\Rtools\mingw_64\bin\mingw32-make.exe  *
>> >
>> >
>> >
>> > *test1 is [1] 0.3427626 0.8027041 0.5611914test2 is [1] 0.9904205
>> 0.3922129
>> > 0.5970083test3 is [1] 0.3469528 0.1993838 0.8434841mingw32-make: *** No
>> > targets.  Stop.*
>> > *```*
>> >
>> > However, on the devel version of R, it cannot recognize both the full
>> and
>> > short path of R and gives an error
>> > ```
>> >
>> >
>> >
>> >
>> > *test1 is  [1] 0.42686376 0.84126831 0.09538047The filename, directory
>> > name, or volume label syntax is incorrect.test2 isThe filename,
>> directory
>> > name, or volume label syntax is incorrect.test3 is*
>> > ```
>> >
>> > I found this issue because my package needs to call R functions in the
>> > makefile. The code is similar to:
>> > ```
>> > *  myvar = $(shell echo 'runif(3)'|"${R_HOME}/bin/R" --vanilla --slave)*
>> > ```
>> > Since *R_HOME *is set to *C:/PROGRA~1/R/R-devel/*, this will result in
>> the
>> > same error as I mentioned above. I do not know whether this is
>> intentional.
>> > If so, what is the correct way to call R function in a makefile?
>> >
>> > Best,
>> > Jiefei
>> >
>> >       [[alternative HTML version deleted]]
>> >
>> > ______________________________________________
>> > [hidden email] mailing list
>> > https://stat.ethz.ch/mailman/listinfo/r-devel
>>
>>
>>

        [[alternative HTML version deleted]]

______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
Reply | Threaded
Open this post in threaded view
|

Re: R CMD INSTALL cannot recognize full path on Windows

Tomas Kalibera

Thanks, Jiefei, unfortunately your example does not work on my system,
and also it is far from minimal. The error message you are getting is
from Windows and could be caused for example by accidental quoting of
the path using single quotes.

Issues with RStudio or devtools would have to be discussed in their
mailing lists/with their authors, but my guess is that the problem is in
your local configuration, and after all you need it to work with the
base R CMD INSTALL anyway. There is not much wrong R could do here, it
just sets R_HOME and runs "make".

For example this works for me, but some closer alternations of your code
work as well:

test1 := $(shell $(R_HOME)/bin/R --slave -e 'runif(3)')
all:
         echo "test1 is $(test1)"
         echo "R_HOME is $(R_HOME)"

I would recommend that you try to narrow down your example so that it is
really minimal. Use R_HOME, not hard-coded paths, as that is what you
would use in reality anyway. Print R_HOME and check it is valid. If the
problem persists, find out why it works when invoked from the command
line but not from R CMD INSTALL.

Best
Tomas

On 3/10/20 10:15 AM, Wang Jiefei wrote:

>   Oops, I think both of us forget to cite the r-devel channel.
>
> Best,
> Jiefei
>
> On Tue, Mar 10, 2020 at 5:13 AM Wang Jiefei <[hidden email]
> <mailto:[hidden email]>> wrote:
>
>     Thanks for your quick response, Tomas.
>
>     Yes, this is a path issue, I think the problem is related to R,
>     not the Rtools make. I built an example package for reproducing
>     the problem: https://github.com/Jiefei-Wang/example
>
>     Here is the version of my R and Rtools:
>     The release R version:
>     R version 3.6.2 (2019-12-12)
>     Platform: x86_64-w64-mingw32/x64 (64-bit)
>     Running under: Windows 10 x64 (build 18362)
>
>     The devel R version:
>     R Under development (unstable) (2020-03-09 r77919)
>     Platform: x86_64-w64-mingw32/x64 (64-bit)
>     Running under: Windows 10 x64 (build 18362)
>
>     Rtools version 3.5.0.4
>
>     Things become interesting after I did more tests. I originally
>     thought this might be only related to the devel R, but it seems
>     like the released version is also affected. Here is a summary of
>     my test results using the example package:
>
>     1. command-line Rtools make: Success
>     2. command-line R CMD INSTALL: Failed on both R3.6.2 and R4.0
>     3. Rstudio install button: Success on R3.6.2 but failed on R4.0
>     4. Rstudio running devtool::install: Success on both
>
>     Now the problem becomes more intricate. I have no idea which one
>     goes wrong. Here are the details of my test results, I hope it can
>     be helpful:
>
>     *Command line:*
>     1. "C:\Rtools\mingw_64\bin\mingw32-make.exe" -f
>     example-master/src/Makevars
>     test1 is [1] 0.2039269 0.1454402 0.1578401
>     test2 is [1] 0.1919521 0.9257183 0.2130247
>     test3 is [1] 0.06255174 0.27555363 0.72737111
>     mingw32-make: *** No targets.  Stop.
>
>     2. "C:\Program Files\R\R-3.6.2\bin\R" CMD INSTALL
>     testPackage_1.0.tar.gz
>     *** arch - x64
>     test1 is [1] 0.1584299 0.9338829 0.9528810
>     The filename, directory name, or volume label syntax is incorrect.
>     test2 is
>     The filename, directory name, or volume label syntax is incorrect.
>     test3 is
>
>       3. "C:\Program Files\R\R-devel\bin\R" CMD INSTALL
>     testPackage_1.0.tar.gz
>     *** arch - x64
>     test1 is [1] 0.2668522 0.9246174 0.0184601
>     The filename, directory name, or volume label syntax is incorrect.
>     test2 is
>     The filename, directory name, or volume label syntax is incorrect.
>     test3 is
>
>     *R studio:*
>     1. R3.6: Clicking the install button
>     ==> Rcmd.exe INSTALL --no-multiarch --with-keep.source example-master
>     * installing to library 'C:/Users/wangj/Documents/R/win-library/3.6'
>     * installing *source* package 'testPackage' ...
>     ** using staged installation
>     ** libs
>     test1 is [1] 0.1583112 0.6631700 0.2265564
>     test2 is [1] 0.6999799 0.5205237 0.8264029
>     test3 is [1] 0.3591798 0.1767392 0.2869383
>
>     2.  R4.0: Clicking the install button
>     Rcmd.exe INSTALL --no-multiarch --with-keep.source example-master
>     * installing to library 'C:/Program Files/R/R-devel/library'
>     * installing *source* package 'testPackage' ...
>     ** using staged installation
>     ** libs
>     test1 is [1] 0.2091070 0.5411138 0.1051517
>     The filename, directory name, or volume label syntax is incorrect.
>     test2 is
>     The filename, directory name, or volume label syntax is incorrect.
>     test3 is
>
>     3. R3.6:  devtools::load_all(".")
>     devtools::load_all(".")
>     Loading testPackage
>     Re-compiling testPackage
>     -  installing *source* package 'testPackage' ... (364ms)
>        ** using staged installation
>        ** libs
>        test1 is [1] 0.93251741 0.03975758 0.57824150
>        test2 is [1] 0.8681301 0.4801464 0.9112827
>        test3 is [1] 0.430470791 0.008393394 0.341484128
>        test1 is [1] 0.68865768 0.05354531 0.91665539
>        test2 is [1] 0.19473846 0.60293655 0.09421961
>        test3 is [1] 0.90653581 0.12456034 0.09526018
>
>     4. R4.0: devtools::load_all(".")
>     Loading testPackage
>     Re-compiling testPackage
>     ─  installing *source* package 'testPackage' ... (357ms)
>        ** using staged installation
>        ** libs
>        test1 is [1] 0.00545376 0.30696231 0.68752312
>        test2 is [1] 0.1059506 0.7506894 0.8607918
>        test3 is [1] 0.5321226 0.6985332 0.7343680
>        test1 is [1] 0.7722255 0.3881171 0.5611294
>        test2 is [1] 0.5443175 0.8418503 0.3479382
>        test3 is [1] 0.7400557 0.3322797 0.6818899
>
>
>     Cheers,
>     Jiefei
>
>     On Tue, Mar 10, 2020 at 4:11 AM Tomas Kalibera
>     <[hidden email] <mailto:[hidden email]>> wrote:
>
>         Hi Jiefei,
>
>         thanks for your report, but I don't understand from you current
>         description what the problem is. Are you saying that "make"
>         shipped with
>         some recent Rtools is not accepting some forms of PATHs? But,
>         which
>         Rtools then, which version of make, how do you run it?
>
>         Why are you referring to "R CMD INSTALL" when none of your
>         examples use
>         it? Is "R CMD INSTALL" necessary for reproducing the problem,
>         cannot you
>         just run "make" directly?
>
>         Or are you reporting a bug inside R itself? (you are referring to
>         specific svn revisions of R). But how could R be involved in
>         this, is it
>         in how it executes make?
>
>         Please provide a minimal but complete reproducible example,
>         please
>         provide somehow test files that can be used.  Perhaps if you
>         try to do a
>         little bit of debugging on your end, it might help you to
>         narrow down
>         the problem to the point that it will be then easier to
>         understand it.
>         For example: if the problem is in "make", it should be
>         possible to
>         trigger it directly from the command line, then you could
>         easily try
>         with different versions of make and report which ones are the
>         problem..
>
>         Thanks
>         Tomas
>
>
>         On 3/10/20 8:22 AM, Wang Jiefei wrote:
>         > Hi all,
>         >
>         > Here is a bug(or feature?) that exists at least from R
>         2020-02-24
>         > r77852 to 2020-03-09 r77919 on Window. Consider this example
>         makefile in a
>         > package
>         > ```
>         >
>         >
>         >
>         >
>         >
>         >
>         > *test1=$(shell echo 'runif(3)'|R --vanilla
>         --slave)test2=$(shell echo
>         > 'runif(3)'|"C:/Program Files/R/R-devel/bin/R" --vanilla
>         > --slave)test3=$(shell echo
>         'runif(3)'|"C:/PROGRA~1/R/R-devel/bin/R"
>         > --vanilla --slave)$(info test1 is $(test1))$(info test2 is
>         $(test2))$(info
>         > test3 is $(test3))*
>         > ```
>         >
>         > I have no problem running the file using GUN make or
>         installing the package
>         > on R 3.6, both give the same result.
>         > ```
>         > *C:\Rtools\mingw_64\bin\mingw32-make.exe  *
>         >
>         >
>         >
>         > *test1 is [1] 0.3427626 0.8027041 0.5611914test2 is [1]
>         0.9904205 0.3922129
>         > 0.5970083test3 is [1] 0.3469528 0.1993838
>         0.8434841mingw32-make: *** No
>         > targets.  Stop.*
>         > *```*
>         >
>         > However, on the devel version of R, it cannot recognize both
>         the full and
>         > short path of R and gives an error
>         > ```
>         >
>         >
>         >
>         >
>         > *test1 is  [1] 0.42686376 0.84126831 0.09538047The filename,
>         directory
>         > name, or volume label syntax is incorrect.test2 isThe
>         filename, directory
>         > name, or volume label syntax is incorrect.test3 is*
>         > ```
>         >
>         > I found this issue because my package needs to call R
>         functions in the
>         > makefile. The code is similar to:
>         > ```
>         > *  myvar = $(shell echo 'runif(3)'|"${R_HOME}/bin/R"
>         --vanilla --slave)*
>         > ```
>         > Since *R_HOME *is set to *C:/PROGRA~1/R/R-devel/*, this will
>         result in the
>         > same error as I mentioned above. I do not know whether this
>         is intentional.
>         > If so, what is the correct way to call R function in a makefile?
>         >
>         > Best,
>         > Jiefei
>         >
>         >       [[alternative HTML version deleted]]
>         >
>         > ______________________________________________
>         > [hidden email] <mailto:[hidden email]> mailing
>         list
>         > https://stat.ethz.ch/mailman/listinfo/r-devel
>
>


        [[alternative HTML version deleted]]

______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
Reply | Threaded
Open this post in threaded view
|

Re: R CMD INSTALL cannot recognize full path on Windows

Wang Jiefei
Thanks, Tomas. I took your suggestion and change the make file to

test1:=$(shell $(R_HOME)/bin/R --slave -e 'runif(3)')

all: testPackage.dll
    echo "test1 is $(test1)"
    echo "R_HOME is $(R_HOME)"

However, R CMD INSTALL still gives me the same error:

> R CMD INSTALL testPackage_1.0.tar.gz* installing to library 'C:/Program
Files/R/R-devel/library'
* installing *source* package 'testPackage' ...
** using staged installation
** libs

*** arch - i386
The filename, directory name, or volume label syntax is incorrect.
c:/Rtools/mingw_32/bin/g++ -std=gnu++11  -I"C:/PROGRA~1/R/R-devel/include"
-DNDEBUG  -I'C:/Program Files/R/R-devel/library/Rcpp/include'
-I"C:/projects/BUILD/R-source-win32/extsoft/include"     -O2 -Wall
 -mfpmath=sse -msse2 -c RcppExports.cpp -o RcppExports.o
c:/Rtools/mingw_32/bin/g++ -std=gnu++11  -I"C:/PROGRA~1/R/R-devel/include"
-DNDEBUG  -I'C:/Program Files/R/R-devel/library/Rcpp/include'
-I"C:/projects/BUILD/R-source-win32/extsoft/include"     -O2 -Wall
 -mfpmath=sse -msse2 -c example.cpp -o example.o
c:/Rtools/mingw_32/bin/g++ -std=gnu++11 -shared -s -static-libgcc -o
testPackage.dll tmp.def RcppExports.o example.o
-LC:/projects/BUILD/R-source-win32/extsoft/lib/i386
-LC:/projects/BUILD/R-source-win32/extsoft/lib
-LC:/PROGRA~1/R/R-devel/bin/i386 -lR
echo "test1 is "
test1 is
echo "R_HOME is C:/PROGRA~1/R/R-devel"
installing to C:/Program
Files/R/R-devel/library/00LOCK-testPackage/00new/testPackage/libs/i386


I have no idea how to make the example even more minimal for there is
literally nothing in the package now. Like you said if R just sets R_HOME
and runs "make", I do not understand why it cannot find R in this case for
R_HOME seems correct to me. I think there are some other things behind R
CMD INSTALL but my poor knowledge does not allow me to see them...Any help
will be appreciated.


Best,
Jiefei


On Wed, Mar 11, 2020 at 8:57 AM Tomas Kalibera <[hidden email]>
wrote:

>
> Thanks, Jiefei, unfortunately your example does not work on my system, and
> also it is far from minimal. The error message you are getting is from
> Windows and could be caused for example by accidental quoting of the path
> using single quotes.
>
> Issues with RStudio or devtools would have to be discussed in their
> mailing lists/with their authors, but my guess is that the problem is in
> your local configuration, and after all you need it to work with the base R
> CMD INSTALL anyway. There is not much wrong R could do here, it just sets
> R_HOME and runs "make".
>
> For example this works for me, but some closer alternations of your code
> work as well:
>
> test1 := $(shell $(R_HOME)/bin/R --slave -e 'runif(3)')
> all:
>         echo "test1 is $(test1)"
>         echo "R_HOME is $(R_HOME)"
>
> I would recommend that you try to narrow down your example so that it is
> really minimal. Use R_HOME, not hard-coded paths, as that is what you would
> use in reality anyway. Print R_HOME and check it is valid. If the problem
> persists, find out why it works when invoked from the command line but not
> from R CMD INSTALL.
>
> Best
> Tomas
>
> On 3/10/20 10:15 AM, Wang Jiefei wrote:
>
>   Oops, I think both of us forget to cite the r-devel channel.
>
> Best,
> Jiefei
>
> On Tue, Mar 10, 2020 at 5:13 AM Wang Jiefei <[hidden email]> wrote:
>
>> Thanks for your quick response, Tomas.
>>
>> Yes, this is a path issue, I think the problem is related to R, not the
>> Rtools make. I built an example package for reproducing the problem:
>> https://github.com/Jiefei-Wang/example
>>
>> Here is the version of my R and Rtools:
>> The release R version:
>> R version 3.6.2 (2019-12-12)
>> Platform: x86_64-w64-mingw32/x64 (64-bit)
>> Running under: Windows 10 x64 (build 18362)
>>
>> The devel R version:
>> R Under development (unstable) (2020-03-09 r77919)
>> Platform: x86_64-w64-mingw32/x64 (64-bit)
>> Running under: Windows 10 x64 (build 18362)
>>
>> Rtools version 3.5.0.4
>>
>> Things become interesting after I did more tests. I originally thought
>> this might be only related to the devel R, but it seems like the released
>> version is also affected. Here is a summary of my test results using the
>> example package:
>>
>> 1. command-line Rtools make: Success
>> 2. command-line R CMD INSTALL: Failed on both R3.6.2 and R4.0
>> 3. Rstudio install button: Success on R3.6.2 but failed on R4.0
>> 4. Rstudio running devtool::install: Success on both
>>
>> Now the problem becomes more intricate. I have no idea which one goes
>> wrong. Here are the details of my test results, I hope it can be helpful:
>>
>> *Command line:*
>> 1. "C:\Rtools\mingw_64\bin\mingw32-make.exe" -f
>> example-master/src/Makevars
>> test1 is [1] 0.2039269 0.1454402 0.1578401
>> test2 is [1] 0.1919521 0.9257183 0.2130247
>> test3 is [1] 0.06255174 0.27555363 0.72737111
>> mingw32-make: *** No targets.  Stop.
>>
>> 2. "C:\Program Files\R\R-3.6.2\bin\R" CMD INSTALL testPackage_1.0.tar.gz
>> *** arch - x64
>> test1 is [1] 0.1584299 0.9338829 0.9528810
>> The filename, directory name, or volume label syntax is incorrect.
>> test2 is
>> The filename, directory name, or volume label syntax is incorrect.
>> test3 is
>>
>>   3. "C:\Program Files\R\R-devel\bin\R" CMD INSTALL testPackage_1.0.tar.gz
>> *** arch - x64
>> test1 is [1] 0.2668522 0.9246174 0.0184601
>> The filename, directory name, or volume label syntax is incorrect.
>> test2 is
>> The filename, directory name, or volume label syntax is incorrect.
>> test3 is
>>
>> *R studio:*
>> 1. R3.6:  Clicking the install button
>> ==> Rcmd.exe INSTALL --no-multiarch --with-keep.source example-master
>> * installing to library 'C:/Users/wangj/Documents/R/win-library/3.6'
>> * installing *source* package 'testPackage' ...
>> ** using staged installation
>> ** libs
>> test1 is [1] 0.1583112 0.6631700 0.2265564
>> test2 is [1] 0.6999799 0.5205237 0.8264029
>> test3 is [1] 0.3591798 0.1767392 0.2869383
>>
>> 2.  R4.0: Clicking the install button
>> Rcmd.exe INSTALL --no-multiarch --with-keep.source example-master
>> * installing to library 'C:/Program Files/R/R-devel/library'
>> * installing *source* package 'testPackage' ...
>> ** using staged installation
>> ** libs
>> test1 is [1] 0.2091070 0.5411138 0.1051517
>> The filename, directory name, or volume label syntax is incorrect.
>> test2 is
>> The filename, directory name, or volume label syntax is incorrect.
>> test3 is
>>
>> 3. R3.6:  devtools::load_all(".")
>> devtools::load_all(".")
>> Loading testPackage
>> Re-compiling testPackage
>> -  installing *source* package 'testPackage' ... (364ms)
>>    ** using staged installation
>>    ** libs
>>    test1 is [1] 0.93251741 0.03975758 0.57824150
>>    test2 is [1] 0.8681301 0.4801464 0.9112827
>>    test3 is [1] 0.430470791 0.008393394 0.341484128
>>    test1 is [1] 0.68865768 0.05354531 0.91665539
>>    test2 is [1] 0.19473846 0.60293655 0.09421961
>>    test3 is [1] 0.90653581 0.12456034 0.09526018
>>
>> 4. R4.0: devtools::load_all(".")
>> Loading testPackage
>> Re-compiling testPackage
>> ─  installing *source* package 'testPackage' ... (357ms)
>>    ** using staged installation
>>    ** libs
>>    test1 is [1] 0.00545376 0.30696231 0.68752312
>>    test2 is [1] 0.1059506 0.7506894 0.8607918
>>    test3 is [1] 0.5321226 0.6985332 0.7343680
>>    test1 is [1] 0.7722255 0.3881171 0.5611294
>>    test2 is [1] 0.5443175 0.8418503 0.3479382
>>    test3 is [1] 0.7400557 0.3322797 0.6818899
>>
>>
>> Cheers,
>> Jiefei
>>
>> On Tue, Mar 10, 2020 at 4:11 AM Tomas Kalibera <[hidden email]>
>> wrote:
>>
>>> Hi Jiefei,
>>>
>>> thanks for your report, but I don't understand from you current
>>> description what the problem is. Are you saying that "make" shipped with
>>> some recent Rtools is not accepting some forms of PATHs? But, which
>>> Rtools then, which version of make, how do you run it?
>>>
>>> Why are you referring to "R CMD INSTALL" when none of your examples use
>>> it? Is "R CMD INSTALL" necessary for reproducing the problem, cannot you
>>> just run "make" directly?
>>>
>>> Or are you reporting a bug inside R itself? (you are referring to
>>> specific svn revisions of R). But how could R be involved in this, is it
>>> in how it executes make?
>>>
>>> Please provide a minimal but complete reproducible example, please
>>> provide somehow test files that can be used.  Perhaps if you try to do a
>>> little bit of debugging on your end, it might help you to narrow down
>>> the problem to the point that it will be then easier to understand it.
>>> For example: if the problem is in "make", it should be possible to
>>> trigger it directly from the command line, then you could easily try
>>> with different versions of make and report which ones are the problem..
>>>
>>> Thanks
>>> Tomas
>>>
>>>
>>> On 3/10/20 8:22 AM, Wang Jiefei wrote:
>>> > Hi all,
>>> >
>>> > Here is a bug(or feature?) that exists at least from R 2020-02-24
>>> > r77852 to 2020-03-09 r77919 on Window. Consider this example makefile
>>> in a
>>> > package
>>> > ```
>>> >
>>> >
>>> >
>>> >
>>> >
>>> >
>>> > *test1=$(shell echo 'runif(3)'|R --vanilla --slave)test2=$(shell echo
>>> > 'runif(3)'|"C:/Program Files/R/R-devel/bin/R" --vanilla
>>> > --slave)test3=$(shell echo 'runif(3)'|"C:/PROGRA~1/R/R-devel/bin/R"
>>> > --vanilla --slave)$(info test1 is $(test1))$(info test2 is
>>> $(test2))$(info
>>> > test3 is $(test3))*
>>> > ```
>>> >
>>> > I have no problem running the file using GUN make or installing the
>>> package
>>> > on R 3.6, both give the same result.
>>> > ```
>>> > *C:\Rtools\mingw_64\bin\mingw32-make.exe  *
>>> >
>>> >
>>> >
>>> > *test1 is [1] 0.3427626 0.8027041 0.5611914test2 is [1] 0.9904205
>>> 0.3922129
>>> > 0.5970083test3 is [1] 0.3469528 0.1993838 0.8434841mingw32-make: *** No
>>> > targets.  Stop.*
>>> > *```*
>>> >
>>> > However, on the devel version of R, it cannot recognize both the full
>>> and
>>> > short path of R and gives an error
>>> > ```
>>> >
>>> >
>>> >
>>> >
>>> > *test1 is  [1] 0.42686376 0.84126831 0.09538047The filename, directory
>>> > name, or volume label syntax is incorrect.test2 isThe filename,
>>> directory
>>> > name, or volume label syntax is incorrect.test3 is*
>>> > ```
>>> >
>>> > I found this issue because my package needs to call R functions in the
>>> > makefile. The code is similar to:
>>> > ```
>>> > *  myvar = $(shell echo 'runif(3)'|"${R_HOME}/bin/R" --vanilla
>>> --slave)*
>>> > ```
>>> > Since *R_HOME *is set to *C:/PROGRA~1/R/R-devel/*, this will result in
>>> the
>>> > same error as I mentioned above. I do not know whether this is
>>> intentional.
>>> > If so, what is the correct way to call R function in a makefile?
>>> >
>>> > Best,
>>> > Jiefei
>>> >
>>> >       [[alternative HTML version deleted]]
>>> >
>>> > ______________________________________________
>>> > [hidden email] mailing list
>>> > https://stat.ethz.ch/mailman/listinfo/r-devel
>>>
>>>
>>>
>

        [[alternative HTML version deleted]]

______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
Reply | Threaded
Open this post in threaded view
|

Re: R CMD INSTALL cannot recognize full path on Windows

Wang Jiefei
Thanks a lot for your suggestions. I see what you mean. I have removed all
unnecessary files and dependences on https://github.com/Jiefei-Wang/example,
but still no luck. I've tried to install the package as a user, not admin,
but I got the same error. Also, I apologize for spamming the mail list. I
will keep my reply as neat as possible.

Martin has suggested checking the encoding of the file and locale in the
session info, so here is this missing information: The makefile is encoded
in UTF-8, and the locale is:

[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

That is where I am stuck, any help would be appreciated.

Best,
Jiefei



On Wed, Mar 11, 2020 at 9:56 AM Tomas Kalibera <[hidden email]>
wrote:

> On 3/11/20 2:26 PM, Wang Jiefei wrote:
>
> Thanks, Tomas. I took your suggestion and change the make file to
>
> test1:=$(shell $(R_HOME)/bin/R --slave -e 'runif(3)')
>
> all: testPackage.dll
>     echo "test1 is $(test1)"
>     echo "R_HOME is $(R_HOME)"
>
> However, R CMD INSTALL still gives me the same error:
>
> > R CMD INSTALL testPackage_1.0.tar.gz* installing to library 'C:/Program
> Files/R/R-devel/library'
> * installing *source* package 'testPackage' ...
> ** using staged installation
> ** libs
>
> *** arch - i386
> The filename, directory name, or volume label syntax is incorrect.
> c:/Rtools/mingw_32/bin/g++ -std=gnu++11  -I"C:/PROGRA~1/R/R-devel/include"
> -DNDEBUG  -I'C:/Program Files/R/R-devel/library/Rcpp/include'
> -I"C:/projects/BUILD/R-source-win32/extsoft/include"     -O2 -Wall
>  -mfpmath=sse -msse2 -c RcppExports.cpp -o RcppExports.o
> c:/Rtools/mingw_32/bin/g++ -std=gnu++11  -I"C:/PROGRA~1/R/R-devel/include"
> -DNDEBUG  -I'C:/Program Files/R/R-devel/library/Rcpp/include'
> -I"C:/projects/BUILD/R-source-win32/extsoft/include"     -O2 -Wall
>  -mfpmath=sse -msse2 -c example.cpp -o example.o
> c:/Rtools/mingw_32/bin/g++ -std=gnu++11 -shared -s -static-libgcc -o
> testPackage.dll tmp.def RcppExports.o example.o
> -LC:/projects/BUILD/R-source-win32/extsoft/lib/i386
> -LC:/projects/BUILD/R-source-win32/extsoft/lib
> -LC:/PROGRA~1/R/R-devel/bin/i386 -lR
> echo "test1 is "
> test1 is
> echo "R_HOME is C:/PROGRA~1/R/R-devel"
> installing to C:/Program
> Files/R/R-devel/library/00LOCK-testPackage/00new/testPackage/libs/i386
>
>
> I have no idea how to make the example even more minimal for there is
> literally nothing in the package now. Like you said if R just sets R_HOME
> and runs "make", I do not understand why it cannot find R in this case for
> R_HOME seems correct to me. I think there are some other things behind R
> CMD INSTALL but my poor knowledge does not allow me to see them...Any help
> will be appreciated.
>
> Please lets not spam the whole list with this any more - this is also why
> I didn't add R-devel to cc originally. The makefile may be minimal, but the
> example package is not - you have Rcpp dependency there, two C source
> files, some R Studio specific thing (an .Rproj file at least). Maybe it is
> not related, but if you want other to help you, it would be nice to spend
> some of your time reducing it anyway.
>
> That test1 is empty means that executing R has failed. You need to find
> out why.
>
> I see that you are installing into C:/Program Files/R/R-devel/library.
> Normally that directory should not be writeable. Are you running this as
> Administrator? In principle this could be related, but better to find out
> directly why executing R is failing.
>
> Best
> Tomas
>
>
>
>
> Best,
> Jiefei
>
>
> On Wed, Mar 11, 2020 at 8:57 AM Tomas Kalibera <[hidden email]>
> wrote:
>
>>
>> Thanks, Jiefei, unfortunately your example does not work on my system,
>> and also it is far from minimal. The error message you are getting is from
>> Windows and could be caused for example by accidental quoting of the path
>> using single quotes.
>>
>> Issues with RStudio or devtools would have to be discussed in their
>> mailing lists/with their authors, but my guess is that the problem is in
>> your local configuration, and after all you need it to work with the base R
>> CMD INSTALL anyway. There is not much wrong R could do here, it just sets
>> R_HOME and runs "make".
>>
>> For example this works for me, but some closer alternations of your code
>> work as well:
>>
>> test1 := $(shell $(R_HOME)/bin/R --slave -e 'runif(3)')
>> all:
>>         echo "test1 is $(test1)"
>>         echo "R_HOME is $(R_HOME)"
>>
>> I would recommend that you try to narrow down your example so that it is
>> really minimal. Use R_HOME, not hard-coded paths, as that is what you would
>> use in reality anyway. Print R_HOME and check it is valid. If the problem
>> persists, find out why it works when invoked from the command line but not
>> from R CMD INSTALL.
>>
>> Best
>> Tomas
>>
>> On 3/10/20 10:15 AM, Wang Jiefei wrote:
>>
>>   Oops, I think both of us forget to cite the r-devel channel.
>>
>> Best,
>> Jiefei
>>
>> On Tue, Mar 10, 2020 at 5:13 AM Wang Jiefei <[hidden email]> wrote:
>>
>>> Thanks for your quick response, Tomas.
>>>
>>> Yes, this is a path issue, I think the problem is related to R, not the
>>> Rtools make. I built an example package for reproducing the problem:
>>> https://github.com/Jiefei-Wang/example
>>>
>>> Here is the version of my R and Rtools:
>>> The release R version:
>>> R version 3.6.2 (2019-12-12)
>>> Platform: x86_64-w64-mingw32/x64 (64-bit)
>>> Running under: Windows 10 x64 (build 18362)
>>>
>>> The devel R version:
>>> R Under development (unstable) (2020-03-09 r77919)
>>> Platform: x86_64-w64-mingw32/x64 (64-bit)
>>> Running under: Windows 10 x64 (build 18362)
>>>
>>> Rtools version 3.5.0.4
>>>
>>> Things become interesting after I did more tests. I originally thought
>>> this might be only related to the devel R, but it seems like the released
>>> version is also affected. Here is a summary of my test results using the
>>> example package:
>>>
>>> 1. command-line Rtools make: Success
>>> 2. command-line R CMD INSTALL: Failed on both R3.6.2 and R4.0
>>> 3. Rstudio install button: Success on R3.6.2 but failed on R4.0
>>> 4. Rstudio running devtool::install: Success on both
>>>
>>> Now the problem becomes more intricate. I have no idea which one goes
>>> wrong. Here are the details of my test results, I hope it can be helpful:
>>>
>>> *Command line:*
>>> 1. "C:\Rtools\mingw_64\bin\mingw32-make.exe" -f
>>> example-master/src/Makevars
>>> test1 is [1] 0.2039269 0.1454402 0.1578401
>>> test2 is [1] 0.1919521 0.9257183 0.2130247
>>> test3 is [1] 0.06255174 0.27555363 0.72737111
>>> mingw32-make: *** No targets.  Stop.
>>>
>>> 2. "C:\Program Files\R\R-3.6.2\bin\R" CMD INSTALL testPackage_1.0.tar.gz
>>> *** arch - x64
>>> test1 is [1] 0.1584299 0.9338829 0.9528810
>>> The filename, directory name, or volume label syntax is incorrect.
>>> test2 is
>>> The filename, directory name, or volume label syntax is incorrect.
>>> test3 is
>>>
>>>   3. "C:\Program Files\R\R-devel\bin\R" CMD INSTALL
>>> testPackage_1.0.tar.gz
>>> *** arch - x64
>>> test1 is [1] 0.2668522 0.9246174 0.0184601
>>> The filename, directory name, or volume label syntax is incorrect.
>>> test2 is
>>> The filename, directory name, or volume label syntax is incorrect.
>>> test3 is
>>>
>>> *R studio:*
>>> 1. R3.6:  Clicking the install button
>>> ==> Rcmd.exe INSTALL --no-multiarch --with-keep.source example-master
>>> * installing to library 'C:/Users/wangj/Documents/R/win-library/3.6'
>>> * installing *source* package 'testPackage' ...
>>> ** using staged installation
>>> ** libs
>>> test1 is [1] 0.1583112 0.6631700 0.2265564
>>> test2 is [1] 0.6999799 0.5205237 0.8264029
>>> test3 is [1] 0.3591798 0.1767392 0.2869383
>>>
>>> 2.  R4.0: Clicking the install button
>>> Rcmd.exe INSTALL --no-multiarch --with-keep.source example-master
>>> * installing to library 'C:/Program Files/R/R-devel/library'
>>> * installing *source* package 'testPackage' ...
>>> ** using staged installation
>>> ** libs
>>> test1 is [1] 0.2091070 0.5411138 0.1051517
>>> The filename, directory name, or volume label syntax is incorrect.
>>> test2 is
>>> The filename, directory name, or volume label syntax is incorrect.
>>> test3 is
>>>
>>> 3. R3.6:  devtools::load_all(".")
>>> devtools::load_all(".")
>>> Loading testPackage
>>> Re-compiling testPackage
>>> -  installing *source* package 'testPackage' ... (364ms)
>>>    ** using staged installation
>>>    ** libs
>>>    test1 is [1] 0.93251741 0.03975758 0.57824150
>>>    test2 is [1] 0.8681301 0.4801464 0.9112827
>>>    test3 is [1] 0.430470791 0.008393394 0.341484128
>>>    test1 is [1] 0.68865768 0.05354531 0.91665539
>>>    test2 is [1] 0.19473846 0.60293655 0.09421961
>>>    test3 is [1] 0.90653581 0.12456034 0.09526018
>>>
>>> 4. R4.0: devtools::load_all(".")
>>> Loading testPackage
>>> Re-compiling testPackage
>>> ─  installing *source* package 'testPackage' ... (357ms)
>>>    ** using staged installation
>>>    ** libs
>>>    test1 is [1] 0.00545376 0.30696231 0.68752312
>>>    test2 is [1] 0.1059506 0.7506894 0.8607918
>>>    test3 is [1] 0.5321226 0.6985332 0.7343680
>>>    test1 is [1] 0.7722255 0.3881171 0.5611294
>>>    test2 is [1] 0.5443175 0.8418503 0.3479382
>>>    test3 is [1] 0.7400557 0.3322797 0.6818899
>>>
>>>
>>> Cheers,
>>> Jiefei
>>>
>>> On Tue, Mar 10, 2020 at 4:11 AM Tomas Kalibera <[hidden email]>
>>> wrote:
>>>
>>>> Hi Jiefei,
>>>>
>>>> thanks for your report, but I don't understand from you current
>>>> description what the problem is. Are you saying that "make" shipped
>>>> with
>>>> some recent Rtools is not accepting some forms of PATHs? But, which
>>>> Rtools then, which version of make, how do you run it?
>>>>
>>>> Why are you referring to "R CMD INSTALL" when none of your examples use
>>>> it? Is "R CMD INSTALL" necessary for reproducing the problem, cannot
>>>> you
>>>> just run "make" directly?
>>>>
>>>> Or are you reporting a bug inside R itself? (you are referring to
>>>> specific svn revisions of R). But how could R be involved in this, is
>>>> it
>>>> in how it executes make?
>>>>
>>>> Please provide a minimal but complete reproducible example, please
>>>> provide somehow test files that can be used.  Perhaps if you try to do
>>>> a
>>>> little bit of debugging on your end, it might help you to narrow down
>>>> the problem to the point that it will be then easier to understand it.
>>>> For example: if the problem is in "make", it should be possible to
>>>> trigger it directly from the command line, then you could easily try
>>>> with different versions of make and report which ones are the problem..
>>>>
>>>> Thanks
>>>> Tomas
>>>>
>>>>
>>>> On 3/10/20 8:22 AM, Wang Jiefei wrote:
>>>> > Hi all,
>>>> >
>>>> > Here is a bug(or feature?) that exists at least from R 2020-02-24
>>>> > r77852 to 2020-03-09 r77919 on Window. Consider this example makefile
>>>> in a
>>>> > package
>>>> > ```
>>>> >
>>>> >
>>>> >
>>>> >
>>>> >
>>>> >
>>>> > *test1=$(shell echo 'runif(3)'|R --vanilla --slave)test2=$(shell echo
>>>> > 'runif(3)'|"C:/Program Files/R/R-devel/bin/R" --vanilla
>>>> > --slave)test3=$(shell echo 'runif(3)'|"C:/PROGRA~1/R/R-devel/bin/R"
>>>> > --vanilla --slave)$(info test1 is $(test1))$(info test2 is
>>>> $(test2))$(info
>>>> > test3 is $(test3))*
>>>> > ```
>>>> >
>>>> > I have no problem running the file using GUN make or installing the
>>>> package
>>>> > on R 3.6, both give the same result.
>>>> > ```
>>>> > *C:\Rtools\mingw_64\bin\mingw32-make.exe  *
>>>> >
>>>> >
>>>> >
>>>> > *test1 is [1] 0.3427626 0.8027041 0.5611914test2 is [1] 0.9904205
>>>> 0.3922129
>>>> > 0.5970083test3 is [1] 0.3469528 0.1993838 0.8434841mingw32-make: ***
>>>> No
>>>> > targets.  Stop.*
>>>> > *```*
>>>> >
>>>> > However, on the devel version of R, it cannot recognize both the full
>>>> and
>>>> > short path of R and gives an error
>>>> > ```
>>>> >
>>>> >
>>>> >
>>>> >
>>>> > *test1 is  [1] 0.42686376 0.84126831 0.09538047The filename, directory
>>>> > name, or volume label syntax is incorrect.test2 isThe filename,
>>>> directory
>>>> > name, or volume label syntax is incorrect.test3 is*
>>>> > ```
>>>> >
>>>> > I found this issue because my package needs to call R functions in the
>>>> > makefile. The code is similar to:
>>>> > ```
>>>> > *  myvar = $(shell echo 'runif(3)'|"${R_HOME}/bin/R" --vanilla
>>>> --slave)*
>>>> > ```
>>>> > Since *R_HOME *is set to *C:/PROGRA~1/R/R-devel/*, this will result
>>>> in the
>>>> > same error as I mentioned above. I do not know whether this is
>>>> intentional.
>>>> > If so, what is the correct way to call R function in a makefile?
>>>> >
>>>> > Best,
>>>> > Jiefei
>>>> >
>>>> >       [[alternative HTML version deleted]]
>>>> >
>>>> > ______________________________________________
>>>> > [hidden email] mailing list
>>>> > https://stat.ethz.ch/mailman/listinfo/r-devel
>>>>
>>>>
>>>>
>>
>

        [[alternative HTML version deleted]]

______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
Reply | Threaded
Open this post in threaded view
|

Re: R CMD INSTALL cannot recognize full path on Windows

Simon Urbanek
Jiefei,

you did not commit all files into the example package - your example has things like RcppExports.cpp as well as additional flags which are not in your GH project. I suspect the issue is with the extra flags you're adding - those don't come from R. Please make sure you can replicate the issue with the GH package you created.

Cheers,
Simon


* installing *source* package 'testPackage' ...
** using staged installation
** libs

*** arch - i386
echo "test1 is [1] 0.1522111 0.2533619 0.6591809"
test1 is [1] 0.1522111 0.2533619 0.6591809
echo "R_HOME is C:/R/R-3.6.2"
R_HOME is C:/R/R-3.6.2
echo "Fake library" > testPackage.dll
installing to C:/R/R-3.6.2/library/00LOCK-testPackage/00new/testPackage/libs/i38
6

*** arch - x64
echo "test1 is [1] 0.9271811 0.8040735 0.4739104"
test1 is [1] 0.9271811 0.8040735 0.4739104
echo "R_HOME is C:/R/R-3.6.2"
R_HOME is C:/R/R-3.6.2
echo "Fake library" > testPackage.dll
installing to C:/R/R-3.6.2/library/00LOCK-testPackage/00new/testPackage/libs/x64

** help
No man pages found in package  'testPackage'
*** installing help indices
** building package indices
** testing if installed package can be loaded from temporary location
*** arch - i386
*** arch - x64
** testing if installed package can be loaded from final location
*** arch - i386
*** arch - x64
** testing if installed package keeps a record of temporary installation path
* DONE (testPackage)
Making 'packages.html' ... done

> On 12/03/2020, at 4:33 AM, Wang Jiefei <[hidden email]> wrote:
>
> Thanks a lot for your suggestions. I see what you mean. I have removed all
> unnecessary files and dependences on https://github.com/Jiefei-Wang/example,
> but still no luck. I've tried to install the package as a user, not admin,
> but I got the same error. Also, I apologize for spamming the mail list. I
> will keep my reply as neat as possible.
>
> Martin has suggested checking the encoding of the file and locale in the
> session info, so here is this missing information: The makefile is encoded
> in UTF-8, and the locale is:
>
> [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
>
> That is where I am stuck, any help would be appreciated.
>
> Best,
> Jiefei
>
>
>
> On Wed, Mar 11, 2020 at 9:56 AM Tomas Kalibera <[hidden email]>
> wrote:
>
>> On 3/11/20 2:26 PM, Wang Jiefei wrote:
>>
>> Thanks, Tomas. I took your suggestion and change the make file to
>>
>> test1:=$(shell $(R_HOME)/bin/R --slave -e 'runif(3)')
>>
>> all: testPackage.dll
>>    echo "test1 is $(test1)"
>>    echo "R_HOME is $(R_HOME)"
>>
>> However, R CMD INSTALL still gives me the same error:
>>
>>> R CMD INSTALL testPackage_1.0.tar.gz* installing to library 'C:/Program
>> Files/R/R-devel/library'
>> * installing *source* package 'testPackage' ...
>> ** using staged installation
>> ** libs
>>
>> *** arch - i386
>> The filename, directory name, or volume label syntax is incorrect.
>> c:/Rtools/mingw_32/bin/g++ -std=gnu++11  -I"C:/PROGRA~1/R/R-devel/include"
>> -DNDEBUG  -I'C:/Program Files/R/R-devel/library/Rcpp/include'
>> -I"C:/projects/BUILD/R-source-win32/extsoft/include"     -O2 -Wall
>> -mfpmath=sse -msse2 -c RcppExports.cpp -o RcppExports.o
>> c:/Rtools/mingw_32/bin/g++ -std=gnu++11  -I"C:/PROGRA~1/R/R-devel/include"
>> -DNDEBUG  -I'C:/Program Files/R/R-devel/library/Rcpp/include'
>> -I"C:/projects/BUILD/R-source-win32/extsoft/include"     -O2 -Wall
>> -mfpmath=sse -msse2 -c example.cpp -o example.o
>> c:/Rtools/mingw_32/bin/g++ -std=gnu++11 -shared -s -static-libgcc -o
>> testPackage.dll tmp.def RcppExports.o example.o
>> -LC:/projects/BUILD/R-source-win32/extsoft/lib/i386
>> -LC:/projects/BUILD/R-source-win32/extsoft/lib
>> -LC:/PROGRA~1/R/R-devel/bin/i386 -lR
>> echo "test1 is "
>> test1 is
>> echo "R_HOME is C:/PROGRA~1/R/R-devel"
>> installing to C:/Program
>> Files/R/R-devel/library/00LOCK-testPackage/00new/testPackage/libs/i386
>>
>>
>> I have no idea how to make the example even more minimal for there is
>> literally nothing in the package now. Like you said if R just sets R_HOME
>> and runs "make", I do not understand why it cannot find R in this case for
>> R_HOME seems correct to me. I think there are some other things behind R
>> CMD INSTALL but my poor knowledge does not allow me to see them...Any help
>> will be appreciated.
>>
>> Please lets not spam the whole list with this any more - this is also why
>> I didn't add R-devel to cc originally. The makefile may be minimal, but the
>> example package is not - you have Rcpp dependency there, two C source
>> files, some R Studio specific thing (an .Rproj file at least). Maybe it is
>> not related, but if you want other to help you, it would be nice to spend
>> some of your time reducing it anyway.
>>
>> That test1 is empty means that executing R has failed. You need to find
>> out why.
>>
>> I see that you are installing into C:/Program Files/R/R-devel/library.
>> Normally that directory should not be writeable. Are you running this as
>> Administrator? In principle this could be related, but better to find out
>> directly why executing R is failing.
>>
>> Best
>> Tomas
>>
>>
>>
>>
>> Best,
>> Jiefei
>>
>>
>> On Wed, Mar 11, 2020 at 8:57 AM Tomas Kalibera <[hidden email]>
>> wrote:
>>
>>>
>>> Thanks, Jiefei, unfortunately your example does not work on my system,
>>> and also it is far from minimal. The error message you are getting is from
>>> Windows and could be caused for example by accidental quoting of the path
>>> using single quotes.
>>>
>>> Issues with RStudio or devtools would have to be discussed in their
>>> mailing lists/with their authors, but my guess is that the problem is in
>>> your local configuration, and after all you need it to work with the base R
>>> CMD INSTALL anyway. There is not much wrong R could do here, it just sets
>>> R_HOME and runs "make".
>>>
>>> For example this works for me, but some closer alternations of your code
>>> work as well:
>>>
>>> test1 := $(shell $(R_HOME)/bin/R --slave -e 'runif(3)')
>>> all:
>>>        echo "test1 is $(test1)"
>>>        echo "R_HOME is $(R_HOME)"
>>>
>>> I would recommend that you try to narrow down your example so that it is
>>> really minimal. Use R_HOME, not hard-coded paths, as that is what you would
>>> use in reality anyway. Print R_HOME and check it is valid. If the problem
>>> persists, find out why it works when invoked from the command line but not
>>> from R CMD INSTALL.
>>>
>>> Best
>>> Tomas
>>>
>>> On 3/10/20 10:15 AM, Wang Jiefei wrote:
>>>
>>>  Oops, I think both of us forget to cite the r-devel channel.
>>>
>>> Best,
>>> Jiefei
>>>
>>> On Tue, Mar 10, 2020 at 5:13 AM Wang Jiefei <[hidden email]> wrote:
>>>
>>>> Thanks for your quick response, Tomas.
>>>>
>>>> Yes, this is a path issue, I think the problem is related to R, not the
>>>> Rtools make. I built an example package for reproducing the problem:
>>>> https://github.com/Jiefei-Wang/example
>>>>
>>>> Here is the version of my R and Rtools:
>>>> The release R version:
>>>> R version 3.6.2 (2019-12-12)
>>>> Platform: x86_64-w64-mingw32/x64 (64-bit)
>>>> Running under: Windows 10 x64 (build 18362)
>>>>
>>>> The devel R version:
>>>> R Under development (unstable) (2020-03-09 r77919)
>>>> Platform: x86_64-w64-mingw32/x64 (64-bit)
>>>> Running under: Windows 10 x64 (build 18362)
>>>>
>>>> Rtools version 3.5.0.4
>>>>
>>>> Things become interesting after I did more tests. I originally thought
>>>> this might be only related to the devel R, but it seems like the released
>>>> version is also affected. Here is a summary of my test results using the
>>>> example package:
>>>>
>>>> 1. command-line Rtools make: Success
>>>> 2. command-line R CMD INSTALL: Failed on both R3.6.2 and R4.0
>>>> 3. Rstudio install button: Success on R3.6.2 but failed on R4.0
>>>> 4. Rstudio running devtool::install: Success on both
>>>>
>>>> Now the problem becomes more intricate. I have no idea which one goes
>>>> wrong. Here are the details of my test results, I hope it can be helpful:
>>>>
>>>> *Command line:*
>>>> 1. "C:\Rtools\mingw_64\bin\mingw32-make.exe" -f
>>>> example-master/src/Makevars
>>>> test1 is [1] 0.2039269 0.1454402 0.1578401
>>>> test2 is [1] 0.1919521 0.9257183 0.2130247
>>>> test3 is [1] 0.06255174 0.27555363 0.72737111
>>>> mingw32-make: *** No targets.  Stop.
>>>>
>>>> 2. "C:\Program Files\R\R-3.6.2\bin\R" CMD INSTALL testPackage_1.0.tar.gz
>>>> *** arch - x64
>>>> test1 is [1] 0.1584299 0.9338829 0.9528810
>>>> The filename, directory name, or volume label syntax is incorrect.
>>>> test2 is
>>>> The filename, directory name, or volume label syntax is incorrect.
>>>> test3 is
>>>>
>>>>  3. "C:\Program Files\R\R-devel\bin\R" CMD INSTALL
>>>> testPackage_1.0.tar.gz
>>>> *** arch - x64
>>>> test1 is [1] 0.2668522 0.9246174 0.0184601
>>>> The filename, directory name, or volume label syntax is incorrect.
>>>> test2 is
>>>> The filename, directory name, or volume label syntax is incorrect.
>>>> test3 is
>>>>
>>>> *R studio:*
>>>> 1. R3.6:  Clicking the install button
>>>> ==> Rcmd.exe INSTALL --no-multiarch --with-keep.source example-master
>>>> * installing to library 'C:/Users/wangj/Documents/R/win-library/3.6'
>>>> * installing *source* package 'testPackage' ...
>>>> ** using staged installation
>>>> ** libs
>>>> test1 is [1] 0.1583112 0.6631700 0.2265564
>>>> test2 is [1] 0.6999799 0.5205237 0.8264029
>>>> test3 is [1] 0.3591798 0.1767392 0.2869383
>>>>
>>>> 2.  R4.0: Clicking the install button
>>>> Rcmd.exe INSTALL --no-multiarch --with-keep.source example-master
>>>> * installing to library 'C:/Program Files/R/R-devel/library'
>>>> * installing *source* package 'testPackage' ...
>>>> ** using staged installation
>>>> ** libs
>>>> test1 is [1] 0.2091070 0.5411138 0.1051517
>>>> The filename, directory name, or volume label syntax is incorrect.
>>>> test2 is
>>>> The filename, directory name, or volume label syntax is incorrect.
>>>> test3 is
>>>>
>>>> 3. R3.6:  devtools::load_all(".")
>>>> devtools::load_all(".")
>>>> Loading testPackage
>>>> Re-compiling testPackage
>>>> -  installing *source* package 'testPackage' ... (364ms)
>>>>   ** using staged installation
>>>>   ** libs
>>>>   test1 is [1] 0.93251741 0.03975758 0.57824150
>>>>   test2 is [1] 0.8681301 0.4801464 0.9112827
>>>>   test3 is [1] 0.430470791 0.008393394 0.341484128
>>>>   test1 is [1] 0.68865768 0.05354531 0.91665539
>>>>   test2 is [1] 0.19473846 0.60293655 0.09421961
>>>>   test3 is [1] 0.90653581 0.12456034 0.09526018
>>>>
>>>> 4. R4.0: devtools::load_all(".")
>>>> Loading testPackage
>>>> Re-compiling testPackage
>>>> ─  installing *source* package 'testPackage' ... (357ms)
>>>>   ** using staged installation
>>>>   ** libs
>>>>   test1 is [1] 0.00545376 0.30696231 0.68752312
>>>>   test2 is [1] 0.1059506 0.7506894 0.8607918
>>>>   test3 is [1] 0.5321226 0.6985332 0.7343680
>>>>   test1 is [1] 0.7722255 0.3881171 0.5611294
>>>>   test2 is [1] 0.5443175 0.8418503 0.3479382
>>>>   test3 is [1] 0.7400557 0.3322797 0.6818899
>>>>
>>>>
>>>> Cheers,
>>>> Jiefei
>>>>
>>>> On Tue, Mar 10, 2020 at 4:11 AM Tomas Kalibera <[hidden email]>
>>>> wrote:
>>>>
>>>>> Hi Jiefei,
>>>>>
>>>>> thanks for your report, but I don't understand from you current
>>>>> description what the problem is. Are you saying that "make" shipped
>>>>> with
>>>>> some recent Rtools is not accepting some forms of PATHs? But, which
>>>>> Rtools then, which version of make, how do you run it?
>>>>>
>>>>> Why are you referring to "R CMD INSTALL" when none of your examples use
>>>>> it? Is "R CMD INSTALL" necessary for reproducing the problem, cannot
>>>>> you
>>>>> just run "make" directly?
>>>>>
>>>>> Or are you reporting a bug inside R itself? (you are referring to
>>>>> specific svn revisions of R). But how could R be involved in this, is
>>>>> it
>>>>> in how it executes make?
>>>>>
>>>>> Please provide a minimal but complete reproducible example, please
>>>>> provide somehow test files that can be used.  Perhaps if you try to do
>>>>> a
>>>>> little bit of debugging on your end, it might help you to narrow down
>>>>> the problem to the point that it will be then easier to understand it.
>>>>> For example: if the problem is in "make", it should be possible to
>>>>> trigger it directly from the command line, then you could easily try
>>>>> with different versions of make and report which ones are the problem..
>>>>>
>>>>> Thanks
>>>>> Tomas
>>>>>
>>>>>
>>>>> On 3/10/20 8:22 AM, Wang Jiefei wrote:
>>>>>> Hi all,
>>>>>>
>>>>>> Here is a bug(or feature?) that exists at least from R 2020-02-24
>>>>>> r77852 to 2020-03-09 r77919 on Window. Consider this example makefile
>>>>> in a
>>>>>> package
>>>>>> ```
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> *test1=$(shell echo 'runif(3)'|R --vanilla --slave)test2=$(shell echo
>>>>>> 'runif(3)'|"C:/Program Files/R/R-devel/bin/R" --vanilla
>>>>>> --slave)test3=$(shell echo 'runif(3)'|"C:/PROGRA~1/R/R-devel/bin/R"
>>>>>> --vanilla --slave)$(info test1 is $(test1))$(info test2 is
>>>>> $(test2))$(info
>>>>>> test3 is $(test3))*
>>>>>> ```
>>>>>>
>>>>>> I have no problem running the file using GUN make or installing the
>>>>> package
>>>>>> on R 3.6, both give the same result.
>>>>>> ```
>>>>>> *C:\Rtools\mingw_64\bin\mingw32-make.exe  *
>>>>>>
>>>>>>
>>>>>>
>>>>>> *test1 is [1] 0.3427626 0.8027041 0.5611914test2 is [1] 0.9904205
>>>>> 0.3922129
>>>>>> 0.5970083test3 is [1] 0.3469528 0.1993838 0.8434841mingw32-make: ***
>>>>> No
>>>>>> targets.  Stop.*
>>>>>> *```*
>>>>>>
>>>>>> However, on the devel version of R, it cannot recognize both the full
>>>>> and
>>>>>> short path of R and gives an error
>>>>>> ```
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> *test1 is  [1] 0.42686376 0.84126831 0.09538047The filename, directory
>>>>>> name, or volume label syntax is incorrect.test2 isThe filename,
>>>>> directory
>>>>>> name, or volume label syntax is incorrect.test3 is*
>>>>>> ```
>>>>>>
>>>>>> I found this issue because my package needs to call R functions in the
>>>>>> makefile. The code is similar to:
>>>>>> ```
>>>>>> *  myvar = $(shell echo 'runif(3)'|"${R_HOME}/bin/R" --vanilla
>>>>> --slave)*
>>>>>> ```
>>>>>> Since *R_HOME *is set to *C:/PROGRA~1/R/R-devel/*, this will result
>>>>> in the
>>>>>> same error as I mentioned above. I do not know whether this is
>>>>> intentional.
>>>>>> If so, what is the correct way to call R function in a makefile?
>>>>>>
>>>>>> Best,
>>>>>> Jiefei
>>>>>>
>>>>>>      [[alternative HTML version deleted]]
>>>>>>
>>>>>> ______________________________________________
>>>>>> [hidden email] mailing list
>>>>>> https://stat.ethz.ch/mailman/listinfo/r-devel
>>>>>
>>>>>
>>>>>
>>>
>>
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> [hidden email] mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>

______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
Reply | Threaded
Open this post in threaded view
|

Re: R CMD INSTALL cannot recognize full path on Windows

Wang Jiefei
Thanks for your test result Simon, I really appreciate it. I borrowed a new
laptop and found the issue is only reproducible on my machine, so there is
something not in R or the package that causes this problem. I will
stop chattering and try to figure out where the problem is. Thanks again
for your time and help!

Cheers,
Jiefei

On Wed, Mar 11, 2020 at 6:22 PM Simon Urbanek <[hidden email]>
wrote:

> Jiefei,
>
> you did not commit all files into the example package - your example has
> things like RcppExports.cpp as well as additional flags which are not in
> your GH project. I suspect the issue is with the extra flags you're adding
> - those don't come from R. Please make sure you can replicate the issue
> with the GH package you created.
>
> Cheers,
> Simon
>
>
> * installing *source* package 'testPackage' ...
> ** using staged installation
> ** libs
>
> *** arch - i386
> echo "test1 is [1] 0.1522111 0.2533619 0.6591809"
> test1 is [1] 0.1522111 0.2533619 0.6591809
> echo "R_HOME is C:/R/R-3.6.2"
> R_HOME is C:/R/R-3.6.2
> echo "Fake library" > testPackage.dll
> installing to
> C:/R/R-3.6.2/library/00LOCK-testPackage/00new/testPackage/libs/i38
> 6
>
> *** arch - x64
> echo "test1 is [1] 0.9271811 0.8040735 0.4739104"
> test1 is [1] 0.9271811 0.8040735 0.4739104
> echo "R_HOME is C:/R/R-3.6.2"
> R_HOME is C:/R/R-3.6.2
> echo "Fake library" > testPackage.dll
> installing to
> C:/R/R-3.6.2/library/00LOCK-testPackage/00new/testPackage/libs/x64
>
> ** help
> No man pages found in package  'testPackage'
> *** installing help indices
> ** building package indices
> ** testing if installed package can be loaded from temporary location
> *** arch - i386
> *** arch - x64
> ** testing if installed package can be loaded from final location
> *** arch - i386
> *** arch - x64
> ** testing if installed package keeps a record of temporary installation
> path
> * DONE (testPackage)
> Making 'packages.html' ... done
>
> > On 12/03/2020, at 4:33 AM, Wang Jiefei <[hidden email]> wrote:
> >
> > Thanks a lot for your suggestions. I see what you mean. I have removed
> all
> > unnecessary files and dependences on
> https://github.com/Jiefei-Wang/example,
> > but still no luck. I've tried to install the package as a user, not
> admin,
> > but I got the same error. Also, I apologize for spamming the mail list. I
> > will keep my reply as neat as possible.
> >
> > Martin has suggested checking the encoding of the file and locale in the
> > session info, so here is this missing information: The makefile is
> encoded
> > in UTF-8, and the locale is:
> >
> > [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
> >
> > That is where I am stuck, any help would be appreciated.
> >
> > Best,
> > Jiefei
> >
> >
> >
> > On Wed, Mar 11, 2020 at 9:56 AM Tomas Kalibera <[hidden email]
> >
> > wrote:
> >
> >> On 3/11/20 2:26 PM, Wang Jiefei wrote:
> >>
> >> Thanks, Tomas. I took your suggestion and change the make file to
> >>
> >> test1:=$(shell $(R_HOME)/bin/R --slave -e 'runif(3)')
> >>
> >> all: testPackage.dll
> >>    echo "test1 is $(test1)"
> >>    echo "R_HOME is $(R_HOME)"
> >>
> >> However, R CMD INSTALL still gives me the same error:
> >>
> >>> R CMD INSTALL testPackage_1.0.tar.gz* installing to library 'C:/Program
> >> Files/R/R-devel/library'
> >> * installing *source* package 'testPackage' ...
> >> ** using staged installation
> >> ** libs
> >>
> >> *** arch - i386
> >> The filename, directory name, or volume label syntax is incorrect.
> >> c:/Rtools/mingw_32/bin/g++ -std=gnu++11
> -I"C:/PROGRA~1/R/R-devel/include"
> >> -DNDEBUG  -I'C:/Program Files/R/R-devel/library/Rcpp/include'
> >> -I"C:/projects/BUILD/R-source-win32/extsoft/include"     -O2 -Wall
> >> -mfpmath=sse -msse2 -c RcppExports.cpp -o RcppExports.o
> >> c:/Rtools/mingw_32/bin/g++ -std=gnu++11
> -I"C:/PROGRA~1/R/R-devel/include"
> >> -DNDEBUG  -I'C:/Program Files/R/R-devel/library/Rcpp/include'
> >> -I"C:/projects/BUILD/R-source-win32/extsoft/include"     -O2 -Wall
> >> -mfpmath=sse -msse2 -c example.cpp -o example.o
> >> c:/Rtools/mingw_32/bin/g++ -std=gnu++11 -shared -s -static-libgcc -o
> >> testPackage.dll tmp.def RcppExports.o example.o
> >> -LC:/projects/BUILD/R-source-win32/extsoft/lib/i386
> >> -LC:/projects/BUILD/R-source-win32/extsoft/lib
> >> -LC:/PROGRA~1/R/R-devel/bin/i386 -lR
> >> echo "test1 is "
> >> test1 is
> >> echo "R_HOME is C:/PROGRA~1/R/R-devel"
> >> installing to C:/Program
> >> Files/R/R-devel/library/00LOCK-testPackage/00new/testPackage/libs/i386
> >>
> >>
> >> I have no idea how to make the example even more minimal for there is
> >> literally nothing in the package now. Like you said if R just sets
> R_HOME
> >> and runs "make", I do not understand why it cannot find R in this case
> for
> >> R_HOME seems correct to me. I think there are some other things behind R
> >> CMD INSTALL but my poor knowledge does not allow me to see them...Any
> help
> >> will be appreciated.
> >>
> >> Please lets not spam the whole list with this any more - this is also
> why
> >> I didn't add R-devel to cc originally. The makefile may be minimal, but
> the
> >> example package is not - you have Rcpp dependency there, two C source
> >> files, some R Studio specific thing (an .Rproj file at least). Maybe it
> is
> >> not related, but if you want other to help you, it would be nice to
> spend
> >> some of your time reducing it anyway.
> >>
> >> That test1 is empty means that executing R has failed. You need to find
> >> out why.
> >>
> >> I see that you are installing into C:/Program Files/R/R-devel/library.
> >> Normally that directory should not be writeable. Are you running this as
> >> Administrator? In principle this could be related, but better to find
> out
> >> directly why executing R is failing.
> >>
> >> Best
> >> Tomas
> >>
> >>
> >>
> >>
> >> Best,
> >> Jiefei
> >>
> >>
> >> On Wed, Mar 11, 2020 at 8:57 AM Tomas Kalibera <
> [hidden email]>
> >> wrote:
> >>
> >>>
> >>> Thanks, Jiefei, unfortunately your example does not work on my system,
> >>> and also it is far from minimal. The error message you are getting is
> from
> >>> Windows and could be caused for example by accidental quoting of the
> path
> >>> using single quotes.
> >>>
> >>> Issues with RStudio or devtools would have to be discussed in their
> >>> mailing lists/with their authors, but my guess is that the problem is
> in
> >>> your local configuration, and after all you need it to work with the
> base R
> >>> CMD INSTALL anyway. There is not much wrong R could do here, it just
> sets
> >>> R_HOME and runs "make".
> >>>
> >>> For example this works for me, but some closer alternations of your
> code
> >>> work as well:
> >>>
> >>> test1 := $(shell $(R_HOME)/bin/R --slave -e 'runif(3)')
> >>> all:
> >>>        echo "test1 is $(test1)"
> >>>        echo "R_HOME is $(R_HOME)"
> >>>
> >>> I would recommend that you try to narrow down your example so that it
> is
> >>> really minimal. Use R_HOME, not hard-coded paths, as that is what you
> would
> >>> use in reality anyway. Print R_HOME and check it is valid. If the
> problem
> >>> persists, find out why it works when invoked from the command line but
> not
> >>> from R CMD INSTALL.
> >>>
> >>> Best
> >>> Tomas
> >>>
> >>> On 3/10/20 10:15 AM, Wang Jiefei wrote:
> >>>
> >>>  Oops, I think both of us forget to cite the r-devel channel.
> >>>
> >>> Best,
> >>> Jiefei
> >>>
> >>> On Tue, Mar 10, 2020 at 5:13 AM Wang Jiefei <[hidden email]> wrote:
> >>>
> >>>> Thanks for your quick response, Tomas.
> >>>>
> >>>> Yes, this is a path issue, I think the problem is related to R, not
> the
> >>>> Rtools make. I built an example package for reproducing the problem:
> >>>> https://github.com/Jiefei-Wang/example
> >>>>
> >>>> Here is the version of my R and Rtools:
> >>>> The release R version:
> >>>> R version 3.6.2 (2019-12-12)
> >>>> Platform: x86_64-w64-mingw32/x64 (64-bit)
> >>>> Running under: Windows 10 x64 (build 18362)
> >>>>
> >>>> The devel R version:
> >>>> R Under development (unstable) (2020-03-09 r77919)
> >>>> Platform: x86_64-w64-mingw32/x64 (64-bit)
> >>>> Running under: Windows 10 x64 (build 18362)
> >>>>
> >>>> Rtools version 3.5.0.4
> >>>>
> >>>> Things become interesting after I did more tests. I originally thought
> >>>> this might be only related to the devel R, but it seems like the
> released
> >>>> version is also affected. Here is a summary of my test results using
> the
> >>>> example package:
> >>>>
> >>>> 1. command-line Rtools make: Success
> >>>> 2. command-line R CMD INSTALL: Failed on both R3.6.2 and R4.0
> >>>> 3. Rstudio install button: Success on R3.6.2 but failed on R4.0
> >>>> 4. Rstudio running devtool::install: Success on both
> >>>>
> >>>> Now the problem becomes more intricate. I have no idea which one goes
> >>>> wrong. Here are the details of my test results, I hope it can be
> helpful:
> >>>>
> >>>> *Command line:*
> >>>> 1. "C:\Rtools\mingw_64\bin\mingw32-make.exe" -f
> >>>> example-master/src/Makevars
> >>>> test1 is [1] 0.2039269 0.1454402 0.1578401
> >>>> test2 is [1] 0.1919521 0.9257183 0.2130247
> >>>> test3 is [1] 0.06255174 0.27555363 0.72737111
> >>>> mingw32-make: *** No targets.  Stop.
> >>>>
> >>>> 2. "C:\Program Files\R\R-3.6.2\bin\R" CMD INSTALL
> testPackage_1.0.tar.gz
> >>>> *** arch - x64
> >>>> test1 is [1] 0.1584299 0.9338829 0.9528810
> >>>> The filename, directory name, or volume label syntax is incorrect.
> >>>> test2 is
> >>>> The filename, directory name, or volume label syntax is incorrect.
> >>>> test3 is
> >>>>
> >>>>  3. "C:\Program Files\R\R-devel\bin\R" CMD INSTALL
> >>>> testPackage_1.0.tar.gz
> >>>> *** arch - x64
> >>>> test1 is [1] 0.2668522 0.9246174 0.0184601
> >>>> The filename, directory name, or volume label syntax is incorrect.
> >>>> test2 is
> >>>> The filename, directory name, or volume label syntax is incorrect.
> >>>> test3 is
> >>>>
> >>>> *R studio:*
> >>>> 1. R3.6:  Clicking the install button
> >>>> ==> Rcmd.exe INSTALL --no-multiarch --with-keep.source example-master
> >>>> * installing to library 'C:/Users/wangj/Documents/R/win-library/3.6'
> >>>> * installing *source* package 'testPackage' ...
> >>>> ** using staged installation
> >>>> ** libs
> >>>> test1 is [1] 0.1583112 0.6631700 0.2265564
> >>>> test2 is [1] 0.6999799 0.5205237 0.8264029
> >>>> test3 is [1] 0.3591798 0.1767392 0.2869383
> >>>>
> >>>> 2.  R4.0: Clicking the install button
> >>>> Rcmd.exe INSTALL --no-multiarch --with-keep.source example-master
> >>>> * installing to library 'C:/Program Files/R/R-devel/library'
> >>>> * installing *source* package 'testPackage' ...
> >>>> ** using staged installation
> >>>> ** libs
> >>>> test1 is [1] 0.2091070 0.5411138 0.1051517
> >>>> The filename, directory name, or volume label syntax is incorrect.
> >>>> test2 is
> >>>> The filename, directory name, or volume label syntax is incorrect.
> >>>> test3 is
> >>>>
> >>>> 3. R3.6:  devtools::load_all(".")
> >>>> devtools::load_all(".")
> >>>> Loading testPackage
> >>>> Re-compiling testPackage
> >>>> -  installing *source* package 'testPackage' ... (364ms)
> >>>>   ** using staged installation
> >>>>   ** libs
> >>>>   test1 is [1] 0.93251741 0.03975758 0.57824150
> >>>>   test2 is [1] 0.8681301 0.4801464 0.9112827
> >>>>   test3 is [1] 0.430470791 0.008393394 0.341484128
> >>>>   test1 is [1] 0.68865768 0.05354531 0.91665539
> >>>>   test2 is [1] 0.19473846 0.60293655 0.09421961
> >>>>   test3 is [1] 0.90653581 0.12456034 0.09526018
> >>>>
> >>>> 4. R4.0: devtools::load_all(".")
> >>>> Loading testPackage
> >>>> Re-compiling testPackage
> >>>> ─  installing *source* package 'testPackage' ... (357ms)
> >>>>   ** using staged installation
> >>>>   ** libs
> >>>>   test1 is [1] 0.00545376 0.30696231 0.68752312
> >>>>   test2 is [1] 0.1059506 0.7506894 0.8607918
> >>>>   test3 is [1] 0.5321226 0.6985332 0.7343680
> >>>>   test1 is [1] 0.7722255 0.3881171 0.5611294
> >>>>   test2 is [1] 0.5443175 0.8418503 0.3479382
> >>>>   test3 is [1] 0.7400557 0.3322797 0.6818899
> >>>>
> >>>>
> >>>> Cheers,
> >>>> Jiefei
> >>>>
> >>>> On Tue, Mar 10, 2020 at 4:11 AM Tomas Kalibera <
> [hidden email]>
> >>>> wrote:
> >>>>
> >>>>> Hi Jiefei,
> >>>>>
> >>>>> thanks for your report, but I don't understand from you current
> >>>>> description what the problem is. Are you saying that "make" shipped
> >>>>> with
> >>>>> some recent Rtools is not accepting some forms of PATHs? But, which
> >>>>> Rtools then, which version of make, how do you run it?
> >>>>>
> >>>>> Why are you referring to "R CMD INSTALL" when none of your examples
> use
> >>>>> it? Is "R CMD INSTALL" necessary for reproducing the problem, cannot
> >>>>> you
> >>>>> just run "make" directly?
> >>>>>
> >>>>> Or are you reporting a bug inside R itself? (you are referring to
> >>>>> specific svn revisions of R). But how could R be involved in this, is
> >>>>> it
> >>>>> in how it executes make?
> >>>>>
> >>>>> Please provide a minimal but complete reproducible example, please
> >>>>> provide somehow test files that can be used.  Perhaps if you try to
> do
> >>>>> a
> >>>>> little bit of debugging on your end, it might help you to narrow down
> >>>>> the problem to the point that it will be then easier to understand
> it.
> >>>>> For example: if the problem is in "make", it should be possible to
> >>>>> trigger it directly from the command line, then you could easily try
> >>>>> with different versions of make and report which ones are the
> problem..
> >>>>>
> >>>>> Thanks
> >>>>> Tomas
> >>>>>
> >>>>>
> >>>>> On 3/10/20 8:22 AM, Wang Jiefei wrote:
> >>>>>> Hi all,
> >>>>>>
> >>>>>> Here is a bug(or feature?) that exists at least from R 2020-02-24
> >>>>>> r77852 to 2020-03-09 r77919 on Window. Consider this example
> makefile
> >>>>> in a
> >>>>>> package
> >>>>>> ```
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> *test1=$(shell echo 'runif(3)'|R --vanilla --slave)test2=$(shell
> echo
> >>>>>> 'runif(3)'|"C:/Program Files/R/R-devel/bin/R" --vanilla
> >>>>>> --slave)test3=$(shell echo 'runif(3)'|"C:/PROGRA~1/R/R-devel/bin/R"
> >>>>>> --vanilla --slave)$(info test1 is $(test1))$(info test2 is
> >>>>> $(test2))$(info
> >>>>>> test3 is $(test3))*
> >>>>>> ```
> >>>>>>
> >>>>>> I have no problem running the file using GUN make or installing the
> >>>>> package
> >>>>>> on R 3.6, both give the same result.
> >>>>>> ```
> >>>>>> *C:\Rtools\mingw_64\bin\mingw32-make.exe  *
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> *test1 is [1] 0.3427626 0.8027041 0.5611914test2 is [1] 0.9904205
> >>>>> 0.3922129
> >>>>>> 0.5970083test3 is [1] 0.3469528 0.1993838 0.8434841mingw32-make: ***
> >>>>> No
> >>>>>> targets.  Stop.*
> >>>>>> *```*
> >>>>>>
> >>>>>> However, on the devel version of R, it cannot recognize both the
> full
> >>>>> and
> >>>>>> short path of R and gives an error
> >>>>>> ```
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> *test1 is  [1] 0.42686376 0.84126831 0.09538047The filename,
> directory
> >>>>>> name, or volume label syntax is incorrect.test2 isThe filename,
> >>>>> directory
> >>>>>> name, or volume label syntax is incorrect.test3 is*
> >>>>>> ```
> >>>>>>
> >>>>>> I found this issue because my package needs to call R functions in
> the
> >>>>>> makefile. The code is similar to:
> >>>>>> ```
> >>>>>> *  myvar = $(shell echo 'runif(3)'|"${R_HOME}/bin/R" --vanilla
> >>>>> --slave)*
> >>>>>> ```
> >>>>>> Since *R_HOME *is set to *C:/PROGRA~1/R/R-devel/*, this will result
> >>>>> in the
> >>>>>> same error as I mentioned above. I do not know whether this is
> >>>>> intentional.
> >>>>>> If so, what is the correct way to call R function in a makefile?
> >>>>>>
> >>>>>> Best,
> >>>>>> Jiefei
> >>>>>>
> >>>>>>      [[alternative HTML version deleted]]
> >>>>>>
> >>>>>> ______________________________________________
> >>>>>> [hidden email] mailing list
> >>>>>> https://stat.ethz.ch/mailman/listinfo/r-devel
> >>>>>
> >>>>>
> >>>>>
> >>>
> >>
> >
> >       [[alternative HTML version deleted]]
> >
> > ______________________________________________
> > [hidden email] mailing list
> > https://stat.ethz.ch/mailman/listinfo/r-devel
> >
>
>

        [[alternative HTML version deleted]]

______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel