Markus Mottl avatar Markus Mottl committed 88f3a0e

Fixed build problem wrt. Lacaml

Comments (0)

Files changed (17)

 # OASIS_START
-# DO NOT EDIT (digest: 1890aa032d67f2b3f7ace4046902893f)
+# DO NOT EDIT (digest: 9693489fde2e4f834cd1cbc87383bcbb)
 lib/Interfaces
-lib/Utils
+lib/Gpr_utils
 lib/Block_diag
 lib/Cov_const
 lib/Cov_lin_ard
+2013-01-19:  Fixed build problem with regard to newest Lacaml release.
+
 2012-07-20:  Downgraded findlib version requirement to support the Debian
              testing branch.
 
 OASISFormat:      0.3
 Name:             gpr
-Version:          1.0.2
+Version:          1.1.0
 Synopsis:         GPR - Library and Application for Gaussian Process Regression
 Description:      Gaussian process regression is a modern Bayesian approach to machine learning, and GPR implements some of the latest advances in this field
 Authors:          Markus Mottl <markus.mottl@gmail.com>
   FindlibName:    gpr
   Pack:           true
   Modules:        Interfaces,
-                  Utils,
+                  Gpr_utils,
                   Block_diag,
                   Cov_const,
                   Cov_lin_ard,
 # OASIS_START
-# DO NOT EDIT (digest: ce9c9627b1595c7c47657cd1d36d4afb)
+# DO NOT EDIT (digest: ec5cac210dac77dd5c31805c71ff584f)
 # Ignore VCS directories, you can use the same kind of rule outside 
 # OASIS_START/STOP if you want to exclude directories that contains 
 # useless stuff for the build process
 # Library gpr
 "lib/gpr.cmxs": use_gpr
 "lib/interfaces.cmx": for-pack(Gpr)
-"lib/utils.cmx": for-pack(Gpr)
+"lib/gpr_utils.cmx": for-pack(Gpr)
 "lib/block_diag.cmx": for-pack(Gpr)
 "lib/cov_const.cmx": for-pack(Gpr)
 "lib/cov_lin_ard.cmx": for-pack(Gpr)
 # OASIS_START
-# DO NOT EDIT (digest: a47d3e9a1ae643d9891ad4c918349793)
-version = "1.0.2"
+# DO NOT EDIT (digest: e998b792995066f228a11536b4c5d12f)
+version = "1.1.0"
 description = "GPR - Library and Application for Gaussian Process Regression"
 requires = "threads core lacaml gsl"
 archive(byte) = "gpr.cma"

lib/cov_lin_ard.ml

 
     let create = Mat.of_col_vecs
     let get_n_points = Mat.dim2
-    let choose_subset inputs indexes = Utils.choose_cols inputs indexes
+    let choose_subset inputs indexes = Gpr_utils.choose_cols inputs indexes
 
     let calc_ard_inputs { Kernel.consts } inputs =
       let res = lacpy inputs in

lib/cov_lin_one.ml

 
     let create = Mat.of_col_vecs
     let get_n_points = Mat.dim2
-    let choose_subset inputs indexes = Utils.choose_cols inputs indexes
+    let choose_subset inputs indexes = Gpr_utils.choose_cols inputs indexes
     let create_inducing _kernel inputs = inputs
 
     let create_default_kernel_params _inputs ~n_inducing:_ =

lib/cov_se_fat.ml

 *)
 
 open Interfaces
-open Utils
+open Gpr_utils
 
 open Core.Std
 open Lacaml.D
 
     let create = Mat.of_col_vecs
     let get_n_points = Mat.dim2
-    let choose_subset = Utils.choose_cols
+    let choose_subset = choose_cols
 
     let create_default_kernel_params inputs ~n_inducing =
       let big_dim = Mat.dim1 inputs in

lib/cov_se_iso.ml

 
     let create = Mat.of_col_vecs
     let get_n_points = Mat.dim2
-    let choose_subset inputs indexes = Utils.choose_cols inputs indexes
+    let choose_subset inputs indexes = Gpr_utils.choose_cols inputs indexes
     let create_inducing _kernel inputs = inputs
 
     let create_default_kernel_params _inputs ~n_inducing:_ =
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 *)
 
-open Utils
+open Gpr_utils
 open Interfaces
 
 open Core.Std
 # OASIS_START
-# DO NOT EDIT (digest: 0720df3e1ad2fdac2857a2f73ae3765b)
+# DO NOT EDIT (digest: 531d56384b7dd15fbd0833e35d494895)
 Interfaces
-Utils
+Gpr_utils
 Block_diag
 Cov_const
 Cov_lin_ard
