···1767176717681768- #11846: Mark rbx as destroyed at C call for Win64 (mingw-w64 and Cygwin64).
17691769 Reserve the shadow store for the ABI in the c_stack_link struct instead of
17701770- explictly when calling C functions. This simultaneously reduces the number of
17701770+ explicitly when calling C functions. This simultaneously reduces the number of
17711771 stack pointer manipulations and also fixes a bug when calling noalloc
17721772 functions where the shadow store was not being reserved.
17731773 (David Allsopp, report by Vesa Karvonen, review by Xavier Leroy and
···27832783- #8516: Change representation of class signatures
27842784 (Leo White, review by Thomas Refis)
2785278527862786-- #9444: -dtypedtree, print more explictly extra nodes in pattern ast.
27862786+- #9444: -dtypedtree, print more explicitly extra nodes in pattern ast.
27872787 (Frédéric Bour, review by Gabriel Scherer)
2788278827892789- #10337: Normalize type_expr nodes on access
+1-1
Makefile.common
···284284# Each program foo is characterised by the foo_LIBRARIES and foo_SOURCES
285285# variables. The following macros provide the infrastructure to build foo
286286# from the object files whose names are derived from these two
287287-# varialbes. In particular, the following macros define several
287287+# variables. In particular, the following macros define several
288288# variables whose names are prefixed with foo_ to compute the
289289# different lists of files used to build foo.
290290
+2-2
asmcomp/stackframegen.ml
···4242 by treating them as non-tail calls, even if they are implemented as
4343 tail calls.
44444545- This method can be overriden in [Stackframe] to implement target-specific
4545+ This method can be overridden in [Stackframe] to implement target-specific
4646 behaviors. *)
47474848method is_call = function
···6161 This is the case if it contains calls, but also if it allocates
6262 variables on the stack.
63636464- This method can be overriden in [Stackframe] to implement target-specific
6464+ This method can be overridden in [Stackframe] to implement target-specific
6565 behaviors. *)
66666767method frame_required f contains_calls =
+1-1
manual/src/cmds/intf-c.etex
···24122412It is possible to annotate with "[\@untagged]" any immediate type, i.e. types
24132413that are represented like "int". This includes "bool", "char", any variant
24142414type with only constant constructors. Note: this does not include
24152415-"Unix.file_descr" which is not represented as an interger on all platforms.
24152415+"Unix.file_descr" which is not represented as an integer on all platforms.
2416241624172417\subsection{ss:c-direct-call}{Direct C call}
24182418
+1-1
parsing/builtin_attributes.mli
···172172(** [attr_equals_builtin attr s] is true if the name of the attribute is [s] or
173173 ["ocaml." ^ s]. This is useful for manually inspecting attribute names, but
174174 note that doing so will not result in marking the attribute used for the
175175- purpose of warning 53, so it is usually preferrable to use [has_attribute]
175175+ purpose of warning 53, so it is usually preferable to use [has_attribute]
176176 or [select_attributes]. *)
177177val attr_equals_builtin : Parsetree.attribute -> string -> bool
178178
+1-1
release-info/introduction.md
···114114 * stable feature sets
115115 * only emergency bug fixes
116116 * documentation PRs postponed to after the release
117117- * inteded for wide testing (and detecting deployment or production issues among
117117+ * intended for wide testing (and detecting deployment or production issues among
118118 large private code base)
119119120120Starting from the first alpha release, there is a small team effort to try to
+1-1
runtime/caml/domain.h
···118118 [caml_try_run_on_all_domains*] runners, it will
119119 run on all participant domains in parallel.
120120121121- The "STW critical section" is the runtime interval betweeen the
121121+ The "STW critical section" is the runtime interval between the
122122 start of the execution of the STW callback and the last barrier in
123123 the callback. During this interval, mutator code from registered
124124 participants cannot be running in parallel.
+1-1
runtime/lf_skiplist.c
···354354 /* attentive readers will have noticed that we assume memory is aligned to
355355 * atleast even addresses. This is certainly the case on glibc amd64 and
356356 * Visual C++ on Windows though I can find no guarantees for other
357357- platorms. */
357357+ platforms. */
358358 struct lf_skipcell *new_cell = caml_stat_alloc(
359359 SIZEOF_LF_SKIPCELL + (top_level + 1) * sizeof(struct lf_skipcell *));
360360 new_cell->top_level = top_level;
+1-1
runtime/memprof.c
···591591 lambda]. We could use more a involved algorithm, but this should
592592 be good enough since, in the average use case, [lambda] <= 0.01 and
593593 therefore the generation of the binomial variable is amortized by
594594- the initialialization of the corresponding block.
594594+ the initialization of the corresponding block.
595595596596 If needed, we could use algorithm BTRS from the paper:
597597 Hormann, Wolfgang. "The generation of binomial random variates."
+1-1
runtime/tsan.c
···159159 the FFI rules on the condition that the GC does not run between the
160160 allocation and the end of initialization) and a conflicting access is made
161161 from OCaml after publication to other threads. There should be no data
162162- race thanks to data dependency (see [MMOC] coment in memory.c), but TSan
162162+ race thanks to data dependency (see [MMOC] comment in memory.c), but TSan
163163 does not take data dependencies into account.
164164 - A field is accessed from C with `Field`, or more generally using a
165165 `volatile value *` or a relaxed atomic access, and that field is modified
+1-1
stdlib/CONTRIBUTING.md
···16161717Obviously, proposals made to evolve the standard library will be
1818evaluated with very high standards, similar to those applied to the
1919-evolution of the surface langage, and much higher than those for
1919+evolution of the surface language, and much higher than those for
2020internal compiler changes (optimizations, etc).
21212222A key property of the standard library is its stability. Backward
+1-1
stdlib/dynarray.ml
···483483 reserved-but-not-yet-filled space, it will get a clean "missing
484484 element" error. This is worse than with the fill-then-notify
485485 approach where the new elements would only become visible
486486- (to iterators, for removal, etc.) alltogether at the end of
486486+ (to iterators, for removal, etc.) altogether at the end of
487487 loop.
488488489489 To summarise, "reserve before fill" is better on add-add races,
+1-1
stdlib/marshal.mli
···191191 Care must be taken when marshaling a mutable value that may be modified by
192192 a different domain. Mutating a value that is being marshaled (i.e., turned
193193 into a sequence of bytes) is a programming error and might result in
194194- suprising values (when unmarshaling) due to tearing, since marshaling
194194+ surprising values (when unmarshaling) due to tearing, since marshaling
195195 involves byte-per-byte copy.
196196*)
+1-1
stdlib/random.ml
···143143 * we use rejection sampling on the greatest interval [ [0, k*n-1] ]
144144 * that fits in [ [0, mask] ]. That is, we reject the
145145 * sample if it falls outside of this interval, and draw again.
146146- * This is what the test below does, while carefuly avoiding
146146+ * This is what the test below does, while carefully avoiding
147147 * overflows and sparing a division [mask / n]. *)
148148 if r - v > mask - n + 1 then int_aux s n mask else v
149149
···126126 if (!is_from_executable(symbol, execname))
127127 goto skip;
128128129129- /* Exctract the full function name */
129129+ /* Extract the full function name */
130130 regmatch_t funcname = func_name_from_symbol(symbol);
131131 if (funcname.rm_so == -1)
132132 goto skip;
···13291329type w = private float
13301330type q = private (int * w)
13311331type u = private (int * q)
13321332-module M : sig (* Confussing error message :( *)
13321332+module M : sig (* Confusing error message :( *)
13331333 type t = private (int * (int * int))
13341334end = struct
13351335 type t = private u
+1-1
tools/objinfo.ml
···435435436436let arg_list = [
437437 "-quiet", Arg.Set quiet,
438438- " Only print explicitely required information";
438438+ " Only print explicitly required information";
439439 "-no-approx", Arg.Set no_approx,
440440 " Do not print module approximation information";
441441 "-no-code", Arg.Set no_code,
+1-1
typing/typecore.ml
···47374737 [type_argument] on the cases, and discard the cases'
47384738 inferred type in favor of the constrained type. (Function
47394739 cases aren't inferred, so [type_argument] would just call
47404740- [type_expect] straightaway, so we do the same here.)
47404740+ [type_expect] straight away, so we do the same here.)
47414741 - [type_without_constraint]: If there is just a coercion and
47424742 no constraint, call [type_exp] on the cases and surface the
47434743 cases' inferred type to [type_constraint_expect]. *)
+1-1
typing/value_rec_check.ml
···154154 (* Note on module presence:
155155 For absent modules (i.e. module aliases), the module being bound
156156 does not have a physical representation, but its size can still be
157157- derived from the alias itself, so we can re-use the same code as
157157+ derived from the alias itself, so we can reuse the same code as
158158 for modules that are present. *)
159159 let size = classify_module_expression env mexp in
160160 let env = Ident.add mid size env in
+1-1
utils/linkdeps.mli
···51515252val check : t -> error option
5353(** [check t] should be called once all the compilation units to be linked
5454- have been added. It retuns some error if:
5454+ have been added. It returns some error if:
5555 - There are some missing implementations
5656 and [complete] is [true]
5757 - Some implementation appear
+2-1
utils/local_store.mli
···1414(**************************************************************************)
15151616(** This module provides some facilities for creating references (and hash
1717- tables) which can easily be snapshoted and restored to an arbitrary version.
1717+ tables) which can easily be snapshotted and restored to an arbitrary
1818+ version.
18191920 It is used throughout the frontend (read: typechecker), to register all
2021 (well, hopefully) the global state. Thus making it easy for tools like