In the test "compileNimble bridge works for one nimbleFunction object", we are not actually calling nCompiler:::compileNimble. So the test needs to be fixed. That's a side issue.
Main issue:
If we do invoke nCompiler:::compileNimble, there is a compilation error. We generate class definition code that looks like this:
class nfRefClass_R_GlobalEnv16 : public interface_resolver< genericInterfaceC<nfRefClass_R_GlobalEnv16> >, public loadedObjectHookC<nfRefClass_R_GlobalEnv16> {
public:
double ( ) ;
void nFun_3 ( SEXP NFobj ) ;
nfRefClass_R_GlobalEnv16 ( ) ;
Eigen::Tensor<int, 1> x;
};
The problem is that in the memberCppDefs, the $name element is being misassigned.
The name for the run function is missing, while nFun_3 is used as the name of copyFromNF. Hence double (); and void nFun_3 (SEXP NFobj);.
Still tracking down where the names are being assigned so I can fix that, but logging this now in case I don't have time to finish this.
In the test "compileNimble bridge works for one nimbleFunction object", we are not actually calling nCompiler:::compileNimble. So the test needs to be fixed. That's a side issue.
Main issue:
If we do invoke
nCompiler:::compileNimble, there is a compilation error. We generate class definition code that looks like this:The problem is that in the
memberCppDefs, the$nameelement is being misassigned.The name for the run function is missing, while
nFun_3is used as the name ofcopyFromNF. Hencedouble ();andvoid nFun_3 (SEXP NFobj);.Still tracking down where the names are being assigned so I can fix that, but logging this now in case I don't have time to finish this.