diff -ur frama-c-Phosphorus-20170501.old/src/plugins/gui/gtk_helper.ml frama-c-Phosphorus-20170501/src/plugins/gui/gtk_helper.ml --- frama-c-Phosphorus-20170501.old/src/plugins/gui/gtk_helper.ml 2017-06-01 09:02:15.000000000 +0100 +++ frama-c-Phosphorus-20170501/src/plugins/gui/gtk_helper.ml 2017-11-18 11:08:13.554409903 +0000 @@ -317,11 +317,7 @@ begin fun cond -> try if List.mem `IN cond then begin (* On Windows, you must use Io.read *) - (* buf' is added only to work around the suspicious type of - Glib.Io.read *) - let buf' = Bytes.to_string buf in - let len = Glib.Io.read channel ~buf:buf' ~pos:0 ~len in - let buf = Bytes.of_string buf' in + let len = Glib.Io.read channel ~buf ~pos:0 ~len in len >= 1 && (let full_string = !current_partial ^ Bytes.sub_string buf 0 len in let to_emit, c = splitting_for_utf8 full_string in diff -ur frama-c-Phosphorus-20170501.old/src/plugins/wp/qed/src/export_why3.ml frama-c-Phosphorus-20170501/src/plugins/wp/qed/src/export_why3.ml --- frama-c-Phosphorus-20170501.old/src/plugins/wp/qed/src/export_why3.ml 2017-06-01 09:02:17.000000000 +0100 +++ frama-c-Phosphorus-20170501/src/plugins/wp/qed/src/export_why3.ml 2017-11-18 11:05:18.667545678 +0000 @@ -60,11 +60,11 @@ method! basename s = (** TODO: better uncapitalization of the first letter? utf8? *) let lower0 = Char.lowercase s.[0] in - if String.length s > 0 && lower0 <> s.[0] then - let s = String.copy s in - s.[0] <- lower0; - s - else s + if String.length s > 0 && lower0 <> s.[0] then ( + let s = Bytes.of_string s in + Bytes.set s 0 lower0; + Bytes.to_string s + ) else s (* -------------------------------------------------------------------------- *) (* --- Types --- *) diff -ur frama-c-Phosphorus-20170501.old/src/plugins/wp/qed/src/numbers.mll frama-c-Phosphorus-20170501/src/plugins/wp/qed/src/numbers.mll --- frama-c-Phosphorus-20170501.old/src/plugins/wp/qed/src/numbers.mll 2017-06-01 09:02:10.000000000 +0100 +++ frama-c-Phosphorus-20170501/src/plugins/wp/qed/src/numbers.mll 2017-11-18 11:04:26.777566914 +0000 @@ -128,8 +128,8 @@ | 'a' .. 'f' -> int_of_char 'a' - 10 | 'A' .. 'F' -> int_of_char 'A' - 10 | _ -> - let e = "?" in e.[0] <- c ; - error "Incorrect hex-digit" e + let e = Bytes.of_string "?" in Bytes.set e 0 c; + error "Incorrect hex-digit" (Bytes.to_string e) in int_of_char c - d open Big_int @@ -164,8 +164,9 @@ let power_of_ten e = if e < 0 then raise (Invalid_argument "negative power") ; - let s = String.make (succ e) '0' in - s.[0] <- '1' ; s + let s = Bytes.make (succ e) '0' in + Bytes.set s 0 '1'; + Bytes.to_string s let significant cst = let digits = cst.man ^ cst.com in