Windows Support

It would be nice to prepare a package for rzmq and irkernel, so that windows user can install them without setting up a mingw environment. Or upload them to cran :-)

I did get it to install the 64 bit version:

  • install.packages('RCurl') and library(devtools)
  • compile zeromg with a mingw by following this howto: http://zeromq.org/docs:windows-installations#toc2. I changed Makefile to remove perf and test from SUBDIRS to make compiling faster. This builds a 64bit libzmq.dll, but no 32 bit... I couldn't get it to compile using the rtools (setting the path to c:/rtools/bin and using C:\data\downloads\zeromq-4.0.5\zeromq-4.0.5>sh configure --prefix=C:/rtools/zeromq build_alias=x86-mingw32 "CFLAGS=-m32" "CXXFLAGS=-m32" "LDFLAGS=-m32") and also not the 32bit version with the above mingw (passing in "CFLAGS=-m32" "CXXFLAGS=-m32" "LDFLAGS=-m32" to configure...)
  • clone armstrtw/rzmq and git submodule init/update to get inst\cppzmq\zmq.hpp. Also copied zmq.h from the compiled zeromq folder into that dir, because I didn't know how to find the usr/local/include folder in rtools...
  • copied libzmq.dll together with libgcc_s_sjlj-1.dll and libstdc++-6.dll into a lot of subfolders of C:\Rtools\gcc-4.6.3 (*\bin, *\lib; not sure which was the correct one in the end) until the following worked:
  • in rzmq folder: C:/PROGRA~1/R/R-31~1.2/bin/x64/R --vanilla CMD INSTALL %CD% --library="C:/portabel/Rlibs" --no-multiarch
  • install_github("takluyver/IRdisplay")
  • clone takluyver/IRkernel and in irkernel again: C:/PROGRA~1/R/R-31~1.2/bin/x64/R --vanilla CMD INSTALL %CD% --library="C:/portabel/Rlibs" --no-multiarch
  • run C:/PROGRA~1/R/R-31~1.2/bin/x64/R and then IRkernel::installspec()
  • running a v3 ipython notebook (from git yesterday) with a r kernel didn't work at first, as the R started by ipython notebook was 32bit and zmq wasn't installed in that version (see above...), so modified the .ipython\kernels\ir\kernel.json to read {"argv": ["R","--arch", "x64", "-e","IRkernel::main()","--args","{connection_file}"], (-> added "--arch", "x64",). I couldn't find a way to set this the default R, but that's probably just again missing google foo on my side :-( Next time I will simple install only 64bit R and not both.... [EDIT: it's probably enough to setx R_ARCH x64]

And yay: there was an R kernel and I can run R code in the notebook :-)

The above was brought to you by 6 hours poking around and a lot of trial and error in the middle of the night, numerous google searches and now not enough sleep but neverless a happy R kernel user :-) Thanks a lot for your work!