Christophe Bousquet
2023-Sep-01 09:05 UTC
[R] Problems with installing R packages from source and running C++ in R, even on fresh R installation
> Is there a "C:\Program Files\R\R-4.3.1\bin\x64\Rterm.exe"? If you > launch it, does it present an R command line?Yes, this file exists and when I launch it, a new functionally-working R terminal window pops up.> I'm suspecting that Rcmd.exe somehow messes up when it tries to locate > Rterm.exe to launch it. Here's one way to see what happens: > > 1. Download Sysinternals Process Monitor, a free monitoring utility, > from the Microsoft website and launch it (no installation needed): > https://learn.microsoft.com/en-us/sysinternals/downloads/procmon > > 2. Set up the filter so that so that entries are included > - Process name is "Rcmd.exe" > - Operation is "Process Create" > > 3. Run tools::Rcmd('SHLIB --help') (or any other Rcmd invocation that > fails to produce any output for you) > > 4. You should get one event of Rcmd.exe trying to launch cmd.exe with a > long command line. What is the command line?For 2., I also added the Process name "Rterm.exe" Here are the outputs from Process Monitor for each situation. In the first situation, I run the command tools::Rcmd('SHLIB --help') from within R (launched by clicking on the R icon). I get: Process Name: Rcmd.exe PID: 8204 Path: C:\WINDOWS\System32\Conhost.exe Result: SUCCESS Detail: PID: 4028, Command line: \??\C:\WINDOWS\system32\conhost.exe 0xffffffff -ForceV1 In the second situation, I run the command tools::Rcmd('SHLIB --help') from the R terminal (launched by clicking on Rterm.exe). I get: Process Name: Rterm.exe PID: 14596 Path: C:\PROGRA~1\R\R-43~1.1\bin\x64\Rcmd.exe Result: SUCCESS Detail: PID: 6820, Command line: C:\PROGRA~1\R\R-43~1.1\bin\x64\Rcmd.exe SHLIB --help Best regards, Christophe
Ivan Krylov
2023-Sep-01 14:53 UTC
[R] Problems with installing R packages from source and running C++ in R, even on fresh R installation
? Fri, 01 Sep 2023 09:05:45 +0000 Christophe Bousquet <chr_bousquet at protonmail.com> ?????:> In the first situation, I run the command tools::Rcmd('SHLIB --help') > from within R (launched by clicking on the R icon). I get: > Process Name: Rcmd.exe > PID: 8204 > Path: C:\WINDOWS\System32\Conhost.exe > Result: SUCCESS > Detail: PID: 4028, Command line: \??\C:\WINDOWS\system32\conhost.exe > 0xffffffff -ForceV1I'll be honest with you: I still don't understand what's going on. Thank you for confirming that your filter works (seeing Rcmd.exe launched when you run tools::Rcmd() from Rterm.exe is the expected behaviour), but I don't know enough about Windows internals to come up with an explanation for the observed behaviour. If you're up to compiling R from source [*] and using a symbolic debugger [**] to step through Rcmd.exe, we could try to do that. Murphy's law says that the copy of Rcmd.exe you'll build from source will work well and refuse to reproduce the problem for you to investigate. (Beyond that, there is binary-level debugging, which I'm not well versed in.) -- Best regards, Ivan [*] https://cran.r-project.org/bin/windows/base/howto-R-devel.html [**] https://beej.us/guide/bggdb/