+(* File: utils.ml
+
+   OCaml-GPR - Gaussian Processes for OCaml
+
+     Copyright (C) 2009-  Markus Mottl
+     email: markus.mottl@gmail.com
+     WWW:   http://www.ocaml.info
+
+   This library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2 of the License, or (at your option) any later version.
+
+   This library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with this library; if not, write to the Free Software
+   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+*)
+
+open Core.Std
+open Bigarray
+open Lacaml.D
+
+(* Global definitions *)
+
+module Int_vec = struct
+  type t = (int, int_elt, fortran_layout) Array1.t
+  let create n : t = Array1.create int fortran_layout n
+  let dim (t : t) = Array1.dim t
+  let sub (t : t) n = Array1.sub t n
+end
+
+let debug = ref false
+let cholesky_jitter = ref 1e-6
+
+type fast_float_ref = { mutable x : float }
+
+let pi = 4. *. atan 1.
+let log_2pi = log (pi +. pi)
+
+let default_rng = Gsl.Rng.make (Gsl.Rng.default ())
+
+
+(* Testing and I/O functionality *)
+
+let print_int name n = Format.printf "%s: @[%d@]@.@." name n
+let print_float name n = Format.printf "%s: @[%.9f@]@.@." name n
+let print_vec name vec = Format.printf "%s: @[%a@]@.@." name pp_vec vec
+let print_mat name mat = Format.printf "%s: @[%a@]@.@." name pp_mat mat
+
+let timing name f =
+  let t1 = Unix.times () in
+  let res = f () in
+  let t2 = Unix.times () in
+  Format.printf "%s %.2f@." name (t2.Unix.tms_utime -. t1.Unix.tms_utime);
+  res
+
+
+(* General matrix functions *)
+
+(* Choose columns of a matrix *)
+let choose_cols mat indexes =
+  let m = Mat.dim1 mat in
+  let n = Mat.dim2 mat in
+  let k = Int_vec.dim indexes in
+  let res = Mat.create m k in
+  for c = 1 to k do
+    let real_c = indexes.{c} in
+    if real_c < 1 || real_c > n then
+      failwithf
+        "Gpr.Gpr_utils.choose_cols: violating 1 <= index (%d) <= dim (%d)"
+        real_c n ()
+    else for r = 1 to m do res.{r, c} <- mat.{r, real_c} done
+  done;
+  res
+
+(* Compute the sum of all elements in a matrix *)
+let sum_mat mat = Vec.sum (Mat.as_vec mat)
+
+(* Compute the sum of all elements in a symmetric matrix *)
+let sum_symm_mat mat =
+  let diag_ref = ref 0. in
+  let rest_ref = ref 0. in
+  let n = Mat.dim1 mat in
+  for c = 1 to n do
+    for r = 1 to c - 1 do rest_ref := !rest_ref +. mat.{r, c} done;
+    diag_ref := !diag_ref +. mat.{c, c}
+  done;
+  let rest = !rest_ref in
+  rest +. !diag_ref +. rest
+
+(* Computes logarithm of determinant; assumes Cholesky factorized matrix *)
+let log_det mat =
+  let n = Mat.dim1 mat in
+  if Mat.dim2 mat <> n then failwith "log_det: not a square matrix";
+  let rec loop acc i =
+    if i = 0 then acc +. acc
+    else loop (acc +. log mat.{i, i}) (i - 1)
+  in
+  loop 0. n
+
+(* Solve triangular system *)
+let solve_tri ?trans chol mat =
+  let ichol_mat = lacpy mat in
+  trtrs ?trans chol ichol_mat;
+  ichol_mat
+
+(* Compute the inverse of a matrix using the cholesky factor *)
+let ichol chol =
+  let inv = lacpy ~uplo:`U chol in
+  potri ~factorize:false inv;
+  inv
+
+
+(* Sparse matrices and vectors *)
+
+(* Checks whether a sparse row matrix is sane *)
+let check_sparse_row_mat_sane ~real_m ~smat ~rows =
+  if !debug then begin
+    if real_m < 0 then
+      failwith "Gpr.Gpr_utils.check_sparse_row_mat_sane: real_m < 0";
+    let m = Mat.dim1 smat in
+    let n_rows = Int_vec.dim rows in
+    if n_rows <> m then
+      failwithf
+        "Gpr.Gpr_utils.check_sparse_row_mat_sane: number of rows in \
+        sparse matrix (%d) disagrees with size of row array (%d)"
+        m n_rows ();
+    let rec loop ~i ~limit =
+      if i > 0 then
+        let rows_i = rows.{i} in
+        if rows_i <= 0 then
+          failwithf
+            "Gpr.Gpr_utils.check_sparse_row_mat_sane: sparse row %d contains \
+            illegal negative real row index %d" i rows_i ()
+        else if rows_i > limit then
+          failwithf
+            "Gpr.Gpr_utils.check_sparse_row_mat_sane: sparse row %d \
+            associated with real row index %d violates consistency \
+            (current row limit: %d)"
+            i rows_i limit ()
+        else loop ~i:(i - 1) ~limit:rows_i
+    in
+    loop ~i:n_rows ~limit:real_m
+  end
+
+(* Checks whether a sparse column matrix is sane *)
+let check_sparse_col_mat_sane ~real_n ~smat ~cols =
+  if !debug then begin
+    if real_n < 0 then
+      failwith "Gpr.Gpr_utils.check_sparse_col_mat_sane: real_n < 0";
+    let n = Mat.dim2 smat in
+    let n_cols = Int_vec.dim cols in
+    if n_cols <> n then
+      failwithf
+        "Gpr.Gpr_utils.check_sparse_col_mat_sane: number of cols in \
+        sparse matrix (%d) disagrees with size of col array (%d)"
+        n n_cols ();
+    let rec loop ~i ~limit =
+      if i > 0 then
+        let cols_i = cols.{i} in
+        if cols_i <= 0 then
+          failwithf
+            "Gpr.Gpr_utils.check_sparse_col_mat_sane: sparse col %d contains \
+            illegal negative real col index %d" i cols_i ()
+        else if cols_i > limit then
+          failwithf
+            "Gpr.Gpr_utils.check_sparse_col_mat_sane: sparse col %d \
+            associated with real col index %d violates consistency \
+            (current col limit: %d)"
+            i cols_i limit ()
+        else loop ~i:(i - 1) ~limit:cols_i
+    in
+    loop ~i:n_cols ~limit:real_n
+  end
+
+(* Checks whether a parse vector is sane *)
+let check_sparse_vec_sane ~real_n ~svec ~rows =
+  if !debug then
+    let k = Vec.dim svec in
+    if Int_vec.dim rows <> k then
+      failwith
+        "Gpr.Gpr_utils.check_sparse_vec_sane: \
+        size of sparse vector disagrees with indexes";
+    let rec loop ~last i =
+      if i > 0 then
+        let ind = rows.{i} in
+        if ind >= last || ind <= 0 then
+          failwith "Gpr.Gpr_utils.check_sparse_vec_sane: rows inconsistent"
+        else loop ~last:ind (i - 1)
+    in
+    loop ~last:real_n (Int_vec.dim rows)
+
+(* Computes the trace of the product of a symmetric and sparse
+   symmetric matrix *)
+let symm2_sparse_trace ~mat ~smat ~rows =
+  let m = Int_vec.dim rows in
+  let n = Mat.dim2 smat in
+  let full_ref = ref 0. in
+  let half_ref = ref 0. in
+  let rows_ix_ref = ref 1 in
+  for sparse_r = 1 to m do
+    let c = rows.{sparse_r} in
+    for r = 1 to n do
+      let mat_el = if r > c then mat.{c, r} else mat.{r, c} in
+      let rows_ix = !rows_ix_ref in
+      if
+        rows_ix > m ||
+        let rows_el = rows.{rows_ix} in
+        r < rows_el || c < rows_el
+      then full_ref := !full_ref +. mat_el *. smat.{sparse_r, r}
+      else begin
+        half_ref := !half_ref +. mat_el *. smat.{rows_ix, c};
+        incr rows_ix_ref
+      end
+    done;
+    rows_ix_ref := 1
+  done;
+  let full = !full_ref in
+  full +. !half_ref +. full

lib/interfaces.ml

 open Core.Std
 open Lacaml.D
 
-open Utils
+open Gpr_utils
 
 (** {6 Representations of (sparse) derivative matrices} *)
 
       val calc_deriv_cross : cross -> Hyper.t -> mat_deriv
     end
   end
+
+  (** Derivatives of inputs for global optimization. *)
+  module type Optimizer = sig
+
+    (** Derivatives always require evaluation functions *)
+    module Eval : Eval
+
+    (** Input parameters that have derivatives *)
+    module Var : sig
+      type t  (** Type of input parameter *)
+    end
+
+    module Input : sig
+      (** [get_vars input] @return array of all input parameters for which
+          derivatives can be computed given [input]. *)
+      val get_vars : Eval.Input.t -> Var.t array
+
+      (** [get_value input var] @return value of input parameter [var] for
+          [input]. *)
+      val get_value : Eval.Input.t -> Var.t -> float
+
+      (** [set_values input vars values] @return input in which [vars] have been
+          substituted with [values] position-wise. *)
+      val set_values : Eval.Input.t -> Var.t array -> vec -> Eval.Input.t
+    end
+
+    module Inputs : sig
+      (** [get_vars inputs] @return array of all input parameters for which
+          derivatives can be computed given [inputs]. *)
+      val get_vars : Eval.Inputs.t -> Var.t array
+
+      (** [get_value inputs var] @return value of input parameter [var] for
+          [inputs]. *)
+      val get_value : Eval.Inputs.t -> Var.t -> float
+
+      (** [set_values inputs vars values] @return inputs in which [vars] have
+          been substituted with [values] position-wise. *)
+      val set_values : Eval.Inputs.t -> Var.t array -> vec -> Eval.Inputs.t
+    end
+  end
 end
 
 (** Signatures for learning sparse Gaussian processes with inducing inputs *)
 *)
 
     end
+
+  end
+
+  (** Modules for global optimization *)
+  module type Optimizer = sig
+
+    (** Sub-modules for learning without derivatives. *)
+    module Eval : Eval
+
+    (** Sub-modules for global optimization. *)
+    module Optimizer : sig
+      module Spec : Specs.Optimizer with module Eval = Eval.Spec
+
+      type t
+
+      val create : ?max_memory : int -> Spec.Eval.Kernel.t -> t
+
+      val learn : t -> (Spec.Eval.Input.t * float) array -> t
+
+      val calc_mpi_criterion : t -> Spec.Eval.Input.t -> float
+
+      val calc_mpi_deriv : t -> Spec.Eval.Input.t
+    end
   end
 end

lib/utils.ml

-(* File: utils.ml
-
-   OCaml-GPR - Gaussian Processes for OCaml
-
-     Copyright (C) 2009-  Markus Mottl
-     email: markus.mottl@gmail.com
-     WWW:   http://www.ocaml.info
-
-   This library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2 of the License, or (at your option) any later version.
-
-   This library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with this library; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-*)
-
-open Core.Std
-open Bigarray
-open Lacaml.D
-
-(* Global definitions *)
-
-module Int_vec = struct
-  type t = (int, int_elt, fortran_layout) Array1.t
-  let create n : t = Array1.create int fortran_layout n
-  let dim (t : t) = Array1.dim t
-  let sub (t : t) n = Array1.sub t n
-end
-
-let debug = ref false
-let cholesky_jitter = ref 1e-6
-
-type fast_float_ref = { mutable x : float }
-
-let pi = 4. *. atan 1.
-let log_2pi = log (pi +. pi)
-
-let default_rng = Gsl.Rng.make (Gsl.Rng.default ())
-
-
-(* Testing and I/O functionality *)
-
-let print_int name n = Format.printf "%s: @[%d@]@.@." name n
-let print_float name n = Format.printf "%s: @[%.9f@]@.@." name n
-let print_vec name vec = Format.printf "%s: @[%a@]@.@." name pp_vec vec
-let print_mat name mat = Format.printf "%s: @[%a@]@.@." name pp_mat mat
-
-let timing name f =
-  let t1 = Unix.times () in
-  let res = f () in
-  let t2 = Unix.times () in
-  Format.printf "%s %.2f@." name (t2.Unix.tms_utime -. t1.Unix.tms_utime);
-  res
-
-
-(* General matrix functions *)
-
-(* Choose columns of a matrix *)
-let choose_cols mat indexes =
-  let m = Mat.dim1 mat in
-  let n = Mat.dim2 mat in
-  let k = Int_vec.dim indexes in
-  let res = Mat.create m k in
-  for c = 1 to k do
-    let real_c = indexes.{c} in
-    if real_c < 1 || real_c > n then
-      failwithf
-        "Gpr.Utils.choose_cols: violating 1 <= index (%d) <= dim (%d)"
-        real_c n ()
-    else for r = 1 to m do res.{r, c} <- mat.{r, real_c} done
-  done;
-  res
-
-(* Compute the sum of all elements in a matrix *)
-let sum_mat mat = Vec.sum (Mat.as_vec mat)
-
-(* Compute the sum of all elements in a symmetric matrix *)
-let sum_symm_mat mat =
-  let diag_ref = ref 0. in
-  let rest_ref = ref 0. in
-  let n = Mat.dim1 mat in
-  for c = 1 to n do
-    for r = 1 to c - 1 do rest_ref := !rest_ref +. mat.{r, c} done;
-    diag_ref := !diag_ref +. mat.{c, c}
-  done;
-  let rest = !rest_ref in
-  rest +. !diag_ref +. rest
-
-(* Computes logarithm of determinant; assumes Cholesky factorized matrix *)
-let log_det mat =
-  let n = Mat.dim1 mat in
-  if Mat.dim2 mat <> n then failwith "log_det: not a square matrix";
-  let rec loop acc i =
-    if i = 0 then acc +. acc
-    else loop (acc +. log mat.{i, i}) (i - 1)
-  in
-  loop 0. n
-
-(* Solve triangular system *)
-let solve_tri ?trans chol mat =
-  let ichol_mat = lacpy mat in
-  trtrs ?trans chol ichol_mat;
-  ichol_mat
-
-(* Compute the inverse of a matrix using the cholesky factor *)
-let ichol chol =
-  let inv = lacpy ~uplo:`U chol in
-  potri ~factorize:false inv;
-  inv
-
-
-(* Sparse matrices and vectors *)
-
-(* Checks whether a sparse row matrix is sane *)
-let check_sparse_row_mat_sane ~real_m ~smat ~rows =
-  if !debug then begin
-    if real_m < 0 then
-      failwith "Gpr.Utils.check_sparse_row_mat_sane: real_m < 0";
-    let m = Mat.dim1 smat in
-    let n_rows = Int_vec.dim rows in
-    if n_rows <> m then
-      failwithf
-        "Gpr.Utils.check_sparse_row_mat_sane: number of rows in \
-        sparse matrix (%d) disagrees with size of row array (%d)"
-        m n_rows ();
-    let rec loop ~i ~limit =
-      if i > 0 then
-        let rows_i = rows.{i} in
-        if rows_i <= 0 then
-          failwithf
-            "Gpr.Utils.check_sparse_row_mat_sane: sparse row %d contains \
-            illegal negative real row index %d" i rows_i ()
-        else if rows_i > limit then
-          failwithf
-            "Gpr.Utils.check_sparse_row_mat_sane: sparse row %d \
-            associated with real row index %d violates consistency \
-            (current row limit: %d)"
-            i rows_i limit ()
-        else loop ~i:(i - 1) ~limit:rows_i
-    in
-    loop ~i:n_rows ~limit:real_m
-  end
-
-(* Checks whether a sparse column matrix is sane *)
-let check_sparse_col_mat_sane ~real_n ~smat ~cols =
-  if !debug then begin
-    if real_n < 0 then
-      failwith "Gpr.Utils.check_sparse_col_mat_sane: real_n < 0";
-    let n = Mat.dim2 smat in
-    let n_cols = Int_vec.dim cols in
-    if n_cols <> n then
-      failwithf
-        "Gpr.Utils.check_sparse_col_mat_sane: number of cols in \
-        sparse matrix (%d) disagrees with size of col array (%d)"
-        n n_cols ();
-    let rec loop ~i ~limit =
-      if i > 0 then
-        let cols_i = cols.{i} in
-        if cols_i <= 0 then
-          failwithf
-            "Gpr.Utils.check_sparse_col_mat_sane: sparse col %d contains \
-            illegal negative real col index %d" i cols_i ()
-        else if cols_i > limit then
-          failwithf
-            "Gpr.Utils.check_sparse_col_mat_sane: sparse col %d \
-            associated with real col index %d violates consistency \
-            (current col limit: %d)"
-            i cols_i limit ()
-        else loop ~i:(i - 1) ~limit:cols_i
-    in
-    loop ~i:n_cols ~limit:real_n
-  end
-
-(* Checks whether a parse vector is sane *)
-let check_sparse_vec_sane ~real_n ~svec ~rows =
-  if !debug then
-    let k = Vec.dim svec in
-    if Int_vec.dim rows <> k then
-      failwith
-        "Gpr.Utils.check_sparse_vec_sane: \
-        size of sparse vector disagrees with indexes";
-    let rec loop ~last i =
-      if i > 0 then
-        let ind = rows.{i} in
-        if ind >= last || ind <= 0 then
-          failwith "Gpr.Utils.check_sparse_vec_sane: rows inconsistent"
-        else loop ~last:ind (i - 1)
-    in
-    loop ~last:real_n (Int_vec.dim rows)
-
-(* Computes the trace of the product of a symmetric and sparse
-   symmetric matrix *)
-let symm2_sparse_trace ~mat ~smat ~rows =
-  let m = Int_vec.dim rows in
-  let n = Mat.dim2 smat in
-  let full_ref = ref 0. in
-  let half_ref = ref 0. in
-  let rows_ix_ref = ref 1 in
-  for sparse_r = 1 to m do
-    let c = rows.{sparse_r} in
-    for r = 1 to n do
-      let mat_el = if r > c then mat.{c, r} else mat.{r, c} in
-      let rows_ix = !rows_ix_ref in
-      if
-        rows_ix > m ||
-        let rows_el = rows.{rows_ix} in
-        r < rows_el || c < rows_el
-      then full_ref := !full_ref +. mat_el *. smat.{sparse_r, r}
-      else begin
-        half_ref := !half_ref +. mat_el *. smat.{rows_ix, c};
-        incr rows_ix_ref
-      end
-    done;
-    rows_ix_ref := 1
-  done;
-  let full = !full_ref in
-  full +. !half_ref +. full
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 *)
 
