Skip to content
Success

Changes

Summary

  1. Fix INRIA CI job other-configs (details)
  2. usage warnings for private constructors: document our intentions in the testsuite (details)
  3. document why sprintf still exists despite asprintf (details)
  4. rewrite doc comment (details)
  5. update comment according to @octatron's suggestion (details)
  6. fix local variables in Makefile (details)
  7. Fix C++ name-mangling issue with `caml_state` on Cygwin (#14220) (details)
  8. fixes suggested by reviewer (details)
  9. Update stdlib/format.mli (details)
  10. Disable Tsan on one more deliberately-racy test. (#14232) (details)
  11. Manual attributes page fixes (#14233) (details)
  12. Fix ocamltest criterion for using `-custom` to link test file. (#14230) (details)
  13. manual(etex): trim leading spaces (#14228) (details)
  14. Fix test-in-prefix (#14216) (details)
  15. Integral type hygiene in compaction (and shared_heap.c generally). (details)
  16. Avoid an undefined variable warning from Make (details)
  17. parsetree: map on all locations in toplevel directives (details)
  18. typing: allow private constructors without usage warnings (details)
  19. Changes (details)
  20. Add native debugger manual section (details)
  21. Fixup name mangling references. (details)
  22. Don't use variadic macros for annotations (details)
  23. Changes (details)
  24. GHA: update from checkout@v4 to checkout@v5 (details)
  25. GHA: update Debian i386 image (details)
  26. explain the syntax change for variance (by #13820) (#14126) (details)
  27. GHA: factor Android NDK et API level numbers (details)
  28. Fix the CI: Skip testsuite check on AppVeyor (details)
  29. Report mingw-runtime version on x86_64 as well (details)
  30. Fix make runtop on Windows (details)
  31. GHA: fold config.log output in failed cross-builds (details)
  32. No `pthread_cancel` in Android's Bionic libc (details)
  33. Misc. Autoconf simplifications (details)
  34. stdlib: add filter_mapi function (#14227) (details)
  35. Add caml_check_error_exn (details)
  36. Preparation: caml_thread_new_descriptor_exn (details)
  37. Preparation: install_backup_thread_exn (details)
  38. [clean-up] Remove unused field (details)
  39. [minor] Factor domain_thread_func (details)
  40. Handle errors during domain spawn (details)
  41. Call non-raising variants of lock/broadcast (details)
  42. Changes (details)
  43. reviewer suggestions (details)
  44. parsing: refactor ast {iter,map} location functions (#14237) (details)
  45. document domains joining their systhreads before being joined (#14248) (details)
  46. Allow strings to be shared by Lambda.make_key (details)
  47. Use Const_immstring for all constant strings created by the compiler (details)
  48. Introduce Lambda.lambda_of_const (details)
  49. Introduce Lambda.constant type (details)
  50. Remove Lambda.Const_base indirection (details)
  51. Changes for PR14260 (details)
  52. Fix TSan shadow stack popping on some C stubs (#14213) (details)
  53. manual: always refer to headers as <caml/example.h> (details)
  54. Unicode changes in Format should be treated as breaking changes (#14272) (details)
  55. stdlib: implement chop_suffix_opt in term of check_suffix (details)
  56. stdlib: no allocation for Filename.is_implicit (details)
  57. manual: add explanation about 'simple' GC rules (#14273) (details)
  58. Remove unused variable from fp_backtrace (#14277) (details)
  59. dsource: preserve (mod) whenever this form is allowed (details)
  60. Fix a typo in the Repr.compare documentation. (#14281) (details)
  61. Changes entry (details)
  62. Typos, typos (#14283) (details)
  63. Use multicoretests.0.10 compatible with restored Gc.stat stack_size ocaml-multicore/multicoretests#567 (details)
  64. Bugfix for GC root mishandling in memprof.c (details)
  65. Changes (details)
  66. Use multicoretests.0.11 compatible with adjusted Domain.spawn error msg ocaml-multicore/multicoretests#571 (details)
  67. update info in preparation of the 5.4.0 release (details)
  68. sync Changes with 5.4.0 (details)
  69. update calendar (details)
  70. Add caml_find_index_of_running_domain (details)
  71. Add caml_c_thread_register_in_domain (details)
  72. Add tests for caml_c_thread_register_in_domain (details)
  73. Add caml_c_thread_register_in_domain to manual (details)
  74. Add Changes entry (details)
  75. Display more debugging information (details)
  76. Avoid TLS in st_stubs.c (details)
  77. Use Digest.BLAKE128 for the compiler's consistency checks (details)
  78. Bootstrap (details)
  79. Formatting (details)
  80. Update locations (details)
  81. Changes (details)
  82. Improve doc of Runtime_events.Timestamp (details)
  83. Mention changes in Changes (details)
  84. improve more (details)
  85. update Changes with reviewer info (details)
  86. .gitmodules: add the branch config entry (details)
  87. Mark FLEXLINKFLAGS as precious and pass them to flexlink invocation (details)
  88. ocaml-variants.opam: require FlexDLL >= 0.44 (details)
  89. Define RC to choose an alternative resource compiler (details)
  90. Pass $CC in the flexdll build env (details)
  91. Update changes (details)
  92. Use clang-cl for flexdll support objects (details)
  93. Don't persist FLEXLINKFLAGS in flexlink_flags (details)
  94. Define MANIFEST_TOOL to choose an alternative manifest generator (details)
  95. tweak documentation of Runtime_events.Timestamp (details)
  96. Amend the documentation of the constraint (details)
  97. Make the type checker more deterministic (#14297) (details)
  98. Modify frame pointer tests to normalise symbols (details)
  99. Translobj: ensure consistent order for placing shared constants (#14299) (details)
  100. Add missing TSan accounting in caml_c_call_stack_args for x86_64 (details)
  101. Fix caml_c_call_stack_args for ARM64, POWER, RISC-V and s390x (details)
  102. Update TSan tests after #12410 (details)
  103. Update changelog (details)
  104. fix typo in ci action (#14309) (details)
  105. I didn't add the reviewers for #13785, apologies. (details)
  106. Changes: add missing 'and' and ',' (details)
  107. Always use the `"I"` format specifier for `size_t` with mingw (#14308) (details)
  108. Detect DWARF version for the Clang assembler (or: fix `test-in-prefix` for the other-configs tests) (#14314) (details)
Commit cb0f2beca7e3b2530f5d3fde2d31e57f44d79a17 by damien.doligez
Fix INRIA CI job other-configs
The file was modifiedtools/ci/inria/other-configs/script (diff)
The file was modifiedtools/ci/inria/main (diff)
Commit ea0dc273d094c6b9cefbaafaf340d59207b53725 by gabriel.scherer
usage warnings for private constructors: document our intentions in the testsuite
The file was modifiedtestsuite/tests/typing-warnings/unused_types.ml (diff)
Commit 8111f3ecc16664ed399681b1ef4b8f5d6c8b2ed2 by emile.trotignon
document why sprintf still exists despite asprintf
The file was modifiedstdlib/format.mli (diff)
The file was modifiedstdlib/format.mli (diff)
Commit 86a5432a8f3664b2b7fa921bc2c8d7affd2802e9 by emile.trotignon
update comment according to @octatron's suggestion
The file was modifiedstdlib/format.mli (diff)
Commit e98da56cd31863fc4d5e1de906209c3603ec7256 by damien.doligez
fix local variables in Makefile
The file was modifiedMakefile (diff)
Commit 7e00974029993e160f053cf6df9bd6398836af32 by noreply
Fix C++ name-mangling issue with `caml_state` on Cygwin (#14220)

Fix Cygwin problems linking with caml_state from C++

---------

Co-authored-by: Antonin Décimo <antonin@tarides.com>
Co-authored-by: David Allsopp <david.allsopp@metastack.com>
The file was modifiedruntime/caml/misc.h (diff)
The file was modifiedChanges (diff)
Commit 2d294ca2a47f974cc7121d2180bd1e5b464384a2 by damien.doligez
fixes suggested by reviewer
The file was modifiedtools/ci/inria/main (diff)
The file was modifiedtools/ci/inria/other-configs/script (diff)
Commit 382d57bc0f9855e3615646184222976898fa3675 by noreply
Update stdlib/format.mli

Co-authored-by: Antonin Décimo <antonin.decimo@gmail.com>
The file was modifiedstdlib/format.mli (diff)
Commit b798f4f3bc55ce21c152ed1669f15bb0e2871309 by noreply
Disable Tsan on one more deliberately-racy test. (#14232)

The file was modifiedtestsuite/tests/weak-ephe-final/weaktest_par_load.ml (diff)
Commit 3224d3d8413825ac7b536ba1bb9cddfe26bc1041 by noreply
Manual attributes page fixes (#14233)

* Change quotes to display attributes names as inline code blocks

* Fix typos

* Reflow text
The file was modifiedmanual/src/refman/extensions/attributes.etex (diff)
Commit a18fbb7881ca8e95f1a738ac524888b697c8187d by noreply
Fix ocamltest criterion for using `-custom` to link test file. (#14230)

Ocamltest uses the wrong criterion when deciding whether to link the
test program with `-custom`.

Instead of looking at the libraries being linked and checking them
for dynamically-linked C code, simply check their `lib_custom` flag.
The file was modifiedChanges (diff)
The file was modifiedocamltest/ocaml_actions.ml (diff)
Commit 7cd5ca2e2357f3d895d4b23980dac826f0eb2bd8 by noreply
manual(etex): trim leading spaces (#14228)

The file was modifiedmanual/src/library/builtin.etex (diff)
The file was modifiedChanges (diff)
Commit 374aee416bc98d2e6db15b495f05bbb7d88ecfae by noreply
Fix test-in-prefix (#14216)

Add `flexlink.exe` and `ocamllex.exe` to the list of files that do not
link with the Config module. Normally, these are symlinks to `*.byte.exe`
or `*.opt.exe` but (depending on Windows shenanigans) `configure` may
decide to use `cp` instead of `ln -s`.
The file was modifiedtestsuite/tools/testRelocation.ml (diff)
Commit c75d26f9bafbc32fa72a9a0f11df76ecd9b74611 by Nick.Barnes
Integral type hygiene in compaction (and shared_heap.c generally).
The file was modifiedruntime/shared_heap.c (diff)
The file was modifiedruntime/caml/sizeclasses.h (diff)
The file was modifiedtools/gen_sizeclasses.ml (diff)
The file was modifiedChanges (diff)
Commit 49755dbc183b5f5b5a0c3466fe8cfd4eb728ae03 by antonin
Avoid an undefined variable warning from Make

Co-authored-by: David Allsopp <david.allsopp@metastack.com>
The file was modifiedMakefile.common (diff)
Commit ba67146c64f9abd8928d19b2e19b42f4b2ba1195 by Florian Angeletti
parsetree: map on all locations in toplevel directives
The file was modifiedChanges (diff)
The file was modifiedparsing/ast_iterator.ml (diff)
The file was modifiedparsing/ast_mapper.ml (diff)
Commit c648c5fb2b16ce1d1ec571db9fb021ac3e148c15 by gabriel.scherer
typing: allow private constructors without usage warnings

We would like to allow the use of private variant constructors to
build 'phantom' types used for GADT indices:

    type zero = private Zero
    type 'a succ = private Succ

    type ('a, _) sized_list =
    | Nil : ('a, zero) sized_list
    | Cons : 'a * ('a, 'n) sized_list -> ('a, 'n succ) sized_list

Before the present commit, this example would fail with "unused
constructors" warning on Zero and Succ.

(We still warn on type constructors that are defined as public, and
then exported as private in a signature. But on types that are defined
as private in the implementation, warning that they are not used is
not that useful anyway, because it is impossible to construct them
except through the FFI.)

Note: we could reasonably warn on constructors that are defined as
private in the implementation, and then used in pattern-matching (but
never constructed, as constructing them is a type error). But this is
arguably warning about something different, and there is a risk of
negatively affecting existing projects by raising unused-constructor
warnings more often.

Reviewed-by: Florian Angeletti <florian.angeletti@inria.fr>
Reviewed-by: Nicolás Ojeda Bär <n.oje.bar@gmail.com>
The file was modifiedtyping/env.ml (diff)
The file was modifiedtestsuite/tests/typing-warnings/unused_types.ml (diff)
The file was modifiedChanges (diff)
Commit 3c12e951106c94cf7e233b74a6b7004861c533e9 by timmcgil
Add native debugger manual section
The file was modifiedmanual/src/cmds/Makefile (diff)
The file was addedmanual/src/cmds/native-debugger.etex
The file was modifiedChanges (diff)
The file was modifiedmanual/src/allfiles.etex (diff)
Commit 059f62c9362161e35334dcd1152457d705acb2e5 by timmcgil
Fixup name mangling references.
The file was modifiedmanual/src/cmds/profil.etex (diff)
Commit aec2c9f55e7c47a1613879014e0438ac2f07089e by n.oje.bar
Don't use variadic macros for annotations

Varadic macros expect at least one parameter for the variadic part (at
least until C++20). They were used to allow for possible future
extension by adding more parameters.

    /Users/antonin/Tarides/ocaml/trunk/runtime/caml/memory.h:89:32: error: ISO C++11 requires at least one argument for the "..." in a variadic macro [-Werror]
       89 | CAMLmalloc(caml_stat_free, 1, 1) CAMLreturns_nonnull()
          |                                ^
The file was modifiedruntime/caml/misc.h (diff)
The file was modifiedChanges (diff)
Commit b69e661dd4f54d06ba54581279f45905b28119a4 by antonin
GHA: update from checkout@v4 to checkout@v5
The file was modified.github/workflows/build-cross.yml (diff)
The file was modified.github/workflows/multicoretests.yml (diff)
The file was modified.github/workflows/tsan.yml (diff)
The file was modified.github/workflows/build-msvc.yml (diff)
The file was modified.github/workflows/build.yml (diff)
The file was modified.github/workflows/hygiene.yml (diff)
Commit ead3daa2c8088ef43ccd4e786e6249e9505cd654 by antonin
GHA: update Debian i386 image
The file was modified.github/workflows/build.yml (diff)
Commit 53643702ef0345ae5fd1d3f0a10774149f819bf5 by noreply
explain the syntax change for variance (by #13820) (#14126)

The file was modifiedmanual/src/cmds/unified-options.etex (diff)
The file was modifiedmanual/src/refman/typedecl.etex (diff)
The file was modifiedChanges (diff)
Commit 1e394346cd0523378d247758772d024bf264b430 by antonin
GHA: factor Android NDK et API level numbers
The file was modified.github/workflows/build-cross.yml (diff)
Commit ff135f8f84b88cfe231eb85ee7a60fb4f785850a by david.allsopp
Fix the CI: Skip testsuite check on AppVeyor
The file was modifiedtools/ci/appveyor/appveyor_build.sh (diff)
Commit 05d70fe60b97785b793662c6c8aabcf7f085b60d by david.allsopp
Report mingw-runtime version on x86_64 as well

AppVeyor reports the version of the mingw-i686-runtime package, but that
wasn't copied over when the other ports were added on AppVeyor.
The file was modifiedtools/ci/appveyor/appveyor_build.cmd (diff)
Commit a11678ab3deb3e559bb45b6a3c919474fca0619d by david.allsopp
Fix make runtop on Windows
The file was modifiedMakefile (diff)
Commit dfb80049b3d4d3c64be01389c5bf630d96fae33c by antonin
GHA: fold config.log output in failed cross-builds

Turn off the echo'ing of command with `set +x` when displaying
`config.log`, otherwise it may scramble the output.
The file was modified.github/workflows/build-cross.yml (diff)
Commit 2b8d4ba3339e51989cbd4cd4ba5476cb29f9f0e6 by antonin
No `pthread_cancel` in Android's Bionic libc

Replacing `pthread_cancel` with assert using the preprocessor doesn't
work if `assert` isn't defined either! It was `<assert.h>` that was
missing, prefer detecting at configure-time whether `pthread_cancel`
is supported, and guard its use. Another option would be to guard its
use using the `__BIONIC__` macro.

- https://android.googlesource.com/platform/bionic/+/master/tests/headers/posix/pthread_h.c#90
- https://stackoverflow.com/questions/26823926/pthread-cancel-not-found-compiling-with-android-toolchain
The file was modified.github/workflows/build-cross.yml (diff)
The file was modifiedconfigure (diff)
The file was modifiedruntime/caml/s.h.in (diff)
The file was modifiedconfigure.ac (diff)
The file was modifiedruntime/domain.c (diff)
Commit 2a77436c30069479c3fc2105048fe75bc44be298 by antonin
Misc. Autoconf simplifications
The file was modifiedconfigure (diff)
The file was modifiedotherlibs/systhreads/st_stubs.c (diff)
The file was modifiedconfigure.ac (diff)
The file was modifiedruntime/caml/s.h.in (diff)
Commit 75e0f8459f914df08a89982b7dce29a8ec75056c by noreply
stdlib: add filter_mapi function (#14227)

The file was modifiedstdlib/list.ml (diff)
The file was modifiedstdlib/list.mli (diff)
The file was modifiedstdlib/listLabels.mli (diff)
The file was modifiedtestsuite/tests/lib-list/test.ml (diff)
The file was modifiedChanges (diff)
The file was modifiedruntime/caml/fail.h (diff)
The file was modifiedruntime/sync.c (diff)
Commit d48a2f4c738aa01e0c1e9510030203ff25912dde by guillaume.munch-maccagnoni
Preparation: caml_thread_new_descriptor_exn
The file was modifiedotherlibs/systhreads/st_pthreads.h (diff)
The file was modifiedotherlibs/systhreads/st_stubs.c (diff)
The file was modifiedruntime/domain.c (diff)
The file was modifiedruntime/caml/domain.h (diff)
Commit a6cf51f49788dedd57edd2396b120569d9dab6ba by guillaume.munch-maccagnoni
Preparation: install_backup_thread_exn

We move install_backup_thread_exn earlier to avoid having to undo
the domain creation.
The file was modifiedruntime/domain.c (diff)
The file was modifiedruntime/domain.c (diff)
Commit 89bfbb66af953b603de5da490199e0341bdc2f83 by guillaume.munch-maccagnoni
[minor] Factor domain_thread_func
The file was modifiedruntime/domain.c (diff)
Commit 4153a51593b774eb2762e7cfdb8b71a4ce21413a by guillaume.munch-maccagnoni
Handle errors during domain spawn
The file was modifiedruntime/domain.c (diff)
The file was modifiedstdlib/domain.ml (diff)
Commit a102c44437db1ea3072ff5937182bcf2928c3862 by guillaume.munch-maccagnoni
Call non-raising variants of lock/broadcast
The file was modifiedruntime/domain.c (diff)
The file was modifiedruntime/caml/sync.h (diff)
The file was modifiedChanges (diff)
The file was modifiedotherlibs/systhreads/st_stubs.c (diff)
The file was modifiedruntime/sync.c (diff)
The file was modifiedruntime/domain.c (diff)
Commit 07169f4c16f89c7759e9afee14b2b8405e7a73eb by noreply
parsing: refactor ast {iter,map} location functions (#14237)

The file was modifiedparsing/ast_iterator.ml (diff)
The file was modifiedparsing/ast_mapper.ml (diff)
Commit da9b264a60e52133fe57f938c4038585be4d70ea by noreply
document domains joining their systhreads before being joined (#14248)

The file was modifiedChanges (diff)
The file was modifiedstdlib/domain.mli (diff)
The file was modifiedmanual/src/tutorials/parallelism.etex (diff)
Commit be625238bb2703739243931d9a86a823773336f5 by stedolan
Allow strings to be shared by Lambda.make_key

Strings have been immutable for a while now
The file was modifiedlambda/lambda.ml (diff)
The file was modified.depend (diff)
Commit 0da37567f9c349945ef99a028c838f7459fa9dbd by vincent.laviron
Use Const_immstring for all constant strings created by the compiler
The file was modifiedlambda/matching.ml (diff)
The file was modifiedbytecomp/symtable.ml (diff)
The file was modifiedlambda/translcore.ml (diff)
The file was modifiedlambda/translmod.ml (diff)
Commit 60e044e1bfa802690e97012df5a6c9552a4e56de by vincent.laviron
Introduce Lambda.lambda_of_const

This helper function ensures that constant strings are always
represented using Const_immstring and not Const_base (Const_string _)
The file was modifiedlambda/lambda.ml (diff)
The file was modifiedlambda/lambda.mli (diff)
The file was modifiedlambda/translcore.ml (diff)
The file was modifiedlambda/matching.ml (diff)
Commit 59ae1d79427ae2073adae7eeb41130eaa981c6f9 by vincent.laviron
Introduce Lambda.constant type

This is a copy of Asttypes.constant minus the string case.
It ensures that there is a single way to represent constant strings,
and allows to remove a few pieces of duplicated code.
The file was modified.depend (diff)
The file was modifiedlambda/matching.ml (diff)
The file was modifiedlambda/lambda.mli (diff)
The file was modifiedbytecomp/symtable.ml (diff)
The file was modifiedmiddle_end/flambda/closure_conversion.ml (diff)
The file was modifiedlambda/printlambda.ml (diff)
The file was modifiedlambda/lambda.ml (diff)
The file was modifiedbytecomp/emitcode.ml (diff)
The file was modifiedmiddle_end/closure/closure.ml (diff)
Commit 5eefdf28fcbad1ef8acbb47c4e3c0d8c459a2264 by vincent.laviron
Remove Lambda.Const_base indirection
The file was modifiedbytecomp/emitcode.ml (diff)
The file was modifiedlambda/lambda.mli (diff)
The file was modifiedlambda/simplif.ml (diff)
The file was modifiedlambda/tmc.ml (diff)
The file was modifiedbytecomp/symtable.ml (diff)
The file was modifiedlambda/printlambda.ml (diff)
The file was modifiedlambda/translcore.ml (diff)
The file was modifiedmiddle_end/flambda/closure_conversion.ml (diff)
The file was modifiedbytecomp/bytegen.ml (diff)
The file was modifiedlambda/lambda.ml (diff)
The file was modifiedlambda/value_rec_compiler.ml (diff)
The file was modifiedlambda/translprim.ml (diff)
The file was modifiedlambda/translobj.ml (diff)
The file was modifiedlambda/matching.ml (diff)
The file was modifiedmiddle_end/closure/closure.ml (diff)
The file was modifiedChanges (diff)
Commit 25b6cc979dee394b5fb7e1eac24c2ad33317907b by noreply
Fix TSan shadow stack popping on some C stubs (#14213)

Until now, when an exception was raised from C and TSan was enabled, the
runtime would unwind the (real) stack and pop on TSan's shadow stack at
every frame, until the stack pointer was at a higher address than the
c_stack_link. This is incorrect: the correct condition is to stop when
the stack pointer is no longer between the c_stack_link and the stack
pointer's value before unwinding. This is because unwinding beyond the
c_stack_link means going back to an OCaml stack, which is on the heap,
and may be stored at an arbitrary address, higher or lower than the C
stack.

This change also makes the code clearer by using a for loop and
improving comments.

Co-authored-by: Gabriel Scherer <gabriel.scherer@gmail.com>
The file was modifiedruntime/tsan.c (diff)
The file was modifiedChanges (diff)
Commit 6f9ba541c0f930efb9d8eeb5bd82eff2262bea5d by antonin
manual: always refer to headers as <caml/example.h>
The file was modifiedmanual/src/cmds/intf-c.etex (diff)
Commit 11c9a6bb888404ed9a32b879a4440ba790eef095 by noreply
Unicode changes in Format should be treated as breaking changes (#14272)

See https://github.com/dbuenzli/cmdliner/issues/234 where this potentially causes a testcase that was previously passing on 5.3 to now fail on 5.4.0~beta2.
The file was modifiedChanges (diff)
Commit fed975497bef3cb6749a4b959aacf1bd864c5a5b by hugo.heuzard
stdlib: implement chop_suffix_opt in term of check_suffix
The file was modifiedstdlib/filename.ml (diff)
Commit fce7f5f74a5a5413a91d9b3d507a234145e0e5cc by hugo.heuzard
stdlib: no allocation for Filename.is_implicit
The file was modifiedstdlib/filename.ml (diff)
Commit c4ae499b8fcb7fcf89146bb538ed2bd92ba5a579 by noreply
manual: add explanation about 'simple' GC rules (#14273)

* manual: add explanation about 'simple' GC rules

* Review
The file was modifiedmanual/src/cmds/intf-c.etex (diff)
Commit f024962042c57a257f4367fbadbcb8d3428c3895 by noreply
Remove unused variable from fp_backtrace (#14277)

The file was modifiedtestsuite/tests/frame-pointers/fp_backtrace.c (diff)
Commit 9d1dba93f4500fbc4ed7ef46b47d9840b4fd9e04 by Florian Angeletti
dsource: preserve (mod) whenever this form is allowed
The file was modifiedtestsuite/tests/parsetree/source.ml (diff)
The file was modifiedtestsuite/tests/parsing/rawidents.ml (diff)
The file was modifiedparsing/pprintast.ml (diff)
Commit e39fcc48b1b573ee49c86843cfd02737977fe682 by noreply
Fix a typo in the Repr.compare documentation. (#14281)

The file was modifiedstdlib/repr.mli (diff)
The file was modifiedChanges (diff)
Commit 64c0298546dfa7221671a809dd97ca93aa93ea0e by noreply
Typos, typos (#14283)

The file was modifiedrelease-info/howto.md (diff)
The file was modifiedtestsuite/tools/harness.mli (diff)
The file was modifiedparsing/location.mli (diff)
The file was modifiedparsing/parser.mly (diff)
The file was modifiedtyping/typedecl.ml (diff)
The file was modifiedman/ocamlopt.1 (diff)
The file was modifiedstdlib/format.mli (diff)
The file was modifiedstdlib/string.mli (diff)
The file was modifiedstdlib/fun.mli (diff)
The file was modifiedman/ocamlc.1 (diff)
The file was modifiedtestsuite/tests/lib-array/test_array.ml (diff)
The file was modifiedtyping/includemod.ml (diff)
The file was modifiedlambda/matching.ml (diff)
The file was modifiedruntime/memprof.c (diff)
The file was modifiedtestsuite/tests/parsing/comments.ml (diff)
The file was modifiedHACKING.adoc (diff)
The file was modifiedutils/format_doc.mli (diff)
The file was modifiedruntime/caml/mlvalues.h (diff)
The file was modifiedtestsuite/tests/uids/intf_uids_test.ml (diff)
The file was modifiedmanual/src/cmds/runtime-tracing.etex (diff)
The file was modifiedChanges (diff)
The file was modifiedruntime/domain.c (diff)
The file was modifiedtestsuite/tests/tool-toplevel/install_printer.ml (diff)
The file was modifiedtestsuite/tests/typing-modules/functors.ml (diff)
The file was modifiedasmcomp/cmm_helpers.ml (diff)
The file was modifiedtestsuite/in_prefix/README.md (diff)
The file was modifiedtyping/gprinttyp.ml (diff)
The file was modifiedutils/misc.ml (diff)
The file was modifiedutils/config.mli (diff)
The file was modifiedINSTALL.adoc (diff)
The file was modifiedutils/diffing.ml (diff)
The file was modifiedotherlibs/runtime_events/runtime_events.mli (diff)
The file was modifiedstdlib/stringLabels.mli (diff)
The file was modifiedtyping/rawprinttyp.mli (diff)
The file was modifiedtestsuite/tests/shape-index/index_aliases.ml (diff)
The file was modifiedtestsuite/tools/toolchain.ml (diff)
The file was modifiedMakefile.cross (diff)
The file was modifiedtyping/out_type.mli (diff)
The file was modifiedtestsuite/tests/typing-modules/merge_constraint.ml (diff)
The file was modifiedtyping/subst.mli (diff)
The file was modifiedparsing/unit_info.mli (diff)
The file was modifiedrelease-info/News (diff)
The file was modifiedtestsuite/tests/typing-external/non_syntactic_arity.ml (diff)
The file was modifiedtyping/ctype.ml (diff)
Commit a20ef80058a713edf56342b5c5bf57b9a46cbd84 by mail
Use multicoretests.0.10 compatible with restored Gc.stat stack_size ocaml-multicore/multicoretests#567
The file was modified.github/workflows/multicoretests.yml (diff)
Commit 1366f6cda02d9b2618c5348157ebad28badb1ab1 by stedolan
Bugfix for GC root mishandling in memprof.c

When allocating the OCaml block for a Gc.Memprof info block, memprof.c uses
e->user_data as the root for the callstack. While e->user_data is indeed a root,
this is incorrect: e->user_data is only scanned during minor GC if it is the
right side of the 'young' pointer, and this might not be the case.

The fix is to use a normal CAMLlocal1 root for this value.

The testcase is tricky, but reliably crashes before and passes after this fix.
The file was addedtestsuite/tests/statmemprof/user_data_regression.ml
The file was modifiedruntime/memprof.c (diff)
The file was addedtestsuite/tests/statmemprof/user_data_regression_stub.c
The file was addedtestsuite/tests/statmemprof/user_data_regression.reference
The file was modifiedChanges (diff)
Commit 1339bf281aaf32435b4e544aa658ba3f5776a609 by mail
Use multicoretests.0.11 compatible with adjusted Domain.spawn error msg ocaml-multicore/multicoretests#571
The file was modified.github/workflows/multicoretests.yml (diff)
Commit 1945857b7f5349b1d76a904d07be2e0a2a302397 by Florian Angeletti
update info in preparation of the 5.4.0 release
The file was modifiedrelease-info/News (diff)
The file was modifiedChanges (diff)
The file was modifiedrelease-info/calendar.md (diff)
Commit f8de0cbb7d7cbb34c69733f66f56e2b60bda4bba by j
Add caml_find_index_of_running_domain

Author:    Gabriel Scherer <gabriel.scherer@gmail.com>
Co-authored-by: Jack Nørskov Jørgensen <j@nojo.dk>
The file was modifiedruntime/caml/domain.h (diff)
The file was modifiedruntime/domain.c (diff)
Commit 1f39a263bb5bdee11c2ce75b702c4f9254d7c6fd by j
Add caml_c_thread_register_in_domain
The file was modifiedotherlibs/systhreads/caml/threads.h (diff)
The file was modifiedotherlibs/systhreads/st_stubs.c (diff)
Commit fbf5f9e24b831b7c51cc21071035a6b7bec7ce40 by j
Add tests for caml_c_thread_register_in_domain
The file was modifiedtestsuite/tests/parallel/test_c_thread_register.reference (diff)
The file was modifiedtestsuite/tests/parallel/test_c_thread_register.ml (diff)
The file was modifiedtestsuite/tests/parallel/test_c_thread_register_cstubs.c (diff)
Commit 4a98ebb1ca5dca1601160c04f1a3c5a7e13564ea by j
Add caml_c_thread_register_in_domain to manual
The file was modifiedmanual/src/cmds/intf-c.etex (diff)
Commit 86a6f21df2e10a41a7b26e9102eb6ccee5f76c42 by j
Add Changes entry
The file was modifiedChanges (diff)
Commit 28ab1c9810dd47184d24bd32e076c4a69ee99382 by david.allsopp
Display more debugging information
The file was modifiedtools/ci/appveyor/appveyor_build.sh (diff)
The file was modifiedruntime/domain.c (diff)
The file was modifiedotherlibs/systhreads/st_stubs.c (diff)
The file was modifiedruntime/caml/domain.h (diff)
Commit 426dc857cb390d077ed75a47eed099b32901beb6 by vincent.laviron
Use Digest.BLAKE128 for the compiler's consistency checks
The file was modifiedfile_formats/linear_format.mli (diff)
The file was modifiedfile_formats/cmt_format.mli (diff)
The file was modifiedfile_formats/cmt_format.ml (diff)
The file was modifiedtyping/persistent_env.ml (diff)
The file was modifiedfile_formats/linear_format.ml (diff)
The file was modifiedfile_formats/cmi_format.mli (diff)
The file was modifiedmiddle_end/compilenv.mli (diff)
The file was modifiedotherlibs/dynlink/byte/dynlink_symtable.mli (diff)
The file was modifiedutils/consistbl.mli (diff)
The file was modifiedasmcomp/asmlink.mli (diff)
The file was modifiedotherlibs/dynlink/dynlink_platform_intf.ml (diff)
The file was modifiedotherlibs/dynlink/dynlink_common.ml (diff)
The file was modifiedtyping/env.mli (diff)
The file was modifiedfile_formats/cmo_format.mli (diff)
The file was modifiedfile_formats/cmi_format.ml (diff)
The file was modifiedtools/ocamlcmt.ml (diff)
The file was modifiedbytecomp/symtable.mli (diff)
The file was modifiedmiddle_end/compilenv.ml (diff)
The file was modifiedtoplevel/expunge.ml (diff)
The file was modifiedasmcomp/cmm_helpers.mli (diff)
The file was modifiedutils/misc.mli (diff)
The file was modifiedasmcomp/asmlink.ml (diff)
The file was modifiedutils/misc.ml (diff)
The file was modifiedtyping/persistent_env.mli (diff)
The file was modifiedotherlibs/dynlink/byte/dynlink.ml (diff)
The file was modifiedtools/objinfo.ml (diff)
The file was modifiedutils/consistbl.ml (diff)
The file was modifiedotherlibs/dynlink/native/dynlink.ml (diff)
The file was modifiedfile_formats/cmxs_format.mli (diff)
The file was modifiedbytecomp/symtable.ml (diff)
The file was modifiedfile_formats/cmx_format.mli (diff)
The file was modifiedotherlibs/dynlink/byte/dynlink_symtable.ml (diff)
The file was modifiedboot/ocamlc (diff)
The file was modifiedboot/ocamllex (diff)
The file was modifiedfile_formats/cmx_format.mli (diff)
The file was modifiedotherlibs/dynlink/dynlink_platform_intf.ml (diff)
The file was modifiedasmcomp/cmm_helpers.mli (diff)
The file was modifiedutils/consistbl.mli (diff)
The file was modifiedotherlibs/dynlink/byte/dynlink.ml (diff)
The file was modifiedtools/ocamlcmt.ml (diff)
The file was modifiedasmcomp/asmlink.mli (diff)
The file was modifiedtoplevel/expunge.ml (diff)
The file was modifiedtyping/persistent_env.mli (diff)
The file was modifiedtestsuite/tests/lib-dynlink-initializers/test10_main.byte.reference (diff)
The file was modifiedChanges (diff)
Commit b7830a75cfb88248dbcf6065c1aa23000e1a370d by code
Improve doc of Runtime_events.Timestamp
The file was modifiedotherlibs/runtime_events/runtime_events.mli (diff)
Commit 5e28b7f15bac636fddff1eb8b064ebe9f82f6747 by code
Mention changes in Changes
The file was modifiedChanges (diff)
The file was modifiedotherlibs/runtime_events/runtime_events.mli (diff)
Commit 4e2469caa84e8ce45f7cc8f76853fc4d97fe7fe3 by code
update Changes with reviewer info
The file was modifiedChanges (diff)
Commit 558b7071f722c24231d2be320d076a4d14e81a53 by antonin
.gitmodules: add the branch config entry

It makes it clearer how to select a different branch than master when
experimenting.
The file doesn't need a copyright header.
The file was modified.gitattributes (diff)
The file was modified.gitmodules (diff)
Commit 51a30e6eb5398ce57611e07df0ac3b9f9d9c6426 by antonin
Mark FLEXLINKFLAGS as precious and pass them to flexlink invocation

Flexlink reads the FLEXLINKFLAGS env var for supplementary flags. They
could be used when building the compiler. If we don't add them
explicitly to `$flexlinkflags` they're:

1. not shown in the flexlink invocations;
2. not retained after the build, when the installed ocaml calls
   flexlink as a linker.

Prefer passing the FLEXLINKFLAGS explicitly in the invocation, at the
risk of duplicating the flags if FLEXLINKFLAGS is set in the
environment rather than given to configure as an argument.

This change also marks the variable as precious so that any change to
it invalidates the build.
The file was modifiedconfigure (diff)
The file was modifiedconfigure.ac (diff)
Commit f95e62d9208ba096b870820832ccd958f8c02366 by antonin
ocaml-variants.opam: require FlexDLL >= 0.44

FlexDLL before 0.44 would try to rediscover the C compiler and other
tools it should use. This would introduce a mismatch if users chose an
C compiler when building OCaml, and FlexDLL would chose another
compiler.

As of FlexDLL 0.44, its Makefile exposes all of the required
settings. OCaml build scripts now know how to forward the selected
tools to FlexDLL build scripts. Update the lower bound to set that in
stone.
The file was modifiedocaml-variants.opam (diff)
Commit a07d801c1e7675349cb070cbe47a8dacfd75c25c by antonin
Define RC to choose an alternative resource compiler

This allow overriding the default resource processor, used during
FlexDLL's bootstrap. The variable name is defined by libtool.

Pass the variable to the flexlink Makefile.
The file was modifiedMakefile (diff)
The file was modifiedconfigure.ac (diff)
The file was modifiedMakefile.build_config.in (diff)
The file was modifiedconfigure (diff)
Commit 9fa923388297cd377ccc4446cd9c9b1442da0f38 by antonin
Pass $CC in the flexdll build env

FlexDLL's Makefile has its own mechanism to discover the C
compiler. Override it with the selected C compiler.
The file was modifiedMakefile (diff)
The file was modifiedChanges (diff)
Commit 32c0c15b97567639eb7fe0b0a34fc00f6d23d644 by antonin
Use clang-cl for flexdll support objects
The file was modifiedtestsuite/tools/toolchain.ml (diff)
Commit 9beef920e802a98e8296da536b475a6d694ea865 by antonin
Don't persist FLEXLINKFLAGS in flexlink_flags
The file was modifiedconfigure.ac (diff)
The file was modifiedconfigure (diff)
Commit 4b84678361c2fb7f2d60a0acaadade2a34c9b6c7 by antonin
Define MANIFEST_TOOL to choose an alternative manifest generator

This allows using `llvm-mt` instead of `mt.exe`. The MANIFEST_TOOL
variable is defined by libtool.
The file was modifiedconfigure (diff)
The file was modifiedMakefile.common (diff)
The file was modifiedMakefile.build_config.in (diff)
The file was modifiedconfigure.ac (diff)
Commit ae5a7f32ea54a3f22a921c2bcd97b8508c40da9b by code
tweak documentation of Runtime_events.Timestamp
The file was modifiedotherlibs/runtime_events/runtime_events.mli (diff)
Commit dc14cf17fb0bca7f8a7cd259582ae5249d85bfce by guillaume.munch-maccagnoni
Amend the documentation of the constraint

Have a less committal description to leave the door open to possible
future changes to this constraint
The file was modifiedmanual/src/cmds/intf-c.etex (diff)
The file was modifiedotherlibs/systhreads/caml/threads.h (diff)
The file was modifiedotherlibs/systhreads/st_stubs.c (diff)
Commit 6cb296a79560504385ce333e496c14f842d5192c by noreply
Make the type checker more deterministic (#14297)

* Typetexp: require non-randomized hash tables to produce deterministic types

* Use maps instead of hash tables to ensure deterministic iteration order

* Hygiene

* Add comments
The file was modifiedtestsuite/tests/typing-recmod/t09bad.compilers.reference (diff)
The file was modifiedChanges (diff)
The file was modifiedtyping/typetexp.ml (diff)
The file was modifiedtestsuite/tests/typing-recmod/t08bad.compilers.reference (diff)
The file was modified.depend (diff)
Commit c2eec4dd1de7d0da2d2f76e5e7f2b567901f4e2c by timmcgil
Modify frame pointer tests to normalise symbols

Each platform has a different name mangling scheme, however for these
tests we can just replace the '$' with '.' normalising the names
across platforms. These tests don't require escaping of special
characters so it is safe to do this.
The file was modifiedtestsuite/tests/frame-pointers/fp_backtrace.c (diff)
The file was modifiedtestsuite/tests/frame-pointers/stack_realloc2.reference (diff)
The file was modifiedtestsuite/tests/frame-pointers/stack_realloc.reference (diff)
The file was modifiedtestsuite/tests/frame-pointers/effects.reference (diff)
The file was modifiedtestsuite/tests/frame-pointers/exception_handler.reference (diff)
The file was modifiedtestsuite/tests/frame-pointers/exceptions.reference (diff)
The file was modifiedtestsuite/tests/frame-pointers/exceptions.ml (diff)
The file was modifiedtestsuite/tests/frame-pointers/stack_realloc.arm64.reference (diff)
The file was modifiedtestsuite/tests/frame-pointers/stack_realloc2.arm64.reference (diff)
The file was modifiedtestsuite/tests/frame-pointers/c_call.reference (diff)
The file was modifiedtestsuite/tests/frame-pointers/reperform.reference (diff)
Commit 6a32711bc5f31e299794e6a26249d99145fe46ce by noreply
Translobj: ensure consistent order for placing shared constants (#14299)

The file was modifiedlambda/translobj.ml (diff)
The file was modifiedChanges (diff)
Commit db236086817c1ef76aeafc304cb96dd3a10f7efc by olivier
Add missing TSan accounting in caml_c_call_stack_args for x86_64

The absence of these calls to TSan resulted in its shadow stack being
offset and deriving over time, causing wrong backtraces and crashes (due
to the complete absence of bound checks in TSan).
The file was modifiedruntime/amd64.S (diff)
The file was addedtestsuite/tests/tsan/exn_from_c_stack_args.reference
The file was addedtestsuite/tests/tsan/exn_from_c_stack_args.ml
The file was modifiedtestsuite/tests/tsan/callbacks.c (diff)
The file was addedtestsuite/tests/tsan/exn_from_c_stack_args.run
Commit 780082201a3aa8a655d226f79bdd7e239075cb02 by olivier
Fix caml_c_call_stack_args for ARM64, POWER, RISC-V and s390x
The file was modifiedruntime/s390x.S (diff)
The file was modifiedruntime/arm64.S (diff)
The file was modifiedruntime/riscv.S (diff)
Commit 76d09afc13f20a720009925587c47669d473692d by olivier
Update TSan tests after #12410
The file was modifiedtestsuite/tests/tsan/reperform.reference (diff)
The file was modifiedtestsuite/tests/tsan/exn_from_c.reference (diff)
The file was modifiedtestsuite/tests/tsan/raise_through_handler.reference (diff)
The file was modifiedtestsuite/tests/tsan/exn_in_callback.reference (diff)
The file was modifiedtestsuite/tests/tsan/perform.reference (diff)
The file was modifiedtestsuite/tests/tsan/exn_reraise.reference (diff)
The file was modifiedtestsuite/tests/tsan/unhandled.reference (diff)
The file was modifiedtestsuite/tests/tsan/record_field.reference (diff)
The file was modifiedtestsuite/tests/tsan/array_elt.reference (diff)
The file was modifiedChanges (diff)
Commit 1f23f63722340e99fcea287cd51e4afa0cae956f by noreply
fix typo in ci action (#14309)

The file was modifiedtools/ci/actions/check-labelled-interfaces.sh (diff)
Commit 6e31fac8807442440652883b88d7524fcde43c80 by simon.cruanes.2007
I didn't add the reviewers for #13785, apologies.
The file was modifiedChanges (diff)
Commit 6e411047493589ee2b8f1a06dc036dcd9765c1dd by noreply
Changes: add missing 'and' and ','
The file was modifiedChanges (diff)
Commit 0c6523d556945313c03e7852492e811cf6a2839f by noreply
Always use the `"I"` format specifier for `size_t` with mingw (#14308)

* Always use the "I" format specifier for size_t with mingw

    runtime/domain.c:520:7: error: unknown conversion type character 'z'
    in format [-Werror=format=]
      520 |       "young_start: %p,"
          |       ^~~~~~~~~~~~~~~~~~
    In file included from runtime/domain.c:22:
    runtime/caml/config.h:71:35: note: format string is defined here
       71 | #define ARCH_SIZET_PRINTF_FORMAT "z"
          |                                   ^

In some configurations GCC will warn about "%z" not being supported.
Partially revert a change introduced in
295dd45852688c7c8b5df5e974c460588cdd9696.

> Some types are different sizes in 32-bit and 64-bit code. For
> example, size_t is 32 bits long in code compiled for x86, and 64
> bits in code compiled for x64. To create platform-agnostic
> formatting code for variable-width types, you can use a
> variable-width argument size modifier. Instead, use a 64-bit
> argument size modifier and explicitly promote the variable-width
> argument type to 64 bits. The Microsoft-specific I (uppercase i)
> argument size modifier handles variable-width integer arguments, but
> we recommend the type-specific j, t, and z modifiers for
> portability.

> Microsoft-specific:
> The I (uppercase i) […] argument size modifier prefix [is] Microsoft
> extension and is not ISO C-compatible.

https://learn.microsoft.com/en-us/cpp/c-runtime-library/format-specification-syntax-printf-and-wprintf-functions?view=msvc-170#size

Presumably the GCC warning is outdated or erroneous, but there seem to
be no way around it.

* Update changes
The file was modifiedChanges (diff)
The file was modifiedruntime/caml/config.h (diff)
Commit 85cd5fd3dc0c1763926378a571ef215ce9512908 by noreply
Detect DWARF version for the Clang assembler (or: fix `test-in-prefix` for the other-configs tests) (#14314)

This is then used in testsuite/tools/toolchain.ml to correctly identify
whether the clang assembler embeds the full path to the source file or
not.
The file was modifiedutils/config.fixed.ml (diff)
The file was modifiedutils/config.generated.ml.in (diff)
The file was modifiedconfigure.ac (diff)
The file was modifiedconfigure (diff)
The file was modifiedutils/config.mli (diff)
The file was modifiedtestsuite/tools/toolchain.ml (diff)