Пакет R строится на Windows, но не запускается, пример - вылетает сеанс R - PullRequest
0 голосов
/ 08 июня 2018

Я создаю пакет , который успешно компилируется как в Windows, так и в Linux, macOS.Пакет использует Rcpp для обеспечения интерфейса с библиотекой C для решения ODE (обыкновенных дифференциальных уравнений).

Пакет проходит все проверки на macOS и Ubuntu (проверено с помощью travis-ci),Пакет также успешно собирается на компьютере Windows 10, но на простом примере (который успешно выполняется на других платформах, происходит сбой сеанса R).

Я в своем уме, пытаясь выяснить,что идет не так.Сообщение от Appveyor вставлено ниже.

Этот пример можно найти по адресу https://github.com/sn248/sundialr/blob/master/inst/examples/cv_Roberts_dns.r

и успешно работает на других платформах.

Любые указатели по отладкеэто было бы очень полезно, спасибо!

* running examples for arch 'i386' ... ERROR
Running examples in 'sundialr-Ex.R' failed
The error most likely occurred in:
> base::assign(".ptime", proc.time(), pos = "CheckExEnv")
> ### Name: cvode
> ### Title: cvode
> ### Aliases: cvode
> 
> ### ** Examples
> 
> Rcpp::sourceCpp(code = '#include <Rcpp.h>
+ 
+ using namespace Rcpp;
+ 
+ typedef NumericVector (*funcPtr) (double t, NumericVector y, NumericVector ydot);
+ 
+ // [[Rcpp::export]]
+ NumericVector cv_Roberts_dns (double t, NumericVector y, NumericVector ydot){
+   ydot[0] = -0.04 * y[0] + 1e04 * y[1] * y[2];
+   ydot[2] = 3e07 * y[1] * y[1];
+   ydot[1] = -ydot[0] - ydot[2];
+ 
+   return ydot;
+ 
+ }
+ 
+ // [[Rcpp::export]]
+ XPtr<funcPtr> putFunPtrInXPtr() {
+ 
+   XPtr<funcPtr> testptr(new funcPtr(&cv_Roberts_dns), false);
+   return testptr;
+ 
+ }')
> 
> 
> # R code to generate time vector, IC and solve the equations
> time_t <- c(0.0, 0.4, 4, 40, 4E2, 4E3, 4E4, 4E5, 4E6, 4E7, 4E8, 4E9, 4E10)
> my_fun <- putFunPtrInXPtr()
> df <- cvode(time_t, c(1,0,0), my_fun , 1e-04, c(1e-8,1e-14,1e-6))
...