Reindent all files
Now `make test` fails when sources are not indented correctly, the indentation test is also executed in the CI.
This commit is contained in:
parent
32a466556e
commit
6ecfca9396
@ -72,6 +72,11 @@ build:
|
|||||||
dependencies:
|
dependencies:
|
||||||
- build
|
- build
|
||||||
|
|
||||||
|
test:ocp-indent:
|
||||||
|
<<: *test_definition
|
||||||
|
script:
|
||||||
|
- jbuilder build @runtest_indent
|
||||||
|
|
||||||
test:utils:
|
test:utils:
|
||||||
<<: *test_definition
|
<<: *test_definition
|
||||||
script:
|
script:
|
||||||
|
62
jbuild
62
jbuild
@ -1 +1,63 @@
|
|||||||
(jbuild_version 1)
|
(jbuild_version 1)
|
||||||
|
|
||||||
|
(alias
|
||||||
|
((name runtest_indent)
|
||||||
|
(deps ( ;; Hack... list all directories
|
||||||
|
(glob_files scripts/*.ml)
|
||||||
|
(glob_files scripts/*.mli)
|
||||||
|
(glob_files src/*.ml)
|
||||||
|
(glob_files src/*.mli)
|
||||||
|
(glob_files src/attacker/*.ml)
|
||||||
|
(glob_files src/attacker/*.mli)
|
||||||
|
(glob_files src/client/*.ml)
|
||||||
|
(glob_files src/client/*.mli)
|
||||||
|
(glob_files src/client/embedded/alpha/*.ml)
|
||||||
|
(glob_files src/client/embedded/alpha/*.mli)
|
||||||
|
(glob_files src/client/embedded/demo/*.ml)
|
||||||
|
(glob_files src/client/embedded/demo/*.mli)
|
||||||
|
(glob_files src/client/embedded/genesis/*.ml)
|
||||||
|
(glob_files src/client/embedded/genesis/*.mli)
|
||||||
|
(glob_files src/compiler/*.ml)
|
||||||
|
(glob_files src/compiler/*.mli)
|
||||||
|
(glob_files src/environment/sigs_packer/*.ml)
|
||||||
|
(glob_files src/environment/sigs_packer/*.mli)
|
||||||
|
(glob_files src/environment/v1/*.ml)
|
||||||
|
(glob_files src/environment/v1/*.mli)
|
||||||
|
(glob_files src/micheline/*.ml)
|
||||||
|
(glob_files src/micheline/*.mli)
|
||||||
|
(glob_files src/minutils/*.ml)
|
||||||
|
(glob_files src/minutils/*.mli)
|
||||||
|
(glob_files src/node/db/*.ml)
|
||||||
|
(glob_files src/node/db/*.mli)
|
||||||
|
(glob_files src/node/main/*.ml)
|
||||||
|
(glob_files src/node/main/*.mli)
|
||||||
|
(glob_files src/node/net/*.ml)
|
||||||
|
(glob_files src/node/net/*.mli)
|
||||||
|
(glob_files src/node/shell/*.ml)
|
||||||
|
(glob_files src/node/shell/*.mli)
|
||||||
|
(glob_files src/node/updater/*.ml)
|
||||||
|
(glob_files src/node/updater/*.mli)
|
||||||
|
(glob_files src/proto/alpha/*.ml)
|
||||||
|
(glob_files src/proto/alpha/*.mli)
|
||||||
|
(glob_files src/proto/demo/*.ml)
|
||||||
|
(glob_files src/proto/demo/*.mli)
|
||||||
|
(glob_files src/proto/genesis/*.ml)
|
||||||
|
(glob_files src/proto/genesis/*.mli)
|
||||||
|
(glob_files src/utils/*.ml)
|
||||||
|
(glob_files src/utils/*.mli)
|
||||||
|
(glob_files test/lib/*.ml)
|
||||||
|
(glob_files test/lib/*.mli)
|
||||||
|
(glob_files test/p2p/*.ml)
|
||||||
|
(glob_files test/p2p/*.mli)
|
||||||
|
(glob_files test/proto_alpha/*.ml)
|
||||||
|
(glob_files test/proto_alpha/*.mli)
|
||||||
|
(glob_files test/shell/*.ml)
|
||||||
|
(glob_files test/shell/*.mli)
|
||||||
|
(glob_files test/utils/*.ml)
|
||||||
|
(glob_files test/utils/*.mli)
|
||||||
|
))
|
||||||
|
(action (run bash ${path:scripts/test-ocp-indent.sh}))))
|
||||||
|
|
||||||
|
(alias
|
||||||
|
((name runtest)
|
||||||
|
(deps ((alias runtest_indent)))))
|
||||||
|
22
scripts/test-ocp-indent.sh
Executable file
22
scripts/test-ocp-indent.sh
Executable file
@ -0,0 +1,22 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
tmp_dir="$(mktemp -d -t tezos_build.XXXXXXXXXX)"
|
||||||
|
failed=no
|
||||||
|
|
||||||
|
for f in ` find \( -name _build -or \
|
||||||
|
-name .git -or \
|
||||||
|
-wholename ./src/environment/v1.ml -or \
|
||||||
|
-name registerer.ml \) -prune -or \
|
||||||
|
\( -name \*.ml -or -name \*.mli \) -print`; do
|
||||||
|
ff=$(basename $f)
|
||||||
|
ocp-indent $f > $tmp_dir/$ff
|
||||||
|
diff -u --color $f $tmp_dir/$ff
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
failed=yes
|
||||||
|
fi
|
||||||
|
rm -f $tmp_dir/$ff $tmp_dir/$ff.diff
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ $failed = "yes" ]; then
|
||||||
|
exit 2
|
||||||
|
fi
|
@ -53,5 +53,5 @@ let commands () = Cli_entries.[
|
|||||||
) stream >>= fun () ->
|
) stream >>= fun () ->
|
||||||
cctxt.answer "Bootstrapped." >>= fun () ->
|
cctxt.answer "Bootstrapped." >>= fun () ->
|
||||||
return ()
|
return ()
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -286,11 +286,11 @@ module Helpers = struct
|
|||||||
|
|
||||||
end
|
end
|
||||||
(* type slot = *)
|
(* type slot = *)
|
||||||
(* raw_level * int * timestamp option *)
|
(* raw_level * int * timestamp option *)
|
||||||
(* let baking_possibilities *)
|
(* let baking_possibilities *)
|
||||||
(* b c ?max_priority ?first_level ?last_level () = *)
|
(* b c ?max_priority ?first_level ?last_level () = *)
|
||||||
(* call_error_service2 Services.Helpers.Context.Contract.baking_possibilities *)
|
(* call_error_service2 Services.Helpers.Context.Contract.baking_possibilities *)
|
||||||
(* b c (max_priority, first_level, last_level) *)
|
(* b c (max_priority, first_level, last_level) *)
|
||||||
(* (\* let endorsement_possibilities b c ?max_priority ?first_level ?last_level () = *\) *)
|
(* (\* let endorsement_possibilities b c ?max_priority ?first_level ?last_level () = *\) *)
|
||||||
(* call_error_service2 Services.Helpers.Context.Contract.endorsement_possibilities *)
|
(* call_error_service2 Services.Helpers.Context.Contract.endorsement_possibilities *)
|
||||||
(* b c (max_priority, first_level, last_level) *)
|
(* b c (max_priority, first_level, last_level) *)
|
||||||
|
@ -101,7 +101,7 @@ let load_embeded_cmis cmis = List.iter load_embeded_cmi cmis
|
|||||||
the protocol first-class module into the [Updater.versions]
|
the protocol first-class module into the [Updater.versions]
|
||||||
hashtable).
|
hashtable).
|
||||||
|
|
||||||
*)
|
*)
|
||||||
|
|
||||||
|
|
||||||
let tezos_protocol_env =
|
let tezos_protocol_env =
|
||||||
|
@ -228,12 +228,12 @@ val sort : ('a -> 'a -> int) -> 'a array -> unit
|
|||||||
Specification of the comparison function:
|
Specification of the comparison function:
|
||||||
Let [a] be the array and [cmp] the comparison function. The following
|
Let [a] be the array and [cmp] the comparison function. The following
|
||||||
must be true for all x, y, z in a :
|
must be true for all x, y, z in a :
|
||||||
- [cmp x y] > 0 if and only if [cmp y x] < 0
|
- [cmp x y] > 0 if and only if [cmp y x] < 0
|
||||||
- if [cmp x y] >= 0 and [cmp y z] >= 0 then [cmp x z] >= 0
|
- if [cmp x y] >= 0 and [cmp y z] >= 0 then [cmp x z] >= 0
|
||||||
|
|
||||||
When [Array.sort] returns, [a] contains the same elements as before,
|
When [Array.sort] returns, [a] contains the same elements as before,
|
||||||
reordered in such a way that for all i and j valid indices of [a] :
|
reordered in such a way that for all i and j valid indices of [a] :
|
||||||
- [cmp a.(i) a.(j)] >= 0 if and only if i >= j
|
- [cmp a.(i) a.(j)] >= 0 if and only if i >= j
|
||||||
*)
|
*)
|
||||||
|
|
||||||
val stable_sort : ('a -> 'a -> int) -> 'a array -> unit
|
val stable_sort : ('a -> 'a -> int) -> 'a array -> unit
|
||||||
|
@ -49,7 +49,7 @@
|
|||||||
Bytes are represented by the OCaml type [char].
|
Bytes are represented by the OCaml type [char].
|
||||||
|
|
||||||
@since 4.02.0
|
@since 4.02.0
|
||||||
*)
|
*)
|
||||||
|
|
||||||
external length : bytes -> int = "%bytes_length"
|
external length : bytes -> int = "%bytes_length"
|
||||||
(** Return the length (number of bytes) of the argument. *)
|
(** Return the length (number of bytes) of the argument. *)
|
||||||
|
@ -122,7 +122,7 @@ external to_int : int32 -> int = "%int32_to_int"
|
|||||||
|
|
||||||
external of_float : float -> int32
|
external of_float : float -> int32
|
||||||
= "caml_int32_of_float" "caml_int32_of_float_unboxed"
|
= "caml_int32_of_float" "caml_int32_of_float_unboxed"
|
||||||
[@@unboxed] [@@noalloc]
|
[@@unboxed] [@@noalloc]
|
||||||
(** Convert the given floating-point number to a 32-bit integer,
|
(** Convert the given floating-point number to a 32-bit integer,
|
||||||
discarding the fractional part (truncate towards 0).
|
discarding the fractional part (truncate towards 0).
|
||||||
The result of the conversion is undefined if, after truncation,
|
The result of the conversion is undefined if, after truncation,
|
||||||
@ -130,7 +130,7 @@ external of_float : float -> int32
|
|||||||
|
|
||||||
external to_float : int32 -> float
|
external to_float : int32 -> float
|
||||||
= "caml_int32_to_float" "caml_int32_to_float_unboxed"
|
= "caml_int32_to_float" "caml_int32_to_float_unboxed"
|
||||||
[@@unboxed] [@@noalloc]
|
[@@unboxed] [@@noalloc]
|
||||||
(** Convert the given 32-bit integer to a floating-point number. *)
|
(** Convert the given 32-bit integer to a floating-point number. *)
|
||||||
|
|
||||||
external of_string : string -> int32 = "caml_int32_of_string"
|
external of_string : string -> int32 = "caml_int32_of_string"
|
||||||
@ -147,7 +147,7 @@ val to_string : int32 -> string
|
|||||||
|
|
||||||
external bits_of_float : float -> int32
|
external bits_of_float : float -> int32
|
||||||
= "caml_int32_bits_of_float" "caml_int32_bits_of_float_unboxed"
|
= "caml_int32_bits_of_float" "caml_int32_bits_of_float_unboxed"
|
||||||
[@@unboxed] [@@noalloc]
|
[@@unboxed] [@@noalloc]
|
||||||
(** Return the internal representation of the given float according
|
(** Return the internal representation of the given float according
|
||||||
to the IEEE 754 floating-point 'single format' bit layout.
|
to the IEEE 754 floating-point 'single format' bit layout.
|
||||||
Bit 31 of the result represents the sign of the float;
|
Bit 31 of the result represents the sign of the float;
|
||||||
@ -156,7 +156,7 @@ external bits_of_float : float -> int32
|
|||||||
|
|
||||||
external float_of_bits : int32 -> float
|
external float_of_bits : int32 -> float
|
||||||
= "caml_int32_float_of_bits" "caml_int32_float_of_bits_unboxed"
|
= "caml_int32_float_of_bits" "caml_int32_float_of_bits_unboxed"
|
||||||
[@@unboxed] [@@noalloc]
|
[@@unboxed] [@@noalloc]
|
||||||
(** Return the floating-point number whose internal representation,
|
(** Return the floating-point number whose internal representation,
|
||||||
according to the IEEE 754 floating-point 'single format' bit layout,
|
according to the IEEE 754 floating-point 'single format' bit layout,
|
||||||
is the given [int32]. *)
|
is the given [int32]. *)
|
||||||
|
@ -122,7 +122,7 @@ external to_int : int64 -> int = "%int64_to_int"
|
|||||||
|
|
||||||
external of_float : float -> int64
|
external of_float : float -> int64
|
||||||
= "caml_int64_of_float" "caml_int64_of_float_unboxed"
|
= "caml_int64_of_float" "caml_int64_of_float_unboxed"
|
||||||
[@@unboxed] [@@noalloc]
|
[@@unboxed] [@@noalloc]
|
||||||
(** Convert the given floating-point number to a 64-bit integer,
|
(** Convert the given floating-point number to a 64-bit integer,
|
||||||
discarding the fractional part (truncate towards 0).
|
discarding the fractional part (truncate towards 0).
|
||||||
The result of the conversion is undefined if, after truncation,
|
The result of the conversion is undefined if, after truncation,
|
||||||
@ -130,7 +130,7 @@ external of_float : float -> int64
|
|||||||
|
|
||||||
external to_float : int64 -> float
|
external to_float : int64 -> float
|
||||||
= "caml_int64_to_float" "caml_int64_to_float_unboxed"
|
= "caml_int64_to_float" "caml_int64_to_float_unboxed"
|
||||||
[@@unboxed] [@@noalloc]
|
[@@unboxed] [@@noalloc]
|
||||||
(** Convert the given 64-bit integer to a floating-point number. *)
|
(** Convert the given 64-bit integer to a floating-point number. *)
|
||||||
|
|
||||||
|
|
||||||
@ -168,7 +168,7 @@ val to_string : int64 -> string
|
|||||||
|
|
||||||
external bits_of_float : float -> int64
|
external bits_of_float : float -> int64
|
||||||
= "caml_int64_bits_of_float" "caml_int64_bits_of_float_unboxed"
|
= "caml_int64_bits_of_float" "caml_int64_bits_of_float_unboxed"
|
||||||
[@@unboxed] [@@noalloc]
|
[@@unboxed] [@@noalloc]
|
||||||
(** Return the internal representation of the given float according
|
(** Return the internal representation of the given float according
|
||||||
to the IEEE 754 floating-point 'double format' bit layout.
|
to the IEEE 754 floating-point 'double format' bit layout.
|
||||||
Bit 63 of the result represents the sign of the float;
|
Bit 63 of the result represents the sign of the float;
|
||||||
@ -177,7 +177,7 @@ external bits_of_float : float -> int64
|
|||||||
|
|
||||||
external float_of_bits : int64 -> float
|
external float_of_bits : int64 -> float
|
||||||
= "caml_int64_float_of_bits" "caml_int64_float_of_bits_unboxed"
|
= "caml_int64_float_of_bits" "caml_int64_float_of_bits_unboxed"
|
||||||
[@@unboxed] [@@noalloc]
|
[@@unboxed] [@@noalloc]
|
||||||
(** Return the floating-point number whose internal representation,
|
(** Return the floating-point number whose internal representation,
|
||||||
according to the IEEE 754 floating-point 'double format' bit layout,
|
according to the IEEE 754 floating-point 'double format' bit layout,
|
||||||
is the given [int64]. *)
|
is the given [int64]. *)
|
||||||
|
@ -20,7 +20,7 @@
|
|||||||
* License along with this program; if not, write to the Free Software
|
* License along with this program; if not, write to the Free Software
|
||||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
||||||
* 02111-1307, USA.
|
* 02111-1307, USA.
|
||||||
*)
|
*)
|
||||||
|
|
||||||
(* TEZOS CHANGES
|
(* TEZOS CHANGES
|
||||||
|
|
||||||
@ -62,17 +62,17 @@
|
|||||||
(** {2 Definitions and basics} *)
|
(** {2 Definitions and basics} *)
|
||||||
|
|
||||||
type +'a t
|
type +'a t
|
||||||
(** The type of threads returning a result of type ['a]. *)
|
(** The type of threads returning a result of type ['a]. *)
|
||||||
|
|
||||||
val return : 'a -> 'a t
|
val return : 'a -> 'a t
|
||||||
(** [return e] is a thread whose return value is the value of the
|
(** [return e] is a thread whose return value is the value of the
|
||||||
expression [e]. *)
|
expression [e]. *)
|
||||||
|
|
||||||
(* val fail : exn -> 'a t *)
|
(* val fail : exn -> 'a t *)
|
||||||
(* (\** [fail e] is a thread that fails with the exception [e]. *\) *)
|
(* (\** [fail e] is a thread that fails with the exception [e]. *\) *)
|
||||||
|
|
||||||
val bind : 'a t -> ('a -> 'b t) -> 'b t
|
val bind : 'a t -> ('a -> 'b t) -> 'b t
|
||||||
(** [bind t f] is a thread which first waits for the thread [t] to
|
(** [bind t f] is a thread which first waits for the thread [t] to
|
||||||
terminate and then, if the thread succeeds, behaves as the
|
terminate and then, if the thread succeeds, behaves as the
|
||||||
application of function [f] to the return value of [t]. If the
|
application of function [f] to the return value of [t]. If the
|
||||||
thread [t] fails, [bind t f] also fails, with the same
|
thread [t] fails, [bind t f] also fails, with the same
|
||||||
@ -88,37 +88,37 @@ val bind : 'a t -> ('a -> 'b t) -> 'b t
|
|||||||
The result of a thread can be bound several time. *)
|
The result of a thread can be bound several time. *)
|
||||||
|
|
||||||
val (>>=) : 'a t -> ('a -> 'b t) -> 'b t
|
val (>>=) : 'a t -> ('a -> 'b t) -> 'b t
|
||||||
(** [t >>= f] is an alternative notation for [bind t f]. *)
|
(** [t >>= f] is an alternative notation for [bind t f]. *)
|
||||||
|
|
||||||
val (=<<) : ('a -> 'b t) -> 'a t -> 'b t
|
val (=<<) : ('a -> 'b t) -> 'a t -> 'b t
|
||||||
(** [f =<< t] is [t >>= f] *)
|
(** [f =<< t] is [t >>= f] *)
|
||||||
|
|
||||||
val map : ('a -> 'b) -> 'a t -> 'b t
|
val map : ('a -> 'b) -> 'a t -> 'b t
|
||||||
(** [map f m] map the result of a thread. This is the same as [bind
|
(** [map f m] map the result of a thread. This is the same as [bind
|
||||||
m (fun x -> return (f x))] *)
|
m (fun x -> return (f x))] *)
|
||||||
|
|
||||||
val (>|=) : 'a t -> ('a -> 'b) -> 'b t
|
val (>|=) : 'a t -> ('a -> 'b) -> 'b t
|
||||||
(** [m >|= f] is [map f m] *)
|
(** [m >|= f] is [map f m] *)
|
||||||
|
|
||||||
val (=|<) : ('a -> 'b) -> 'a t -> 'b t
|
val (=|<) : ('a -> 'b) -> 'a t -> 'b t
|
||||||
(** [f =|< m] is [map f m] *)
|
(** [f =|< m] is [map f m] *)
|
||||||
|
|
||||||
(** {3 Pre-allocated threads} *)
|
(** {3 Pre-allocated threads} *)
|
||||||
|
|
||||||
val return_unit : unit t
|
val return_unit : unit t
|
||||||
(** [return_unit = return ()] *)
|
(** [return_unit = return ()] *)
|
||||||
|
|
||||||
val return_none : 'a option t
|
val return_none : 'a option t
|
||||||
(** [return_none = return None] *)
|
(** [return_none = return None] *)
|
||||||
|
|
||||||
val return_nil : 'a list t
|
val return_nil : 'a list t
|
||||||
(** [return_nil = return \[\]] *)
|
(** [return_nil = return \[\]] *)
|
||||||
|
|
||||||
val return_true : bool t
|
val return_true : bool t
|
||||||
(** [return_true = return true] *)
|
(** [return_true = return true] *)
|
||||||
|
|
||||||
val return_false : bool t
|
val return_false : bool t
|
||||||
(** [return_false = return false] *)
|
(** [return_false = return false] *)
|
||||||
|
|
||||||
(* (\** {2 Thread storage} *\) *)
|
(* (\** {2 Thread storage} *\) *)
|
||||||
|
|
||||||
@ -223,7 +223,7 @@ val return_false : bool t
|
|||||||
(* the list of threads that have not yet terminated. *\) *)
|
(* the list of threads that have not yet terminated. *\) *)
|
||||||
|
|
||||||
val join : unit t list -> unit t
|
val join : unit t list -> unit t
|
||||||
(** [join l] waits for all threads in [l] to terminate. If one of
|
(** [join l] waits for all threads in [l] to terminate. If one of
|
||||||
the threads fails, then [join l] will fails with the same
|
the threads fails, then [join l] will fails with the same
|
||||||
exception as the first one to terminate.
|
exception as the first one to terminate.
|
||||||
|
|
||||||
@ -234,7 +234,7 @@ val join : unit t list -> unit t
|
|||||||
(* (\** [t <?> t'] is the same as [choose [t; t']] *\) *)
|
(* (\** [t <?> t'] is the same as [choose [t; t']] *\) *)
|
||||||
|
|
||||||
val ( <&> ) : unit t -> unit t -> unit t
|
val ( <&> ) : unit t -> unit t -> unit t
|
||||||
(** [t <&> t'] is the same as [join [t; t']] *)
|
(** [t <&> t'] is the same as [join [t; t']] *)
|
||||||
|
|
||||||
(* val async : (unit -> 'a t) -> unit *)
|
(* val async : (unit -> 'a t) -> unit *)
|
||||||
(* (\** [async f] starts a thread without waiting for the result. If it *)
|
(* (\** [async f] starts a thread without waiting for the result. If it *)
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
* License along with this program; if not, write to the Free Software
|
* License along with this program; if not, write to the Free Software
|
||||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
||||||
* 02111-1307, USA.
|
* 02111-1307, USA.
|
||||||
*)
|
*)
|
||||||
|
|
||||||
(** List helpers *)
|
(** List helpers *)
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
* License along with this program; if not, write to the Free Software
|
* License along with this program; if not, write to the Free Software
|
||||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
||||||
* 02111-1307, USA.
|
* 02111-1307, USA.
|
||||||
*)
|
*)
|
||||||
|
|
||||||
(** Mutable sequence of elements *)
|
(** Mutable sequence of elements *)
|
||||||
|
|
||||||
@ -32,71 +32,71 @@
|
|||||||
*)
|
*)
|
||||||
|
|
||||||
type 'a t
|
type 'a t
|
||||||
(** Type of a sequence holding values of type ['a] *)
|
(** Type of a sequence holding values of type ['a] *)
|
||||||
|
|
||||||
type 'a node
|
type 'a node
|
||||||
(** Type of a node holding one value of type ['a] in a sequence *)
|
(** Type of a node holding one value of type ['a] in a sequence *)
|
||||||
|
|
||||||
(** {2 Operation on nodes} *)
|
(** {2 Operation on nodes} *)
|
||||||
|
|
||||||
val get : 'a node -> 'a
|
val get : 'a node -> 'a
|
||||||
(** Returns the contents of a node *)
|
(** Returns the contents of a node *)
|
||||||
|
|
||||||
val set : 'a node -> 'a -> unit
|
val set : 'a node -> 'a -> unit
|
||||||
(** Change the contents of a node *)
|
(** Change the contents of a node *)
|
||||||
|
|
||||||
val remove : 'a node -> unit
|
val remove : 'a node -> unit
|
||||||
(** Removes a node from the sequence it is part of. It does nothing
|
(** Removes a node from the sequence it is part of. It does nothing
|
||||||
if the node has already been removed. *)
|
if the node has already been removed. *)
|
||||||
|
|
||||||
(** {2 Operations on sequence} *)
|
(** {2 Operations on sequence} *)
|
||||||
|
|
||||||
val create : unit -> 'a t
|
val create : unit -> 'a t
|
||||||
(** [create ()] creates a new empty sequence *)
|
(** [create ()] creates a new empty sequence *)
|
||||||
|
|
||||||
val is_empty : 'a t -> bool
|
val is_empty : 'a t -> bool
|
||||||
(** Returns [true] iff the given sequence is empty *)
|
(** Returns [true] iff the given sequence is empty *)
|
||||||
|
|
||||||
val length : 'a t -> int
|
val length : 'a t -> int
|
||||||
(** Returns the number of elemenets in the given sequence. This is a
|
(** Returns the number of elemenets in the given sequence. This is a
|
||||||
O(n) operation where [n] is the number of elements in the
|
O(n) operation where [n] is the number of elements in the
|
||||||
sequence. *)
|
sequence. *)
|
||||||
|
|
||||||
val add_l : 'a -> 'a t -> 'a node
|
val add_l : 'a -> 'a t -> 'a node
|
||||||
(** [add_l x s] adds [x] to the left of the sequence [s] *)
|
(** [add_l x s] adds [x] to the left of the sequence [s] *)
|
||||||
|
|
||||||
val add_r : 'a -> 'a t -> 'a node
|
val add_r : 'a -> 'a t -> 'a node
|
||||||
(** [add_l x s] adds [x] to the right of the sequence [s] *)
|
(** [add_l x s] adds [x] to the right of the sequence [s] *)
|
||||||
|
|
||||||
exception Empty
|
exception Empty
|
||||||
(** Exception raised by [take_l] and [tale_s] and when the sequence
|
(** Exception raised by [take_l] and [tale_s] and when the sequence
|
||||||
is empty *)
|
is empty *)
|
||||||
|
|
||||||
val take_l : 'a t -> 'a
|
val take_l : 'a t -> 'a
|
||||||
(** [take_l x s] remove and returns the leftmost element of [s]
|
(** [take_l x s] remove and returns the leftmost element of [s]
|
||||||
|
|
||||||
@raise Empty if the sequence is empty *)
|
@raise Empty if the sequence is empty *)
|
||||||
|
|
||||||
val take_r : 'a t -> 'a
|
val take_r : 'a t -> 'a
|
||||||
(** [take_l x s] remove and returns the rightmost element of [s]
|
(** [take_l x s] remove and returns the rightmost element of [s]
|
||||||
|
|
||||||
@raise Empty if the sequence is empty *)
|
@raise Empty if the sequence is empty *)
|
||||||
|
|
||||||
val take_opt_l : 'a t -> 'a option
|
val take_opt_l : 'a t -> 'a option
|
||||||
(** [take_opt_l x s] remove and returns [Some x] where [x] is the
|
(** [take_opt_l x s] remove and returns [Some x] where [x] is the
|
||||||
leftmost element of [s] or [None] if [s] is empty *)
|
leftmost element of [s] or [None] if [s] is empty *)
|
||||||
|
|
||||||
val take_opt_r : 'a t -> 'a option
|
val take_opt_r : 'a t -> 'a option
|
||||||
(** [take_opt_l x s] remove and returns [Some x] where [x] is the
|
(** [take_opt_l x s] remove and returns [Some x] where [x] is the
|
||||||
rightmost element of [s] or [None] if [s] is empty *)
|
rightmost element of [s] or [None] if [s] is empty *)
|
||||||
|
|
||||||
val transfer_l : 'a t -> 'a t -> unit
|
val transfer_l : 'a t -> 'a t -> unit
|
||||||
(** [transfer_l s1 s2] removes all elements of [s1] and add them at
|
(** [transfer_l s1 s2] removes all elements of [s1] and add them at
|
||||||
the left of [s2]. This operation runs in constant time and
|
the left of [s2]. This operation runs in constant time and
|
||||||
space. *)
|
space. *)
|
||||||
|
|
||||||
val transfer_r : 'a t -> 'a t -> unit
|
val transfer_r : 'a t -> 'a t -> unit
|
||||||
(** [transfer_r s1 s2] removes all elements of [s1] and add them at
|
(** [transfer_r s1 s2] removes all elements of [s1] and add them at
|
||||||
the right of [s2]. This operation runs in constant time and
|
the right of [s2]. This operation runs in constant time and
|
||||||
space. *)
|
space. *)
|
||||||
|
|
||||||
@ -105,51 +105,51 @@ val transfer_r : 'a t -> 'a t -> unit
|
|||||||
(** Note: it is OK to remove a node while traversing a sequence *)
|
(** Note: it is OK to remove a node while traversing a sequence *)
|
||||||
|
|
||||||
val iter_l : ('a -> unit) -> 'a t -> unit
|
val iter_l : ('a -> unit) -> 'a t -> unit
|
||||||
(** [iter_l f s] applies [f] on all elements of [s] starting from
|
(** [iter_l f s] applies [f] on all elements of [s] starting from
|
||||||
the left *)
|
the left *)
|
||||||
|
|
||||||
val iter_r : ('a -> unit) -> 'a t -> unit
|
val iter_r : ('a -> unit) -> 'a t -> unit
|
||||||
(** [iter_l f s] applies [f] on all elements of [s] starting from
|
(** [iter_l f s] applies [f] on all elements of [s] starting from
|
||||||
the right *)
|
the right *)
|
||||||
|
|
||||||
val iter_node_l : ('a node -> unit) -> 'a t -> unit
|
val iter_node_l : ('a node -> unit) -> 'a t -> unit
|
||||||
(** [iter_l f s] applies [f] on all nodes of [s] starting from
|
(** [iter_l f s] applies [f] on all nodes of [s] starting from
|
||||||
the left *)
|
the left *)
|
||||||
|
|
||||||
val iter_node_r : ('a node -> unit) -> 'a t -> unit
|
val iter_node_r : ('a node -> unit) -> 'a t -> unit
|
||||||
(** [iter_l f s] applies [f] on all nodes of [s] starting from
|
(** [iter_l f s] applies [f] on all nodes of [s] starting from
|
||||||
the right *)
|
the right *)
|
||||||
|
|
||||||
val fold_l : ('a -> 'b -> 'b) -> 'a t -> 'b -> 'b
|
val fold_l : ('a -> 'b -> 'b) -> 'a t -> 'b -> 'b
|
||||||
(** [fold_l f s] is:
|
(** [fold_l f s] is:
|
||||||
{[
|
{[
|
||||||
fold_l f s x = f en (... (f e2 (f e1 x)))
|
fold_l f s x = f en (... (f e2 (f e1 x)))
|
||||||
]}
|
]}
|
||||||
where [e1], [e2], ..., [en] are the elements of [s]
|
where [e1], [e2], ..., [en] are the elements of [s]
|
||||||
*)
|
*)
|
||||||
|
|
||||||
val fold_r : ('a -> 'b -> 'b) -> 'a t -> 'b -> 'b
|
val fold_r : ('a -> 'b -> 'b) -> 'a t -> 'b -> 'b
|
||||||
(** [fold_r f s] is:
|
(** [fold_r f s] is:
|
||||||
{[
|
{[
|
||||||
fold_r f s x = f e1 (f e2 (... (f en x)))
|
fold_r f s x = f e1 (f e2 (... (f en x)))
|
||||||
]}
|
]}
|
||||||
where [e1], [e2], ..., [en] are the elements of [s]
|
where [e1], [e2], ..., [en] are the elements of [s]
|
||||||
*)
|
*)
|
||||||
|
|
||||||
val find_node_opt_l : ('a -> bool) -> 'a t -> 'a node option
|
val find_node_opt_l : ('a -> bool) -> 'a t -> 'a node option
|
||||||
(** [find_node_opt_l f s] returns [Some x], where [x] is the first node of
|
(** [find_node_opt_l f s] returns [Some x], where [x] is the first node of
|
||||||
[s] starting from the left that satisfies [f] or [None] if none
|
[s] starting from the left that satisfies [f] or [None] if none
|
||||||
exists. *)
|
exists. *)
|
||||||
|
|
||||||
val find_node_opt_r : ('a -> bool) -> 'a t -> 'a node option
|
val find_node_opt_r : ('a -> bool) -> 'a t -> 'a node option
|
||||||
(** [find_node_opt_r f s] returns [Some x], where [x] is the first node of
|
(** [find_node_opt_r f s] returns [Some x], where [x] is the first node of
|
||||||
[s] starting from the right that satisfies [f] or [None] if none
|
[s] starting from the right that satisfies [f] or [None] if none
|
||||||
exists. *)
|
exists. *)
|
||||||
|
|
||||||
val find_node_l : ('a -> bool) -> 'a t -> 'a node
|
val find_node_l : ('a -> bool) -> 'a t -> 'a node
|
||||||
(** [find_node_l f s] returns the first node of [s] starting from the left
|
(** [find_node_l f s] returns the first node of [s] starting from the left
|
||||||
that satisfies [f] or raises [Not_found] if none exists. *)
|
that satisfies [f] or raises [Not_found] if none exists. *)
|
||||||
|
|
||||||
val find_node_r : ('a -> bool) -> 'a t -> 'a node
|
val find_node_r : ('a -> bool) -> 'a t -> 'a node
|
||||||
(** [find_node_r f s] returns the first node of [s] starting from the right
|
(** [find_node_r f s] returns the first node of [s] starting from the right
|
||||||
that satisfies [f] or raises [Not_found] if none exists. *)
|
that satisfies [f] or raises [Not_found] if none exists. *)
|
||||||
|
@ -44,7 +44,7 @@
|
|||||||
*)
|
*)
|
||||||
|
|
||||||
module type OrderedType =
|
module type OrderedType =
|
||||||
sig
|
sig
|
||||||
type t
|
type t
|
||||||
(** The type of the map keys. *)
|
(** The type of the map keys. *)
|
||||||
|
|
||||||
@ -56,11 +56,11 @@ module type OrderedType =
|
|||||||
and [f e1 e2] is strictly positive if [e1] is greater than [e2].
|
and [f e1 e2] is strictly positive if [e1] is greater than [e2].
|
||||||
Example: a suitable ordering function is the generic structural
|
Example: a suitable ordering function is the generic structural
|
||||||
comparison function {!Pervasives.compare}. *)
|
comparison function {!Pervasives.compare}. *)
|
||||||
end
|
end
|
||||||
(** Input signature of the functor {!Map.Make}. *)
|
(** Input signature of the functor {!Map.Make}. *)
|
||||||
|
|
||||||
module type S =
|
module type S =
|
||||||
sig
|
sig
|
||||||
type key
|
type key
|
||||||
(** The type of the map keys. *)
|
(** The type of the map keys. *)
|
||||||
|
|
||||||
@ -224,7 +224,7 @@ module type S =
|
|||||||
key and the associated value for each binding of the map. *)
|
key and the associated value for each binding of the map. *)
|
||||||
|
|
||||||
|
|
||||||
end
|
end
|
||||||
(** Output signature of the functor {!Map.Make}. *)
|
(** Output signature of the functor {!Map.Make}. *)
|
||||||
|
|
||||||
module Make (Ord : OrderedType) : S with type key = Ord.t
|
module Make (Ord : OrderedType) : S with type key = Ord.t
|
||||||
|
@ -107,7 +107,7 @@ external __POS__ : string * int * int * int = "%loc_POS"
|
|||||||
filename, [lnum] the line number, [cnum] the character position in
|
filename, [lnum] the line number, [cnum] the character position in
|
||||||
the line and [enum] the last character position in the line.
|
the line and [enum] the last character position in the line.
|
||||||
@since 4.02.0
|
@since 4.02.0
|
||||||
*)
|
*)
|
||||||
|
|
||||||
external __LOC_OF__ : 'a -> string * 'a = "%loc_LOC"
|
external __LOC_OF__ : 'a -> string * 'a = "%loc_LOC"
|
||||||
(** [__LOC_OF__ expr] returns a pair [(loc, expr)] where [loc] is the
|
(** [__LOC_OF__ expr] returns a pair [(loc, expr)] where [loc] is the
|
||||||
@ -122,7 +122,7 @@ external __LINE_OF__ : 'a -> int * 'a = "%loc_LINE"
|
|||||||
line number at which the expression [expr] appears in the file
|
line number at which the expression [expr] appears in the file
|
||||||
currently being parsed by the compiler.
|
currently being parsed by the compiler.
|
||||||
@since 4.02.0
|
@since 4.02.0
|
||||||
*)
|
*)
|
||||||
|
|
||||||
external __POS_OF__ : 'a -> (string * int * int * int) * 'a = "%loc_POS"
|
external __POS_OF__ : 'a -> (string * int * int * int) * 'a = "%loc_POS"
|
||||||
(** [__POS_OF__ expr] returns a pair [(loc,expr)], where [loc] is a
|
(** [__POS_OF__ expr] returns a pair [(loc,expr)], where [loc] is a
|
||||||
@ -132,7 +132,7 @@ external __POS_OF__ : 'a -> (string * int * int * int) * 'a = "%loc_POS"
|
|||||||
line number, [cnum] the character position in the line and [enum]
|
line number, [cnum] the character position in the line and [enum]
|
||||||
the last character position in the line.
|
the last character position in the line.
|
||||||
@since 4.02.0
|
@since 4.02.0
|
||||||
*)
|
*)
|
||||||
|
|
||||||
(** {6 Composition operators} *)
|
(** {6 Composition operators} *)
|
||||||
|
|
||||||
@ -272,13 +272,13 @@ external ( /. ) : float -> float -> float = "%divfloat"
|
|||||||
(** Floating-point division. *)
|
(** Floating-point division. *)
|
||||||
|
|
||||||
external ceil : float -> float = "caml_ceil_float" "ceil"
|
external ceil : float -> float = "caml_ceil_float" "ceil"
|
||||||
[@@unboxed] [@@noalloc]
|
[@@unboxed] [@@noalloc]
|
||||||
(** Round above to an integer value.
|
(** Round above to an integer value.
|
||||||
[ceil f] returns the least integer value greater than or equal to [f].
|
[ceil f] returns the least integer value greater than or equal to [f].
|
||||||
The result is returned as a float. *)
|
The result is returned as a float. *)
|
||||||
|
|
||||||
external floor : float -> float = "caml_floor_float" "floor"
|
external floor : float -> float = "caml_floor_float" "floor"
|
||||||
[@@unboxed] [@@noalloc]
|
[@@unboxed] [@@noalloc]
|
||||||
(** Round below to an integer value.
|
(** Round below to an integer value.
|
||||||
[floor f] returns the greatest integer value less than or
|
[floor f] returns the greatest integer value less than or
|
||||||
equal to [f].
|
equal to [f].
|
||||||
@ -289,7 +289,7 @@ external abs_float : float -> float = "%absfloat"
|
|||||||
|
|
||||||
external copysign : float -> float -> float
|
external copysign : float -> float -> float
|
||||||
= "caml_copysign_float" "caml_copysign"
|
= "caml_copysign_float" "caml_copysign"
|
||||||
[@@unboxed] [@@noalloc]
|
[@@unboxed] [@@noalloc]
|
||||||
(** [copysign x y] returns a float whose absolute value is that of [x]
|
(** [copysign x y] returns a float whose absolute value is that of [x]
|
||||||
and whose sign is that of [y]. If [x] is [nan], returns [nan].
|
and whose sign is that of [y]. If [x] is [nan], returns [nan].
|
||||||
If [y] is [nan], returns either [x] or [-. x], but it is not
|
If [y] is [nan], returns either [x] or [-. x], but it is not
|
||||||
@ -297,7 +297,7 @@ external copysign : float -> float -> float
|
|||||||
@since 4.00.0 *)
|
@since 4.00.0 *)
|
||||||
|
|
||||||
external mod_float : float -> float -> float = "caml_fmod_float" "fmod"
|
external mod_float : float -> float -> float = "caml_fmod_float" "fmod"
|
||||||
[@@unboxed] [@@noalloc]
|
[@@unboxed] [@@noalloc]
|
||||||
(** [mod_float a b] returns the remainder of [a] with respect to
|
(** [mod_float a b] returns the remainder of [a] with respect to
|
||||||
[b]. The returned value is [a -. n *. b], where [n]
|
[b]. The returned value is [a -. n *. b], where [n]
|
||||||
is the quotient [a /. b] rounded towards zero to an integer. *)
|
is the quotient [a /. b] rounded towards zero to an integer. *)
|
||||||
|
@ -45,7 +45,7 @@
|
|||||||
*)
|
*)
|
||||||
|
|
||||||
module type OrderedType =
|
module type OrderedType =
|
||||||
sig
|
sig
|
||||||
type t
|
type t
|
||||||
(** The type of the set elements. *)
|
(** The type of the set elements. *)
|
||||||
|
|
||||||
@ -57,11 +57,11 @@ module type OrderedType =
|
|||||||
and [f e1 e2] is strictly positive if [e1] is greater than [e2].
|
and [f e1 e2] is strictly positive if [e1] is greater than [e2].
|
||||||
Example: a suitable ordering function is the generic structural
|
Example: a suitable ordering function is the generic structural
|
||||||
comparison function {!Pervasives.compare}. *)
|
comparison function {!Pervasives.compare}. *)
|
||||||
end
|
end
|
||||||
(** Input signature of the functor {!Set.Make}. *)
|
(** Input signature of the functor {!Set.Make}. *)
|
||||||
|
|
||||||
module type S =
|
module type S =
|
||||||
sig
|
sig
|
||||||
type elt
|
type elt
|
||||||
(** The type of the set elements. *)
|
(** The type of the set elements. *)
|
||||||
|
|
||||||
@ -197,7 +197,7 @@ module type S =
|
|||||||
This is usually more efficient than folding [add] over the list,
|
This is usually more efficient than folding [add] over the list,
|
||||||
except perhaps for lists with many duplicated elements.
|
except perhaps for lists with many duplicated elements.
|
||||||
@since 4.02.0 *)
|
@since 4.02.0 *)
|
||||||
end
|
end
|
||||||
(** Output signature of the functor {!Set.Make}. *)
|
(** Output signature of the functor {!Set.Make}. *)
|
||||||
|
|
||||||
module Make (Ord : OrderedType) : S with type elt = Ord.t
|
module Make (Ord : OrderedType) : S with type elt = Ord.t
|
||||||
|
@ -41,7 +41,7 @@
|
|||||||
substring of [s] if [len >= 0] and [start] and [start+len] are
|
substring of [s] if [len >= 0] and [start] and [start+len] are
|
||||||
valid positions in [s].
|
valid positions in [s].
|
||||||
|
|
||||||
*)
|
*)
|
||||||
|
|
||||||
external length : string -> int = "%string_length"
|
external length : string -> int = "%string_length"
|
||||||
(** Return the length (number of characters) of the given string. *)
|
(** Return the length (number of characters) of the given string. *)
|
||||||
|
@ -30,7 +30,7 @@ val ediv_rem: t -> t -> (t * t)
|
|||||||
(** Euclidean division and remainder. [ediv_rem a b] returns a pair [(q, r)]
|
(** Euclidean division and remainder. [ediv_rem a b] returns a pair [(q, r)]
|
||||||
such that [a = b * q + r] and [0 <= r < |b|].
|
such that [a = b * q + r] and [0 <= r < |b|].
|
||||||
Raises [Division_by_zero] if [b = 0].
|
Raises [Division_by_zero] if [b = 0].
|
||||||
*)
|
*)
|
||||||
|
|
||||||
external logand: t -> t -> t = "ml_z_logand" "ml_as_z_logand"
|
external logand: t -> t -> t = "ml_z_logand" "ml_as_z_logand"
|
||||||
(** Bitwise logical and. *)
|
(** Bitwise logical and. *)
|
||||||
@ -44,20 +44,20 @@ external logxor: t -> t -> t = "ml_z_logxor" "ml_as_z_logxor"
|
|||||||
external lognot: t -> t = "ml_z_lognot" "ml_as_z_lognot"
|
external lognot: t -> t = "ml_z_lognot" "ml_as_z_lognot"
|
||||||
(** Bitwise logical negation.
|
(** Bitwise logical negation.
|
||||||
The identity [lognot a]=[-a-1] always hold.
|
The identity [lognot a]=[-a-1] always hold.
|
||||||
*)
|
*)
|
||||||
|
|
||||||
external shift_left: t -> int -> t = "ml_z_shift_left" "ml_as_z_shift_left"
|
external shift_left: t -> int -> t = "ml_z_shift_left" "ml_as_z_shift_left"
|
||||||
(** Shifts to the left.
|
(** Shifts to the left.
|
||||||
Equivalent to a multiplication by a power of 2.
|
Equivalent to a multiplication by a power of 2.
|
||||||
The second argument must be non-negative.
|
The second argument must be non-negative.
|
||||||
*)
|
*)
|
||||||
|
|
||||||
external shift_right: t -> int -> t = "ml_z_shift_right" "ml_as_z_shift_right"
|
external shift_right: t -> int -> t = "ml_z_shift_right" "ml_as_z_shift_right"
|
||||||
(** Shifts to the right.
|
(** Shifts to the right.
|
||||||
This is an arithmetic shift,
|
This is an arithmetic shift,
|
||||||
equivalent to a division by a power of 2 with rounding towards -oo.
|
equivalent to a division by a power of 2 with rounding towards -oo.
|
||||||
The second argument must be non-negative.
|
The second argument must be non-negative.
|
||||||
*)
|
*)
|
||||||
|
|
||||||
val to_string: t -> string
|
val to_string: t -> string
|
||||||
val of_string: string -> t
|
val of_string: string -> t
|
||||||
|
@ -289,10 +289,10 @@ val register_dynamic_directory3:
|
|||||||
|
|
||||||
(** Registring custom directory lookup. *)
|
(** Registring custom directory lookup. *)
|
||||||
type custom_lookup = RestoDirectory.custom_lookup
|
type custom_lookup = RestoDirectory.custom_lookup
|
||||||
(* | CustomService of Description.service_descr * *)
|
(* | CustomService of Description.service_descr * *)
|
||||||
(* ( Data_encoding.json option -> *)
|
(* ( Data_encoding.json option -> *)
|
||||||
(* Data_encoding.json Answer.answer Lwt.t ) *)
|
(* Data_encoding.json Answer.answer Lwt.t ) *)
|
||||||
(* | CustomDirectory of Description.directory_descr *)
|
(* | CustomDirectory of Description.directory_descr *)
|
||||||
|
|
||||||
val register_custom_lookup:
|
val register_custom_lookup:
|
||||||
?meth:meth ->
|
?meth:meth ->
|
||||||
|
@ -735,7 +735,7 @@ module Binary = struct
|
|||||||
read: 'a. 'a t -> MBytes.t -> int -> int -> (int * 'a) ;
|
read: 'a. 'a t -> MBytes.t -> int -> int -> (int * 'a) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
let rec length : type x. x t -> x -> int = fun e ->
|
let rec length : type x. x t -> x -> int = fun e ->
|
||||||
match e.encoding with
|
match e.encoding with
|
||||||
(* Fixed *)
|
(* Fixed *)
|
||||||
| Null -> fun _ -> 0
|
| Null -> fun _ -> 0
|
||||||
|
@ -49,4 +49,4 @@ val live_blocks:
|
|||||||
[blocks] is the set of arity [n], that contains [b] and its [n-1]
|
[blocks] is the set of arity [n], that contains [b] and its [n-1]
|
||||||
predecessors. And where [operations] is the set of operations
|
predecessors. And where [operations] is the set of operations
|
||||||
included in those blocks.
|
included in those blocks.
|
||||||
*)
|
*)
|
||||||
|
@ -332,7 +332,7 @@ let noop_callback = {
|
|||||||
notify_branch = begin fun _gid _locator -> () end ;
|
notify_branch = begin fun _gid _locator -> () end ;
|
||||||
notify_head = begin fun _gid _block _ops -> () end ;
|
notify_head = begin fun _gid _block _ops -> () end ;
|
||||||
disconnection = begin fun _gid -> () end ;
|
disconnection = begin fun _gid -> () end ;
|
||||||
}
|
}
|
||||||
|
|
||||||
type t = db
|
type t = db
|
||||||
|
|
||||||
|
@ -38,7 +38,7 @@ let () =
|
|||||||
(function Bad_data_dir -> Some () | _ -> None)
|
(function Bad_data_dir -> Some () | _ -> None)
|
||||||
(fun () -> Bad_data_dir) ;
|
(fun () -> Bad_data_dir) ;
|
||||||
|
|
||||||
(** *)
|
(** *)
|
||||||
|
|
||||||
module Shared = struct
|
module Shared = struct
|
||||||
type 'a t = {
|
type 'a t = {
|
||||||
|
@ -36,8 +36,8 @@ let get_unrevealed c level =
|
|||||||
return (nonce_hash, delegate_to_reward, reward_amount)
|
return (nonce_hash, delegate_to_reward, reward_amount)
|
||||||
|
|
||||||
(* let get_unrevealed_hash c level = *)
|
(* let get_unrevealed_hash c level = *)
|
||||||
(* get_unrevealed c level >>=? fun (nonce_hash, _) -> *)
|
(* get_unrevealed c level >>=? fun (nonce_hash, _) -> *)
|
||||||
(* return nonce_hash *)
|
(* return nonce_hash *)
|
||||||
|
|
||||||
let record_hash c delegate_to_reward reward_amount nonce_hash =
|
let record_hash c delegate_to_reward reward_amount nonce_hash =
|
||||||
let level = Level_storage.current c in
|
let level = Level_storage.current c in
|
||||||
|
@ -57,7 +57,7 @@ let () =
|
|||||||
(fun (contract, expr) ->
|
(fun (contract, expr) ->
|
||||||
Runtime_contract_error (contract, expr));
|
Runtime_contract_error (contract, expr));
|
||||||
|
|
||||||
(* ---- interpreter ---------------------------------------------------------*)
|
(* ---- interpreter ---------------------------------------------------------*)
|
||||||
|
|
||||||
type 'tys stack =
|
type 'tys stack =
|
||||||
| Item : 'ty * 'rest stack -> ('ty * 'rest) stack
|
| Item : 'ty * 'rest stack -> ('ty * 'rest) stack
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
type proposal = Protocol_hash.t
|
type proposal = Protocol_hash.t
|
||||||
|
|
||||||
(* votes can be for, against or neutral.
|
(* votes can be for, against or neutral.
|
||||||
Neutral serves to count towards a quorum *)
|
Neutral serves to count towards a quorum *)
|
||||||
type ballot = Yay | Nay | Pass
|
type ballot = Yay | Nay | Pass
|
||||||
|
|
||||||
let ballot_encoding =
|
let ballot_encoding =
|
||||||
|
@ -76,7 +76,7 @@ let begin_construction
|
|||||||
~predecessor:_
|
~predecessor:_
|
||||||
~timestamp:_
|
~timestamp:_
|
||||||
?proto_header:_ () =
|
?proto_header:_ () =
|
||||||
Fitness.to_int64 pred_fitness >>=? function pred_fitness ->
|
Fitness.to_int64 pred_fitness >>=? fun pred_fitness ->
|
||||||
let fitness = Int64.succ pred_fitness in
|
let fitness = Int64.succ pred_fitness in
|
||||||
return { context ; fitness }
|
return { context ; fitness }
|
||||||
|
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
*)
|
*)
|
||||||
|
|
||||||
open Error_monad
|
open Error_monad
|
||||||
|
|
||||||
|
@ -368,9 +368,9 @@ module Make() = struct
|
|||||||
(Format.pp_print_list pp)
|
(Format.pp_print_list pp)
|
||||||
(List.rev errors)
|
(List.rev errors)
|
||||||
|
|
||||||
type error += Unclassified of string
|
type error += Unclassified of string
|
||||||
|
|
||||||
let () =
|
let () =
|
||||||
let id = "" in
|
let id = "" in
|
||||||
let category = `Temporary in
|
let category = `Temporary in
|
||||||
let to_error msg = Unclassified msg in
|
let to_error msg = Unclassified msg in
|
||||||
@ -394,9 +394,9 @@ let () =
|
|||||||
error_kinds :=
|
error_kinds :=
|
||||||
Error_kind { id; from_error ; category; encoding_case ; pp } :: !error_kinds
|
Error_kind { id; from_error ; category; encoding_case ; pp } :: !error_kinds
|
||||||
|
|
||||||
type error += Assert_error of string * string
|
type error += Assert_error of string * string
|
||||||
|
|
||||||
let () =
|
let () =
|
||||||
let id = "" in
|
let id = "" in
|
||||||
let category = `Permanent in
|
let category = `Permanent in
|
||||||
let to_error (loc, msg) = Assert_error (loc, msg) in
|
let to_error (loc, msg) = Assert_error (loc, msg) in
|
||||||
@ -423,14 +423,14 @@ let () =
|
|||||||
error_kinds :=
|
error_kinds :=
|
||||||
Error_kind { id; from_error ; category; encoding_case ; pp } :: !error_kinds
|
Error_kind { id; from_error ; category; encoding_case ; pp } :: !error_kinds
|
||||||
|
|
||||||
let _assert b loc fmt =
|
let _assert b loc fmt =
|
||||||
if b then
|
if b then
|
||||||
Format.ikfprintf (fun _ -> return ()) Format.str_formatter fmt
|
Format.ikfprintf (fun _ -> return ()) Format.str_formatter fmt
|
||||||
else
|
else
|
||||||
Format.kasprintf (fun msg -> fail (Assert_error (loc, msg))) fmt
|
Format.kasprintf (fun msg -> fail (Assert_error (loc, msg))) fmt
|
||||||
|
|
||||||
|
|
||||||
let protect ~on_error t =
|
let protect ~on_error t =
|
||||||
t >>= function
|
t >>= function
|
||||||
| Ok res -> return res
|
| Ok res -> return res
|
||||||
| Error err -> on_error err
|
| Error err -> on_error err
|
||||||
|
10
test/jbuild
10
test/jbuild
@ -26,8 +26,8 @@
|
|||||||
../scripts/client_lib.inc.sh
|
../scripts/client_lib.inc.sh
|
||||||
(glob_files contracts/*)
|
(glob_files contracts/*)
|
||||||
))
|
))
|
||||||
(locks (/tcp-port/18732
|
(locks (/tcp-port/18731
|
||||||
/tcp-port/19732))
|
/tcp-port/19731))
|
||||||
(action (run bash ${path:test_contracts.sh}))))
|
(action (run bash ${path:test_contracts.sh}))))
|
||||||
|
|
||||||
(alias
|
(alias
|
||||||
@ -46,3 +46,9 @@
|
|||||||
/tcp-port/19731 /tcp-port/19732 /tcp-port/19733 /tcp-port/19734
|
/tcp-port/19731 /tcp-port/19732 /tcp-port/19733 /tcp-port/19734
|
||||||
/tcp-port/19735 /tcp-port/19736 /tcp-port/19737 /tcp-port/19738))
|
/tcp-port/19735 /tcp-port/19736 /tcp-port/19737 /tcp-port/19738))
|
||||||
(action (run bash ${path:test_multinode.sh}))))
|
(action (run bash ${path:test_multinode.sh}))))
|
||||||
|
|
||||||
|
(alias
|
||||||
|
((name runtest)
|
||||||
|
(deps ((alias runtest_basic.sh)
|
||||||
|
(alias runtest_contracts.sh)
|
||||||
|
(alias runtest_multinode.sh)))))
|
||||||
|
@ -18,7 +18,7 @@ let rpc_config = ref {
|
|||||||
port = 8192 + Random.int 8192 ;
|
port = 8192 + Random.int 8192 ;
|
||||||
tls = false ;
|
tls = false ;
|
||||||
logger = Client_rpcs.null_logger ;
|
logger = Client_rpcs.null_logger ;
|
||||||
}
|
}
|
||||||
|
|
||||||
let dictator_sk =
|
let dictator_sk =
|
||||||
Ed25519.Secret_key.of_b58check_exn
|
Ed25519.Secret_key.of_b58check_exn
|
||||||
|
@ -278,9 +278,9 @@ assert_parses "PUSH (map int bool) (Map (Item 100 False))"
|
|||||||
None) ];
|
None) ];
|
||||||
assert_parses
|
assert_parses
|
||||||
"parameter int; \
|
"parameter int; \
|
||||||
return int; \
|
return int; \
|
||||||
storage unit; \
|
storage unit; \
|
||||||
code {}"
|
code {}"
|
||||||
[ Prim ((), "parameter", [ Prim((), "int", [], None) ], None);
|
[ Prim ((), "parameter", [ Prim((), "int", [], None) ], None);
|
||||||
Prim ((), "return", [ Prim((), "int", [], None) ], None);
|
Prim ((), "return", [ Prim((), "int", [], None) ], None);
|
||||||
Prim ((), "storage", [ Prim((), "unit", [], None) ], None);
|
Prim ((), "storage", [ Prim((), "unit", [], None) ], None);
|
||||||
|
@ -6,7 +6,7 @@ set -o pipefail
|
|||||||
test_dir="$(cd "$(dirname "$0")" && echo "$(pwd -P)")"
|
test_dir="$(cd "$(dirname "$0")" && echo "$(pwd -P)")"
|
||||||
source $test_dir/lib/test_lib.inc.sh
|
source $test_dir/lib/test_lib.inc.sh
|
||||||
|
|
||||||
start_node 2
|
start_node 1
|
||||||
activate_alpha
|
activate_alpha
|
||||||
|
|
||||||
key1=foo
|
key1=foo
|
||||||
|
Loading…
Reference in New Issue
Block a user