fslaborg / RProvider

Access R packages from F#
http://fslab.org/RProvider/
Other
237 stars 69 forks source link

Report better error when package loading fails #148

Open sergey-tihon opened 9 years ago

sergey-tihon commented 9 years ago

Latest version of RProvider (v1.1.8) does not see a lot of function.I use R 3.1.3 - x64 Some packages work as expected: image But a lot of them are empty =( image image

What could be a reason? @tpetricek @hmansell P.S. Packages are installed on the machine

tpetricek commented 9 years ago

I have R 3.1.3 (2015-03-09) - and I used the default installer (from here), which AFAIK installs both 32bit and 64bit versions.

After installing neuralnet and caret packages from R (I used 32bit R for that, but then I also tried running the command in 64bit R), I can access the functions from there...

So, I'm not quite sure what the difference is. I think the VS process always calls 32bit R, although in FSI, it will call whatever R based on how FSI is configured.

I've seen a few reports like this recently, so I'd really like to understand what's going on! Could you follow this guide and share a log file?

tpetricek commented 9 years ago

(I wonder if this is related to #147 or #145 - all of those explicitly mention 64 bit R - but can you install just 64 bit version? or how does that work?)

sergey-tihon commented 9 years ago

Yes, there is only 64bit version on my machine

tpetricek commented 9 years ago

Hmm, how do I install that?

(I'm not sure what happens if you have just 64 bit version!)

sergey-tihon commented 9 years ago

Log file

[4/9/2015 12:47:38 AM] [Pid:4256, Tid:10, Apid:1] initAndGenerate: starting
[4/9/2015 12:47:38 AM] [Pid:4256, Tid:10, Apid:1] Starting server 'D:\Research&Development\RProjectApps\packages\RProvider.1.1.8\lib\net40\RProvider.Server.exe' with arguments 'RInteropServer_4256_141442484_1867526244 "C:\Users\Siarhei_Tsikhan\AppData\Local\Temp\tmp3DC6.tmp"' (exists=true)
[4/9/2015 12:47:39 AM] [Pid:14716, Tid:1, Apid:1] Starting 'RProvider.Server' with arguments '[|"RInteropServer_4256_141442484_1867526244";
  "C:\Users\Siarhei_Tsikhan\AppData\Local\Temp\tmp3DC6.tmp"|]'
[4/9/2015 12:47:39 AM] [Pid:14716, Tid:1, Apid:1] Registering RInteropServer at channel 'RInteropServer_4256_141442484_1867526244'
[4/9/2015 12:47:39 AM] [Pid:14716, Tid:1, Apid:1] Ready for connections..
[4/9/2015 12:47:39 AM] [Pid:4256, Tid:10, Apid:1] Attempting to connect via IPC
[4/9/2015 12:47:39 AM] [Pid:14716, Tid:1, Apid:1] Waiting for parent process pid=4256 (System.Diagnostics.Process (devenv))
[4/9/2015 12:47:39 AM] [Pid:14716, Tid:1, Apid:1] Server started, running event loop
[4/9/2015 12:47:39 AM] [Pid:14716, Tid:1, Apid:1] server event loop: starting
[4/9/2015 12:47:39 AM] [Pid:4256, Tid:10, Apid:1] Got some server
[4/9/2015 12:47:39 AM] [Pid:14716, Tid:1, Apid:1] Probing locations: D:\Research&Development\RProjectApps\packages\RProvider.1.1.8\lib\net40\..\..\..\Deedle.1.0.7\lib\net40;D:\Research&Development\RProjectApps\packages\RProvider.1.1.8\lib\net40\..\..\..\Deedle.RPlugin.1.0.7\lib\net40;D:\Research&Development\RProjectApps\packages\RProvider.1.1.8\lib\net40\..\..\..\Foogle.Charts.0.0.5\lib\net40;D:\Research&Development\RProjectApps\packages\RProvider.1.1.8\lib\net40\..\..\..\FSharp.Charting.0.90.9\lib\net40;D:\Research&Development\RProjectApps\packages\RProvider.1.1.8\lib\net40\..\..\..\FSharp.Core.3.1.2.1\lib\net40;D:\Research&Development\RProjectApps\packages\RProvider.1.1.8\lib\net40\..\..\..\FSharp.Data.2.1.1\lib\net40;D:\Research&Development\RProjectApps\packages\RProvider.1.1.8\lib\net40\..\..\..\MathNet.Numerics.3.0.0\lib\net40;D:\Research&Development\RProjectApps\packages\RProvider.1.1.8\lib\net40\..\..\..\MathNet.Numerics.3.5.0\lib\net40;D:\Research&Development\RProjectApps\packages\RProvider.1.1.8\lib\net40\..\..\..\MathNet.Numerics.FSharp.3.0.0\lib\net40;D:\Research&Development\RProjectApps\packages\RProvider.1.1.8\lib\net40\..\..\..\MathNet.Numerics.FSharp.3.5.0\lib\net40;D:\Research&Development\RProjectApps\packages\RProvider.1.1.8\lib\net40\..\..\..\R.NET.Community.1.5.16\lib\net40;D:\Research&Development\RProjectApps\packages\RProvider.1.1.8\lib\net40\..\..\..\R.NET.Community.FSharp.0.1.9\lib\net40;D:\Research&Development\RProjectApps\packages\RProvider.1.1.8\lib\net40\..\..\..\RProvider.1.1.8\lib\net40
[4/9/2015 12:47:39 AM] [Pid:14716, Tid:1, Apid:1] Found assembly, checking version! (D:\Research&Development\RProjectApps\packages\RProvider.1.1.8\lib\net40\..\..\..\R.NET.Community.1.5.16\lib\net40\RDotNet.dll)
[4/9/2015 12:47:39 AM] [Pid:14716, Tid:1, Apid:1] ...version matches, returning!
[4/9/2015 12:47:39 AM] [Pid:14716, Tid:1, Apid:1] setupPathVariable
[4/9/2015 12:47:39 AM] [Pid:14716, Tid:1, Apid:1] getRLocation
[4/9/2015 12:47:39 AM] [Pid:14716, Tid:1, Apid:1] Scanning the registry
[4/9/2015 12:47:39 AM] [Pid:14716, Tid:1, Apid:1] setupPathVariable: path='D:\R\R-3.1.3\bin\x64', home='D:\R\R-3.1.3'
[4/9/2015 12:47:39 AM] [Pid:14716, Tid:1, Apid:1] setupPathVariable completed
[4/9/2015 12:47:39 AM] [Pid:4256, Tid:10, Apid:1] generateTypes: getting packages
[4/9/2015 12:47:39 AM] [Pid:14716, Tid:5, Apid:1] Adding work item to queue
[4/9/2015 12:47:39 AM] [Pid:14716, Tid:1, Apid:1] server event loop: got work item
[4/9/2015 12:47:39 AM] [Pid:14716, Tid:1, Apid:1] eval(.packages(all.available=T))
[4/9/2015 12:47:39 AM] [Pid:14716, Tid:1, Apid:1] engine: Creating and initializing instance (sizeof<IntPtr>=8)
[4/9/2015 12:47:40 AM] [Pid:14716, Tid:1, Apid:1] engine: Created & initialized instance
[4/9/2015 12:47:40 AM] [Pid:14716, Tid:1, Apid:1] Output: 
[4/9/2015 12:47:40 AM] [Pid:14716, Tid:1, Apid:1] Probing locations: D:\Research&Development\RProjectApps\packages\RProvider.1.1.8\lib\net40\..\..\..\Deedle.1.0.7\lib\net40;D:\Research&Development\RProjectApps\packages\RProvider.1.1.8\lib\net40\..\..\..\Deedle.RPlugin.1.0.7\lib\net40;D:\Research&Development\RProjectApps\packages\RProvider.1.1.8\lib\net40\..\..\..\Foogle.Charts.0.0.5\lib\net40;D:\Research&Development\RProjectApps\packages\RProvider.1.1.8\lib\net40\..\..\..\FSharp.Charting.0.90.9\lib\net40;D:\Research&Development\RProjectApps\packages\RProvider.1.1.8\lib\net40\..\..\..\FSharp.Core.3.1.2.1\lib\net40;D:\Research&Development\RProjectApps\packages\RProvider.1.1.8\lib\net40\..\..\..\FSharp.Data.2.1.1\lib\net40;D:\Research&Development\RProjectApps\packages\RProvider.1.1.8\lib\net40\..\..\..\MathNet.Numerics.3.0.0\lib\net40;D:\Research&Development\RProjectApps\packages\RProvider.1.1.8\lib\net40\..\..\..\MathNet.Numerics.3.5.0\lib\net40;D:\Research&Development\RProjectApps\packages\RProvider.1.1.8\lib\net40\..\..\..\MathNet.Numerics.FSharp.3.0.0\lib\net40;D:\Research&Development\RProjectApps\packages\RProvider.1.1.8\lib\net40\..\..\..\MathNet.Numerics.FSharp.3.5.0\lib\net40;D:\Research&Development\RProjectApps\packages\RProvider.1.1.8\lib\net40\..\..\..\R.NET.Community.1.5.16\lib\net40;D:\Research&Development\RProjectApps\packages\RProvider.1.1.8\lib\net40\..\..\..\R.NET.Community.FSharp.0.1.9\lib\net40;D:\Research&Development\RProjectApps\packages\RProvider.1.1.8\lib\net40\..\..\..\RProvider.1.1.8\lib\net40
[4/9/2015 12:47:40 AM] [Pid:14716, Tid:1, Apid:1] Found assembly, checking version! (D:\Research&Development\RProjectApps\packages\RProvider.1.1.8\lib\net40\..\..\..\Deedle.1.0.7\lib\net40\Deedle.dll)
[4/9/2015 12:47:40 AM] [Pid:14716, Tid:1, Apid:1] ...version matches, returning!
[4/9/2015 12:47:40 AM] [Pid:14716, Tid:1, Apid:1] Probing locations: D:\Research&Development\RProjectApps\packages\RProvider.1.1.8\lib\net40\..\..\..\Deedle.1.0.7\lib\net40;D:\Research&Development\RProjectApps\packages\RProvider.1.1.8\lib\net40\..\..\..\Deedle.RPlugin.1.0.7\lib\net40;D:\Research&Development\RProjectApps\packages\RProvider.1.1.8\lib\net40\..\..\..\Foogle.Charts.0.0.5\lib\net40;D:\Research&Development\RProjectApps\packages\RProvider.1.1.8\lib\net40\..\..\..\FSharp.Charting.0.90.9\lib\net40;D:\Research&Development\RProjectApps\packages\RProvider.1.1.8\lib\net40\..\..\..\FSharp.Core.3.1.2.1\lib\net40;D:\Research&Development\RProjectApps\packages\RProvider.1.1.8\lib\net40\..\..\..\FSharp.Data.2.1.1\lib\net40;D:\Research&Development\RProjectApps\packages\RProvider.1.1.8\lib\net40\..\..\..\MathNet.Numerics.3.0.0\lib\net40;D:\Research&Development\RProjectApps\packages\RProvider.1.1.8\lib\net40\..\..\..\MathNet.Numerics.3.5.0\lib\net40;D:\Research&Development\RProjectApps\packages\RProvider.1.1.8\lib\net40\..\..\..\MathNet.Numerics.FSharp.3.0.0\lib\net40;D:\Research&Development\RProjectApps\packages\RProvider.1.1.8\lib\net40\..\..\..\MathNet.Numerics.FSharp.3.5.0\lib\net40;D:\Research&Development\RProjectApps\packages\RProvider.1.1.8\lib\net40\..\..\..\R.NET.Community.1.5.16\lib\net40;D:\Research&Development\RProjectApps\packages\RProvider.1.1.8\lib\net40\..\..\..\R.NET.Community.FSharp.0.1.9\lib\net40;D:\Research&Development\RProjectApps\packages\RProvider.1.1.8\lib\net40\..\..\..\RProvider.1.1.8\lib\net40
[4/9/2015 12:47:40 AM] [Pid:14716, Tid:1, Apid:1] Found assembly, checking version! (D:\Research&Development\RProjectApps\packages\RProvider.1.1.8\lib\net40\..\..\..\R.NET.Community.FSharp.0.1.9\lib\net40\RDotNet.FSharp.dll)
[4/9/2015 12:47:40 AM] [Pid:14716, Tid:1, Apid:1] ...version matches, returning!
[4/9/2015 12:47:40 AM] [Pid:4256, Tid:10, Apid:1] initAndGenerate: finished
[4/9/2015 12:47:51 AM] [Pid:4256, Tid:5, Apid:1] initAndGenerate: starting
[4/9/2015 12:47:51 AM] [Pid:4256, Tid:5, Apid:1] generateTypes: getting packages
[4/9/2015 12:47:51 AM] [Pid:14716, Tid:5, Apid:1] Adding work item to queue
[4/9/2015 12:47:51 AM] [Pid:14716, Tid:1, Apid:1] server event loop: got work item
[4/9/2015 12:47:51 AM] [Pid:14716, Tid:1, Apid:1] eval(.packages(all.available=T))
[4/9/2015 12:47:51 AM] [Pid:14716, Tid:1, Apid:1] Output: 
[4/9/2015 12:47:51 AM] [Pid:4256, Tid:5, Apid:1] initAndGenerate: finished
[4/9/2015 12:48:12 AM] [Pid:4256, Tid:38, Apid:1] Probing locations: D:\Research&Development\RProjectApps\packages\RProvider.1.1.8\lib\net40\..\..\..\Deedle.1.0.7\lib\net40;D:\Research&Development\RProjectApps\packages\RProvider.1.1.8\lib\net40\..\..\..\Deedle.RPlugin.1.0.7\lib\net40;D:\Research&Development\RProjectApps\packages\RProvider.1.1.8\lib\net40\..\..\..\Foogle.Charts.0.0.5\lib\net40;D:\Research&Development\RProjectApps\packages\RProvider.1.1.8\lib\net40\..\..\..\FSharp.Charting.0.90.9\lib\net40;D:\Research&Development\RProjectApps\packages\RProvider.1.1.8\lib\net40\..\..\..\FSharp.Core.3.1.2.1\lib\net40;D:\Research&Development\RProjectApps\packages\RProvider.1.1.8\lib\net40\..\..\..\FSharp.Data.2.1.1\lib\net40;D:\Research&Development\RProjectApps\packages\RProvider.1.1.8\lib\net40\..\..\..\MathNet.Numerics.3.0.0\lib\net40;D:\Research&Development\RProjectApps\packages\RProvider.1.1.8\lib\net40\..\..\..\MathNet.Numerics.3.5.0\lib\net40;D:\Research&Development\RProjectApps\packages\RProvider.1.1.8\lib\net40\..\..\..\MathNet.Numerics.FSharp.3.0.0\lib\net40;D:\Research&Development\RProjectApps\packages\RProvider.1.1.8\lib\net40\..\..\..\MathNet.Numerics.FSharp.3.5.0\lib\net40;D:\Research&Development\RProjectApps\packages\RProvider.1.1.8\lib\net40\..\..\..\R.NET.Community.1.5.16\lib\net40;D:\Research&Development\RProjectApps\packages\RProvider.1.1.8\lib\net40\..\..\..\R.NET.Community.FSharp.0.1.9\lib\net40;D:\Research&Development\RProjectApps\packages\RProvider.1.1.8\lib\net40\..\..\..\RProvider.1.1.8\lib\net40
[4/9/2015 12:48:12 AM] [Pid:4256, Tid:38, Apid:1] Found assembly, checking version! (D:\Research&Development\RProjectApps\packages\RProvider.1.1.8\lib\net40\..\..\..\R.NET.Community.1.5.16\lib\net40\RDotNet.dll)
[4/9/2015 12:48:12 AM] [Pid:4256, Tid:38, Apid:1] ...version matches, returning!
[4/9/2015 12:48:12 AM] [Pid:14716, Tid:5, Apid:1] Adding work item to queue
[4/9/2015 12:48:12 AM] [Pid:14716, Tid:1, Apid:1] server event loop: got work item
[4/9/2015 12:48:12 AM] [Pid:14716, Tid:1, Apid:1] eval(require(base))
[4/9/2015 12:48:12 AM] [Pid:14716, Tid:1, Apid:1] Output: 
[4/9/2015 12:48:13 AM] [Pid:14716, Tid:5, Apid:1] Adding work item to queue
[4/9/2015 12:48:13 AM] [Pid:14716, Tid:1, Apid:1] server event loop: got work item
[4/9/2015 12:48:13 AM] [Pid:14716, Tid:1, Apid:1] evalto(function (pkgName) {
    require(pkgName, character.only=TRUE)
    pkgListing <- ls(paste("package:",pkgName,sep=""))
    lapply(
        pkgListing,
        function (pname) {
            pval <- get(pname)
            ptype <- typeof(pval)
            if (ptype == "closure") {
                list(name=pname, type=ptype, params=list(names(formals(pname))))
            } else {
                list(name=pname, type=ptype, params=NA)
            }
        }
    )
}, fsr_14716_1)
[4/9/2015 12:48:13 AM] [Pid:14716, Tid:1, Apid:1] Output: 
[4/9/2015 12:48:13 AM] [Pid:14716, Tid:1, Apid:1] eval(fsr_14716_1('base'))
[4/9/2015 12:48:13 AM] [Pid:14716, Tid:1, Apid:1] Output: 
[4/9/2015 12:48:18 AM] [Pid:14716, Tid:5, Apid:1] Adding work item to queue
[4/9/2015 12:48:18 AM] [Pid:14716, Tid:1, Apid:1] server event loop: got work item
[4/9/2015 12:48:18 AM] [Pid:14716, Tid:1, Apid:1] eval(require(neuralnet))
[4/9/2015 12:48:18 AM] [Pid:14716, Tid:1, Apid:1] Output: Loading required package: neuralnet
Loading required package: grid
Loading required package: MASS
Failed with error:  'package 'MASS' could not be loaded'
In addition: Warning message:
In library(pkg, character.only = TRUE, logical.return = TRUE, lib.loc = lib.loc) :
  there is no package called 'MASS'

[4/9/2015 12:48:27 AM] [Pid:14716, Tid:5, Apid:1] Adding work item to queue
[4/9/2015 12:48:27 AM] [Pid:14716, Tid:1, Apid:1] server event loop: got work item
[4/9/2015 12:48:27 AM] [Pid:14716, Tid:1, Apid:1] eval(require(caret))
[4/9/2015 12:48:28 AM] [Pid:14716, Tid:1, Apid:1] Output: Loading required package: caret
Loading required package: lattice
Loading required package: ggplot2
Error in loadNamespace(j <- i[[1L]], c(lib.loc, .libPaths()), versionCheck = vI[[j]]) : 
  there is no package called 'MASS'
Failed with error:  'package 'ggplot2' could not be loaded'

When you do install of R you have an option to choose what runtimes do you need. image

sergey-tihon commented 9 years ago

I do not know why... MASS and pbkrtest packages were not installed during R.install_packages. Maybe it is related with new R dep management system Packrat, maybe not.

After manual install of packages, most of problems disappeared, except https://github.com/BlueMountainCapital/FSharpRProvider/issues/145

But it is still nontrivial to understand what is going wrong. I would have not guessed without your hints to enable logging. Could we show such errors in VS directly?

tpetricek commented 9 years ago

Reopening this as a feature request - we should certainly be able to capture the error message (from the log) and display it to the user.