RCL uses CFFI to communicate with the R environment, RCLmath links with libRmath and makes some functions accessible in a much simpler way. The code is available under the MIT license. Note that there is another project working on communication between Common Lisp and R: RCLG.


Download: rcl.tar.gz (older snapshots rcl-130412.tgz, rcl-090715.tgz, rcl-081007.tgz, rcl-080628.tgz, rcl-070316.tgz, rcl-060716.tgz,rcl-060703.tgz,rcl-060623.tgz).

(asdf-install:install "http://common-lisp.net/project/rcl/rcl.tar.gz")


(ql:quickload :rcl)

You can run a basic test suite doing

(asdf:test-system :rcl)

Most likely you'll need to edit the library path in config.lisp; if rcl:*r-lib-loaded* is nil, try (cffi:load-foreign-library *r-lib*) to see what's the problem (see init.lisp).

CL-USER> (in-package :rcl)
R> (r-init)
R> (r "R.Version")
("i386-apple-darwin8.10.1" "i386" "darwin8.10.1" "i386, darwin8.10.1" "Patched"
 "2" "6.0" "2007" "10" "03" "43075" "R"
 "R version 2.6.0 Patched (2007-10-03 r43075)")
((:NAMES "platform" "arch" "os" "system" "status" "major" "minor" "year"
  "month" "day" "svn rev" "language" "version.string"))

When decoding an object with attributes, the list of attributes is returned as a secondary value (it's also possible to print attributes to standard-output whenever encountered decoding an object, to be aware of their existence).

In its current state it might be possible to use RCL successfully for simple tasks, but there are a number of issues: