Mailing list for all users of the OCaml language and system.
 help / color / mirror / Atom feed
* Controlling module loading order.
@ 2010-01-08 20:54 Guillaume Yziquel
  2010-01-09  8:22 ` [Caml-list] " Stéphane Glondu
  2010-01-11 11:59 ` Gerd Stolpmann
  0 siblings, 2 replies; 5+ messages in thread
From: Guillaume Yziquel @ 2010-01-08 20:54 UTC (permalink / raw)
  To: OCaml List

Hi.

I've been reimpleminting the OCaml-R binding, and implemented a simple 
wrapper around the Quantmod package in R:

http://yziquel.homelinux.org/gitweb/?p=ocaml-r.git;a=tree
http://yziquel.homelinux.org/gitweb/?p=ocamlr-quantmod.git;a=tree

Testing these modules from the toplevel is quite fine. However, when 
compiling stuff using these pieces of code, I have issues with the way 
the modules are loaded, since the order in which they are loaded has 
side-effects: Initialisation of the R interpreter in the good case, 
segfaults in the bad case...

For instance, the META file of OCaml-R:

>    1 name = "R"
>    2 version = "0.2"
>    3 description = "R bindings for OCaml"
>    4 requires = "unix"
>    5 archive(byte) = "r.cma"
>    6 archive(native) = "r.cmxa"
>    7 
>    8 package "interpreter" (
>    9   version = "0.2"
>   10   description = "Embedded R interpreter"
>   11   requires = "R"
>   12   archive(byte) = "oCamlR.cma"
>   13   archive(native) = "oCamlR.cmxa"
>   14 )

The stub functions are in package "R", and package "R.interpreter" 
contains a module with and empty signature, whose side-effects are to 
initialise the R interpreter through an application of the functor

>   19 module Interpreter (Env : Environment) : Interpreter = struct
>   20 
>   21   let () = init ~name: Env.name
>   22                 ~argv: Env.options
>   23                 ~env:  Env.env
>   24                 ~sigs: Env.signal_handlers
>   25                 ()
>   26 
>   27 end

My issue concerns the Quantmod wrapper: How can I make sure that when 
the Quantmod module is loaded, the OCamlR module of the "R.interpreter" 
findlib package gets loaded before?

Currently the ocamlbuild _tags file for ocamlr-quantmod is

>    1 <quantmod.ml>: pkg_R.interpreter, pkg_CRAN-zoo

But that doesn't seem to do the trick...

My question is: do I have to put a line like "module X = OCamlR" in 
quantmod.ml, or is there a way to load OCamlR beforehand just by 
tweaking the build process, order of modules when linking, etc...

All the best,

-- 
      Guillaume Yziquel
http://yziquel.homelinux.org/


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2010-01-15 17:32 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-01-08 20:54 Controlling module loading order Guillaume Yziquel
2010-01-09  8:22 ` [Caml-list] " Stéphane Glondu
2010-01-11 11:59 ` Gerd Stolpmann
2010-01-11 17:49   ` Guillaume Yziquel
2010-01-15 17:31     ` Guillaume Yziquel

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox