OCaml C CSS C++ Other
Fetching latest commit…
Cannot retrieve the latest commit at this time.
|Failed to load latest commit information.|
OCaml-R =================== Objective Caml bindings for the R interpreter. Copyright 2008-2010 INRIA - Maxence Guesdon. Contact: email@example.com Copyright 2009-2010 Guillaume Yziquel. Contact: firstname.lastname@example.org Licenced under the GPL version 3. Lausanne, October 2010 -1- Status of OCaml-R ===================== OCaml-R is still in development, is usable, but still has some syntactic idiosyncrasies and some performance bottlenecks. OCaml-R was initially written by Maxence Guesdon and has been almost entirely rewritten by Guillaume Yziquel to provide a tight integration with R's API. -2- Description of OCaml-R ========================== OCaml-R is an Objective Caml binding embedding R's interpreter into OCaml code. It also provides bindings to R's standalone mathematical library, and has embryonic support for R's standard libraries. A longer term goal is to provide a syntax extension introspecting R packages to generate OCaml code binding the R symbols at OCaml compile time. Another longer term goal is to provide a syntax extension around R's calling conventions. The current situation is quite clumsy and unsatisfying. The aim of OCaml-R is to target R's most recent versions of R. More specifically, it is developed against the R packages provided in Debian. Please report any issues regarding to portability. -3- Availability of source code and binaries ============================================ Source code is managed with Git in these repositories: -- http://yziquel.homelinux.org/gitweb/?p=ocaml-r.git -- http://github.com/yziquel/OCaml-R To get the source code, type: -- git clone git://github.com/yziquel/OCaml-R.git There are some precompiled binaries for Debian, amd64: -- http://yziquel.homelinux.org/debian/pool/main/o/ocaml-r/ PLEASE: Give me feedback if you have the slightest compilation error, or if you would like to have the binaries packaged for some other distribution system, or some other architecture! -4- Required dependencies for OCaml-R ======================================= You will need OCaml, findlib, and R. Using a full R distribution is recommended. You will need usual GNU utilities and camlp4 to build the software from source. -5- Build instructions ======================= Ideally, you should only have to run 'make' to build the OCaml-R software. make install should work. Please report if it doesn't, (since I'm working on it directly building Debian packages instead of using the install target). The paths for linking the R libraries to the OCaml libraries are taken from Debian. You may need to adapt these paths to your system. Again, please report if you encounter the need to do so. Currently, it works on Debian, and someone has reported me that it compiles without problems on Mac OS X 10 6.3. If you use ocp-build, you should edit the top 'build.ocp' file, and then call `ocp-build init && ocp-build`. -6- How to use the library =========================== This goes somewhat further than the scope of this README file. However, a few general statements about findlib packaging: The R package depends on R.cma or R.cmxa, which contains the R module module and links in dynamically the shared library of R's interpreter. However, #require "R" is not sufficient to have the R interpreter properly initialised. The R.interpreter package depends on oCamlR.cmo or oCamlR.cmx, and when loaded, this module properly initialises the Python interpreter. So you only have to #require "R.interpreter" to have R up and running. There are other packages. R.math links to the standalone mathematical shared library of R. Other packages, such as R.base and R.stats are embryonic bindings of R's standard library. Help is very welcome on this side. The OCaml-R API: http://yziquel.homelinux.org/api/ocaml-r -7- The author, and contact information ======================================== As mentionned earlier, OCaml-R was initially written by Maxence Guesdon. It was a rather simple binding that was used essentially by feeding strings to the R interpreter parser and evaluation function, and providing data conversion functions for simple R types. This was version 0.1 of OCaml-R. The current version 0.2, is essentially an almost complete rewrite by Guillaume Yziquel providing tight integration with the R library. It can dissect R values to expose their internal structures to OCaml (though this shouldn't be the most useful aspect, nor the recommended way to use this binding), it construct R calls by building up R values directly, integrates OCaml's and R's garbage collectors (though somewhat poorly), chains R exceptions back to Objective Caml, and provides static initialisation of the R interpreter. The initial author, Maxence Guesdon, can be reached at: email@example.com You can reach Guillaume Yziquel at: firstname.lastname@example.org I (Guillaume Yziquel) really welcome comments and fair criticisms on the work done. -8- Copyright and licencing information ======================================== This software is licenced under the version 3 of the GNU General Public Licence (GPL v3). -9- More documentation ======================= Documentation is rather scarce for now, but will progressively build up with time. You will find more information at http://yziquel.homelinux.org/ocaml-r