-let version = "1.0.1"
+let version = "1.1.0"
 (* OASIS_START *)
-(* DO NOT EDIT (digest: 55a15332c49e234ab8d9633b4cf87a24) *)
+(* DO NOT EDIT (digest: e488c339a21eaeef02291614bd8d31e7) *)
 module OASISGettext = struct
-(* # 21 "/Users/mmottl/local/darwin11.3.0/src/oasis-0.3.0/src/oasis/OASISGettext.ml" *)
+(* # 21 "/home/mmottl/.opam/4.00.1/build/oasis.0.3.0/src/oasis/OASISGettext.ml" *)
 
   let ns_ str =
     str
 end
 
 module OASISExpr = struct
-(* # 21 "/Users/mmottl/local/darwin11.3.0/src/oasis-0.3.0/src/oasis/OASISExpr.ml" *)
+(* # 21 "/home/mmottl/.opam/4.00.1/build/oasis.0.3.0/src/oasis/OASISExpr.ml" *)
 
 
 
 
 # 117 "myocamlbuild.ml"
 module BaseEnvLight = struct
-(* # 21 "/Users/mmottl/local/darwin11.3.0/src/oasis-0.3.0/src/base/BaseEnvLight.ml" *)
+(* # 21 "/home/mmottl/.opam/4.00.1/build/oasis.0.3.0/src/base/BaseEnvLight.ml" *)
 
   module MapString = Map.Make(String)
 
 
 # 215 "myocamlbuild.ml"
 module MyOCamlbuildFindlib = struct
-(* # 21 "/Users/mmottl/local/darwin11.3.0/src/oasis-0.3.0/src/plugins/ocamlbuild/MyOCamlbuildFindlib.ml" *)
+(* # 21 "/home/mmottl/.opam/4.00.1/build/oasis.0.3.0/src/plugins/ocamlbuild/MyOCamlbuildFindlib.ml" *)
 
   (** OCamlbuild extension, copied from 
     * http://brion.inria.fr/gallium/index.php/Using_ocamlfind_with_ocamlbuild
 end
 
 module MyOCamlbuildBase = struct
-(* # 21 "/Users/mmottl/local/darwin11.3.0/src/oasis-0.3.0/src/plugins/ocamlbuild/MyOCamlbuildBase.ml" *)
+(* # 21 "/home/mmottl/.opam/4.00.1/build/oasis.0.3.0/src/plugins/ocamlbuild/MyOCamlbuildBase.ml" *)
 
   (** Base functions for writing myocamlbuild.ml
       @author Sylvain Le Gall
   type name = string 
   type tag = string 
 
-(* # 56 "/Users/mmottl/local/darwin11.3.0/src/oasis-0.3.0/src/plugins/ocamlbuild/MyOCamlbuildBase.ml" *)
+(* # 56 "/home/mmottl/.opam/4.00.1/build/oasis.0.3.0/src/plugins/ocamlbuild/MyOCamlbuildBase.ml" *)
 
   type t =
       {
 (* setup.ml generated for the first time by OASIS v0.3.0~rc6 *)
 
 (* OASIS_START *)
-(* DO NOT EDIT (digest: d82a63e862ec8969970ae9574f27ae20) *)
+(* DO NOT EDIT (digest: dc4df899031a42fb63c965dde2959fc7) *)
 (*
    Regenerated by OASIS v0.3.0
    Visit http://oasis.forge.ocamlcore.org for more information and
    documentation about functions used in this file.
 *)
 module OASISGettext = struct
-(* # 21 "/Users/mmottl/local/darwin11.3.0/src/oasis-0.3.0/src/oasis/OASISGettext.ml" *)
+(* # 21 "/home/mmottl/.opam/4.00.1/build/oasis.0.3.0/src/oasis/OASISGettext.ml" *)
 
   let ns_ str =
     str
 end
 
 module OASISContext = struct
-(* # 21 "/Users/mmottl/local/darwin11.3.0/src/oasis-0.3.0/src/oasis/OASISContext.ml" *)
+(* # 21 "/home/mmottl/.opam/4.00.1/build/oasis.0.3.0/src/oasis/OASISContext.ml" *)
 
   open OASISGettext
 
 end
 
 module OASISString = struct
-(* # 1 "/Users/mmottl/local/darwin11.3.0/src/oasis-0.3.0/src/oasis/OASISString.ml" *)
+(* # 1 "/home/mmottl/.opam/4.00.1/build/oasis.0.3.0/src/oasis/OASISString.ml" *)
 
 
 
 end
 
 module OASISUtils = struct
-(* # 21 "/Users/mmottl/local/darwin11.3.0/src/oasis-0.3.0/src/oasis/OASISUtils.ml" *)
+(* # 21 "/home/mmottl/.opam/4.00.1/build/oasis.0.3.0/src/oasis/OASISUtils.ml" *)
 
   open OASISGettext
 
 end
 
 module PropList = struct
-(* # 21 "/Users/mmottl/local/darwin11.3.0/src/oasis-0.3.0/src/oasis/PropList.ml" *)
+(* # 21 "/home/mmottl/.opam/4.00.1/build/oasis.0.3.0/src/oasis/PropList.ml" *)
 
   open OASISGettext
 
     let clear t =
       Hashtbl.clear t
 
-(* # 71 "/Users/mmottl/local/darwin11.3.0/src/oasis-0.3.0/src/oasis/PropList.ml" *)
+(* # 71 "/home/mmottl/.opam/4.00.1/build/oasis.0.3.0/src/oasis/PropList.ml" *)
   end
 
   module Schema =
 end
 
 module OASISMessage = struct
-(* # 21 "/Users/mmottl/local/darwin11.3.0/src/oasis-0.3.0/src/oasis/OASISMessage.ml" *)
+(* # 21 "/home/mmottl/.opam/4.00.1/build/oasis.0.3.0/src/oasis/OASISMessage.ml" *)
 
 
   open OASISGettext
 end
 
 module OASISVersion = struct
-(* # 21 "/Users/mmottl/local/darwin11.3.0/src/oasis-0.3.0/src/oasis/OASISVersion.ml" *)
+(* # 21 "/home/mmottl/.opam/4.00.1/build/oasis.0.3.0/src/oasis/OASISVersion.ml" *)
 
   open OASISGettext
 
 end
 
 module OASISLicense = struct
-(* # 21 "/Users/mmottl/local/darwin11.3.0/src/oasis-0.3.0/src/oasis/OASISLicense.ml" *)
+(* # 21 "/home/mmottl/.opam/4.00.1/build/oasis.0.3.0/src/oasis/OASISLicense.ml" *)
 
   (** License for _oasis fields
       @author Sylvain Le Gall
 end
 
 module OASISExpr = struct
-(* # 21 "/Users/mmottl/local/darwin11.3.0/src/oasis-0.3.0/src/oasis/OASISExpr.ml" *)
+(* # 21 "/home/mmottl/.opam/4.00.1/build/oasis.0.3.0/src/oasis/OASISExpr.ml" *)
 
 
 
 end
 
 module OASISTypes = struct
-(* # 21 "/Users/mmottl/local/darwin11.3.0/src/oasis-0.3.0/src/oasis/OASISTypes.ml" *)
+(* # 21 "/home/mmottl/.opam/4.00.1/build/oasis.0.3.0/src/oasis/OASISTypes.ml" *)
 
 
 
 
   type plugin_data = (all_plugin * plugin_data_purpose * (unit -> unit)) list
 
-(* # 102 "/Users/mmottl/local/darwin11.3.0/src/oasis-0.3.0/src/oasis/OASISTypes.ml" *)
+(* # 102 "/home/mmottl/.opam/4.00.1/build/oasis.0.3.0/src/oasis/OASISTypes.ml" *)
 
   type 'a conditional = 'a OASISExpr.choices 
 
 end
 
 module OASISUnixPath = struct
-(* # 21 "/Users/mmottl/local/darwin11.3.0/src/oasis-0.3.0/src/oasis/OASISUnixPath.ml" *)
+(* # 21 "/home/mmottl/.opam/4.00.1/build/oasis.0.3.0/src/oasis/OASISUnixPath.ml" *)
 
   type unix_filename = string
   type unix_dirname = string
 end
 
 module OASISHostPath = struct
-(* # 21 "/Users/mmottl/local/darwin11.3.0/src/oasis-0.3.0/src/oasis/OASISHostPath.ml" *)
+(* # 21 "/home/mmottl/.opam/4.00.1/build/oasis.0.3.0/src/oasis/OASISHostPath.ml" *)
 
 
   open Filename
 end
 
 module OASISSection = struct
-(* # 21 "/Users/mmottl/local/darwin11.3.0/src/oasis-0.3.0/src/oasis/OASISSection.ml" *)
+(* # 21 "/home/mmottl/.opam/4.00.1/build/oasis.0.3.0/src/oasis/OASISSection.ml" *)
 
   open OASISTypes
 
 end
 
 module OASISBuildSection = struct
-(* # 21 "/Users/mmottl/local/darwin11.3.0/src/oasis-0.3.0/src/oasis/OASISBuildSection.ml" *)
+(* # 21 "/home/mmottl/.opam/4.00.1/build/oasis.0.3.0/src/oasis/OASISBuildSection.ml" *)
 
 end
 
 module OASISExecutable = struct
-(* # 21 "/Users/mmottl/local/darwin11.3.0/src/oasis-0.3.0/src/oasis/OASISExecutable.ml" *)
+(* # 21 "/home/mmottl/.opam/4.00.1/build/oasis.0.3.0/src/oasis/OASISExecutable.ml" *)
 
   open OASISTypes
 
 end
 
 module OASISLibrary = struct
-(* # 21 "/Users/mmottl/local/darwin11.3.0/src/oasis-0.3.0/src/oasis/OASISLibrary.ml" *)
+(* # 21 "/home/mmottl/.opam/4.00.1/build/oasis.0.3.0/src/oasis/OASISLibrary.ml" *)
 
   open OASISTypes
   open OASISUtils
 end
 
 module OASISFlag = struct
-(* # 21 "/Users/mmottl/local/darwin11.3.0/src/oasis-0.3.0/src/oasis/OASISFlag.ml" *)
+(* # 21 "/home/mmottl/.opam/4.00.1/build/oasis.0.3.0/src/oasis/OASISFlag.ml" *)
 
 end
 
 module OASISPackage = struct
-(* # 21 "/Users/mmottl/local/darwin11.3.0/src/oasis-0.3.0/src/oasis/OASISPackage.ml" *)
+(* # 21 "/home/mmottl/.opam/4.00.1/build/oasis.0.3.0/src/oasis/OASISPackage.ml" *)
 
 end
 
 module OASISSourceRepository = struct
-(* # 21 "/Users/mmottl/local/darwin11.3.0/src/oasis-0.3.0/src/oasis/OASISSourceRepository.ml" *)
+(* # 21 "/home/mmottl/.opam/4.00.1/build/oasis.0.3.0/src/oasis/OASISSourceRepository.ml" *)
 
 end
 
 module OASISTest = struct
-(* # 21 "/Users/mmottl/local/darwin11.3.0/src/oasis-0.3.0/src/oasis/OASISTest.ml" *)
+(* # 21 "/home/mmottl/.opam/4.00.1/build/oasis.0.3.0/src/oasis/OASISTest.ml" *)
 
 end
 
 module OASISDocument = struct
-(* # 21 "/Users/mmottl/local/darwin11.3.0/src/oasis-0.3.0/src/oasis/OASISDocument.ml" *)
+(* # 21 "/home/mmottl/.opam/4.00.1/build/oasis.0.3.0/src/oasis/OASISDocument.ml" *)
 
 end
 
 module OASISExec = struct
-(* # 21 "/Users/mmottl/local/darwin11.3.0/src/oasis-0.3.0/src/oasis/OASISExec.ml" *)
+(* # 21 "/home/mmottl/.opam/4.00.1/build/oasis.0.3.0/src/oasis/OASISExec.ml" *)
 
   open OASISGettext
   open OASISUtils
 end
 
 module OASISFileUtil = struct
-(* # 21 "/Users/mmottl/local/darwin11.3.0/src/oasis-0.3.0/src/oasis/OASISFileUtil.ml" *)
+(* # 21 "/home/mmottl/.opam/4.00.1/build/oasis.0.3.0/src/oasis/OASISFileUtil.ml" *)
 
   open OASISGettext
 
 
 # 2142 "setup.ml"
 module BaseEnvLight = struct
-(* # 21 "/Users/mmottl/local/darwin11.3.0/src/oasis-0.3.0/src/base/BaseEnvLight.ml" *)
+(* # 21 "/home/mmottl/.opam/4.00.1/build/oasis.0.3.0/src/base/BaseEnvLight.ml" *)
 
   module MapString = Map.Make(String)
 
 
 # 2240 "setup.ml"
 module BaseContext = struct
-(* # 21 "/Users/mmottl/local/darwin11.3.0/src/oasis-0.3.0/src/base/BaseContext.ml" *)
+(* # 21 "/home/mmottl/.opam/4.00.1/build/oasis.0.3.0/src/base/BaseContext.ml" *)
 
   open OASISContext
 
 end
 
 module BaseMessage = struct
-(* # 21 "/Users/mmottl/local/darwin11.3.0/src/oasis-0.3.0/src/base/BaseMessage.ml" *)
+(* # 21 "/home/mmottl/.opam/4.00.1/build/oasis.0.3.0/src/base/BaseMessage.ml" *)
 
   (** Message to user, overrid for Base
       @author Sylvain Le Gall
 end
 
 module BaseEnv = struct
-(* # 21 "/Users/mmottl/local/darwin11.3.0/src/oasis-0.3.0/src/base/BaseEnv.ml" *)
+(* # 21 "/home/mmottl/.opam/4.00.1/build/oasis.0.3.0/src/base/BaseEnv.ml" *)
 
   open OASISGettext
   open OASISUtils
 end
 
 module BaseArgExt = struct
-(* # 21 "/Users/mmottl/local/darwin11.3.0/src/oasis-0.3.0/src/base/BaseArgExt.ml" *)
+(* # 21 "/home/mmottl/.opam/4.00.1/build/oasis.0.3.0/src/base/BaseArgExt.ml" *)
 
   open OASISUtils
   open OASISGettext
 end
 
 module BaseCheck = struct
-(* # 21 "/Users/mmottl/local/darwin11.3.0/src/oasis-0.3.0/src/base/BaseCheck.ml" *)
+(* # 21 "/home/mmottl/.opam/4.00.1/build/oasis.0.3.0/src/base/BaseCheck.ml" *)
 
   open BaseEnv
   open BaseMessage
 end
 
 module BaseOCamlcConfig = struct
-(* # 21 "/Users/mmottl/local/darwin11.3.0/src/oasis-0.3.0/src/base/BaseOCamlcConfig.ml" *)
+(* # 21 "/home/mmottl/.opam/4.00.1/build/oasis.0.3.0/src/base/BaseOCamlcConfig.ml" *)
 
 
   open BaseEnv
 end
 
 module BaseStandardVar = struct
-(* # 21 "/Users/mmottl/local/darwin11.3.0/src/oasis-0.3.0/src/base/BaseStandardVar.ml" *)
+(* # 21 "/home/mmottl/.opam/4.00.1/build/oasis.0.3.0/src/base/BaseStandardVar.ml" *)
 
 
   open OASISGettext
 end
 
 module BaseFileAB = struct
-(* # 21 "/Users/mmottl/local/darwin11.3.0/src/oasis-0.3.0/src/base/BaseFileAB.ml" *)
+(* # 21 "/home/mmottl/.opam/4.00.1/build/oasis.0.3.0/src/base/BaseFileAB.ml" *)
 
   open BaseEnv
   open OASISGettext
 end
 
 module BaseLog = struct
-(* # 21 "/Users/mmottl/local/darwin11.3.0/src/oasis-0.3.0/src/base/BaseLog.ml" *)
+(* # 21 "/home/mmottl/.opam/4.00.1/build/oasis.0.3.0/src/base/BaseLog.ml" *)
 
   open OASISUtils
 
 end
 
 module BaseBuilt = struct
-(* # 21 "/Users/mmottl/local/darwin11.3.0/src/oasis-0.3.0/src/base/BaseBuilt.ml" *)
+(* # 21 "/home/mmottl/.opam/4.00.1/build/oasis.0.3.0/src/base/BaseBuilt.ml" *)
 
   open OASISTypes
   open OASISGettext
 end
 
 module BaseCustom = struct
-(* # 21 "/Users/mmottl/local/darwin11.3.0/src/oasis-0.3.0/src/base/BaseCustom.ml" *)
+(* # 21 "/home/mmottl/.opam/4.00.1/build/oasis.0.3.0/src/base/BaseCustom.ml" *)
 
   open BaseEnv
   open BaseMessage
 end
 
 module BaseDynVar = struct
-(* # 21 "/Users/mmottl/local/darwin11.3.0/src/oasis-0.3.0/src/base/BaseDynVar.ml" *)
+(* # 21 "/home/mmottl/.opam/4.00.1/build/oasis.0.3.0/src/base/BaseDynVar.ml" *)
 
 
   open OASISTypes
 end
 
 module BaseTest = struct
-(* # 21 "/Users/mmottl/local/darwin11.3.0/src/oasis-0.3.0/src/base/BaseTest.ml" *)
+(* # 21 "/home/mmottl/.opam/4.00.1/build/oasis.0.3.0/src/base/BaseTest.ml" *)
 
   open BaseEnv
   open BaseMessage
 end
 
 module BaseDoc = struct
-(* # 21 "/Users/mmottl/local/darwin11.3.0/src/oasis-0.3.0/src/base/BaseDoc.ml" *)
+(* # 21 "/home/mmottl/.opam/4.00.1/build/oasis.0.3.0/src/base/BaseDoc.ml" *)
 
   open BaseEnv
   open BaseMessage
 end
 
 module BaseSetup = struct
-(* # 21 "/Users/mmottl/local/darwin11.3.0/src/oasis-0.3.0/src/base/BaseSetup.ml" *)
+(* # 21 "/home/mmottl/.opam/4.00.1/build/oasis.0.3.0/src/base/BaseSetup.ml" *)
 
   open BaseEnv
   open BaseMessage
 
 # 4480 "setup.ml"
 module InternalConfigurePlugin = struct
-(* # 21 "/Users/mmottl/local/darwin11.3.0/src/oasis-0.3.0/src/plugins/internal/InternalConfigurePlugin.ml" *)
+(* # 21 "/home/mmottl/.opam/4.00.1/build/oasis.0.3.0/src/plugins/internal/InternalConfigurePlugin.ml" *)
 
   (** Configure using internal scheme
       @author Sylvain Le Gall
 end
 
 module InternalInstallPlugin = struct
-(* # 21 "/Users/mmottl/local/darwin11.3.0/src/oasis-0.3.0/src/plugins/internal/InternalInstallPlugin.ml" *)
+(* # 21 "/home/mmottl/.opam/4.00.1/build/oasis.0.3.0/src/plugins/internal/InternalInstallPlugin.ml" *)
 
   (** Install using internal scheme
       @author Sylvain Le Gall
 
 # 5233 "setup.ml"
 module OCamlbuildCommon = struct
-(* # 21 "/Users/mmottl/local/darwin11.3.0/src/oasis-0.3.0/src/plugins/ocamlbuild/OCamlbuildCommon.ml" *)
+(* # 21 "/home/mmottl/.opam/4.00.1/build/oasis.0.3.0/src/plugins/ocamlbuild/OCamlbuildCommon.ml" *)
 
   (** Functions common to OCamlbuild build and doc plugin
     *)
 end
 
 module OCamlbuildPlugin = struct
-(* # 21 "/Users/mmottl/local/darwin11.3.0/src/oasis-0.3.0/src/plugins/ocamlbuild/OCamlbuildPlugin.ml" *)
+(* # 21 "/home/mmottl/.opam/4.00.1/build/oasis.0.3.0/src/plugins/ocamlbuild/OCamlbuildPlugin.ml" *)
 
   (** Build using ocamlbuild
       @author Sylvain Le Gall
 end
 
 module OCamlbuildDocPlugin = struct
-(* # 21 "/Users/mmottl/local/darwin11.3.0/src/oasis-0.3.0/src/plugins/ocamlbuild/OCamlbuildDocPlugin.ml" *)
+(* # 21 "/home/mmottl/.opam/4.00.1/build/oasis.0.3.0/src/plugins/ocamlbuild/OCamlbuildDocPlugin.ml" *)
 
   (* Create documentation using ocamlbuild .odocl files
      @author Sylvain Le Gall
 
 # 5558 "setup.ml"
 module CustomPlugin = struct
-(* # 21 "/Users/mmottl/local/darwin11.3.0/src/oasis-0.3.0/src/plugins/custom/CustomPlugin.ml" *)
+(* # 21 "/home/mmottl/.opam/4.00.1/build/oasis.0.3.0/src/plugins/custom/CustomPlugin.ml" *)
 
   (** Generate custom configure/build/doc/test/install system
       @author
           ocaml_version = Some (OASISVersion.VGreaterEqual "3.12");
           findlib_version = Some (OASISVersion.VGreaterEqual "1.3.1");
           name = "gpr";
-          version = "1.0.2";
+          version = "1.1.0";
           license =
             OASISLicense.DEP5License
               (OASISLicense.DEP5Unit
                       lib_modules =
                         [
                            "Interfaces";
-                           "Utils";
+                           "Gpr_utils";
                            "Block_diag";
                            "Cov_const";
                            "Cov_lin_ard";
           };
      oasis_fn = Some "_oasis";
      oasis_version = "0.3.0";
-     oasis_digest = Some "\017,i\001r\131#\132}XO��\153��";
+     oasis_digest =
+       Some "Q\224\143\\\b\219\212,\219\187\151\214\017\215J\031";
      oasis_exec = None;
      oasis_setup_args = [];
      setup_update = false;
 
 let setup () = BaseSetup.setup setup_t;;
 
-# 6116 "setup.ml"
+# 6117 "setup.ml"
 (* OASIS_STOP *)
 let () = setup ();;
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.