[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [covid-19] Help for ocaml package needed



Hello,

With the situation regarding mcl[1] and its OCaml bindings solved, I am
now attempting to build pplacer[2] against mcl. With mcl and its OCaml
binding installed, I hit an issue during build time (within sid
environment via pbuilder). An error is as follows:

```
...
If you need to stay compatible with OCaml < 4.07, you can use the
stdlib-shims library: https://github.com/ocaml/stdlib-shims
File "common_src/number.ml", line 121, characters 16-34:
121 |   let compare = Pervasives.compare
                      ^^^^^^^^^^^^^^^^^^
Alert deprecated: module Stdlib.Pervasives
Use Stdlib instead.

If you need to stay compatible with OCaml < 4.07, you can use the
stdlib-shims library: https://github.com/ocaml/stdlib-shims
+ ocamlfind ocamlc -c -annot -w Z -package batteries -package csv
-package xmlm -package gsl -package sqlite3 -package zip -package mcl
-thread -I common_src -I json_src -I pdprune_src -I pplacer_src -I
pam_src -I tests -I cdd_src -I tests/pplacer -I tests/json -I tests/rppr
-I tests/guppy -o common_src/ppatteries.cmo common_src/ppatteries.ml
File "common_src/ppatteries.ml", line 64, characters 50-60:
64 | let csv_out_channel ch = new IO.out_channel ch |> to_csv_out
                                                       ^^^^^^^^^^
Error: This expression has type
         (< close_out : unit -> unit; output : string -> int -> int -> int;
            .. >
          as 'a) ->
         < close_out : unit -> unit; output : string -> int -> int -> int >
       but an expression was expected of type IO.out_channel -> 'weak3
       Type
         < close_out : unit -> unit; output : string -> int -> int -> int;
           .. >
         as 'a
       is not compatible with type
         IO.out_channel =
           < close_out : unit -> unit; flush : unit -> unit;
             output : Bytes.t -> int -> int -> int >
       Type string is not compatible with type Bytes.t = bytes/2
       Types for method output are incompatible
       File "src/batteries.mlv", line 66, characters 0-20:
         Definition of type bytes/1
       File "_none_", line 1:
         Definition of type bytes/2
Command exited with code 2.
Compilation unsuccessful after building 41 targets (0 cached) in 00:00:07.
make[2]: *** [Makefile:21: pplacer.native] Error 10
make[2]: Leaving directory '/pplacer'
make[1]: *** [Makefile:16: pplacer] Error 2
make[1]: Leaving directory '/pplacer'
dh_auto_build: error: make -j4 "INSTALL=install --strip-program=true"
returned exit code 2
```

Any help, suggestions or contributions would be much appreciated as it
seems to be the final hurdle.

Kind regards,
Shayan Doust

[1]: https://salsa.debian.org/med-team/mcl
[2]: https://salsa.debian.org/med-team/pplacer

Attachment: 0x6D7D441919D02395.asc
Description: application/pgp-keys

Attachment: signature.asc
Description: OpenPGP digital signature


Reply to: