[Rcpp-devel] RcppOctave on Windows: testing needed

Dominick Samperi djsamperi at gmail.com
Sat Oct 5 23:44:00 CEST 2013

Hello Renaud,

Here is a summary of my testing results.

1. Your binary and source distribution is currently setup to use DLL's
    of static libs. This is tricky to do under Windows, and this is why Rcpp
    provides a static lib to link against. You may want to consider using
    the same convention to avoid the complications explained below.

2. Your binary installs fine under Windows 7, but when RcppOctave is
    loaded and then R is terminated, I get the unhelpful Windows error
    message: "This application has requested the Runtime to terminate
    it in an unusual way." I get the same failure when I try to build from
    source at the point where R CMD INSTALL tries to test the ability
    to load the package. The solution (not obvious from the message!)
    is to simply add the directory containing Rcpp.dll to PATH.
    The next item explains why.

3. Under normal circumstances when package Foo loads
    its own Foo.dll, what happens is that R reads the dll directly and
    does not depend on Windows to resolve dependencies on other
    R package dll's. But in the case of RcppOctave.dll, there is a
    on Rcpp.dll, and Windows will not resolve this dependency unless
    the directory containing Rcpp.dll is on PATH (another strategy is to
    place Rcpp.dll in a Windows System directory, but this is not
    consistent with the R install process and is not recommended).

4. The parameter _WIN32_WINNT is set to a value used to identify
    the underlying Windows OS version (2000, XP, 7, 8, etc.), and it
    is set differently in the gcc configuration used to build Octave and
    the one found in Rtools. I don't know if this makes a difference
    that matters. In general, there is the potential for ABI problems
    since Octave and Rtools use different versions of gcc. To be safe I
    guess you could build Octave using the gcc from Rtools.

5. On the recommended order of including RcppCommon.h vs Rcpp.h,
    I have implemented custom wraps a few times with only Rcpp.h
    included (at the top). This seems to work with rcpp_octave.h as well.
    I would like to see a simple example where
    the recommended order is necessary. Is this recommendation
    insurance against some future change? Does it apply specifically
    to user customized modules (as suggested by wrap_end.h)?


On Fri, Oct 4, 2013 at 3:08 PM, Renaud Gaujoux <
renaud at mancala.cbio.uct.ac.za> wrote:

> Hi all,
> I finally got RcppOctave to work on Windows!
> See these threads for details on what it took:
> http://lists.r-forge.r-project.org/pipermail/rcpp-devel/2013-October/006524.html
> http://lists.r-forge.r-project.org/pipermail/rcpp-devel/2013-October/006555.html
> I would love to have feedbacks -- and log output :) -- on
> install/build/check run on other Windows machines. So feel free to try and
> complain if things go wrong.
> The source is available from github on branch develop:
> https://github.com/renozao/RcppOctave/archive/develop.zip
> Corresponding built source and binary packages are also available from my
> CRAN-like repo:
> http://web.cbio.uct.ac.za/~renaud/CRAN
> e.g.:
> install.packages('RcppOctave', repos = c(getOption('repos'), '
> http://web.cbio.uct.ac.za/~renaud/CRAN'))
> Requirements:
>   * building: Octave bin/ sub-directory must be in Windows PATH + the
> usual Rtools stuff. Probably better not to have spaces in R and Rtools
> paths;
>   * installing: never actually tried... but Octave bin/ sub-directory must
> be in the path, I imagine that Octave library directory (where liboctave,
> liboctinterp and libcruft live) must also be somehow registered or in
> Windows PATH.
> Note that I developed/tested the windows version using the mingw port (
> http://wiki.octave.org/Octave_for_Windows#Octave-3.6.4-mingw_.2B_octaveforge_pkgs),
> not sure if this is important, probably it is, maybe someone knows ;)
> I will also test on my side, but the more the merrier!
> Thank you.
> Bests,
> Renaud
> PS: people interested in keeping up with RcppOctave might consider
> subscribing the -- currently pristine -- mailing list
> http://lists.r-forge.r-project.org/pipermail/rcppoctave-user/
> _______________________________________________
> Rcpp-devel mailing list
> Rcpp-devel at lists.r-forge.r-project.org
> https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.r-forge.r-project.org/pipermail/rcpp-devel/attachments/20131005/c7587767/attachment.html>

More information about the Rcpp-devel mailing list