From 7093451811cfc2eba0982a7786ef58a81ffa48e0 Mon Sep 17 00:00:00 2001 From: Chris Casinghino Date: Fri, 26 Apr 2024 17:23:01 -0400 Subject: [PATCH] flambda-backend: `[@zero_alloc]` in signatures (part 2 of 3) (#2470) `zero_alloc` in signatures --- .depend | 6 + boot/ocamlc | Bin 4348287 -> 4357714 bytes lambda/lambda.ml | 4 +- lambda/lambda.mli | 4 +- parsing/builtin_attributes.ml | 170 ++- parsing/builtin_attributes.mli | 11 +- .../tests/typing-zero-alloc/signatures.ml | 1005 +++++++++++++++++ .../typing-zero-alloc/signatures_native.ml | 15 + .../tests/warnings/w53.compilers.reference | 106 +- testsuite/tests/warnings/w53.ml | 3 +- .../w53_zero_alloc_all.compilers.reference | 106 +- .../tests/warnings/w53_zero_alloc_all.ml | 3 +- toplevel/native/topeval.ml | 3 +- typing/includecore.ml | 80 ++ typing/includecore.mli | 2 + typing/printtyp.ml | 34 +- typing/subst.ml | 1 + typing/typeclass.ml | 16 +- typing/typecore.ml | 35 +- typing/typedecl.ml | 52 + typing/typedecl.mli | 4 + typing/typedtree.ml | 27 +- typing/typedtree.mli | 21 +- typing/typemod.ml | 27 +- typing/types.ml | 5 +- typing/types.mli | 1 + utils/zero_alloc_utils.ml | 12 +- utils/zero_alloc_utils.mli | 7 + 28 files changed, 1547 insertions(+), 213 deletions(-) create mode 100644 testsuite/tests/typing-zero-alloc/signatures.ml create mode 100644 testsuite/tests/typing-zero-alloc/signatures_native.ml diff --git a/.depend b/.depend index df9b02bd5c9..1cbf1481012 100644 --- a/.depend +++ b/.depend @@ -972,6 +972,7 @@ typing/includeclass.cmi : \ typing/env.cmi \ typing/ctype.cmi typing/includecore.cmo : \ + utils/zero_alloc_utils.cmi \ typing/types.cmi \ typing/typedtree.cmi \ typing/printtyp.cmi \ @@ -990,6 +991,7 @@ typing/includecore.cmo : \ parsing/asttypes.cmi \ typing/includecore.cmi typing/includecore.cmx : \ + utils/zero_alloc_utils.cmx \ typing/types.cmx \ typing/typedtree.cmx \ typing/printtyp.cmx \ @@ -1948,6 +1950,7 @@ typing/typedecl.cmi : \ typing/ident.cmi \ typing/errortrace.cmi \ typing/env.cmi \ + parsing/builtin_attributes.cmi \ parsing/asttypes.cmi typing/typedecl_properties.cmo : \ typing/types.cmi \ @@ -2254,6 +2257,7 @@ typing/types.cmo : \ typing/jkind.cmi \ typing/ident.cmi \ utils/config.cmi \ + parsing/builtin_attributes.cmi \ parsing/asttypes.cmi \ typing/types.cmi typing/types.cmx : \ @@ -2269,6 +2273,7 @@ typing/types.cmx : \ typing/jkind.cmx \ typing/ident.cmx \ utils/config.cmx \ + parsing/builtin_attributes.cmx \ parsing/asttypes.cmi \ typing/types.cmi typing/types.cmi : \ @@ -2281,6 +2286,7 @@ typing/types.cmi : \ parsing/location.cmi \ typing/jkind.cmi \ typing/ident.cmi \ + parsing/builtin_attributes.cmi \ parsing/asttypes.cmi typing/typetexp.cmo : \ typing/types.cmi \ diff --git a/boot/ocamlc b/boot/ocamlc index 5d8eab1c5df23e196f8054c7370f476693988e5a..cb379c41dde1e50a2508f788025be74c3fb05255 100755 GIT binary patch delta 288463 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 TJODE^+db}jS(djn&Nu%z*&6C; delta 281639 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%0A` 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%0DSN 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∈QPx^zdf-@VbwR*Q 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 Result.Ok id | _ -> Result.Error () -let get_ids_from_exp exp = +let get_id_or_constant_from_exp = + let open Parsetree in + function + | { pexp_desc = Pexp_ident { txt = Longident.Lident id } } -> Result.Ok id + | { pexp_desc = Pexp_constant (Pconst_integer (s,None)) } -> Result.Ok s + | _ -> Result.Error () + +let get_ids_and_constants_from_exp exp = let open Parsetree in (match exp with | { pexp_desc = Pexp_apply (exp, args) } -> - get_id_from_exp exp :: + get_id_or_constant_from_exp exp :: List.map (function - | (Asttypes.Nolabel, arg) -> get_id_from_exp arg + | (Asttypes.Nolabel, arg) -> get_id_or_constant_from_exp arg | (_, _) -> Result.Error ()) args - | _ -> [get_id_from_exp exp]) + | _ -> [get_id_or_constant_from_exp exp]) |> List.fold_left (fun acc r -> match acc, r with | Result.Ok ids, Ok id -> Result.Ok (id::ids) @@ -788,52 +797,113 @@ let parse_optional_id_payload txt loc ~empty cases payload = | Some r -> Ok r | None -> warn () -let parse_ids_payload txt loc ~default ~empty cases payload = - let[@local] warn () = - let ( %> ) f g x = g (f x) in - let msg = - cases - |> List.map (fst %> String.concat " " %> Printf.sprintf "'%s'") - |> String.concat ", " - |> Printf.sprintf "It must be either %s or empty" - in - Location.prerr_warning loc (Warnings.Attribute_payload (txt, msg)); - default +(* Looks for `arity n` in payload. If present, this returns `n` and an updated + payload with `arity n` removed. Note it may change the order of the payload, + which is fine because we sort it later. *) +let filter_arity payload = + let is_arity s1 s2 = + match s1 with + | "arity" -> int_of_string_opt s2 + | _ -> None in - match get_optional_payload get_ids_from_exp payload with - | Error () -> warn () - | Ok None -> empty - | Ok (Some ids) -> - match List.assoc_opt (List.sort String.compare ids) cases with - | Some r -> r - | None -> warn () + let rec find_arity acc payload = + match payload with + | [] | [_] -> None + | s1 :: ((s2 :: payload) as payload') -> + begin match is_arity s1 s2 with + | Some n -> Some (n, acc @ payload) + | None -> find_arity (s1 :: acc) payload' + end + in + find_arity [] payload + +let zero_alloc_lookup_table = + (* These are the possible payloads (sans arity) paired with a function that + returns the corresponding check_attribute, given the arity and the loc. *) + let property = Zero_alloc in + [ + (["assume"], + fun arity loc -> + Assume { property; strict = false; never_returns_normally = false; + arity; loc; }); + (["strict"], + fun arity loc -> + Check { property; strict = true; opt = false; arity; loc; }); + (["opt"], + fun arity loc -> + Check { property; strict = false; opt = true; arity; loc; }); + (["opt"; "strict"; ], + fun arity loc -> + Check { property; strict = true; opt = true; arity; loc; }); + (["assume"; "strict"], + fun arity loc -> + Assume { property; strict = true; never_returns_normally = false; + arity; loc; }); + (["assume"; "never_returns_normally"], + fun arity loc -> + Assume { property; strict = false; never_returns_normally = true; + arity; loc; }); + (["assume"; "never_returns_normally"; "strict"], + fun arity loc -> + Assume { property; strict = true; never_returns_normally = true; + arity; loc; }); + (["ignore"], fun _ _ -> Ignore_assert_all property) + ] -let parse_property_attribute attr property = +let parse_zero_alloc_payload ~loc ~arity ~warn ~empty payload = + (* This parses the remainder of the payload after arity has been parsed + out. *) + match payload with + | [] -> empty + | _ :: _ -> + let payload = List.sort String.compare payload in + match List.assoc_opt payload zero_alloc_lookup_table with + | None -> warn (); Default_check + | Some ca -> ca arity loc + +let parse_zero_alloc_attribute ~is_arity_allowed ~default_arity attr = match attr with | None -> Default_check - | Some {Parsetree.attr_name = {txt; loc}; attr_payload = payload}-> - parse_ids_payload txt loc - ~default:Default_check - ~empty:(Check { property; strict = false; opt = false; loc; } ) - [ - ["assume"], - Assume { property; strict = false; never_returns_normally = false; loc; }; - ["strict"], Check { property; strict = true; opt = false; loc; }; - ["opt"], Check { property; strict = false; opt = true; loc; }; - ["opt"; "strict"; ], Check { property; strict = true; opt = true; loc; }; - ["assume"; "strict"], - Assume { property; strict = true; never_returns_normally = false; loc; }; - ["assume"; "never_returns_normally"], - Assume { property; strict = false; never_returns_normally = true; loc; }; - ["assume"; "never_returns_normally"; "strict"], - Assume { property; strict = true; never_returns_normally = true; loc; }; - ["ignore"], Ignore_assert_all property - ] - payload - -let get_property_attribute l p = + | Some {Parsetree.attr_name = {txt; loc}; attr_payload = payload} -> + let warn () = + let ( %> ) f g x = g (f x) in + let msg = + zero_alloc_lookup_table + |> List.map (fst %> String.concat " " %> Printf.sprintf "'%s'") + |> String.concat ", " + |> Printf.sprintf "It must be either %s or empty" + in + Location.prerr_warning loc (Warnings.Attribute_payload (txt, msg)) + in + let empty arity = + Check {property = Zero_alloc; strict = false; opt = false; arity; loc; } + in + match get_optional_payload get_ids_and_constants_from_exp payload with + | Error () -> warn (); Default_check + | Ok None -> empty default_arity + | Ok (Some payload) -> + let arity, payload = + match filter_arity payload with + | None -> default_arity, payload + | Some (user_arity, payload) -> + if is_arity_allowed then + user_arity, payload + else + (warn_payload loc txt + "The \"arity\" field is only supported on \"zero_alloc\" in \ + signatures"; + default_arity, payload) + in + parse_zero_alloc_payload ~loc ~arity ~warn ~empty:(empty arity) payload + +let get_property_attribute ~in_signature ~default_arity l p = let attr = find_attribute (is_property_attribute p) l in - let res = parse_property_attribute attr p in + let res = + match p with + | Zero_alloc -> + parse_zero_alloc_attribute ~is_arity_allowed:in_signature ~default_arity + attr + in (match attr, res with | None, Default_check -> () | _, Default_check -> () @@ -841,10 +911,10 @@ let get_property_attribute l p = | Some _, Ignore_assert_all _ -> () | Some _, Assume _ -> () | Some attr, Check { opt; _ } -> - if is_check_enabled ~opt p && !Clflags.native_code then - (* The warning for unchecked functions will not trigger if the check is requested - through the [@@@zero_alloc all] top-level annotation rather than through the - function annotation [@zero_alloc]. *) + if not in_signature && is_check_enabled ~opt p && !Clflags.native_code then + (* The warning for unchecked functions will not trigger if the check is + requested through the [@@@zero_alloc all] top-level annotation rather + than through the function annotation [@zero_alloc]. *) register_property attr.attr_name); res diff --git a/parsing/builtin_attributes.mli b/parsing/builtin_attributes.mli index aa70ccd7ced..c766d3d5440 100644 --- a/parsing/builtin_attributes.mli +++ b/parsing/builtin_attributes.mli @@ -251,17 +251,24 @@ type check_attribute = exceptional returns or diverging loops are ignored). This definition may not be applicable to new properties. *) opt: bool; + arity: int; loc: Location.t; } | Assume of { property: property; strict: bool; - loc: Location.t; never_returns_normally: bool; + arity: int; + loc: Location.t; } val is_check_enabled : opt:bool -> property -> bool -val get_property_attribute : Parsetree.attributes -> property -> check_attribute +(* Gets a zero_alloc attribute. [~in_signature] controls both whether the + "arity n" field is allowed, and whether we track this attribute for + warning 199. *) +val get_property_attribute : + in_signature:bool -> default_arity:int -> Parsetree.attributes -> + property -> check_attribute val assume_zero_alloc : is_check_allowed:bool -> check_attribute -> Zero_alloc_utils.Assume_info.t diff --git a/testsuite/tests/typing-zero-alloc/signatures.ml b/testsuite/tests/typing-zero-alloc/signatures.ml new file mode 100644 index 00000000000..a469c7dbf67 --- /dev/null +++ b/testsuite/tests/typing-zero-alloc/signatures.ml @@ -0,0 +1,1005 @@ +(* TEST + expect; +*) + +(* This tests the typing behavior of `[@zero_alloc]` annotation in signatures. + + These tests are just about what is allowed and not allowed by the + typechecker. The implementation of the actual `[@zero_alloc]` backend checks + (including how the annotations in signatures affect those checks) are tested + in the `tests/backend/checkmach` directory at the root of the project. +*) + +(*******************************************) +(* Test 1: Allowed and disallowed payloads *) +module type S_payloads_base = sig + val[@zero_alloc] f : int -> int +end + +module type S_payloads_strict = sig + val[@zero_alloc strict] f : int -> int +end + +[%%expect{| +module type S_payloads_base = sig val f : int -> int [@@zero_alloc] end +module type S_payloads_strict = + sig val f : int -> int [@@zero_alloc strict] end +|}] + +module type S_payloads_opt = sig + val[@zero_alloc opt] f : int -> int +end +[%%expect{| +Line 2, characters 2-37: +2 | val[@zero_alloc opt] f : int -> int + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Error: "zero_alloc opt" is not supported in signatures. +|}] + +module type S_payloads_strict_opt = sig + val[@zero_alloc strict opt] f : int -> int +end +[%%expect{| +Line 2, characters 2-44: +2 | val[@zero_alloc strict opt] f : int -> int + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Error: "zero_alloc opt" is not supported in signatures. +|}] + +module type S_payloads_assume = sig + val[@zero_alloc assume] f : int -> int +end +[%%expect{| +Line 2, characters 2-40: +2 | val[@zero_alloc assume] f : int -> int + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Error: zero_alloc "assume" attributes are not supported in signatures +|}] + +module type S_payloads_ignore = sig + val[@zero_alloc ignore] f : int -> int +end +[%%expect{| +Line 2, characters 2-40: +2 | val[@zero_alloc ignore] f : int -> int + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Error: zero_alloc "ignore" attributes are not supported in signatures +|}] + +(******************************) +(* Test 2: allowed inclusions *) +module type S_good_inc_base = sig + val[@zero_alloc] f : 'a -> 'a +end + +module M_base : S_good_inc_base = struct + let[@zero_alloc] f x = x +end + +module M_assume : S_good_inc_base = struct + let[@zero_alloc assume] f x = x +end + +module M_assume_nrn : S_good_inc_base = struct + let[@zero_alloc assume never_returns_normally] f x = x +end + +module M_stict : S_good_inc_base = struct + let[@zero_alloc strict] f x = x +end + +module M_assume_strict : S_good_inc_base = struct + let[@zero_alloc assume strict] f x = x +end + +module M_assume_strict_nrn : S_good_inc_base = struct + let[@zero_alloc assume strict never_returns_normally] f x = x +end + +[%%expect{| +module type S_good_inc_base = sig val f : 'a -> 'a [@@zero_alloc] end +module M_base : S_good_inc_base +module M_assume : S_good_inc_base +module M_assume_nrn : S_good_inc_base +module M_stict : S_good_inc_base +module M_assume_strict : S_good_inc_base +module M_assume_strict_nrn : S_good_inc_base +|}] + +(* CR ccasinghino: The below should work once we allow opt in signatures. *) +(* module type S_good_inc_opt = sig + * val[@zero_alloc opt] f : 'a -> 'a + * end + * + * module M_base : S_good_inc_opt = struct + * let[@zero_alloc] f x = x + * end + * + * module M_opt : S_good_inc_opt = struct + * let[@zero_alloc opt] f x = x + * end + * + * module M_assume : S_good_inc_opt = struct + * let[@zero_alloc assume] f x = x + * end + * + * module M_assume_nrn : S_good_inc_opt = struct + * let[@zero_alloc assume never_returns_normally] f x = x + * end + * + * module M_strict : S_good_inc_opt = struct + * let[@zero_alloc strict] f x = x + * end + * + * module M_strict_opt : S_good_inc_opt = struct + * let[@zero_alloc strict opt] f x = x + * end + * + * module M_assume_strict : S_good_inc_opt = struct + * let[@zero_alloc assume strict] f x = x + * end + * + * module M_assume_strict_nrn : S_good_inc_opt = struct + * let[@zero_alloc assume strict never_returns_normally] f x = x + * end + * + * [%%expect{| + * module type S_good_inc_opt = sig val f : 'a -> 'a [@@zero_alloc opt] end + * module M_base : S_good_inc_opt + * module M_opt : S_good_inc_opt + * module M_assume : S_good_inc_opt + * module M_assume_nrn : S_good_inc_opt + * module M_strict : S_good_inc_opt + * module M_strict_opt : S_good_inc_opt + * module M_assume_strict : S_good_inc_opt + * module M_assume_strict_nrn : S_good_inc_opt + * |}] *) + +module type S_good_inc_strict = sig + val[@zero_alloc strict] f : 'a -> 'a +end + +module M_strict : S_good_inc_strict = struct + let[@zero_alloc strict] f x = x +end + +module M_assume_strict : S_good_inc_strict = struct + let[@zero_alloc assume strict] f x = x +end + +module M_assume_strict_nrn : S_good_inc_strict = struct + let[@zero_alloc assume strict never_returns_normally] f x = x +end + +[%%expect{| +module type S_good_inc_strict = + sig val f : 'a -> 'a [@@zero_alloc strict] end +module M_strict : S_good_inc_strict +module M_assume_strict : S_good_inc_strict +module M_assume_strict_nrn : S_good_inc_strict +|}] + +(* CR ccasinghino: The below should work once we allow opt in signatures. *) +(* module type S_good_inc_strict_opt = sig + * val[@zero_alloc strict opt] f : 'a -> 'a + * end + * + * module M_strict : S_good_inc_strict_opt = struct + * let[@zero_alloc strict] f x = x + * end + * + * module M_strict_opt : S_good_inc_strict_opt = struct + * let[@zero_alloc strict opt] f x = x + * end + * + * module M_assume_strict : S_good_inc_strict_opt = struct + * let[@zero_alloc assume strict] f x = x + * end + * + * module M_assume_strict_nrn : S_good_inc_strict_opt = struct + * let[@zero_alloc assume strict never_returns_normally] f x = x + * end + * + * [%%expect{| + * module type S_good_inc_strict_opt = + * sig val f : 'a -> 'a [@@zero_alloc strict opt] end + * module M_strict : S_good_inc_strict_opt + * module M_strict_opt : S_good_inc_strict_opt + * module M_assume_strict : S_good_inc_strict_opt + * module M_assume_strict_nrn : S_good_inc_strict_opt + * |}] *) + + +(*********************************) +(* Test 3: disallowed inclusions *) + +module type S_bad_inc_base = sig + val[@zero_alloc] f : 'a -> 'a +end + +module M_absent : S_bad_inc_base = struct + let f x = x +end + +[%%expect{| +module type S_bad_inc_base = sig val f : 'a -> 'a [@@zero_alloc] end +Lines 5-7, characters 35-3: +5 | ...................................struct +6 | let f x = x +7 | end +Error: Signature mismatch: + Modules do not match: + sig val f : 'a -> 'a end + is not included in + S_bad_inc_base + Values do not match: + val f : 'a -> 'a + is not included in + val f : 'a -> 'a [@@zero_alloc] + The former provides a weaker "zero_alloc" guarantee than the latter. + Hint: Add a "zero_alloc" attribute (without opt) to the implementation. +|}] + +module M_opt : S_bad_inc_base = struct + let[@zero_alloc opt] f x = x +end + +[%%expect{| +Lines 1-3, characters 32-3: +1 | ................................struct +2 | let[@zero_alloc opt] f x = x +3 | end +Error: Signature mismatch: + Modules do not match: + sig val f : 'a -> 'a end + is not included in + S_bad_inc_base + Values do not match: + val f : 'a -> 'a + is not included in + val f : 'a -> 'a [@@zero_alloc] + The former provides a weaker "zero_alloc" guarantee than the latter. + Hint: Add a "zero_alloc" attribute (without opt) to the implementation. +|}] + +(* CR ccasinghino: The below should work once we allow opt in signatures. *) +(* module type S_bad_inc_opt = sig + * val[@zero_alloc opt] f : 'a -> 'a + * end + * + * module M_absent : S_bad_inc_opt = struct + * let f x = x + * end + * + * [%%expect{| + * module type S_bad_inc_opt = sig val f : 'a -> 'a [@@zero_alloc opt] end + * Lines 5-7, characters 34-3: + * 5 | ..................................struct + * 6 | let f x = x + * 7 | end + * Error: Signature mismatch: + * Modules do not match: + * sig val f : 'a -> 'a end + * is not included in + * S_bad_inc_opt + * Values do not match: + * val f : 'a -> 'a + * is not included in + * val f : 'a -> 'a [@@zero_alloc opt] + * The former provides a weaker "zero_alloc" guarantee than the latter. + * Hint: Add a "zero_alloc" attribute to the implementation. + * |}] *) + +module type S_bad_inc_strict = sig + val[@zero_alloc strict] f : 'a -> 'a +end + +module M_absent : S_bad_inc_strict = struct + let f x = x +end + +[%%expect{| +module type S_bad_inc_strict = sig val f : 'a -> 'a [@@zero_alloc strict] end +Lines 5-7, characters 37-3: +5 | .....................................struct +6 | let f x = x +7 | end +Error: Signature mismatch: + Modules do not match: + sig val f : 'a -> 'a end + is not included in + S_bad_inc_strict + Values do not match: + val f : 'a -> 'a + is not included in + val f : 'a -> 'a [@@zero_alloc strict] + The former provides a weaker "zero_alloc" guarantee than the latter. + Hint: Add a "zero_alloc" attribute (without opt) to the implementation. +|}] + +module M_base : S_bad_inc_strict = struct + let[@zero_alloc] f x = x +end +[%%expect{| +Lines 1-3, characters 35-3: +1 | ...................................struct +2 | let[@zero_alloc] f x = x +3 | end +Error: Signature mismatch: + Modules do not match: + sig val f : 'a -> 'a [@@zero_alloc] end + is not included in + S_bad_inc_strict + Values do not match: + val f : 'a -> 'a [@@zero_alloc] + is not included in + val f : 'a -> 'a [@@zero_alloc strict] + The former provides a weaker "zero_alloc" guarantee than the latter. +|}] + +module M_assume : S_bad_inc_strict = struct + let[@zero_alloc assume] f x = x +end + +[%%expect{| +Lines 1-3, characters 37-3: +1 | .....................................struct +2 | let[@zero_alloc assume] f x = x +3 | end +Error: Signature mismatch: + Modules do not match: + sig val f : 'a -> 'a [@@zero_alloc] end + is not included in + S_bad_inc_strict + Values do not match: + val f : 'a -> 'a [@@zero_alloc] + is not included in + val f : 'a -> 'a [@@zero_alloc strict] + The former provides a weaker "zero_alloc" guarantee than the latter. +|}] + +module M_opt : S_bad_inc_strict = struct + let[@zero_alloc opt] f x = x +end + +[%%expect{| +Lines 1-3, characters 34-3: +1 | ..................................struct +2 | let[@zero_alloc opt] f x = x +3 | end +Error: Signature mismatch: + Modules do not match: + sig val f : 'a -> 'a end + is not included in + S_bad_inc_strict + Values do not match: + val f : 'a -> 'a + is not included in + val f : 'a -> 'a [@@zero_alloc strict] + The former provides a weaker "zero_alloc" guarantee than the latter. + Hint: Add a "zero_alloc" attribute (without opt) to the implementation. +|}] + +module M_strict_opt : S_bad_inc_strict = struct + let[@zero_alloc strict opt] f x = x +end + +[%%expect{| +Lines 1-3, characters 41-3: +1 | .........................................struct +2 | let[@zero_alloc strict opt] f x = x +3 | end +Error: Signature mismatch: + Modules do not match: + sig val f : 'a -> 'a end + is not included in + S_bad_inc_strict + Values do not match: + val f : 'a -> 'a + is not included in + val f : 'a -> 'a [@@zero_alloc strict] + The former provides a weaker "zero_alloc" guarantee than the latter. + Hint: Add a "zero_alloc" attribute (without opt) to the implementation. +|}] + +module M_assume_nrn : S_bad_inc_strict = struct + let[@zero_alloc assume never_returns_normally] f x = x +end + +[%%expect{| +Lines 1-3, characters 41-3: +1 | .........................................struct +2 | let[@zero_alloc assume never_returns_normally] f x = x +3 | end +Error: Signature mismatch: + Modules do not match: + sig val f : 'a -> 'a [@@zero_alloc] end + is not included in + S_bad_inc_strict + Values do not match: + val f : 'a -> 'a [@@zero_alloc] + is not included in + val f : 'a -> 'a [@@zero_alloc strict] + The former provides a weaker "zero_alloc" guarantee than the latter. +|}] + +(* CR ccasinghino: The below should work once we allow opt in signatures. *) +(* module type S_strict_opt = sig + * val[@zero_alloc strict opt] f : 'a -> 'a + * end + * + * module M_absent : S_strict_opt = struct + * let f x = x + * end + * + * [%%expect{| + * module type S_strict_opt = sig val f : 'a -> 'a [@@zero_alloc strict opt] end + * Lines 5-7, characters 33-3: + * 5 | .................................struct + * 6 | let f x = x + * 7 | end + * Error: Signature mismatch: + * Modules do not match: + * sig val f : 'a -> 'a end + * is not included in + * S_strict_opt + * Values do not match: + * val f : 'a -> 'a + * is not included in + * val f : 'a -> 'a [@@zero_alloc strict opt] + * The former provides a weaker "zero_alloc" guarantee than the latter. + * Hint: Add a "zero_alloc" attribute to the implementation. + * |}] + * + * module M_assume : S_strict_opt = struct + * let[@zero_alloc assume] f x = x + * end + * + * [%%expect{| + * Lines 1-3, characters 33-3: + * 1 | .................................struct + * 2 | let[@zero_alloc assume] f x = x + * 3 | end + * Error: Signature mismatch: + * Modules do not match: + * sig val f : 'a -> 'a [@@zero_alloc] end + * is not included in + * S_strict_opt + * Values do not match: + * val f : 'a -> 'a [@@zero_alloc] + * is not included in + * val f : 'a -> 'a [@@zero_alloc strict opt] + * The former provides a weaker "zero_alloc" guarantee than the latter. + * |}] + * + * module M_opt : S_strict_opt = struct + * let[@zero_alloc opt] f x = x + * end + * + * [%%expect{| + * Lines 1-3, characters 30-3: + * 1 | ..............................struct + * 2 | let[@zero_alloc opt] f x = x + * 3 | end + * Error: Signature mismatch: + * Modules do not match: + * sig val f : 'a -> 'a [@@zero_alloc opt] end + * is not included in + * S_strict_opt + * Values do not match: + * val f : 'a -> 'a [@@zero_alloc opt] + * is not included in + * val f : 'a -> 'a [@@zero_alloc strict opt] + * The former provides a weaker "zero_alloc" guarantee than the latter. + * |}] + * + * module M_assume_nrn : S_strict_opt = struct + * let[@zero_alloc assume never_returns_normally] f x = x + * end + * + * [%%expect{| + * Lines 1-3, characters 37-3: + * 1 | .....................................struct + * 2 | let[@zero_alloc assume never_returns_normally] f x = x + * 3 | end + * Error: Signature mismatch: + * Modules do not match: + * sig val f : 'a -> 'a [@@zero_alloc] end + * is not included in + * S_strict_opt + * Values do not match: + * val f : 'a -> 'a [@@zero_alloc] + * is not included in + * val f : 'a -> 'a [@@zero_alloc strict opt] + * The former provides a weaker "zero_alloc" guarantee than the latter. + * |}] *) + +(*************************************************************************) +(* Test 4: Requires valid arity, inferred or provided, without expansion *) + +module type S_non_func_int = sig + val[@zero_alloc] x : int +end +[%%expect{| +Line 2, characters 2-26: +2 | val[@zero_alloc] x : int + ^^^^^^^^^^^^^^^^^^^^^^^^ +Error: In signatures, zero_alloc is only supported on function declarations. + Found no arrows in this declaration's type. + Hint: You can write "[@zero_alloc arity n]" to specify the arity + of an alias (for n > 0). +|}] + +module type S_non_func_alias = sig + type t = string + val[@zero_alloc] x : t +end +[%%expect{| +Line 3, characters 2-24: +3 | val[@zero_alloc] x : t + ^^^^^^^^^^^^^^^^^^^^^^ +Error: In signatures, zero_alloc is only supported on function declarations. + Found no arrows in this declaration's type. + Hint: You can write "[@zero_alloc arity n]" to specify the arity + of an alias (for n > 0). +|}] + +module type S_func_alias = sig + type t = int -> int + type s = t + val[@zero_alloc] x : s +end +[%%expect{| +Line 4, characters 2-24: +4 | val[@zero_alloc] x : s + ^^^^^^^^^^^^^^^^^^^^^^ +Error: In signatures, zero_alloc is only supported on function declarations. + Found no arrows in this declaration's type. + Hint: You can write "[@zero_alloc arity n]" to specify the arity + of an alias (for n > 0). +|}] + +module type S_func_alias = sig + type t = int -> int + val[@zero_alloc arity 0] x : t +end +[%%expect{| +Line 3, characters 2-32: +3 | val[@zero_alloc arity 0] x : t + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Error: In signatures, zero_alloc is only supported on function declarations. + Found no arrows in this declaration's type. + Hint: You can write "[@zero_alloc arity n]" to specify the arity + of an alias (for n > 0). +|}] + +module type S_arity_0 = sig + val[@zero_alloc arity 0] f : int -> int +end +[%%expect{| +Line 2, characters 2-41: +2 | val[@zero_alloc arity 0] f : int -> int + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Error: Invalid zero_alloc attribute: arity must be greater than 0. +|}] + +module type S_arity_negative = sig + val[@zero_alloc arity (-1)] f : int -> int +end +[%%expect{| +Line 2, characters 2-44: +2 | val[@zero_alloc arity (-1)] f : int -> int + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Error: Invalid zero_alloc attribute: arity must be greater than 0. +|}] + +(********************************************) +(* Test 5: impl arity must match intf arity *) + +type t_two_args = int -> int -> int + +module type S_arity_int_int = sig + val[@zero_alloc] f : int -> int -> int +end + +module M_int_int_params : S_arity_int_int = struct + let[@zero_alloc] f x y = x + y +end + +module M_int_param_int_case : S_arity_int_int = struct + let[@zero_alloc] f x = + function 0 -> x + x + | n -> x + n +end + +module M_nested_functions : S_arity_int_int = struct + let[@zero_alloc] f x = fun y -> x + y +end +[%%expect{| +type t_two_args = int -> int -> int +module type S_arity_int_int = + sig val f : int -> int -> int [@@zero_alloc] end +module M_int_int_params : S_arity_int_int +module M_int_param_int_case : S_arity_int_int +Lines 17-19, characters 46-3: +17 | ..............................................struct +18 | let[@zero_alloc] f x = fun y -> x + y +19 | end +Error: Signature mismatch: + Modules do not match: + sig val f : int -> int -> int [@@zero_alloc arity 1] end + is not included in + S_arity_int_int + Values do not match: + val f : int -> int -> int [@@zero_alloc arity 1] + is not included in + val f : int -> int -> int [@@zero_alloc] + zero_alloc arity mismatch: + When using "zero_alloc" in a signature, the syntactic arity of + the implementation must match the function type in the interface. + Here the former is 1 and the latter is 2. +|}] + +module type S_alias_no_arity = sig + val[@zero_alloc] f : t_two_args +end +[%%expect{| +Line 2, characters 2-33: +2 | val[@zero_alloc] f : t_two_args + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Error: In signatures, zero_alloc is only supported on function declarations. + Found no arrows in this declaration's type. + Hint: You can write "[@zero_alloc arity n]" to specify the arity + of an alias (for n > 0). +|}] + +module type S_alias_explicit_arity_2 = sig + val[@zero_alloc arity 2] f : t_two_args +end + +module M_good_explicit_arity_2 : S_alias_explicit_arity_2 = struct + let[@zero_alloc] f x y = x + y +end +[%%expect{| +module type S_alias_explicit_arity_2 = + sig val f : t_two_args [@@zero_alloc arity 2] end +module M_good_explicit_arity_2 : S_alias_explicit_arity_2 +|}] + +module M_bad_explicit_arity_2 : S_alias_explicit_arity_2 = struct + let[@zero_alloc] f x = fun y -> x + y +end +[%%expect{| +Lines 1-3, characters 59-3: +1 | ...........................................................struct +2 | let[@zero_alloc] f x = fun y -> x + y +3 | end +Error: Signature mismatch: + Modules do not match: + sig val f : int -> int -> int [@@zero_alloc arity 1] end + is not included in + S_alias_explicit_arity_2 + Values do not match: + val f : int -> int -> int [@@zero_alloc arity 1] + is not included in + val f : t_two_args [@@zero_alloc arity 2] + zero_alloc arity mismatch: + When using "zero_alloc" in a signature, the syntactic arity of + the implementation must match the function type in the interface. + Here the former is 1 and the latter is 2. +|}] + +module type S_alias_explicit_arity_1 = sig + val[@zero_alloc arity 1] f : t_two_args +end + +module M_bad_explicit_arity_1 : S_alias_explicit_arity_1 = struct + let[@zero_alloc] f x y = x + y +end +[%%expect{| +module type S_alias_explicit_arity_1 = + sig val f : t_two_args [@@zero_alloc arity 1] end +Lines 5-7, characters 59-3: +5 | ...........................................................struct +6 | let[@zero_alloc] f x y = x + y +7 | end +Error: Signature mismatch: + Modules do not match: + sig val f : int -> int -> int [@@zero_alloc] end + is not included in + S_alias_explicit_arity_1 + Values do not match: + val f : int -> int -> int [@@zero_alloc] + is not included in + val f : t_two_args [@@zero_alloc arity 1] + zero_alloc arity mismatch: + When using "zero_alloc" in a signature, the syntactic arity of + the implementation must match the function type in the interface. + Here the former is 2 and the latter is 1. +|}] + +module M_good_explicit_arity_1 : S_alias_explicit_arity_1 = struct + let[@zero_alloc] f x = fun y -> x + y +end +[%%expect{| +module M_good_explicit_arity_1 : S_alias_explicit_arity_1 +|}] + +(******************************************************************) +(* Test 6: we don't update the arity as a result of substitutions *) + +module type S_abstract = sig + type t + val[@zero_alloc] f : int -> t +end + +module M_abstract : S_abstract = struct + type t = int + let[@zero_alloc] f x = x +end + +module type S_subst = S_abstract with type t = int -> int + +module M_subst_good : S_subst = struct + type t = int -> int + let[@zero_alloc] f x = fun y -> x + y +end + +module M_subst_bad : S_subst = struct + type t = int -> int + let[@zero_alloc] f x y = x + y +end +[%%expect{| +module type S_abstract = sig type t val f : int -> t [@@zero_alloc] end +module M_abstract : S_abstract +module type S_subst = + sig type t = int -> int val f : int -> t [@@zero_alloc] end +module M_subst_good : S_subst +Lines 18-21, characters 32-3: +18 | ................................struct +19 | type t = int -> int +20 | let[@zero_alloc] f x y = x + y +21 | end +Error: Signature mismatch: + Modules do not match: + sig type t = int -> int val f : int -> int -> int [@@zero_alloc] end + is not included in + S_subst + Values do not match: + val f : int -> int -> int [@@zero_alloc] + is not included in + val f : int -> t [@@zero_alloc] + zero_alloc arity mismatch: + When using "zero_alloc" in a signature, the syntactic arity of + the implementation must match the function type in the interface. + Here the former is 2 and the latter is 1. +|}] + +(********************************************************************) +(* Test 7: A practicalish example of a non-obvious zero_alloc arity *) + +module type S_fun_in_fun = sig + val[@zero_alloc arity 2] f : int -> int -> int -> int*int +end + +(* The expected behavior from the backend analysis for the two funtions below + is checked in [tests/backend/checkmach/test_arity.ml] *) + +module M_fun_in_fun_good : S_fun_in_fun = struct + let[@zero_alloc] f x y = + if x = y+1 then fun z -> (z,z) else fun z -> (z,0) +end + +module M_fun_in_fun_bad : S_fun_in_fun = struct + let[@zero_alloc] f x y z = + if x = y+1 then (z,z) else (z,0) +end + +[%%expect{| +module type S_fun_in_fun = + sig val f : int -> int -> int -> int * int [@@zero_alloc arity 2] end +module M_fun_in_fun_good : S_fun_in_fun +Lines 13-16, characters 41-3: +13 | .........................................struct +14 | let[@zero_alloc] f x y z = +15 | if x = y+1 then (z,z) else (z,0) +16 | end +Error: Signature mismatch: + Modules do not match: + sig val f : int -> int -> int -> int * int [@@zero_alloc] end + is not included in + S_fun_in_fun + Values do not match: + val f : int -> int -> int -> int * int [@@zero_alloc] + is not included in + val f : int -> int -> int -> int * int [@@zero_alloc arity 2] + zero_alloc arity mismatch: + When using "zero_alloc" in a signature, the syntactic arity of + the implementation must match the function type in the interface. + Here the former is 3 and the latter is 2. +|}] + +(*************************************) +(* Test 8: Parsing "arity n" works *) + +(* CR ccasinghino: when we have support for opt, add tests for all the + combinations here. *) +module type S_arity_42 = sig + val[@zero_alloc arity 42] f : int -> int +end + +module type S_arity_42_strict = sig + val[@zero_alloc arity 42 strict] f : int -> int +end + +module type S_strict_arity_42 = sig + val[@zero_alloc strict arity 42] f : int -> int +end + +[%%expect{| +module type S_arity_42 = sig val f : int -> int [@@zero_alloc arity 42] end +module type S_arity_42_strict = + sig val f : int -> int [@@zero_alloc strict arity 42] end +module type S_strict_arity_42 = + sig val f : int -> int [@@zero_alloc strict arity 42] end +|}] + +(**************************************************) +(* Test 9: arity n in structures gives warning 47 *) + +module M_struct_arity_let_1 = struct + let[@zero_alloc arity 2] f x y = x + y +end + +[%%expect{| +Line 2, characters 7-17: +2 | let[@zero_alloc arity 2] f x y = x + y + ^^^^^^^^^^ +Warning 47 [attribute-payload]: illegal payload for attribute 'zero_alloc'. +The "arity" field is only supported on "zero_alloc" in signatures + +module M_struct_arity_let_1 : + sig val f : int -> int -> int [@@zero_alloc] end +|}] + +module M_struct_arity_let_2 = struct + let[@zero_alloc arity 2] f = fun x y -> x + y +end +[%%expect{| +Line 2, characters 7-17: +2 | let[@zero_alloc arity 2] f = fun x y -> x + y + ^^^^^^^^^^ +Warning 47 [attribute-payload]: illegal payload for attribute 'zero_alloc'. +The "arity" field is only supported on "zero_alloc" in signatures + +module M_struct_arity_let_2 : + sig val f : int -> int -> int [@@zero_alloc] end +|}] + +module M_struct_arity_let_fun_1 = struct + let f = fun[@zero_alloc arity 2] x y -> x + y +end +[%%expect{| +Line 2, characters 15-25: +2 | let f = fun[@zero_alloc arity 2] x y -> x + y + ^^^^^^^^^^ +Warning 47 [attribute-payload]: illegal payload for attribute 'zero_alloc'. +The "arity" field is only supported on "zero_alloc" in signatures + +module M_struct_arity_let_fun_1 : + sig val f : int -> int -> int [@@zero_alloc] end +|}] + +module M_struct_arity_let_fun_2 = struct + let f x = + if x = 42 then + fun[@zero_alloc arity 1] y -> y + else + fun y -> y + 1 +end +[%%expect{| +Line 4, characters 11-21: +4 | fun[@zero_alloc arity 1] y -> y + ^^^^^^^^^^ +Warning 47 [attribute-payload]: illegal payload for attribute 'zero_alloc'. +The "arity" field is only supported on "zero_alloc" in signatures + +module M_struct_arity_let_fun_2 : sig val f : int -> int -> int end +|}] + +(*********************************) +(* Test 10: module type of works *) + +module M_base_for_mto = struct + let[@zero_alloc] f x = x+1 +end + +module type S_base_mto = module type of M_base_for_mto + +module M_mto_base_good : S_base_mto = struct + let[@zero_alloc] f x = x + 2 +end + +module M_mto_base_bad : S_base_mto = struct + let f x = x + 3 +end + +[%%expect{| +module M_base_for_mto : sig val f : int -> int [@@zero_alloc] end +module type S_base_mto = sig val f : int -> int [@@zero_alloc] end +module M_mto_base_good : S_base_mto +Lines 11-13, characters 37-3: +11 | .....................................struct +12 | let f x = x + 3 +13 | end +Error: Signature mismatch: + Modules do not match: + sig val f : int -> int end + is not included in + S_base_mto + Values do not match: + val f : int -> int + is not included in + val f : int -> int [@@zero_alloc] + The former provides a weaker "zero_alloc" guarantee than the latter. + Hint: Add a "zero_alloc" attribute (without opt) to the implementation. +|}] + +module M_strict_for_mto = struct + let[@zero_alloc strict] f x = x+1 +end + +module type S_strict_mto = module type of M_strict_for_mto + +module M_mto_strict_good : S_strict_mto = struct + let[@zero_alloc strict] f x = x + 2 +end + +module M_mto_strict_bad : S_strict_mto = struct + let[@zero_alloc] f x = x + 3 +end + +[%%expect{| +module M_strict_for_mto : sig val f : int -> int [@@zero_alloc strict] end +module type S_strict_mto = sig val f : int -> int [@@zero_alloc strict] end +module M_mto_strict_good : S_strict_mto +Lines 11-13, characters 41-3: +11 | .........................................struct +12 | let[@zero_alloc] f x = x + 3 +13 | end +Error: Signature mismatch: + Modules do not match: + sig val f : int -> int [@@zero_alloc] end + is not included in + S_strict_mto + Values do not match: + val f : int -> int [@@zero_alloc] + is not included in + val f : int -> int [@@zero_alloc strict] + The former provides a weaker "zero_alloc" guarantee than the latter. +|}] + +(* You can't sneakily get never_returns_normally or assume in a signature with + module type of, but nice try. These tests rely on the fact that the + printer would show that information, but indeed it would (see printtyp). + + (At the moment the backend doesn't allow for checking never_return_normally, + but it wouldn't be hard to add, and then we could revisit this). *) +module M_assume_for_mto = struct + let[@zero_alloc assume] f x = (x+1,x+2) +end + +module type S_no_assume = module type of M_assume_for_mto + +module M_nrn_for_mto = struct + let[@zero_alloc assume never_returns_normally] f x = (x+1,x+2) +end + +module type S_no_nrn = module type of M_nrn_for_mto + +[%%expect{| +module M_assume_for_mto : sig val f : int -> int * int [@@zero_alloc] end +module type S_no_assume = sig val f : int -> int * int [@@zero_alloc] end +module M_nrn_for_mto : sig val f : int -> int * int [@@zero_alloc] end +module type S_no_nrn = sig val f : int -> int * int [@@zero_alloc] end +|}] diff --git a/testsuite/tests/typing-zero-alloc/signatures_native.ml b/testsuite/tests/typing-zero-alloc/signatures_native.ml new file mode 100644 index 00000000000..e9c76c22033 --- /dev/null +++ b/testsuite/tests/typing-zero-alloc/signatures_native.ml @@ -0,0 +1,15 @@ +(* TEST + native; +*) + +(* This test is just checking that zero_alloc attributes in signatures don't + result in warning 199 when compiling to native code (which was a bug in the + initial implementation. *) + +module type S = sig + type t + + val[@zero_alloc] f : int -> int + + val[@zero_alloc arity 3] g : t +end diff --git a/testsuite/tests/warnings/w53.compilers.reference b/testsuite/tests/warnings/w53.compilers.reference index 2fe8139d56e..79e8628b67d 100644 --- a/testsuite/tests/warnings/w53.compilers.reference +++ b/testsuite/tests/warnings/w53.compilers.reference @@ -1083,132 +1083,122 @@ File "w53.ml", line 479, characters 19-29: ^^^^^^^^^^ Warning 53 [misplaced-attribute]: the "zero_alloc" attribute cannot appear in this context -File "w53.ml", line 480, characters 17-27: -480 | val x : int [@@zero_alloc] (* rejected *) - ^^^^^^^^^^ -Warning 53 [misplaced-attribute]: the "zero_alloc" attribute cannot appear in this context - -File "w53.ml", line 481, characters 24-34: -481 | val f : int -> int [@@zero_alloc] (* rejected *) - ^^^^^^^^^^ -Warning 53 [misplaced-attribute]: the "zero_alloc" attribute cannot appear in this context - -File "w53.ml", line 483, characters 22-32: -483 | external y : (int [@zero_alloc]) -> (int [@zero_alloc]) = "x" (* rejected *) +File "w53.ml", line 482, characters 22-32: +482 | external y : (int [@zero_alloc]) -> (int [@zero_alloc]) = "x" (* rejected *) ^^^^^^^^^^ Warning 53 [misplaced-attribute]: the "zero_alloc" attribute cannot appear in this context -File "w53.ml", line 483, characters 45-55: -483 | external y : (int [@zero_alloc]) -> (int [@zero_alloc]) = "x" (* rejected *) +File "w53.ml", line 482, characters 45-55: +482 | external y : (int [@zero_alloc]) -> (int [@zero_alloc]) = "x" (* rejected *) ^^^^^^^^^^ Warning 53 [misplaced-attribute]: the "zero_alloc" attribute cannot appear in this context -File "w53.ml", line 484, characters 39-49: -484 | external z : int -> int = "x" "y" [@@zero_alloc] (* rejected *) +File "w53.ml", line 483, characters 39-49: +483 | external z : int -> int = "x" "y" [@@zero_alloc] (* rejected *) ^^^^^^^^^^ Warning 53 [misplaced-attribute]: the "zero_alloc" attribute cannot appear in this context -File "w53.ml", line 485, characters 12-22: -485 | external[@zero_alloc] q : int -> int = "x" "y" (* rejected *) +File "w53.ml", line 484, characters 12-22: +484 | external[@zero_alloc] q : int -> int = "x" "y" (* rejected *) ^^^^^^^^^^ Warning 53 [misplaced-attribute]: the "zero_alloc" attribute cannot appear in this context -File "w53.ml", line 487, characters 9-19: -487 | class[@zero_alloc] c : (* rejected *) +File "w53.ml", line 486, characters 9-19: +486 | class[@zero_alloc] c : (* rejected *) ^^^^^^^^^^ Warning 53 [misplaced-attribute]: the "zero_alloc" attribute cannot appear in this context -File "w53.ml", line 489, characters 11-21: -489 | val[@zero_alloc] foo : int * int (* rejected *) +File "w53.ml", line 488, characters 11-21: +488 | val[@zero_alloc] foo : int * int (* rejected *) ^^^^^^^^^^ Warning 53 [misplaced-attribute]: the "zero_alloc" attribute cannot appear in this context -File "w53.ml", line 490, characters 11-21: -490 | val[@zero_alloc] bar : int -> int (* rejected *) +File "w53.ml", line 489, characters 11-21: +489 | val[@zero_alloc] bar : int -> int (* rejected *) ^^^^^^^^^^ Warning 53 [misplaced-attribute]: the "zero_alloc" attribute cannot appear in this context -File "w53.ml", line 491, characters 14-24: -491 | method[@zero_alloc] baz : int * int (* rejected *) +File "w53.ml", line 490, characters 14-24: +490 | method[@zero_alloc] baz : int * int (* rejected *) ^^^^^^^^^^ Warning 53 [misplaced-attribute]: the "zero_alloc" attribute cannot appear in this context -File "w53.ml", line 492, characters 14-24: -492 | method[@zero_alloc] boz : int -> int (* rejected *) +File "w53.ml", line 491, characters 14-24: +491 | method[@zero_alloc] boz : int -> int (* rejected *) ^^^^^^^^^^ Warning 53 [misplaced-attribute]: the "zero_alloc" attribute cannot appear in this context -File "w53.ml", line 497, characters 21-31: -497 | type 'a t1 = 'a [@@zero_alloc] (* rejected *) +File "w53.ml", line 496, characters 21-31: +496 | type 'a t1 = 'a [@@zero_alloc] (* rejected *) ^^^^^^^^^^ Warning 53 [misplaced-attribute]: the "zero_alloc" attribute cannot appear in this context -File "w53.ml", line 498, characters 19-29: -498 | type s1 = Foo1 [@zero_alloc] (* rejected *) +File "w53.ml", line 497, characters 19-29: +497 | type s1 = Foo1 [@zero_alloc] (* rejected *) ^^^^^^^^^^ Warning 53 [misplaced-attribute]: the "zero_alloc" attribute cannot appear in this context -File "w53.ml", line 499, characters 22-32: -499 | let x : int = 42 [@@zero_alloc] (* rejected *) +File "w53.ml", line 498, characters 22-32: +498 | let x : int = 42 [@@zero_alloc] (* rejected *) ^^^^^^^^^^ Warning 53 [misplaced-attribute]: the "zero_alloc" attribute cannot appear in this context -File "w53.ml", line 501, characters 7-17: -501 | let[@zero_alloc] w = 42 (* rejected *) +File "w53.ml", line 500, characters 7-17: +500 | let[@zero_alloc] w = 42 (* rejected *) ^^^^^^^^^^ Warning 53 [misplaced-attribute]: the "zero_alloc" attribute cannot appear in this context -File "w53.ml", line 505, characters 22-32: -505 | external y : (int [@zero_alloc]) -> (int [@zero_alloc]) = "x" (* rejected *) +File "w53.ml", line 504, characters 22-32: +504 | external y : (int [@zero_alloc]) -> (int [@zero_alloc]) = "x" (* rejected *) ^^^^^^^^^^ Warning 53 [misplaced-attribute]: the "zero_alloc" attribute cannot appear in this context -File "w53.ml", line 505, characters 45-55: -505 | external y : (int [@zero_alloc]) -> (int [@zero_alloc]) = "x" (* rejected *) +File "w53.ml", line 504, characters 45-55: +504 | external y : (int [@zero_alloc]) -> (int [@zero_alloc]) = "x" (* rejected *) ^^^^^^^^^^ Warning 53 [misplaced-attribute]: the "zero_alloc" attribute cannot appear in this context -File "w53.ml", line 506, characters 39-49: -506 | external z : int -> int = "x" "y" [@@zero_alloc] (* rejected *) +File "w53.ml", line 505, characters 39-49: +505 | external z : int -> int = "x" "y" [@@zero_alloc] (* rejected *) ^^^^^^^^^^ Warning 53 [misplaced-attribute]: the "zero_alloc" attribute cannot appear in this context -File "w53.ml", line 507, characters 12-22: -507 | external[@zero_alloc] q : int -> int = "x" "y" (* rejected *) +File "w53.ml", line 506, characters 12-22: +506 | external[@zero_alloc] q : int -> int = "x" "y" (* rejected *) ^^^^^^^^^^ Warning 53 [misplaced-attribute]: the "zero_alloc" attribute cannot appear in this context -File "w53.ml", line 509, characters 9-19: -509 | class[@zero_alloc] foo _y = (* rejected *) +File "w53.ml", line 508, characters 9-19: +508 | class[@zero_alloc] foo _y = (* rejected *) ^^^^^^^^^^ Warning 53 [misplaced-attribute]: the "zero_alloc" attribute cannot appear in this context -File "w53.ml", line 511, characters 10-20: -511 | (fun[@zero_alloc] z -> (* rejected *) +File "w53.ml", line 510, characters 10-20: +510 | (fun[@zero_alloc] z -> (* rejected *) ^^^^^^^^^^ Warning 53 [misplaced-attribute]: the "zero_alloc" attribute cannot appear in this context -File "w53.ml", line 513, characters 11-21: -513 | val[@zero_alloc] bar = (4, 5) (* rejected *) +File "w53.ml", line 512, characters 11-21: +512 | val[@zero_alloc] bar = (4, 5) (* rejected *) ^^^^^^^^^^ Warning 53 [misplaced-attribute]: the "zero_alloc" attribute cannot appear in this context -File "w53.ml", line 515, characters 14-24: -515 | method[@zero_alloc] baz x = (f (z+10), x+1) (* rejected *) +File "w53.ml", line 514, characters 14-24: +514 | method[@zero_alloc] baz x = (f (z+10), x+1) (* rejected *) ^^^^^^^^^^ Warning 53 [misplaced-attribute]: the "zero_alloc" attribute cannot appear in this context -File "w53.ml", line 527, characters 14-24: -527 | ((boz x)[@zero_alloc assume]) (* rejected *) +File "w53.ml", line 526, characters 14-24: +526 | ((boz x)[@zero_alloc assume]) (* rejected *) ^^^^^^^^^^ Warning 53 [misplaced-attribute]: the "zero_alloc" attribute cannot appear in this context -File "w53.ml", line 532, characters 7-17: -532 | let[@zero_alloc assume] foo = (* rejected *) +File "w53.ml", line 531, characters 7-17: +531 | let[@zero_alloc assume] foo = (* rejected *) ^^^^^^^^^^ Warning 53 [misplaced-attribute]: the "zero_alloc" attribute cannot appear in this context -File "w53.ml", line 536, characters 7-17: -536 | let[@zero_alloc] bar = (* rejected *) +File "w53.ml", line 535, characters 7-17: +535 | let[@zero_alloc] bar = (* rejected *) ^^^^^^^^^^ Warning 53 [misplaced-attribute]: the "zero_alloc" attribute cannot appear in this context diff --git a/testsuite/tests/warnings/w53.ml b/testsuite/tests/warnings/w53.ml index f4299588f59..8c9cbadcdff 100644 --- a/testsuite/tests/warnings/w53.ml +++ b/testsuite/tests/warnings/w53.ml @@ -477,8 +477,7 @@ end module type TestZeroAllocSig = sig type 'a t1 = 'a [@@zero_alloc] (* rejected *) type s1 = Foo1 [@zero_alloc] (* rejected *) - val x : int [@@zero_alloc] (* rejected *) - val f : int -> int [@@zero_alloc] (* rejected *) + val f : int -> int [@@zero_alloc] (* accepted *) external y : (int [@zero_alloc]) -> (int [@zero_alloc]) = "x" (* rejected *) external z : int -> int = "x" "y" [@@zero_alloc] (* rejected *) diff --git a/testsuite/tests/warnings/w53_zero_alloc_all.compilers.reference b/testsuite/tests/warnings/w53_zero_alloc_all.compilers.reference index 58e0ac12e19..237da00852f 100644 --- a/testsuite/tests/warnings/w53_zero_alloc_all.compilers.reference +++ b/testsuite/tests/warnings/w53_zero_alloc_all.compilers.reference @@ -8,132 +8,122 @@ File "w53_zero_alloc_all.ml", line 20, characters 19-29: ^^^^^^^^^^ Warning 53 [misplaced-attribute]: the "zero_alloc" attribute cannot appear in this context -File "w53_zero_alloc_all.ml", line 21, characters 17-27: -21 | val x : int [@@zero_alloc] (* rejected *) - ^^^^^^^^^^ -Warning 53 [misplaced-attribute]: the "zero_alloc" attribute cannot appear in this context - -File "w53_zero_alloc_all.ml", line 22, characters 24-34: -22 | val f : int -> int [@@zero_alloc] (* rejected *) - ^^^^^^^^^^ -Warning 53 [misplaced-attribute]: the "zero_alloc" attribute cannot appear in this context - -File "w53_zero_alloc_all.ml", line 24, characters 22-32: -24 | external y : (int [@zero_alloc]) -> (int [@zero_alloc]) = "x" (* rejected *) +File "w53_zero_alloc_all.ml", line 23, characters 22-32: +23 | external y : (int [@zero_alloc]) -> (int [@zero_alloc]) = "x" (* rejected *) ^^^^^^^^^^ Warning 53 [misplaced-attribute]: the "zero_alloc" attribute cannot appear in this context -File "w53_zero_alloc_all.ml", line 24, characters 45-55: -24 | external y : (int [@zero_alloc]) -> (int [@zero_alloc]) = "x" (* rejected *) +File "w53_zero_alloc_all.ml", line 23, characters 45-55: +23 | external y : (int [@zero_alloc]) -> (int [@zero_alloc]) = "x" (* rejected *) ^^^^^^^^^^ Warning 53 [misplaced-attribute]: the "zero_alloc" attribute cannot appear in this context -File "w53_zero_alloc_all.ml", line 25, characters 39-49: -25 | external z : int -> int = "x" "y" [@@zero_alloc] (* rejected *) +File "w53_zero_alloc_all.ml", line 24, characters 39-49: +24 | external z : int -> int = "x" "y" [@@zero_alloc] (* rejected *) ^^^^^^^^^^ Warning 53 [misplaced-attribute]: the "zero_alloc" attribute cannot appear in this context -File "w53_zero_alloc_all.ml", line 26, characters 12-22: -26 | external[@zero_alloc] q : int -> int = "x" "y" (* rejected *) +File "w53_zero_alloc_all.ml", line 25, characters 12-22: +25 | external[@zero_alloc] q : int -> int = "x" "y" (* rejected *) ^^^^^^^^^^ Warning 53 [misplaced-attribute]: the "zero_alloc" attribute cannot appear in this context -File "w53_zero_alloc_all.ml", line 28, characters 9-19: -28 | class[@zero_alloc] c : (* rejected *) +File "w53_zero_alloc_all.ml", line 27, characters 9-19: +27 | class[@zero_alloc] c : (* rejected *) ^^^^^^^^^^ Warning 53 [misplaced-attribute]: the "zero_alloc" attribute cannot appear in this context -File "w53_zero_alloc_all.ml", line 30, characters 11-21: -30 | val[@zero_alloc] foo : int * int (* rejected *) +File "w53_zero_alloc_all.ml", line 29, characters 11-21: +29 | val[@zero_alloc] foo : int * int (* rejected *) ^^^^^^^^^^ Warning 53 [misplaced-attribute]: the "zero_alloc" attribute cannot appear in this context -File "w53_zero_alloc_all.ml", line 31, characters 11-21: -31 | val[@zero_alloc] bar : int -> int (* rejected *) +File "w53_zero_alloc_all.ml", line 30, characters 11-21: +30 | val[@zero_alloc] bar : int -> int (* rejected *) ^^^^^^^^^^ Warning 53 [misplaced-attribute]: the "zero_alloc" attribute cannot appear in this context -File "w53_zero_alloc_all.ml", line 32, characters 14-24: -32 | method[@zero_alloc] baz : int * int (* rejected *) +File "w53_zero_alloc_all.ml", line 31, characters 14-24: +31 | method[@zero_alloc] baz : int * int (* rejected *) ^^^^^^^^^^ Warning 53 [misplaced-attribute]: the "zero_alloc" attribute cannot appear in this context -File "w53_zero_alloc_all.ml", line 33, characters 14-24: -33 | method[@zero_alloc] boz : int -> int (* rejected *) +File "w53_zero_alloc_all.ml", line 32, characters 14-24: +32 | method[@zero_alloc] boz : int -> int (* rejected *) ^^^^^^^^^^ Warning 53 [misplaced-attribute]: the "zero_alloc" attribute cannot appear in this context -File "w53_zero_alloc_all.ml", line 38, characters 21-31: -38 | type 'a t1 = 'a [@@zero_alloc] (* rejected *) +File "w53_zero_alloc_all.ml", line 37, characters 21-31: +37 | type 'a t1 = 'a [@@zero_alloc] (* rejected *) ^^^^^^^^^^ Warning 53 [misplaced-attribute]: the "zero_alloc" attribute cannot appear in this context -File "w53_zero_alloc_all.ml", line 39, characters 19-29: -39 | type s1 = Foo1 [@zero_alloc] (* rejected *) +File "w53_zero_alloc_all.ml", line 38, characters 19-29: +38 | type s1 = Foo1 [@zero_alloc] (* rejected *) ^^^^^^^^^^ Warning 53 [misplaced-attribute]: the "zero_alloc" attribute cannot appear in this context -File "w53_zero_alloc_all.ml", line 40, characters 22-32: -40 | let x : int = 42 [@@zero_alloc] (* rejected *) +File "w53_zero_alloc_all.ml", line 39, characters 22-32: +39 | let x : int = 42 [@@zero_alloc] (* rejected *) ^^^^^^^^^^ Warning 53 [misplaced-attribute]: the "zero_alloc" attribute cannot appear in this context -File "w53_zero_alloc_all.ml", line 42, characters 7-17: -42 | let[@zero_alloc] w = 42 (* rejected *) +File "w53_zero_alloc_all.ml", line 41, characters 7-17: +41 | let[@zero_alloc] w = 42 (* rejected *) ^^^^^^^^^^ Warning 53 [misplaced-attribute]: the "zero_alloc" attribute cannot appear in this context -File "w53_zero_alloc_all.ml", line 46, characters 22-32: -46 | external y : (int [@zero_alloc]) -> (int [@zero_alloc]) = "x" (* rejected *) +File "w53_zero_alloc_all.ml", line 45, characters 22-32: +45 | external y : (int [@zero_alloc]) -> (int [@zero_alloc]) = "x" (* rejected *) ^^^^^^^^^^ Warning 53 [misplaced-attribute]: the "zero_alloc" attribute cannot appear in this context -File "w53_zero_alloc_all.ml", line 46, characters 45-55: -46 | external y : (int [@zero_alloc]) -> (int [@zero_alloc]) = "x" (* rejected *) +File "w53_zero_alloc_all.ml", line 45, characters 45-55: +45 | external y : (int [@zero_alloc]) -> (int [@zero_alloc]) = "x" (* rejected *) ^^^^^^^^^^ Warning 53 [misplaced-attribute]: the "zero_alloc" attribute cannot appear in this context -File "w53_zero_alloc_all.ml", line 47, characters 39-49: -47 | external z : int -> int = "x" "y" [@@zero_alloc] (* rejected *) +File "w53_zero_alloc_all.ml", line 46, characters 39-49: +46 | external z : int -> int = "x" "y" [@@zero_alloc] (* rejected *) ^^^^^^^^^^ Warning 53 [misplaced-attribute]: the "zero_alloc" attribute cannot appear in this context -File "w53_zero_alloc_all.ml", line 48, characters 12-22: -48 | external[@zero_alloc] q : int -> int = "x" "y" (* rejected *) +File "w53_zero_alloc_all.ml", line 47, characters 12-22: +47 | external[@zero_alloc] q : int -> int = "x" "y" (* rejected *) ^^^^^^^^^^ Warning 53 [misplaced-attribute]: the "zero_alloc" attribute cannot appear in this context -File "w53_zero_alloc_all.ml", line 50, characters 9-19: -50 | class[@zero_alloc] foo _y = (* rejected *) +File "w53_zero_alloc_all.ml", line 49, characters 9-19: +49 | class[@zero_alloc] foo _y = (* rejected *) ^^^^^^^^^^ Warning 53 [misplaced-attribute]: the "zero_alloc" attribute cannot appear in this context -File "w53_zero_alloc_all.ml", line 52, characters 10-20: -52 | (fun[@zero_alloc] z -> (* rejected *) +File "w53_zero_alloc_all.ml", line 51, characters 10-20: +51 | (fun[@zero_alloc] z -> (* rejected *) ^^^^^^^^^^ Warning 53 [misplaced-attribute]: the "zero_alloc" attribute cannot appear in this context -File "w53_zero_alloc_all.ml", line 54, characters 11-21: -54 | val[@zero_alloc] bar = (4, 5) (* rejected *) +File "w53_zero_alloc_all.ml", line 53, characters 11-21: +53 | val[@zero_alloc] bar = (4, 5) (* rejected *) ^^^^^^^^^^ Warning 53 [misplaced-attribute]: the "zero_alloc" attribute cannot appear in this context -File "w53_zero_alloc_all.ml", line 56, characters 14-24: -56 | method[@zero_alloc] baz x = (f (z+10), x+1) (* rejected *) +File "w53_zero_alloc_all.ml", line 55, characters 14-24: +55 | method[@zero_alloc] baz x = (f (z+10), x+1) (* rejected *) ^^^^^^^^^^ Warning 53 [misplaced-attribute]: the "zero_alloc" attribute cannot appear in this context -File "w53_zero_alloc_all.ml", line 68, characters 14-24: -68 | ((boz x)[@zero_alloc assume]) (* rejected *) +File "w53_zero_alloc_all.ml", line 67, characters 14-24: +67 | ((boz x)[@zero_alloc assume]) (* rejected *) ^^^^^^^^^^ Warning 53 [misplaced-attribute]: the "zero_alloc" attribute cannot appear in this context -File "w53_zero_alloc_all.ml", line 73, characters 7-17: -73 | let[@zero_alloc assume] foo = (* rejected *) +File "w53_zero_alloc_all.ml", line 72, characters 7-17: +72 | let[@zero_alloc assume] foo = (* rejected *) ^^^^^^^^^^ Warning 53 [misplaced-attribute]: the "zero_alloc" attribute cannot appear in this context -File "w53_zero_alloc_all.ml", line 77, characters 7-17: -77 | let[@zero_alloc] bar = (* rejected *) +File "w53_zero_alloc_all.ml", line 76, characters 7-17: +76 | let[@zero_alloc] bar = (* rejected *) ^^^^^^^^^^ Warning 53 [misplaced-attribute]: the "zero_alloc" attribute cannot appear in this context diff --git a/testsuite/tests/warnings/w53_zero_alloc_all.ml b/testsuite/tests/warnings/w53_zero_alloc_all.ml index 16a5c737395..84e49a4a6e3 100644 --- a/testsuite/tests/warnings/w53_zero_alloc_all.ml +++ b/testsuite/tests/warnings/w53_zero_alloc_all.ml @@ -18,8 +18,7 @@ module type TestZeroAllocSig = sig type 'a t1 = 'a [@@zero_alloc] (* rejected *) type s1 = Foo1 [@zero_alloc] (* rejected *) - val x : int [@@zero_alloc] (* rejected *) - val f : int -> int [@@zero_alloc] (* rejected *) + val f : int -> int [@@zero_alloc] (* accepted *) external y : (int [@zero_alloc]) -> (int [@zero_alloc]) = "x" (* rejected *) external z : int -> int = "x" "y" [@@zero_alloc] (* rejected *) diff --git a/toplevel/native/topeval.ml b/toplevel/native/topeval.ml index c4ef03b4351..26afa34abba 100644 --- a/toplevel/native/topeval.ml +++ b/toplevel/native/topeval.ml @@ -132,7 +132,8 @@ let name_expression ~loc ~attrs sort exp = val_kind = Val_reg; val_loc = loc; val_attributes = attrs; - val_uid = Uid.internal_not_actually_unique; } + val_uid = Uid.internal_not_actually_unique; + val_zero_alloc = Default_check } in let sg = [Sig_value(id, vd, Exported)] in let pat = diff --git a/typing/includecore.ml b/typing/includecore.ml index 4c1236d05f5..55a90ed81d9 100644 --- a/typing/includecore.ml +++ b/typing/includecore.ml @@ -22,6 +22,8 @@ open Typedtree type position = Errortrace.position = First | Second +module ZA = Zero_alloc_utils + (* Inclusion between value descriptions *) type primitive_mismatch = @@ -40,6 +42,8 @@ type value_mismatch = | Primitive_mismatch of primitive_mismatch | Not_a_primitive | Type of Errortrace.moregen_error + | Zero_alloc of { missing_entirely : bool } + | Zero_alloc_arity of int * int exception Dont_match of value_mismatch @@ -86,6 +90,70 @@ let primitive_descriptions pd1 pd2 = else native_repr_args pd1.prim_native_repr_args pd2.prim_native_repr_args +let zero_alloc za1 za2 = + (* The core of the check here is that we translate both attributes into the + abstract domain and use the existing inclusion check from there, ensuring + what we do in the typechecker matches the backend. + + There are a few additional details: + + - [opt] is not captured by the abstract domain, so we need a special check + for it. But it doesn't interact at all with the abstract domain - it's + just about whether or not the check happens - so this special check can + be fully separate. + - [arity] is also not captured by the abstract domain - it exists only for + use here, in typechecking. If the arities do not match, we issue an + error. It's essential for the soundness of the way we (will, in the next + PR) use zero_alloc in signatures that the apparent arity of the type in + the signature matches the syntactic arity of the function. + - [ignore] can not appear in zero_alloc attributes in signatures, and is + erased from structure items when computing their signature, so we don't + need to consider it here. + *) + let open Builtin_attributes in + (* abstract domain check *) + let abstract_value za = + match za with + | Default_check | Ignore_assert_all _ -> ZA.Assume_info.Value.top () + | Check { strict; _ } -> + ZA.Assume_info.Value.of_annotation ~strict ~never_returns_normally:false + | Assume { strict; never_returns_normally } -> + ZA.Assume_info.Value.of_annotation ~strict ~never_returns_normally + in + let v1 = abstract_value za1 in + let v2 = abstract_value za2 in + if not (ZA.Assume_info.Value.lessequal v1 v2) then + begin let missing_entirely = + match za1 with + | Default_check -> true + | Ignore_assert_all _ | Check _ | Assume _ -> false + in + raise (Dont_match (Zero_alloc {missing_entirely})) + end; + (* opt check *) + begin match za1, za2 with + | Check { opt = opt1; _ }, Check { opt = opt2; _ } -> + if opt1 && not opt2 then + raise (Dont_match (Zero_alloc {missing_entirely = false})) + | (Check _ | Default_check | Assume _ | Ignore_assert_all _), _ -> () + end; + (* arity check *) + let get_arity = function + | Check { arity; _ } | Assume { arity; _ } -> Some arity + | Default_check | Ignore_assert_all _ -> None + in + match get_arity za1, get_arity za2 with + | Some arity1, Some arity2 -> + (* Check *) + if not (arity1 = arity2) then + raise (Dont_match (Zero_alloc_arity (arity1, arity2))) + | Some _, None -> () + (* Forgetting zero_alloc info is fine *) + | None, Some _ -> + (* Fabricating it is not, but earlier cases should have ruled this out *) + Misc.fatal_error "Includecore.check_attributes" + | None, None -> () + let value_descriptions ~loc env name (vd1 : Types.value_description) (vd2 : Types.value_description) = @@ -95,6 +163,7 @@ let value_descriptions ~loc env name loc vd1.val_attributes vd2.val_attributes name; + zero_alloc vd1.val_zero_alloc vd2.val_zero_alloc; match vd1.val_kind with | Val_prim p1 -> begin match vd2.val_kind with @@ -303,6 +372,17 @@ let report_value_mismatch first second env ppf err = Printtyp.report_moregen_error ppf Type_scheme env trace (fun ppf -> Format.fprintf ppf "The type") (fun ppf -> Format.fprintf ppf "is not compatible with the type") + | Zero_alloc { missing_entirely } -> + pr "The former provides a weaker \"zero_alloc\" guarantee than the latter."; + if missing_entirely then + pr "@ Hint: Add a \"zero_alloc\" attribute (without opt) to the \ + implementation." + | Zero_alloc_arity (n1, n2) -> + pr "zero_alloc arity mismatch:@ \ + When using \"zero_alloc\" in a signature, the syntactic arity of@ \ + the implementation must match the function type in the interface.@ \ + Here the former is %d and the latter is %d." + n1 n2 let report_type_inequality env ppf err = Printtyp.report_equality_error ppf Type_scheme env err diff --git a/typing/includecore.mli b/typing/includecore.mli index 055c8467967..aac298595de 100644 --- a/typing/includecore.mli +++ b/typing/includecore.mli @@ -36,6 +36,8 @@ type value_mismatch = | Primitive_mismatch of primitive_mismatch | Not_a_primitive | Type of Errortrace.moregen_error + | Zero_alloc of { missing_entirely : bool } + | Zero_alloc_arity of int * int exception Dont_match of value_mismatch diff --git a/typing/printtyp.ml b/typing/printtyp.ml index c3b42d99bde..d1c3b1f529f 100644 --- a/typing/printtyp.ml +++ b/typing/printtyp.ml @@ -1980,11 +1980,43 @@ let tree_of_value_description id decl = (* Important: process the fvs *after* the type; tree_of_type_scheme resets the naming context *) let qtvs = extract_qtvs [decl.val_type] in + let apparent_arity = + let rec count n typ = + match get_desc typ with + | Tarrow (_,_,typ,_) -> count (n+1) typ + | _ -> n + in + count 0 decl.val_type + in + let attrs = + match decl.val_zero_alloc with + | Default_check | Ignore_assert_all _ -> [] + | Check { strict; opt; arity; _ } -> + [{ oattr_name = + String.concat "" + ["zero_alloc"; + if strict then " strict" else ""; + if opt then " opt" else ""; + if arity = apparent_arity then "" else + Printf.sprintf " arity %d" arity; + ] }] + | Assume { strict; never_returns_normally; arity; _ } -> + [{ oattr_name = + String.concat "" + ["zero_alloc assume"; + if strict then " strict" else ""; + if never_returns_normally then " never_returns_normally" else ""; + if arity = apparent_arity then "" else + Printf.sprintf " arity %d" arity; + ] + }] + in let vd = { oval_name = id; oval_type = Otyp_poly(qtvs, ty); oval_prims = []; - oval_attributes = [] } + oval_attributes = attrs + } in let vd = match decl.val_kind with diff --git a/typing/subst.ml b/typing/subst.ml index bbb5ec8b175..05ebf646f1e 100644 --- a/typing/subst.ml +++ b/typing/subst.ml @@ -740,6 +740,7 @@ let rec subst_lazy_value_description s descr = { val_type = Wrap.substitute ~compose Keep s descr.val_type; val_kind = descr.val_kind; val_loc = loc s descr.val_loc; + val_zero_alloc = descr.val_zero_alloc; val_attributes = attrs s descr.val_attributes; val_uid = descr.val_uid; } diff --git a/typing/typeclass.ml b/typing/typeclass.ml index 69bb192f6ce..ac538a346b7 100644 --- a/typing/typeclass.ml +++ b/typing/typeclass.ml @@ -446,7 +446,7 @@ and class_type_aux env virt self_scope scty = match l with | Position _ -> ctyp Ttyp_call_pos (Ctype.newconstr Predef.path_lexing_position []) | Optional _ | Labelled _ | Nolabel -> - transl_simple_type ~new_var_jkind:Any env ~closed:false Alloc.Const.legacy sty + transl_simple_type ~new_var_jkind:Any env ~closed:false Alloc.Const.legacy sty in let ty = cty.ctyp_type in let ty = @@ -489,6 +489,7 @@ let enter_ancestor_met ~loc name ~sign ~meths ~cl_num ~ty ~attrs met_env = let desc = { val_type = ty; val_kind = kind; val_attributes = attrs; + val_zero_alloc = Builtin_attributes.Default_check; Types.val_loc = loc; val_uid = Uid.mk ~current_unit:(Env.get_unit_name ()) } in @@ -504,6 +505,7 @@ let add_self_met loc id sign self_var_kind vars cl_num let desc = { val_type = ty; val_kind = kind; val_attributes = attrs; + val_zero_alloc = Builtin_attributes.Default_check; Types.val_loc = loc; val_uid = Uid.mk ~current_unit:(Env.get_unit_name ()) } in @@ -520,6 +522,7 @@ let add_instance_var_met loc label id sign cl_num attrs met_env = { val_type = ty; val_kind = kind; val_attributes = attrs; Types.val_loc = loc; + val_zero_alloc = Builtin_attributes.Default_check; val_uid = Uid.mk ~current_unit:(Env.get_unit_name ()) } in Env.add_value id desc met_env @@ -1266,10 +1269,10 @@ and class_expr_aux cl_num val_env met_env virt self_scope scl = if not_nolabel_function cl.cl_type then begin match l with | Nolabel | Labelled _ -> () - | Optional _ -> + | Optional _ -> Location.prerr_warning pat.pat_loc Warnings.Unerasable_optional_argument; - | Position _ -> + | Position _ -> Location.prerr_warning pat.pat_loc Warnings.Unerasable_position_argument; end; @@ -1350,7 +1353,7 @@ and class_expr_aux cl_num val_env met_env virt self_scope scl = (not optional && l' = Nolabel) then (remaining_sargs, use_arg sarg l') - else if optional && label_is_absent_in_remaining_args () + else if optional && label_is_absent_in_remaining_args () then (sargs, eliminate_optional_arg ()) else if Btype.is_position l && label_is_absent_in_remaining_args () then (sargs, eliminate_position_arg ()) @@ -1414,7 +1417,7 @@ and class_expr_aux cl_num val_env met_env virt self_scope scl = Typecore.type_let In_class_def val_env rec_flag sdefs in let (vals, met_env) = List.fold_right - (fun (id, modes_and_sorts) (vals, met_env) -> + (fun (id, modes_and_sorts, _) (vals, met_env) -> List.iter (fun (loc, mode, sort) -> Typecore.escape ~loc ~env:val_env ~reason:Other mode; @@ -1447,6 +1450,7 @@ and class_expr_aux cl_num val_env met_env virt self_scope scl = {val_type = expr.exp_type; val_kind = Val_ivar (Immutable, cl_num); val_attributes = []; + val_zero_alloc = Builtin_attributes.Default_check; Types.val_loc = vd.val_loc; val_uid = vd.val_uid; } @@ -1455,7 +1459,7 @@ and class_expr_aux cl_num val_env met_env virt self_scope scl = ((id', expr) :: vals, Env.add_value id' desc met_env)) - (let_bound_idents_with_modes_and_sorts defs) + (let_bound_idents_with_modes_sorts_and_checks defs) ([], met_env) in let cl = class_expr cl_num val_env met_env virt self_scope scl' in diff --git a/typing/typecore.ml b/typing/typecore.ml index 969210c2114..6eb492a77b5 100644 --- a/typing/typecore.ml +++ b/typing/typecore.ml @@ -1091,11 +1091,13 @@ let iter_pattern_variables_type f : pattern_variable list -> unit = let add_pattern_variables ?check ?check_as env pv = List.fold_right - (fun {pv_id; pv_uid; pv_mode; pv_type; pv_loc; pv_as_var; pv_attributes} env -> + (fun {pv_id; pv_uid; pv_mode; pv_type; pv_loc; pv_as_var; pv_attributes} + env -> let check = if pv_as_var then check_as else check in Env.add_value ?check ~mode:pv_mode pv_id {val_type = pv_type; val_kind = Val_reg; Types.val_loc = pv_loc; val_attributes = pv_attributes; + val_zero_alloc = Builtin_attributes.Default_check; val_uid = pv_uid } env ) @@ -2879,6 +2881,7 @@ let type_class_arg_pattern cl_num val_env met_env l spat = { val_type = pv_type ; val_kind = Val_reg ; val_attributes = pv_attributes + ; val_zero_alloc = Builtin_attributes.Default_check ; val_loc = pv_loc ; val_uid = pv_uid } @@ -2889,6 +2892,7 @@ let type_class_arg_pattern cl_num val_env met_env l spat = { val_type = pv_type ; val_kind = Val_ivar (Immutable, cl_num) ; val_attributes = pv_attributes + ; val_zero_alloc = Builtin_attributes.Default_check ; val_loc = pv_loc ; val_uid = pv_uid } @@ -5035,7 +5039,12 @@ let add_check_attribute expr attributes = in match expr.exp_desc with | Texp_function fn -> - begin match get_property_attribute attributes Zero_alloc with + let default_arity = function_arity fn.params fn.body in + let za = + get_property_attribute ~in_signature:false ~default_arity attributes + Zero_alloc + in + begin match za with | Default_check -> expr | (Ignore_assert_all _ | Check _ | Assume _) as check -> begin match fn.zero_alloc with @@ -5377,9 +5386,10 @@ and type_expect_ type_application env loc expected_mode pm funct funct_mode sargs rt in let assume_zero_alloc = + let default_arity = List.length args in let zero_alloc = - Builtin_attributes.get_property_attribute sfunct.pexp_attributes - Zero_alloc + Builtin_attributes.get_property_attribute ~in_signature:false + ~default_arity sfunct.pexp_attributes Zero_alloc in Builtin_attributes.assume_zero_alloc ~is_check_allowed:false zero_alloc in @@ -7391,6 +7401,7 @@ and type_argument ?explanation ?recarg env (mode : expected_mode) sarg let desc = { val_type = ty; val_kind = Val_reg; val_attributes = []; + val_zero_alloc = Builtin_attributes.Default_check; val_loc = Location.none; val_uid = Uid.mk ~current_unit:(Env.get_unit_name ()); } @@ -8764,7 +8775,7 @@ and type_n_ary_function region_locked; } in - let { function_ = exp_type, params, body; + let { function_ = exp_type, result_params, body; newtypes; params_contain_gadt = contains_gadt; ret_info; fun_alloc_mode; } = @@ -8783,6 +8794,8 @@ and type_n_ary_function "[ret_info] can't be None -- that indicates a function with \ no parameters." in + let params = List.map (fun { param } -> param) result_params in + let syntactic_arity = function_arity params body in (* Require that the n-ary function is known to have at least n arrows in the type. This prevents GADT equations introduced by the parameters from hiding arrows from the resulting type. @@ -8829,12 +8842,6 @@ and type_n_ary_function "Jkind_error not expected as this point; this should \ have been caught when the function was typechecked." in - let syntactic_arity = - List.length params + - (match body with - | Tfunction_body _ -> 0 - | Tfunction_cases _ -> 1) - in let err = Function_arity_type_clash { syntactic_arity; @@ -8849,7 +8856,7 @@ and type_n_ary_function filter_ty_ret_exn ret_ty param.fp_arg_label ~force_tpoly:(not has_poly)) exp_type - params + result_params in match body with | Tfunction_body _ -> () @@ -8857,9 +8864,9 @@ and type_n_ary_function ignore (filter_ty_ret_exn ret_ty Nolabel ~force_tpoly:true : type_expr) end; - let params = List.map (fun { param } -> param) params in let zero_alloc = - Builtin_attributes.get_property_attribute attributes Zero_alloc + Builtin_attributes.get_property_attribute ~in_signature:false + ~default_arity:syntactic_arity attributes Zero_alloc in re { exp_desc = diff --git a/typing/typedecl.ml b/typing/typedecl.ml index fa1c30736e4..a62dcf8c395 100644 --- a/typing/typedecl.ml +++ b/typing/typedecl.ml @@ -117,6 +117,10 @@ type error = | Modalities_on_value_description | Missing_unboxed_attribute_on_non_value_sort of Jkind.Sort.const | Non_value_sort_not_upstream_compatible of Jkind.Sort.const + | Zero_alloc_attr_unsupported of Builtin_attributes.check_attribute + | Zero_alloc_attr_non_function + | Zero_alloc_attr_bad_user_arity + | Zero_alloc_attr_opt open Typedtree @@ -2668,8 +2672,35 @@ let transl_value_decl env loc valdecl = let v = match valdecl.pval_prim with [] when Env.is_in_signature env -> + let default_arity = + let rec count_arrows n ty = + match get_desc ty with + | Tarrow (_, _, t2, _) -> count_arrows (n+1) t2 + | _ -> n + in + count_arrows 0 ty + in + let zero_alloc = + Builtin_attributes.get_property_attribute ~in_signature:true + ~default_arity valdecl.pval_attributes Zero_alloc + in + begin match zero_alloc with + | Default_check -> () + | Check za -> + if default_arity = 0 && za.arity <= 0 then + raise (Error(valdecl.pval_loc, Zero_alloc_attr_non_function)); + if za.arity <= 0 then + raise (Error(valdecl.pval_loc, Zero_alloc_attr_bad_user_arity)); + if za.opt then + (* CR ccasinghino: It would be nice to support opt, but it's not + obvious what its meaning should be. *) + raise (Error(valdecl.pval_loc, Zero_alloc_attr_opt)); + | Assume _ | Ignore_assert_all _ -> + raise (Error(valdecl.pval_loc, Zero_alloc_attr_unsupported zero_alloc)) + end; { val_type = ty; val_kind = Val_reg; Types.val_loc = loc; val_attributes = valdecl.pval_attributes; + val_zero_alloc = zero_alloc; val_uid = Uid.mk ~current_unit:(Env.get_unit_name ()); } | [] -> @@ -2709,6 +2740,7 @@ let transl_value_decl env loc valdecl = check_unboxable env loc ty; { val_type = ty; val_kind = Val_prim prim; Types.val_loc = loc; val_attributes = valdecl.pval_attributes; + val_zero_alloc = Builtin_attributes.Default_check; val_uid = Uid.mk ~current_unit:(Env.get_unit_name ()); } in @@ -3461,6 +3493,26 @@ let report_error ppf = function the use of -extension-universe (no_extensions|\ upstream_compatible).@]" Jkind.Sort.format_const sort + | Zero_alloc_attr_unsupported ca -> + let variety = match ca with + | Default_check | Check _ -> assert false + | Assume _ -> "assume" + | Ignore_assert_all _ -> "ignore" + in + fprintf ppf + "@[zero_alloc \"%s\" attributes are not supported in signatures@]" + variety + | Zero_alloc_attr_non_function -> + fprintf ppf + "@[In signatures, zero_alloc is only supported on function declarations.\ + @ Found no arrows in this declaration's type.\ + @ Hint: You can write \"[@zero_alloc arity n]\" to specify the arity\ + @ of an alias (for n > 0).@]" + | Zero_alloc_attr_bad_user_arity -> + fprintf ppf + "@[Invalid zero_alloc attribute: arity must be greater than 0.@]" + | Zero_alloc_attr_opt -> + fprintf ppf "@[\"zero_alloc opt\" is not supported in signatures.@]" let () = Location.register_error_of_exn diff --git a/typing/typedecl.mli b/typing/typedecl.mli index 4b0c86183ce..89ec6e3d183 100644 --- a/typing/typedecl.mli +++ b/typing/typedecl.mli @@ -161,6 +161,10 @@ type error = | Modalities_on_value_description | Missing_unboxed_attribute_on_non_value_sort of Jkind.Sort.const | Non_value_sort_not_upstream_compatible of Jkind.Sort.const + | Zero_alloc_attr_unsupported of Builtin_attributes.check_attribute + | Zero_alloc_attr_non_function + | Zero_alloc_attr_bad_user_arity + | Zero_alloc_attr_opt exception Error of Location.t * error diff --git a/typing/typedtree.ml b/typing/typedtree.ml index b00766a267b..0d3463283a2 100644 --- a/typing/typedtree.ml +++ b/typing/typedtree.ml @@ -1037,16 +1037,27 @@ let rev_let_bound_idents_full bindings = List.iter (fun vb -> iter_bound_idents add vb.vb_pat) bindings; !idents_full -let let_bound_idents_with_modes_and_sorts bindings = +let let_bound_idents_with_modes_sorts_and_checks bindings = let modes_and_sorts = Ident.Tbl.create 3 in let f id sloc _ _uid mode sort = Ident.Tbl.add modes_and_sorts id (sloc.loc, mode, sort) in - List.iter (fun vb -> - iter_pattern_full ~both_sides_of_or:true f vb.vb_sort vb.vb_pat) - bindings; + let checks = + List.fold_left (fun checks vb -> + iter_pattern_full ~both_sides_of_or:true f vb.vb_sort vb.vb_pat; + match vb.vb_pat.pat_desc, vb.vb_expr.exp_desc with + | Tpat_var (id, _, _, _), Texp_function fn -> + Ident.Map.add id fn.zero_alloc checks + | _ -> checks + ) Ident.Map.empty bindings + in List.rev_map - (fun (id, _, _, _) -> id, List.rev (Ident.Tbl.find_all modes_and_sorts id)) + (fun (id, _, _, _) -> + let zero_alloc = + Option.value (Ident.Map.find_opt id checks) + ~default:Builtin_attributes.Default_check + in + id, List.rev (Ident.Tbl.find_all modes_and_sorts id), zero_alloc) (rev_let_bound_idents_full bindings) let let_bound_idents_full bindings = @@ -1124,3 +1135,9 @@ let rec exp_is_nominal exp = | Texp_field (parent, _, _, _) | Texp_send (parent, _, _) -> exp_is_nominal parent | _ -> false + +let function_arity params body = + List.length params + + match body with + | Tfunction_body _ -> 0 + | Tfunction_cases _ -> 1 diff --git a/typing/typedtree.mli b/typing/typedtree.mli index c290b11f442..47fa558ac99 100644 --- a/typing/typedtree.mli +++ b/typing/typedtree.mli @@ -1107,9 +1107,23 @@ val exists_pattern: (pattern -> bool) -> pattern -> bool val let_bound_idents: value_binding list -> Ident.t list val let_bound_idents_full: value_binding list -> (Ident.t * string loc * Types.type_expr * Uid.t) list -val let_bound_idents_with_modes_and_sorts: + +(* [let_bound_idents_with_modes_sorts_and_checks] finds all the idents in the + let bindings and computes their modes, sorts, and whether they have any check + attributes (zero_alloc). + + Note that: + * The list associated with each ident can only have more than one element in + the case of or pattern, where the ident is bound on both sides. + * We return just one check_attribute per identifier, because this attribute + can only be something other than [Default_check] in the case of a simple + variable pattern bound to a function (in which case the list will also + have just one element). +*) +val let_bound_idents_with_modes_sorts_and_checks: value_binding list - -> (Ident.t * (Location.t * Mode.Value.l * Jkind.sort) list) list + -> (Ident.t * (Location.t * Mode.Value.l * Jkind.sort) list + * Builtin_attributes.check_attribute) list (** Alpha conversion of patterns *) val alpha_pat: @@ -1132,3 +1146,6 @@ val split_pattern: (** Whether an expression looks nice as the subject of a sentence in a error message. *) val exp_is_nominal : expression -> bool + +(** Calculates the syntactic arity of a function based on its parameters and body. *) +val function_arity : function_param list -> function_body -> int diff --git a/typing/typemod.ml b/typing/typemod.ml index 3700eedcd8d..89f9a330f9c 100644 --- a/typing/typemod.ml +++ b/typing/typemod.ml @@ -2795,7 +2795,7 @@ and type_structure ?(toplevel = None) funct_body anchor env sstr = will be marked as being used during the signature inclusion test. *) let items, shape_map = List.fold_left - (fun (acc, shape_map) (id, modes) -> + (fun (acc, shape_map) (id, id_info, zero_alloc) -> List.iter (fun (loc, mode, sort) -> Typecore.escape ~loc ~env:newenv ~reason:Other mode; @@ -2806,16 +2806,35 @@ and type_structure ?(toplevel = None) funct_body anchor env sstr = then raise (Error (loc, env, Toplevel_nonvalue (Ident.name id,sort))) ) - modes; - let (first_loc, _, _) = List.hd modes in + id_info; + let zero_alloc = + (* We only allow "Check" attributes in signatures. Here we + convert "Assume"s in structures to the equivalent "Check" for + the signature. *) + let open Builtin_attributes in + match[@warning "+9"] zero_alloc with + | Default_check | Ignore_assert_all _ -> Default_check + | Check c when not c.opt -> zero_alloc + | Check _ -> + (* CR ccasinghino: We'd like to allow opt in signatures, but + for now we don't, and must make sure you can't get it in a + signature by writing it in a structure and using module + type of. *) + Default_check + | Assume { property; strict; arity; loc; + never_returns_normally = _ } -> + Check { strict; property; arity; loc; opt = false } + in + let (first_loc, _, _) = List.hd id_info in Signature_names.check_value names first_loc id; let vd = Env.find_value (Pident id) newenv in let vd = Subst.Lazy.force_value_description vd in + let vd = { vd with val_zero_alloc = zero_alloc } in Sig_value(id, vd, Exported) :: acc, Shape.Map.add_value shape_map id vd.val_uid ) ([], shape_map) - (let_bound_idents_with_modes_and_sorts defs) + (let_bound_idents_with_modes_sorts_and_checks defs) in Tstr_value(rec_flag, defs), List.rev items, diff --git a/typing/types.ml b/typing/types.ml index 6e89ced5eeb..759d18ee67b 100644 --- a/typing/types.ml +++ b/typing/types.ml @@ -412,6 +412,7 @@ module type Wrapped = sig { val_type: type_expr wrapped; (* Type of the value *) val_kind: value_kind; val_loc: Location.t; + val_zero_alloc: Builtin_attributes.check_attribute; val_attributes: Parsetree.attributes; val_uid: Uid.t; } @@ -486,10 +487,12 @@ module Map_wrapped(From : Wrapped)(To : Wrapped) = struct | Unit -> To.Unit | Named (id,mty) -> To.Named (id, module_type m mty) - let value_description m {val_type; val_kind; val_attributes; val_loc; val_uid} = + let value_description m {val_type; val_kind; val_zero_alloc; + val_attributes; val_loc; val_uid} = To.{ val_type = m.map_type_expr m val_type; val_kind; + val_zero_alloc; val_attributes; val_loc; val_uid diff --git a/typing/types.mli b/typing/types.mli index 909bed2f1a8..3a3c9838fec 100644 --- a/typing/types.mli +++ b/typing/types.mli @@ -709,6 +709,7 @@ module type Wrapped = sig { val_type: type_expr wrapped; (* Type of the value *) val_kind: value_kind; val_loc: Location.t; + val_zero_alloc: Builtin_attributes.check_attribute; val_attributes: Parsetree.attributes; val_uid: Uid.t; } diff --git a/utils/zero_alloc_utils.ml b/utils/zero_alloc_utils.ml index 4f79ddeac41..80160608252 100644 --- a/utils/zero_alloc_utils.ml +++ b/utils/zero_alloc_utils.ml @@ -30,6 +30,8 @@ module type WS = sig type t + val empty : t + val join : t -> t -> t val meet : t -> t -> t @@ -135,6 +137,10 @@ module Make (Witnesses : WS) = struct let relaxed w = { nor = V.Safe; exn = V.Top w; div = V.Top w } + let of_annotation ~strict ~never_returns_normally = + let res = if strict then safe else relaxed Witnesses.empty in + if never_returns_normally then { res with nor = V.Bot } else res + let print ~witnesses ppf { nor; exn; div } = let pp = V.print ~witnesses in Format.fprintf ppf "{ nor=%a; exn=%a; div=%a }" pp nor pp exn pp div @@ -206,11 +212,7 @@ module Assume_info = struct let none = No_assume let create ~strict ~never_returns_normally = - let res = if strict then Value.safe else Value.relaxed Witnesses.empty in - let res = - if never_returns_normally then { res with nor = V.Bot } else res - in - Assume res + Assume (Value.of_annotation ~strict ~never_returns_normally) let get_value t = match t with No_assume -> None | Assume v -> Some v diff --git a/utils/zero_alloc_utils.mli b/utils/zero_alloc_utils.mli index b0e4d85ad17..cd021faa7c2 100644 --- a/utils/zero_alloc_utils.mli +++ b/utils/zero_alloc_utils.mli @@ -6,6 +6,8 @@ module type WS = sig type t + val empty : t + val join : t -> t -> t val meet : t -> t -> t @@ -80,6 +82,9 @@ module Make (Witnesses : WS) : sig (i.e., [nor] component is Safe, others are Top. *) val relaxed : Witnesses.t -> t + (** Constructs a value from a user annotation. The witness will be empty. *) + val of_annotation : strict:bool -> never_returns_normally:bool -> t + val print : witnesses:bool -> Format.formatter -> t -> unit (** Use [compare] for structural comparison of terms, for example @@ -127,6 +132,8 @@ module Assume_info : sig module Witnesses : sig type t = unit + val empty : t + val join : t -> t -> t val lessequal : t -> t -> bool