Hello Florian,

Please find attached a patch that fix this issue; it comes from a OCaml 4.0.4 
change which
distinguish String and Bytes implementations and the unsafe-string flag.

Quoting the documentation [1]:
> OCaml strings used to be modifiable in place, for instance via the String.set 
> and String.blit
> functions described below. This usage is deprecated and only possible when 
> the compiler is put 
> in "unsafe-string" mode by giving the -unsafe-string command-line option

[1]: https://caml.inria.fr/pub/docs/manual-ocaml/libref/String.html

Regards,

--
Clément

Le jeudi 22 février 2018 à 09:35 +0100, Florian Blachère a écrit :
> Hello Clément,
> 
> Thanks for the answer, I installed num and changed the compilation line to 
> use ocamlfind but now
> the compilation fails with : 
> 
> ocamlfind ocamlopt -package num -I ./src/modelica_compiler -I 
> ./src/xml2modelica -c
> src/modelica_compiler/optimization.ml
> File "src/modelica_compiler/optimization.ml", line 166, characters 21-22:
> Error: This expression has type string but an expression was expected of type
>          bytes
> 
> Is it link to the uodate to OCaml 4.06 ?
> 
> Florian
> 
> On 21/02/18 11:51, Clément David wrote:
> > Hello Florian,
> > 
> > The easier would be to depend on the external Num library for the 6.0.x 
> > family as far as this
> > library remains available; statically build against it is the way to go for 
> > OCaml code. Num
> > might
> > also be packaged in your system, use ocamlfind to look for it.
> > 
> > Thanks,
> > 
> > --
> > Clément
> > 
> > Le mercredi 21 février 2018 à 08:41 +0100, Florian Blachère a écrit :
> > > Hello,
> > > 
> > > Scilab 6.0.0 and 6.0.1 (and the master branch) cannot be build using 
> > > OCaml 4.06 because this release remove the Num library 
> > > (https://ocaml.org/releases/4.06.html#Changes class="Apple-tab-span" 
> > > style="white-space:pre">
> > >   , 
> > > https://github.com/ocaml/ocaml/pull/1178), do you have any advice to 
> > > build Scilab with recent OCaml: integrate Num in Scilab, build Num 
> > > oustside of Scilab and link against it, ... ?
> > > 
> > > Thanks by advance,
> > > 
> > > Florian
> > > 
> > > _______________________________________________
> > > users mailing list
> > > users@lists.scilab.org
> > > http://lists.scilab.org/mailman/listinfo/users
> > 
> > _______________________________________________
> > users mailing list
> > users@lists.scilab.org
> > http://lists.scilab.org/mailman/listinfo/users
> 
> _______________________________________________
> users mailing list
> users@lists.scilab.org
> http://lists.scilab.org/mailman/listinfo/users
From 39662e94dca4d3c71ba0e7792de2d200f0ec7a08 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Cl=C3=A9ment=20DAVID?= <clement.da...@esi-group.com>
Date: Mon, 27 Mar 2017 17:45:41 +0200
Subject: [PATCH] Fix build with ocaml 4.0.4

Change-Id: I962fe026f1c44f7f76435db0b4838b0d936994c8
---
 scilab/modules/scicos/Makefile.in                  | 12 ++---
 scilab/modules/scicos/Makefile.modelica.am         |  2 +-
 scilab/modules/scicos/src/xml2modelica/linenum.mll | 56 ----------------------
 4 files changed, 11 insertions(+), 67 deletions(-)
 delete mode 100644 scilab/modules/scicos/src/xml2modelica/linenum.mll

Index: scilab-6.0.0/modules/scicos/src/modelica_compiler/optimization.ml
===================================================================
--- scilab-6.0.0.orig/modules/scicos/src/modelica_compiler/optimization.ml
+++ scilab-6.0.0/modules/scicos/src/modelica_compiler/optimization.ml
@@ -162,7 +162,7 @@ let num_of_float f =
   let num_of_positive_float f =
     let m, e = frexp f in
     let sm = string_of_float m in
-    let s = String.make 16 '0' in
+    let s = Bytes.make 16 '0' in
     String.blit sm 2 s 0 (String.length sm - 2);
     let e' = Num.power_num (Num.Int 2) (Num.num_of_int e) in
     Num.div_num (Num.mult_num (Num.num_of_string s) e') scaling_factor
_______________________________________________
users mailing list
users@lists.scilab.org
http://lists.scilab.org/mailman/listinfo/users

Reply via email to