inline 0.3.6
By romain francois on Friday, July 30 2010, 15:34 - inline - Permalink
I released inline 0.3.6 yesterday. This is a minor release which gives better R level errors when there is a compiler error. For example :
> tryCatch( cxxfunction( , 'int x = 3 ; x+ ; return R_NilValue ; ' ), error = function(e) print(e$message))
file10d63af1.cpp: In function ‘SEXPREC* file10d63af1()’:
file10d63af1.cpp:18: error: expected primary-expression before ‘;’ token
make: *** [file10d63af1.o] Error 1
ERROR(s) during compilation: source code errors or compiler configuration errors!
Program source:
1: // includes from the plugin
2: #include <R.h>
3: #include <Rdefines.h>
4: #include <R_ext/Error.h>
5:
6:
7: // user includes
8:
9:
10: // declaration
11: extern "C" {
12: SEXP file10d63af1( ) ;
13: }
14:
15: // definition
16:
17: SEXP file10d63af1( ){
18: int x = 3 ; x+ ; return R_NilValue ;
19: Rf_warning("your C++ program does not return anything");
20: return R_NilValue ;
21: }
22:
23:
[1] "Compilation ERROR, function(s)/method(s) not created! file10d63af1.cpp: In function ‘SEXPREC* file10d63af1()’:\nfile10d63af1.cpp:18: error: expected primary-expression before ‘;’ token\nmake: *** [file10d63af1.o] Error 1"
The compile error is part of the message of the R error, with previous versions, the R error always had the same message "Compilation ERROR, function(s)/method(s) not created!".
This will be especially useful for developing Rcpp, which rely on inline for unit testing