From 5b05d3668571bd9b748b781b0cc29ae10f745f61 Mon Sep 17 00:00:00 2001 From: Bernhard Schommer Date: Thu, 10 Mar 2016 13:35:48 +0100 Subject: Code cleanup. Removed some unused variables, functions etc. and resolved some problems which occur if all warnings except 3,4,9 and 29 are active. Bug 18394. --- lib/Printlines.mli | 2 ++ 1 file changed, 2 insertions(+) (limited to 'lib') diff --git a/lib/Printlines.mli b/lib/Printlines.mli index 79201f86..545eb033 100644 --- a/lib/Printlines.mli +++ b/lib/Printlines.mli @@ -20,8 +20,10 @@ type filebuf val openfile: string -> filebuf (** Open the file with the given name. *) + val close: filebuf -> unit (** Close the file underlying the given buffer. *) + val copy: out_channel -> string -> filebuf -> int -> int -> unit (** [copy oc pref buf first last] copies lines number [first] to [last], included, to the channel [oc]. Each line is -- cgit From 12dd7431bc6aa32a4ae1cf95003523d5b878dffc Mon Sep 17 00:00:00 2001 From: Bernhard Schommer Date: Thu, 10 Mar 2016 18:07:26 +0100 Subject: Upgrade ocaml version needed and enable more warnings. Since the menhir version we use requires ocaml>4.02 we can also upgrade the required ocaml version to >4.02 and remove the deprecate String functions. Also we now activate all warnings except for 4,9 und 27 for regular code plus a bunch of warnings for the generated code. 4 and 9 are not really usefull and 27 is deactivated since until the usage string is printed in a way that requires no newline. Bug 18394. --- lib/Camlcoq.ml | 6 +++--- lib/Printlines.ml | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) (limited to 'lib') diff --git a/lib/Camlcoq.ml b/lib/Camlcoq.ml index c5fb2e55..90c3ab3f 100644 --- a/lib/Camlcoq.ml +++ b/lib/Camlcoq.ml @@ -307,11 +307,11 @@ let first_unused_ident () = !next_atom (* Strings *) let camlstring_of_coqstring (s: char list) = - let r = String.create (List.length s) in + let r = Bytes.create (List.length s) in let rec fill pos = function | [] -> r - | c :: s -> r.[pos] <- c; fill (pos + 1) s - in fill 0 s + | c :: s -> Bytes.set r pos c; fill (pos + 1) s + in Bytes.to_string (fill 0 s) let coqstring_of_camlstring s = let rec cstring accu pos = diff --git a/lib/Printlines.ml b/lib/Printlines.ml index e0805f15..453096bc 100644 --- a/lib/Printlines.ml +++ b/lib/Printlines.ml @@ -48,7 +48,7 @@ let forward b dest = (* Position [b] to the beginning of line [dest], which must be less than the current line. *) -let backward_buf = lazy (String.create 65536) +let backward_buf = lazy (Bytes.create 65536) (* 65536 to match [IO_BUFFER_SIZE] in the OCaml runtime. lazy to allocate on demand. *) @@ -65,13 +65,13 @@ let backward b dest = seek_in b.chan 0; b.lineno <- 1 end else begin - let pos' = max 0 (pos - String.length buf) in + let pos' = max 0 (pos - Bytes.length buf) in let len = pos - pos' in seek_in b.chan pos'; really_input b.chan buf 0 len; backward pos' (pos - pos') end - end else if buf.[idx-1] = '\n' then begin + end else if Bytes.get buf (idx-1) = '\n' then begin (* Reached beginning of current line *) if b.lineno = dest then begin (* Found line number dest *) -- cgit From 7035f06bf453bdf2f9f09fd8a392778e9ad3cd43 Mon Sep 17 00:00:00 2001 From: Bernhard Schommer Date: Wed, 16 Mar 2016 11:06:54 +0100 Subject: Cleanup of AsmToJSON. Removed unused code, factored out common functions and added an interface file. Bug 18394 --- lib/Json.ml | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'lib') diff --git a/lib/Json.ml b/lib/Json.ml index 4aa91e95..22b50a9e 100644 --- a/lib/Json.ml +++ b/lib/Json.ml @@ -15,7 +15,8 @@ open Printf (* Simple functions for JSON printing *) (* Print a string as json string *) -let p_jstring oc s = fprintf oc "\"%s\"" s +let p_jstring oc s = + fprintf oc "\"%s\"" s (* Print a list as json array *) let p_jarray elem oc l = @@ -29,13 +30,20 @@ let p_jarray elem oc l = (* Print a bool as json bool *) let p_jbool oc = fprintf oc "%B" -(* Print a int as json int *) +(* Print an int as json int *) let p_jint oc = fprintf oc "%d" +(* Print an int32 as json int *) +let p_jint32 oc = fprintf oc "%ld" + (* Print a member *) let p_jmember oc name p_mem mem = fprintf oc "\n%a:%a" p_jstring name p_mem mem +(* Print singleton object *) +let p_jsingle_object oc name p_mem mem = + fprintf oc "{%a:%a}" p_jstring name p_mem mem + (* Print optional value *) let p_jopt p_elem oc = function | None -> output_string oc "null" -- cgit