I'm okay with not reading the Rif.jl sources as I think I have most of the capabilities covered. Well, I have the tryEval working and can manually construct function calls but I still need to write the piece that parses R code.
I think I should be okay with using the R API and still keeping RCall.jl under an MIT license. The API is documented in some of the R manuals. The RCall package requires that R be installed separately if it is to be used. Obviously the package dlopen's libR.so but that seems sufficiently arms-length not to require releasing RCall.jl under the GPL. On Friday, January 2, 2015 4:03:27 PM UTC-6, Stefan Karpinski wrote: > > You can combine GPL and proprietary software as long as you don't > redistribute the combination. If a single derived work combining GPL and > proprietary code is distributed, that voids the GPL license, leaving the > distributor and recipient of the derived work without a valid license for > the GPL code, leaving them open to legal action by the copyright holders of > the GPL code. > > On Fri, Jan 2, 2015 at 4:54 PM, Simon Kornblith <[email protected] > <javascript:>> wrote: > >> On Friday, January 2, 2015 2:59:04 PM UTC-5, Douglas Bates wrote: >>> >>> For many statistics-oriented Julia users there is a great advantage in >>> being able to piggy-back on R development and to use at least the data sets >>> from R packages. Hence the RDatasets package and the read_rda function in >>> the DataFrames package for reading saved R data. >>> >>> Over the last couple of days I have been experimenting with running an >>> embedded R within Julia and calling R functions from Julia. This is similar >>> in scope to the Rif package except that this code is written in Julia and >>> not as a set of wrapper functions written in C. The R API is a C API and, >>> in some ways, very simple. Everything in R is represented as a "symbolic >>> expression" or SEXPREC and passed around as pointers to such expressions >>> (called an SEXP type). Most functions take one or more SEXP values as >>> arguments and return an SEXP. >>> >>> I have avoided reading the code for Rif for two reasons: >>> 1. It is GPL3 licensed >>> 2. I already know a fair bit of the R API and where to find API >>> function signatures. >>> >> >> AFAICT, Rif.jl is GPLv2+. I'm not sure how much a less restrictive >> license helps here. My understanding is that, because R is GPLv2+, code >> that links against it must be redistributed under GPLv2+ or a less >> restrictive license, i.e., while it would be legal to redistribute code >> that uses either Rif.jl or RCall.jl under GPLv2+ or MIT, neither could be >> used in closed source software. >> >> Simon >> > >
