···317317 (Keryan Didier, review by Vincent Laviron and Gabriel Scherer)
318318319319- #14155: Audit unexecuted phrases in compiler expect tests and
320320- fix all occurences
320320+ fix all occurrences
321321 (Stefan Muenzel, review by Gabriel Scherer)
322322323323- #14163, #14176: add a filename location to the deprecation alert for implicit
···684684- #13921: Set cloexec correctly on CRT file descriptors created by the Unix
685685 library on Windows. The inheritance on the underlying Win32 handles was
686686 correctly set, but the book-keeping for the CRT was leaking the value of
687687- non-inherited handles which combined with re-use of HANDLE values within
687687+ non-inherited handles which combined with reuse of HANDLE values within
688688 processes could appear to make a CRT file descriptor "re-open".
689689 (David Allsopp, review by Nicolás Ojeda Bär)
690690···809809 (Samuel Vivien, review by Florian Angeletti and Gabriel Scherer)
810810811811- #13814, 13898: Add an `unused-type-declaration` warning when using
812812- a `t as 'a` with no other occurences of `'a`
812812+ a `t as 'a` with no other occurrences of `'a`
813813 (Samuel Vivien, review by Florian Angeletti, Kate Deplaix)
814814815815- #13818: better delimited hints in error message
···888888 content of a `Tpackage` node
889889 (Samuel Vivien, review by Florian Angeletti)
890890891891-- #13866: Modified occurence check that prevents recursive types for it to see
891891+- #13866: Modified occurrence check that prevents recursive types for it to see
892892 the checked type as a graph rather than a tree
893893 (Samuel Vivien, report by Didier Remy, review by Florian Angeletti
894894 and Jacques Garrigue)
···11981198 (Antonin Décimo, review by David Allsopp)
1199119912001200- #10696: Introduce __has_attribute and __has_c_attributes in
12011201- <caml/misc.h> to test the support of specific atributes in C
12011201+ <caml/misc.h> to test the support of specific attributes in C
12021202 code. Introduce fallthrough as a wrapper around the fallthrough
12031203 attribute.
12041204 (Antonin Décimo, review by Nicolás Ojeda Bär, Xavier Leroy, and
+1-1
HACKING.adoc
···682682- `run-crosscompiler-tests`: build various cross-compilers and test them;
683683- `run-thread-sanitizer`: build the distribution with the Thread
684684 Sanitizer (TSAN), and run the whole testsuite instrumented with TSAN;
685685-- `run-multicoretests`: run an extensive testsuite convering multicore
685685+- `run-multicoretests`: run an extensive testsuite covering multicore
686686 features.
687687688688==== INRIA's Continuous Integration (CI)
+1-1
INSTALL.adoc
···245245246246If you have built a Unix-to-Windows cross compiler, you must first make sure
247247that `ocamlopt` can find the `flexlink` executable in `$PATH` when it needs to
248248-link. Boostrapping `flexdll` builds a `flexlink.exe` (note the `.exe`!), so you
248248+link. Bootstrapping `flexdll` builds a `flexlink.exe` (note the `.exe`!), so you
249249can:
250250251251....
+1-1
Makefile.cross
···14141515# Recipes to build a cross compiler (_not_ cross-compiling the compiler), aka
1616# generating code that will run on `target`, assuming that a non-cross OCaml
1717-# compiler (so targetting our build machine) of the same version is available in
1717+# compiler (so targeting our build machine) of the same version is available in
1818# $PATH
19192020# As the cross compiler will be linked with the _build_ version of
+1-1
asmcomp/cmm_helpers.ml
···1443144314441444type switch_arg = Tagged of expression | Untagged of expression
1445144514461446-(** This function takes a switch on immedate values,
14461446+(** This function takes a switch on immediate values,
14471447 for example:
14481448 int 0: 1
14491449 int 1: 3
+1-1
lambda/matching.ml
···27592759 i_max := i;
27602760 c_max := c
27612761 ) else if c = !c_max then (
27622762- (* Pick the miminal [i] which has maximal [c], and not just
27622762+ (* Pick the minimal [i] which has maximal [c], and not just
27632763 the first [i], as the Hashtbl iteration order is not
27642764 deterministic: see #14088. *)
27652765 i_max := min i !i_max;
+1-1
man/ocamlc.1
···407407.TP
408408.BI \-cmi-file " filename"
409409Type-check the source implementation to be compiled against the
410410-specified interface file (by-passes the normal lookup for .mli and .cmi files).
410410+specified interface file (bypasses the normal lookup for .mli and .cmi files).
411411.TP
412412.BI \-I " directory"
413413Add the given directory to the list of directories searched for
+1-1
man/ocamlopt.1
···309309.TP
310310.BI \-cmi\-file " filename"
311311Type-check the source implementation to be compiled against the
312312-specified interface file (by-passes the normal lookup for .mli and .cmi files).
312312+specified interface file (bypasses the normal lookup for .mli and .cmi files).
313313.TP
314314.BI \-I " directory"
315315Add the given directory to the list of directories searched for
+1-1
manual/src/cmds/runtime-tracing.etex
···9292The ring buffer implementation used in runtime events can be written by at most
9393one producer at a time but can be read simultaneously by multiple consumers
9494without coordination from the producer. There is a unique ring buffer for every
9595-running domain and, on domain termination, ring buffers may be re-used for newly
9595+running domain and, on domain termination, ring buffers may be reused for newly
9696spawned domains. Ring buffers are only allocated (including for the main
9797domain) when runtime events are enabled. The ring buffers themselves are stored
9898in a memory-mapped file with the processes identifier as the name and the
+1-1
otherlibs/runtime_events/runtime_events.mli
···4747*)
48484949(** The type for counter events emitted by the runtime. Counter events are used
5050- to measure a quantity at a point in time or record the occurence of an event.
5050+ to measure a quantity at a point in time or record the occurrence of an event.
5151 In the latter case their value will be one. *)
5252type runtime_counter =
5353| EV_C_FORCE_MINOR_ALLOC_SMALL
+1-1
parsing/location.mli
···254254 Format.formatter -> Format_doc.t -> unit;
255255}
256256(** A printer for [report]s, defined using open-recursion.
257257- The goal is to make it easy to define new printers by re-using code from
257257+ The goal is to make it easy to define new printers by reusing code from
258258 existing ones.
259259*)
260260
+2-2
parsing/parser.mly
···37063706 { Ptyp_arrow(label, domain, codomain) }
37073707 )
37083708 { $1 }
37093709- (* The next two cases are for labled tuples - see comment on [tuple_type]
37093709+ (* The next two cases are for labeled tuples - see comment on [tuple_type]
37103710 below.
3711371137123712 The first case is present just to resolve a shift/reduce conflict in a
···37593759 label is not parsed as a proper_tuple_type, but rather as a case of
37603760 function_type above. This resolves ambiguities around [x:t1 * t2 -> t3]
37613761 which must continue to parse as a function with one labeled argument even in
37623762- the presence of labled tuples.
37623762+ the presence of labeled tuples.
37633763*)
37643764tuple_type:
37653765 | ty = atomic_type
+1-1
parsing/unit_info.mli
···152152(** {1:ml_mli_cmi_interaction Mli and cmi derived from implementation files } *)
153153154154(** The compilation of module implementation changes in presence of mli and cmi
155155- files, the function belows help to handle this. *)
155155+ files, the function below help to handle this. *)
156156157157(** [mli_from_source u] is the interface source filename associated to the unit
158158 [u]. The actual suffix depends on {!Config.interface_suffix}.
+1-1
release-info/News
···99- Thread sanitizer support
1010- New Dynarray module
1111- New -H flag for hidden include directories
1212-- Project-wide occurence metadata support for developer tools
1212+- Project-wide occurrence metadata support for developer tools
1313- Raw identifiers
1414- Local open in type expressions
1515
+1-1
release-info/howto.md
···410410See https://github.com/compiler-explorer/compiler-explorer/pull/6735
411411and https://github.com/compiler-explorer/infra/pull/1359 as examples.
412412413413-This should be expanded, once we have more experince with the process
413413+This should be expanded, once we have more experience with the process
414414415415# Appendix
416416
+1-1
runtime/caml/mlvalues.h
···502502 Caml_out_of_heap_header_with_reserved(wosize, tag, 0)
503503504504505505-/* Obsolete -- suppport for unsafe encoded exceptions.
505505+/* Obsolete -- support for unsafe encoded exceptions.
506506507507 Before caml_result was available, we used an unsafe encoding of it
508508 into the 'value' type, where encoded exceptions have their second
+1-1
runtime/domain.c
···2249224922502250 if (!last) caml_assert_shared_heap_is_empty(domain_state->shared_heap);
2251225122522252- /* [domain_state] may be re-used by a fresh domain here, now that we
22522252+ /* [domain_state] may be reused by a fresh domain here, now that we
22532253 have done [stop_active_domain] and released the
22542254 [all_domains_lock]. In particular, we cannot touch
22552255 [domain_self->interruptor] after here because it may be reused.
+1-1
runtime/memprof.c
···12021202 * * lambda]. We could use a more involved algorithm, but this should
12031203 * be good enough since, in the typical use case, [lambda] << 0.01 and
12041204 * therefore the generation of the binomial variable is amortized by
12051205- * the initialialization of the corresponding block.
12051205+ * the initialization of the corresponding block.
12061206 *
12071207 * If needed, we could use algorithm BTRS from the paper:
12081208 * Hormann, Wolfgang. "The generation of binomial random variates."
+1-1
stdlib/format.mli
···931931932932val utf_8_scalar_width: string -> pos:int -> len:int -> int
933933(** [utf_8_scalar_width s ~pos ~len] is the number of unicode scalar values in
934934- the substring [String.sub s pos len]. Invalid byte sequences are implictly
934934+ the substring [String.sub s pos len]. Invalid byte sequences are implicitly
935935 replaced by [U+FFFD] since this yields a better width approximation for
936936 other ascii-based encoding scheme like ISO-8859-15. This is the default
937937 [out_width] function since OCaml 5.4.
+1-1
stdlib/fun.mli
···148148149149{3:hflip {{!val:flip}flip}}
150150151151-Useing [flip] to reverse the comparator passed to {!val:List.sort}, which sorts
151151+Using [flip] to reverse the comparator passed to {!val:List.sort}, which sorts
152152in the opposite order
153153{[
154154 # List.sort (Fun.flip Int.compare) [5; 3; 9; 0; 1; 6; 8];;
+1-1
stdlib/string.mli
···413413 {{:https://unicode.org/glossary/#normalization_form_c}NFC} gives
414414 better results.
415415416416- {b Note.} This implements the simpler Optimal String Alignement (OSA)
416416+ {b Note.} This implements the simpler Optimal String Alignment (OSA)
417417 distance, not the Damerau-Levenshtein distance. With this function
418418 ["ca"] and ["abc"] have a distance of 3 not 2.
419419
+1-1
stdlib/stringLabels.mli
···413413 {{:https://unicode.org/glossary/#normalization_form_c}NFC} gives
414414 better results.
415415416416- {b Note.} This implements the simpler Optimal String Alignement (OSA)
416416+ {b Note.} This implements the simpler Optimal String Alignment (OSA)
417417 distance, not the Damerau-Levenshtein distance. With this function
418418 ["ca"] and ["abc"] have a distance of 3 not 2.
419419
+1-1
testsuite/in_prefix/README.md
···4848- Environment variables `CAML_LD_LIBRARY_PATH` and `OCAMLLIB` are manipulated to
4949 allow the compiler to operate
5050- Bytecode executables which will no longer be able to find `ocamlrun` are
5151- explictly passed to `ocamlrun`. The harness always verifies that this step is
5151+ explicitly passed to `ocamlrun`. The harness always verifies that this step is
5252 required by first executing the binary and ensuring that it fails and then
5353 passing it directly to `ocamlrun`.
5454
+1-1
testsuite/tests/lib-array/test_array.ml
···229229 array length differences. *)
230230 test [|0;1;2;2;2|] [|0;1|] ~cmp:1;
231231 test [|0;1|] [|0;1;2;2;2|] ~cmp:~-1;
232232- (* If the length is different it is sufficent to order arrays and
232232+ (* If the length is different it is sufficient to order arrays and
233233 we do not compare elements. This tests that so that
234234 a possible behaviour change in the future can be detected *)
235235 assert (Array.compare (fun _ _ -> assert false) [|0;1|] [|0;1;2|] = -1);
+2-2
testsuite/tests/parsing/comments.ml
···2121 3;;
222223232424-let four = (* We are inserting quoted litteral here {p|*)|p}, {œ|(*|œ} *) 4;;
2424+let four = (* We are inserting quoted literal here {p|*)|p}, {œ|(*|œ} *) 4;;
25252626let set = (** [x < min({x'|x'∊l})] *) 5;;
2727···4646 3;;
474748484949-let four = (* We are inserting quoted litteral here {p|*)|p}, {œ|(*|œ} *) 4;;
4949+let four = (* We are inserting quoted literal here {p|*)|p}, {œ|(*|œ} *) 4;;
50505151let set = (** [x < min({x'|x'∊l})] *) 5;;
5252
+2-2
testsuite/tests/shape-index/index_aliases.ml
···4141module Y = X.M
4242module Z = Y
43434444-(* FIXME: this sould be (Approx (No_uid)), not (Internal_error_no_uid) *)
4444+(* FIXME: this should be (Approx (No_uid)), not (Internal_error_no_uid) *)
4545let _ = Z.s
46464747module Arg = struct end
4848module FArg = X.F (Arg)
4949open FArg
50505151-(* FIXME: this sould be (Approx (No_uid)), not (Internal_error_no_uid) *)
5151+(* FIXME: this should be (Approx (No_uid)), not (Internal_error_no_uid) *)
5252type u = t
+1-1
testsuite/tests/tool-toplevel/install_printer.ml
···45454646#install_printer print_generic;;
4747[D (0, A); D (42, B)];;
4848-(* Simple printer witn non_generic variable *)
4848+(* Simple printer with non_generic variable *)
49495050let pp_option_ref = Fun.id @@ fun ppf x ->
5151 match !x with
···881 | external fail: (int -> int as 'a) -> 'a = "%identity"
99 ^^
1010Error: This external declaration has a non-syntactic arity,
1111- its arity is greater than its syntatic arity.
1111+ its arity is greater than its syntactic arity.
1212|}]
+2-2
testsuite/tests/typing-modules/functors.ml
···17611761 end) =
17621762struct end
1763176317641764-(** The definition of `F` and its application belows disagree on
17641764+(** The definition of `F` and its application below disagree on
17651765 the arity of `t`, we should not equate the two types *)
1766176617671767include
···18951895|}]
189618961897189718981898-(** The definition of `H` and its application belows still disagree on
18981898+(** The definition of `H` and its application below still disagree on
18991899 the arity of `t`. However, they agree on the type constructor s.
19001900 Currently, we don't add an equality X.s = G($1).s, but we may want
19011901 to do so in the future. *)
···427427428428 The first set of example use paths with functor applications to tests deep
429429 substitutions and handling of prefixes. The tests for functor parameters and
430430- recursive modules are bellow.
430430+ recursive modules are below.
431431*)
432432433433(* Introduction of an invalid alias via a destructive module constraint should
+1-1
testsuite/tests/uids/intf_uids_test.ml
···1717*)
18181919(* This test illustrates the fact that uids are tagged to indicate if they
2020- originate from an interface of an implementation: it prints the delcarations
2020+ originate from an interface of an implementation: it prints the declarations
2121 written in the cmt file for the interface and then for the implementation.
2222 These should not overlap. *)
+1-1
testsuite/tools/harness.mli
···115115 the following transformations:
116116117117 - ["$bindir"] or ["$libdir"] if [path] is exactly [~bindir_suffix] or
118118- [~libdir_suffix] (this captures passing those two variabes to the test
118118+ [~libdir_suffix] (this captures passing those two variables to the test
119119 programs)
120120 - if [path] begins with [~prefix] then the text is replaced with
121121 ["$prefix"] (which can create ["$prefix.new/"], etc.). Additionally, if
+1-1
testsuite/tools/toolchain.ml
···48484949let assembler_embeds_build_path =
5050 if is_clang_assembler && Config.system = "macosx" then
5151- (* Xcode 16 targetting macOS 15 or later uses DWARF v5 and embeds build
5151+ (* Xcode 16 targeting macOS 15 or later uses DWARF v5 and embeds build
5252 paths by default, cf. https://developer.apple.com/documentation/xcode-release-notes/xcode-16-release-notes *)
5353 match String.split_on_char '-' Config.c_compiler_vendor,
5454 String.split_on_char '-' Config.target with
+2-2
typing/ctype.ml
···2333233323342334(* Two labels are considered compatible under certain conditions.
23352335 - they are the same
23362336- - in classic mode, only optional labels are relavant
23362336+ - in classic mode, only optional labels are relevant
23372337 - in pattern mode, we act as if we were in classic mode. If not, interactions
23382338 with GADTs from files compiled in classic mode would be unsound.
23392339*)
···23662366 witness could exist or not. Typically, this is the case for
23672367 abstract types, which could be equal to anything, depending on
23682368 their actual definition. As a result [mcomp] overapproximates
23692369- compatibilty, i.e. when it says that two types are incompatible, we
23692369+ compatibility, i.e. when it says that two types are incompatible, we
23702370 are sure that there exists no equality witness, but if it does not
23712371 say so, there is no guarantee that such a witness could exist.
23722372 *)
+1-1
typing/gprinttyp.ml
···199199 Hashtbl.replace id_map.tbl id last;
200200 Main last
201201202202- (** Generate color from the node id to keep the color stable inbetween
202202+ (** Generate color from the node id to keep the color stable in between
203203 different calls to the typechecker on the same input. *)
204204 let colorize_id params id =
205205 if not params.colorize then None
+2-2
typing/includemod.ml
···153153 | Strictly_positive
154154 (** Strictly positive positions are notable for tools since they are the
155155 the case where we match a implementation definition with an interface
156156- declaration. Oherwise in the positive case we are matching
157157- declatations inside functor arguments at even level of nesting.*)
156156+ declaration. Otherwise in the positive case we are matching
157157+ declarations inside functor arguments at even level of nesting.*)
158158 | Positive
159159 | Negative
160160
+1-1
typing/out_type.mli
···41414242val wrap_printing_env: error:bool -> Env.t -> (unit -> 'a) -> 'a
4343(** Call the function using the environment for type path shortening
4444- This affects all the printing and tree cration functions functions below
4444+ This affects all the printing and tree creation functions below
4545 Also, if [~error:true], then disable the loading of cmis *)
46464747
+1-1
typing/rawprinttyp.mli
···1414(**************************************************************************)
15151616(** This module provides function(s) for printing the internal representation of
1717- type expressions. It is targetted at internal use when debbuging the
1717+ type expressions. It is targeted at internal use when debugging the
1818 compiler itself. *)
19192020val type_expr: Format.formatter -> Types.type_expr -> unit
+1-1
typing/subst.mli
···3535 safe and unsafe variant. Only unsafe substitutions may expand a module type
3636 path into a generic module type. *)
37373838-(** Type familly for substitutions *)
3838+(** Type family for substitutions *)
3939type +'k subst
40404141type safe = [`Safe]
+1-1
typing/typedecl.ml
···23612361 | External_with_non_syntactic_arity ->
23622362 Location.errorf ~loc
23632363 "This external declaration has a non-syntactic arity,@ \
23642364- its arity is greater than its syntatic arity."
23642364+ its arity is greater than its syntactic arity."
236523652366236623672367let () =
+1-1
utils/config.mli
···199199(** Name of operating system for the native-code compiler *)
200200201201val target_os_type: string
202202-(** Operating system targetted by the native-code compiler. One of
202202+(** Operating system targeted by the native-code compiler. One of
203203- ["Unix"] (for all Unix versions, including Linux and macOS),
204204- ["Win32"] (for MS-Windows, OCaml compiled with MSVC++ or MinGW-w64),
205205- ["Cygwin"] (for MS-Windows, OCaml compiled with Cygwin). *)
+1-1
utils/diffing.ml
···357357 the element order [[P_0;...; P_n]].
358358359359 This is why we choose to start with the [Del] case since path ending with
360360- [Del+] suffix are likely to correspond to parital application in the
360360+ [Del+] suffix are likely to correspond to partial application in the
361361 functor application case.
362362 Similarly, large block of deletions or insertions at the end of the
363363 definitions might point toward incomplete definitions.
+1-1
utils/format_doc.mli
···172172val compat1: ('p1 -> 'a printer) -> ('p1 -> 'a format_printer)
173173val compat2: ('p1 -> 'p2 -> 'a printer) -> ('p1 -> 'p2 -> 'a format_printer)
174174175175-(** If necessary, embbed a {!Format} printer inside a formatting instruction
175175+(** If necessary, embed a {!Format} printer inside a formatting instruction
176176 stream. This breaks every guarantees provided by {!Format_doc}. *)
177177val deprecated_printer: (Format.formatter -> unit) -> formatter -> unit
178178val deprecated: 'a format_printer -> 'a printer
+1-1
utils/misc.ml
···964964 let la, lb = String.length a, String.length b in
965965 let cutoff =
966966 (* using max_int for cutoff would cause overflows in (i + cutoff + 1);
967967- we bring it back to the (max la lb) worstcase *)
967967+ we bring it back to the (max la lb) worst case *)
968968 Int.min (Int.max la lb) cutoff in
969969 if abs (la - lb) > cutoff then None
970970 else begin