Thursday, 26 March 2015

rClr 0.7-4 released

Version 0.7-4 of rClr (source code mirrored on GitHub), a package to access arbitrary .NET code seamlessly and in-process, has been released.

This is a maintenance release with an important fix to memory management. In some circumstances, passing data from R to .NET was leading to memory leaks. While it is not noticeable in many cases, this is an important fix and users should upgrade.

A list of salient features in the 0.7-x series can be found in a blog post on the previous release.


Notwithstanding the ever present need for documentation, the next feature I'd like to add, and which would lead to a 0.8-x series, is to have R reference classes. It is already quite functional on a branch, with automatic R reference class code generation, but the R code for reference classes can lead to unacceptably long runtimes even with not so complicated complicated inheritance trees.

I have since looked at the package R6 as a candidate to handle R classes with reference semantics for rClr. Would be nice to present at the useR! conference, but don't think I can make it "funding-wise".

The C/C++ layer or rClr could do with a reengineering to more C++. Also, some of the data conversion features are handled in C# now, so if anything there would be a reduction in code size.


My thanks to Justin Hughes for reporting the problem and providing code to help diagnose and reproduce the issue.