From 197682841b6165ecbf456a253254ab81ba05c98a Mon Sep 17 00:00:00 2001 From: Pierrick Couderc Date: Thu, 10 Oct 2024 18:34:39 +0200 Subject: [PATCH 1/3] Proto/All: OCaml5: backport parse_instr annotation --- src/proto_010_PtGRANAD/lib_protocol/script_ir_translator.ml | 2 +- src/proto_011_PtHangz2/lib_protocol/script_ir_translator.ml | 2 +- src/proto_012_Psithaca/lib_protocol/script_ir_translator.ml | 2 +- src/proto_013_PtJakart/lib_protocol/script_ir_translator.ml | 2 +- src/proto_014_PtKathma/lib_protocol/script_ir_translator.ml | 2 +- src/proto_015_PtLimaPt/lib_protocol/script_ir_translator.ml | 2 +- src/proto_016_PtMumbai/lib_protocol/script_ir_translator.ml | 2 +- src/proto_017_PtNairob/lib_protocol/script_ir_translator.ml | 2 +- src/proto_018_Proxford/lib_protocol/script_ir_translator.ml | 2 +- src/proto_019_PtParisB/lib_protocol/script_ir_translator.ml | 2 +- src/proto_020_PsParisC/lib_protocol/script_ir_translator.ml | 2 +- src/proto_021_PsQuebec/lib_protocol/script_ir_translator.ml | 2 +- 12 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/proto_010_PtGRANAD/lib_protocol/script_ir_translator.ml b/src/proto_010_PtGRANAD/lib_protocol/script_ir_translator.ml index 17eddfc34b43..18b72b94777a 100644 --- a/src/proto_010_PtGRANAD/lib_protocol/script_ir_translator.ml +++ b/src/proto_010_PtGRANAD/lib_protocol/script_ir_translator.ml @@ -3596,7 +3596,7 @@ and parse_instr : Lwt.return @@ return_no_lwt ctxt number_of_generated_growing_types judgement in - let typed_no_lwt ctxt number_of_generated_growing_types loc instr aft = + let typed_no_lwt ctxt number_of_generated_growing_types loc instr aft : ((a, s) judgement * context) tzresult = log_stack ctxt loc stack_ty aft >>? fun () -> let j = Typed {loc; instr; bef = stack_ty; aft} in diff --git a/src/proto_011_PtHangz2/lib_protocol/script_ir_translator.ml b/src/proto_011_PtHangz2/lib_protocol/script_ir_translator.ml index ca7e23c9b332..9c071c29f5e2 100644 --- a/src/proto_011_PtHangz2/lib_protocol/script_ir_translator.ml +++ b/src/proto_011_PtHangz2/lib_protocol/script_ir_translator.ml @@ -3078,7 +3078,7 @@ and[@coq_axiom_with_reason "gadt"] parse_instr : log loc stack_ty aft ; () in - let typed_no_lwt ctxt loc instr aft = + let typed_no_lwt ctxt loc instr aft : ((a, s) judgement * context) tzresult = log_stack ctxt loc stack_ty aft >|? fun () -> let j = Typed {loc; instr; bef = stack_ty; aft} in (j, ctxt) diff --git a/src/proto_012_Psithaca/lib_protocol/script_ir_translator.ml b/src/proto_012_Psithaca/lib_protocol/script_ir_translator.ml index ceb7553e3dc0..14340ac953c5 100644 --- a/src/proto_012_Psithaca/lib_protocol/script_ir_translator.ml +++ b/src/proto_012_Psithaca/lib_protocol/script_ir_translator.ml @@ -3021,7 +3021,7 @@ and[@coq_axiom_with_reason "gadt"] parse_instr : let aft = unparse_stack_uncarbonated aft in log loc stack_ty aft in - let typed_no_lwt ctxt loc instr aft = + let typed_no_lwt ctxt loc instr aft : ((a, s) judgement * context) tzresult = log_stack loc stack_ty aft ; let j = Typed {loc; instr; bef = stack_ty; aft} in Ok (j, ctxt) diff --git a/src/proto_013_PtJakart/lib_protocol/script_ir_translator.ml b/src/proto_013_PtJakart/lib_protocol/script_ir_translator.ml index 1c99eb32003d..efe051798d6d 100644 --- a/src/proto_013_PtJakart/lib_protocol/script_ir_translator.ml +++ b/src/proto_013_PtJakart/lib_protocol/script_ir_translator.ml @@ -3113,7 +3113,7 @@ and[@coq_axiom_with_reason "gadt"] parse_instr : let stack_ty_after = unparse_stack_uncarbonated aft in log loc ~stack_ty_before ~stack_ty_after in - let typed_no_lwt ctxt loc instr aft = + let typed_no_lwt ctxt loc instr aft : ((a, s) judgement * context) tzresult = log_stack loc stack_ty aft ; let j = Typed {loc; instr; bef = stack_ty; aft} in Ok (j, ctxt) diff --git a/src/proto_014_PtKathma/lib_protocol/script_ir_translator.ml b/src/proto_014_PtKathma/lib_protocol/script_ir_translator.ml index 72bcf44899f1..fe1bbdc2f842 100644 --- a/src/proto_014_PtKathma/lib_protocol/script_ir_translator.ml +++ b/src/proto_014_PtKathma/lib_protocol/script_ir_translator.ml @@ -2899,7 +2899,7 @@ and[@coq_axiom_with_reason "gadt"] parse_instr : let stack_ty_after = unparse_stack_uncarbonated aft in log loc ~stack_ty_before ~stack_ty_after in - let typed_no_lwt ctxt loc instr aft = + let typed_no_lwt ctxt loc instr aft : ((a, s) judgement * context) tzresult = log_stack loc stack_ty aft ; let j = Typed {loc; instr; bef = stack_ty; aft} in Ok (j, ctxt) diff --git a/src/proto_015_PtLimaPt/lib_protocol/script_ir_translator.ml b/src/proto_015_PtLimaPt/lib_protocol/script_ir_translator.ml index 323b16ae293f..95e0dd08ebf0 100644 --- a/src/proto_015_PtLimaPt/lib_protocol/script_ir_translator.ml +++ b/src/proto_015_PtLimaPt/lib_protocol/script_ir_translator.ml @@ -2516,7 +2516,7 @@ and parse_instr : let stack_ty_after = unparse_stack_uncarbonated aft in log loc ~stack_ty_before ~stack_ty_after in - let typed_no_lwt ctxt loc instr aft = + let typed_no_lwt ctxt loc instr aft : ((a, s) judgement * context) tzresult = log_stack loc stack_ty aft ; let j = Typed {loc; instr; bef = stack_ty; aft} in Ok (j, ctxt) diff --git a/src/proto_016_PtMumbai/lib_protocol/script_ir_translator.ml b/src/proto_016_PtMumbai/lib_protocol/script_ir_translator.ml index eb6b3db37bf5..1fb8ac935642 100644 --- a/src/proto_016_PtMumbai/lib_protocol/script_ir_translator.ml +++ b/src/proto_016_PtMumbai/lib_protocol/script_ir_translator.ml @@ -2585,7 +2585,7 @@ and parse_instr : let stack_ty_after = unparse_stack_uncarbonated aft in log loc ~stack_ty_before ~stack_ty_after in - let typed_no_lwt ctxt loc instr aft = + let typed_no_lwt ctxt loc instr aft : ((a, s) judgement * context) tzresult = log_stack loc stack_ty aft ; let j = Typed {loc; instr; bef = stack_ty; aft} in Ok (j, ctxt) diff --git a/src/proto_017_PtNairob/lib_protocol/script_ir_translator.ml b/src/proto_017_PtNairob/lib_protocol/script_ir_translator.ml index e8934803b388..893e73256006 100644 --- a/src/proto_017_PtNairob/lib_protocol/script_ir_translator.ml +++ b/src/proto_017_PtNairob/lib_protocol/script_ir_translator.ml @@ -2585,7 +2585,7 @@ and parse_instr : let stack_ty_after = unparse_stack_uncarbonated aft in log loc ~stack_ty_before ~stack_ty_after in - let typed_no_lwt ctxt loc instr aft = + let typed_no_lwt ctxt loc instr aft : ((a, s) judgement * context) tzresult = log_stack loc stack_ty aft ; let j = Typed {loc; instr; bef = stack_ty; aft} in Ok (j, ctxt) diff --git a/src/proto_018_Proxford/lib_protocol/script_ir_translator.ml b/src/proto_018_Proxford/lib_protocol/script_ir_translator.ml index f1f22087c124..919cfe1481d0 100644 --- a/src/proto_018_Proxford/lib_protocol/script_ir_translator.ml +++ b/src/proto_018_Proxford/lib_protocol/script_ir_translator.ml @@ -2702,7 +2702,7 @@ and parse_instr : let stack_ty_after = unparse_stack_uncarbonated aft in log loc ~stack_ty_before ~stack_ty_after in - let typed_no_lwt ctxt loc instr aft = + let typed_no_lwt ctxt loc instr aft : ((a, s) judgement * context) tzresult = log_stack loc stack_ty aft ; let j = Typed {loc; instr; bef = stack_ty; aft} in Ok (j, ctxt) diff --git a/src/proto_019_PtParisB/lib_protocol/script_ir_translator.ml b/src/proto_019_PtParisB/lib_protocol/script_ir_translator.ml index d6befe9ab5fd..82d15cd5184b 100644 --- a/src/proto_019_PtParisB/lib_protocol/script_ir_translator.ml +++ b/src/proto_019_PtParisB/lib_protocol/script_ir_translator.ml @@ -2818,7 +2818,7 @@ and parse_instr : let stack_ty_after = unparse_stack_uncarbonated aft in log loc ~stack_ty_before ~stack_ty_after in - let typed_no_lwt ctxt loc instr aft = + let typed_no_lwt ctxt loc instr aft : ((a, s) judgement * context) tzresult = log_stack loc stack_ty aft ; let j = Typed {loc; instr; bef = stack_ty; aft} in Ok (j, ctxt) diff --git a/src/proto_020_PsParisC/lib_protocol/script_ir_translator.ml b/src/proto_020_PsParisC/lib_protocol/script_ir_translator.ml index d6befe9ab5fd..82d15cd5184b 100644 --- a/src/proto_020_PsParisC/lib_protocol/script_ir_translator.ml +++ b/src/proto_020_PsParisC/lib_protocol/script_ir_translator.ml @@ -2818,7 +2818,7 @@ and parse_instr : let stack_ty_after = unparse_stack_uncarbonated aft in log loc ~stack_ty_before ~stack_ty_after in - let typed_no_lwt ctxt loc instr aft = + let typed_no_lwt ctxt loc instr aft : ((a, s) judgement * context) tzresult = log_stack loc stack_ty aft ; let j = Typed {loc; instr; bef = stack_ty; aft} in Ok (j, ctxt) diff --git a/src/proto_021_PsQuebec/lib_protocol/script_ir_translator.ml b/src/proto_021_PsQuebec/lib_protocol/script_ir_translator.ml index 988d822de9db..9041c1f66f80 100644 --- a/src/proto_021_PsQuebec/lib_protocol/script_ir_translator.ml +++ b/src/proto_021_PsQuebec/lib_protocol/script_ir_translator.ml @@ -2818,7 +2818,7 @@ and parse_instr : let stack_ty_after = unparse_stack_uncarbonated aft in log loc ~stack_ty_before ~stack_ty_after in - let typed_no_lwt ctxt loc instr aft = + let typed_no_lwt ctxt loc instr aft : ((a, s) judgement * context) tzresult = log_stack loc stack_ty aft ; let j = Typed {loc; instr; bef = stack_ty; aft} in Ok (j, ctxt) -- GitLab From 3372be173c86ff810e0ea2fc0926b81350c7ccc5 Mon Sep 17 00:00:00 2001 From: Pierrick Couderc Date: Tue, 8 Oct 2024 14:19:59 +0200 Subject: [PATCH 2/3] Proto/OCaml5: fix inlining annotations for 016 and 017 --- src/proto_016_PtMumbai/lib_protocol/skip_list_repr.ml | 4 ++-- src/proto_017_PtNairob/lib_protocol/skip_list_repr.ml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/proto_016_PtMumbai/lib_protocol/skip_list_repr.ml b/src/proto_016_PtMumbai/lib_protocol/skip_list_repr.ml index 17203bd1329f..43f440c6f812 100644 --- a/src/proto_016_PtMumbai/lib_protocol/skip_list_repr.ml +++ b/src/proto_016_PtMumbai/lib_protocol/skip_list_repr.ml @@ -387,7 +387,7 @@ end) : S = struct let ( let* ) = bind module Option = struct - let (return [@ocaml.inline "always"]) = fun x -> M.return (Some x) + let[@ocaml.inline always] return = fun x -> M.return (Some x) let ( let* ) lo f = M.bind lo (function None -> M.return None | Some x -> f x) @@ -574,7 +574,7 @@ end) : S = struct include Make_monadic (struct type 'a t = 'a - let (bind [@ocaml.inline "always"]) = ( |> ) + let bind = ( |> ) let[@ocaml.inline always] return x = x end) diff --git a/src/proto_017_PtNairob/lib_protocol/skip_list_repr.ml b/src/proto_017_PtNairob/lib_protocol/skip_list_repr.ml index 928a4514f995..b4fb27ed3d5e 100644 --- a/src/proto_017_PtNairob/lib_protocol/skip_list_repr.ml +++ b/src/proto_017_PtNairob/lib_protocol/skip_list_repr.ml @@ -387,7 +387,7 @@ end) : S = struct let ( let* ) = bind module Option = struct - let (return [@ocaml.inline "always"]) = fun x -> M.return (Some x) + let[@ocaml.inline always] return = fun x -> M.return (Some x) let ( let* ) lo f = M.bind lo (function None -> M.return None | Some x -> f x) @@ -574,7 +574,7 @@ end) : S = struct include Make_monadic (struct type 'a t = 'a - let (bind [@ocaml.inline "always"]) = ( |> ) + let bind = ( |> ) let[@ocaml.inline always] return x = x end) -- GitLab From 765c663a697bb20e373b20406eb7c38c29d0a171 Mon Sep 17 00:00:00 2001 From: Pierrick Couderc Date: Mon, 28 Oct 2024 11:05:35 +0100 Subject: [PATCH 3/3] Proto/Compiler: hardcode protocol alternatives --- .../hashes/protocol_hash_representative.ml | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/src/lib_protocol_compiler/hashes/protocol_hash_representative.ml b/src/lib_protocol_compiler/hashes/protocol_hash_representative.ml index e09093fd1260..749462852cbd 100644 --- a/src/lib_protocol_compiler/hashes/protocol_hash_representative.ml +++ b/src/lib_protocol_compiler/hashes/protocol_hash_representative.ml @@ -20,6 +20,43 @@ let representatives = |> register_protocol_hash "Pry4stD6qN1ZagUX6YCHvMxA1xvSjARkdt8bhs86j74JGLoLDKN" "Ps8MVx2JuQaFrXpbuwSeBvXmi1xraGmXuJZHULEbPBY7mzFchxz" + (* Known protocols. *) + |> register_protocol_hash + "PsERsg9nX1wo2X5jqVCzKJvoczwtbF9NtJ1XkvR8cnvhokv1EJc" + "PtGRANADsDU8R9daYKAgWnQYAJ64omN1o3KMGVCykShA97vQbvV" + |> register_protocol_hash + "PtMph9rT4iQxKFDvxYAcKqcQ8j45oY6uCpzedB98LfWMARxQQSW" + "PtHangz2aRngywmSRGGvrcTyMbbdpWdpFKuS4uMWxg2RaH9i1qx" + |> register_protocol_hash + "PsgP5GoLQ57n2yBXG1uu6oKQf1YGYmW7w498E7S81MqheYRc5Wo" + "Psithaca2MLRFYargivpo7YvUr7wUDqyxrdhC5CQq78mRvimz6A" + |> register_protocol_hash + "PssV7reTFUwrtfhfKSzAQ5MwVpfg35QNBiBBNeH4AvoAStqBBfH" + "PtJakart2xVj7pYXJBXrqHgd82rdkLey5ZeeGwDgPp9rhQUbSqY" + |> register_protocol_hash + "PrqoTUFUrorf5LAt7F28SXDScpmS5CR2KuVJvzmrQtUJJZVuUaK" + "PtKathmankSpLLDALzWw7CGD2j2MtyveTwboEYokqUCP4a1LxMg" + |> register_protocol_hash + "Psad9fKoPh8bNtaB4vhwsnYBAeKhf5EXrQbmo7q1ozkQgGNQ3qb" + "PtLimaPtLMwfNinJi9rCfDPWea8dFgTZ1MeJ9f1m2SRic6ayiwW" + |> register_protocol_hash + "PsE988pGzcDaLWsDYXKj8tZTYryfns8xQzFF58T6MHfw1HwJhbZ" + "PtMumbai2TmsJHNGRkD8v8YDbtao7BLUC3wjASn1inAKLFCjaH1" + |> register_protocol_hash + "PsMmVdraV63nbGuMG1FGM2WCragcWRsb85T3duL7LEL87PH7RFU" + "PtNairobiyssHuh87hEhfVBGCVrK3WnS8Z2FT4ymB5tAa4r1nQf" + |> register_protocol_hash + "Pse1yoTfQcn7CAnVpRpAQmKy88otrsdj1FJZb5RbqNbQHAbU94h" + "ProxfordYmVfjWnRcgjWH36fW6PArwqykTFzotUxRs6gmTcZDuH" + |> register_protocol_hash + "PsvYZTuJyMerq4EF2yT8SETMR1D7fAqzwERDkh9B8T2cjQh5zph" + "PtParisBxoLz5gzMmn3d9WBQNoPSZakgnkMC2VNuQ3KXfUtUQeZ" + |> register_protocol_hash + "PtJdFR5xNLSufXi5LmHKwstm7Dd8SDj7PEmfKmvz5B9hHs6oEtB" + "PsParisCZo7KAh1Z1smVd9ZMZ1HHn5gkzbM94V3PLCpknFWhUAi" + |> register_protocol_hash + "PtSAFF8wPqJcqwFoJfQoKgQBef7b7YNAgW1LjKMdhmigC7BumiX" + "PsQuebecnLByd3JwTiGadoG4nGWi3HYiLXUjkibeFV8dCFeVMUg" (* Resolve is not transitive on purpose: there is no reason a protocol hash is represented by another protocol hash that has itself a representative. *) -- GitLab