Skip to content
Success

Changes

Summary

  1. New module Misc.UString to work with UTF-8-encoded Unicode identifiers (commit: b9dfb9f) (details)
  2. Support non-ASCII letters in identifiers (commit: 8c16a8e) (details)
  3. Use `Misc.UString.{un,}capitalize` to connect file names with module names (commit: 883c21d) (details)
  4. Test Latin-9 letters in identifiers (commit: 014a1bd) (details)
  5. Test Latin-9 letters in file names and compilation unit names (commit: 165b163) (details)
  6. eszett has an uppercase form (commit: a9ff117) (details)
  7. Update dependencies and bow to check-typo (commit: a9cbe59) (details)
  8. support for unicode raw identifiers (commit: 657367e) (details)
  9. update Changes (commit: fafbdd7) (details)
  10. Unicode filename (commit: 8607b84) (details)
  11. Reject invalid unicode encoding in module names (commit: 6263013) (details)
  12. unicode support, extend test and remove a copy of "is_valid_identifier" (commit: 2db2632) (details)
  13. utf8: text parsetree printer (commit: 7d39a93) (details)
  14. Support latin-9 lowercase in quoted string delimiters (commit: 314efa5) (details)
  15. Debugger lexer (commit: f3c661e) (details)
  16. ocamllex: support latin-9 in actions and comments (commit: 007a8ea) (details)
  17. ocamldoc: latin-9 lexer and UTF-8 default charset (commit: 23f634c) (details)
  18. Test NFD normalized unit names (#9) (commit: 3897c58) (details)
  19. review: UString -> UIdent (commit: 718f098) (details)
  20. review: mention NFC in documentation (commit: 20feb00) (details)
  21. review: simplify lexer (commit: b2bfbc0) (details)
  22. review: character set (commit: 1fffcc5) (details)
  23. review: lexer simplification (commit: 0beae74) (details)
  24. review: rename `modname_from_source` to `lax_modname_from_source` (commit: 5524d3d) (details)
  25. review: rename UIdent ->  Utf8_lexeme (commit: 457721d) (details)
  26. check-typo: tweaks for unicode file names (commit: 5333ecf) (details)
  27. more check-typo tweaks (commit: aca9b31) (details)
  28. review: merge check_label functions (commit: f068666) (details)
  29. Let CI's sanitizer job use clang's default version (commit: 5d16740) (details)
  30. Build system: make sure -c appears as the last flag in compilation rules (commit: c082877) (details)
  31. Build system: More clearly distinguish bytecode from native CFLAGS/CPPFLAGS (commit: 31cdf41) (details)
  32. Fix configuration for the Sun C compiler (commit: 52edfea) (details)
  33. Deduplicate the pthread CFLAGS (commit: fd1cab4) (details)
  34. Use the `strip` command detected by libtool (commit: 3bdfbfd) (details)
  35. Strip tmpheader.exe also on Windows (commit: 0d57f1a) (details)
  36. Remove duplicated comment end (commit: 0b3e8f0) (details)
  37. Introduce a new variable to avoid re-using a for loop iterator (commit: ab0bf44) (details)
  38. Change macros to reduce the scope of the for loop iterator (commit: c908e41) (details)
  39. Reduce the scope of the for loop iterator, avoid a shadowing warning (commit: 9ae09f1) (details)
  40. Reduce the scope of for loop iterators (commit: b41196a) (details)
  41. Remove dangling function prototypes in header (#13301) (commit: 962cc42) (details)
  42. Use syntax for effect handlers in the manual page (commit: a1409db) (details)
  43. minor HACKING.adoc fix (commit: a056f5a) (details)
  44. Changes entry (commit: e443814) (details)
  45. Remove "mean space overhead" computation, as it's broadly unused and leaked memory. (commit: 95f30eb) (details)
  46. Simplify CAMLalign (commit: ed2aef4) (details)
  47. Use C11 max_align_t for struct pool_block alignment (commit: 20ff2cc) (details)
  48. Simplify fallback definition of max_align_t for MSVC (commit: 50bf119) (details)
  49. Remove magic debug number from struct pool_block (commit: 84a3773) (details)
  50. Simplify struct pool_block access and allocation (commit: 0e25650) (details)
  51. Use aligned alloc for struct pool_block on Windows (commit: 484e863) (details)
  52. Parallelise alldepend target (commit: f98f737) (details)
  53. Remove architecture-specific files from .depend (commit: 8a5566b) (details)
  54. Include the dependencies for all the emitters (commit: 3b09bfd) (details)
  55. Don't invalidate ocamlopt with make alldepend (commit: fae0e77) (details)
  56. Implement 'exp_is_nominal' on Parsetree (commit: cdf5f3a) (details)
  57. Print short expressions in type error messages (commit: 6def5cb) (details)
  58. More precise denomination for some expressions (commit: 3c7b259) (details)
  59. Denomination for multi-keyword expressions (commit: 1a63317) (details)
  60. Update Changes (commit: bc88b1b) (details)
  61. Add a missing `$(EXE)` extension (#13312) (commit: d0fbfc7) (details)
  62. restore caml_process_pending_actions_exn (commit: 65eaf62) (details)
  63. doc(Bigarray.int): add link to element kinds (commit: bf5ba7c) (details)
  64. doc(Bigarray.int): clarify that it refers to OCaml ints and NOT C int (commit: 4208c8b) (details)
  65. doc(Bigarray.int): add changes entry (commit: 6b7befd) (details)
  66. Fix typo "get_succ_x" instead of "get_x". (#13313) (commit: bbc7ce7) (details)
  67. Format_doc: preserve the type of Foo.report_error, add Foo.report_error_doc (#13311) (commit: fb010ad) (details)
  68. Testsuite: simplify the C# test: do not spell-out dynlink libraries (commit: 4ed6269) (details)
  69. Build system: introduce per-program variables to store link flags (commit: d3741bc) (details)
  70. Build system: introduce the private OTHERLIBS variable (commit: f00ff1c) (details)
  71. Let configure generate otherlibs/dynlink/dynlink_platform_intf.mli (commit: c741526) (details)
  72. Makefile: remove duplicate target-specific variable definition (commit: c7d15af) (details)
  73. Merge otherlibs/dynlink/Makefile into the root Makefile (commit: 4c6a5d5) (details)
  74. otherlibs/systhreads/Makefile: Do not add -g to C compiler flags (commit: 715821f) (details)
  75. otherlibs/systhreads/Makefile: Deduplicate C compiler flags (commit: d0590d8) (details)
  76. sanitizer(UBSAN): really enable UBSAN (commit: f0b65a6) (details)
  77. sanitizers(UBSAN): fix linker warning (commit: e1108ab) (details)
  78. sanitizers: move flag definitions (commit: d726e52) (details)
  79. sanitizers: add a test that ASAN/UBSAN works (commit: 40b917d) (details)
  80. sanitizer(UBSAN): switch to printing instead of trap (commit: 24a4657) (details)
  81. sanitizers: add -g flag (commit: 4bd8350) (details)
  82. sanitizers: future proof by using -Og instead of -o1 (commit: 814c007) (details)
Commit b9dfb9fce36a00344052dbe79c6b5b5e14451390 by Florian Angeletti
New module Misc.UString to work with UTF-8-encoded Unicode identifiers

Facilities are provided for NFC normalization, capitalization /
uncapitalization, and checking identifier validity.

Support is currently limited to Latin-9 letters.
(commit: b9dfb9f)
The file was modified.gitattributes
The file was modifiedutils/misc.mli
The file was modifiedutils/misc.ml
Commit 8c16a8ed46cd27ee4d179161a6e32bd5bc6850c5 by Florian Angeletti
Support non-ASCII letters in identifiers

We use the new Misc.UString module to check that the letters are allowed
and to normalize their Unicode representation.

The lexing of labels was changed so that labels that start with an
uppercase are accepted by the lexer regexps, then rejected by the
action.  This works better with non-ASCII letters and produces a nicer
error message.
(commit: 8c16a8e)
The file was modifiedparsing/lexer.mli
The file was modifiedparsing/lexer.mll
Commit 883c21d852d2c8f33b986bf66cf57ee64b25bc6e by Florian Angeletti
Use `Misc.UString.{un,}capitalize` to connect file names with module names

Instead of `String.{un,}capitalize_ascii` like before.

This should support compilation units whose module names start with
or contain non-ASCII letters.
(commit: 883c21d)
The file was modifiedutils/misc.ml
The file was modifiedtyping/env.ml
The file was modifiedparsing/unit_info.ml
Commit 014a1bd3f9f7e92be98310eaba05cff1ed4e829b by Florian Angeletti
Test Latin-9 letters in identifiers

Both NFC and NFD representations are used in this file
(hoping Git does not change this).
(commit: 014a1bd)
The file was modified.gitattributes
The file was addedtestsuite/tests/parsing/latin9.ml
Commit 165b1633cf8a3ffc7f8b842eb4066d9acf73749e by Florian Angeletti
Test Latin-9 letters in file names and compilation unit names
(commit: 165b163)
The file was modified.gitattributes
The file was addedtestsuite/tests/typing-unicode/genfiles.ml
The file was addedtestsuite/tests/typing-unicode/test.ml
Commit a9ff117a4f468447b2afd6a68ec58eb536778fe2 by Florian Angeletti
eszett has an uppercase form
(commit: a9ff117)
The file was modifiedutils/misc.ml
Commit a9cbe5958ccb0c4e8ea771c8898b2501f2683af5 by Florian Angeletti
Update dependencies and bow to check-typo
(commit: a9cbe59)
The file was modifiedtestsuite/tests/parsing/latin9.ml
The file was modified.gitattributes
Commit 657367e9af0b2e749aa68fcc77d96d7b86caa028 by Florian Angeletti
support for unicode raw identifiers
(commit: 657367e)
The file was modifiedparsing/lexer.mli
The file was modifiedparsing/lexer.mll
Commit fafbdd78cb835f11f0644b16e998695a67ae029e by Florian Angeletti
update Changes
(commit: fafbdd7)
The file was modifiedChanges
Commit 8607b84302ae66bc10e79675d7a86952477b15c6 by Florian Angeletti
Unicode filename
(commit: 8607b84)
The file was added"testsuite/tests/win-unicode/n\303\251ant.ml"
The file was added"testsuite/tests/win-unicode/\350\246\213.ml"
Commit 6263013d332da153e44c907039443a27098930ea by Florian Angeletti
Reject invalid unicode encoding in module names

We reject invalid utf8 encoding and strings containing the replacement
character U+FFFD in identifiers and output targets.

Similarly, we ignore existing artifacts with encoding errors whenever we are
doing an artifact look-up in load paths.
(commit: 6263013)
The file was modifiedparsing/unit_info.mli
The file was modifiedparsing/lexer.mli
The file was modifiedparsing/unit_info.ml
The file was modifiedutils/load_path.ml
The file was modifiedutils/misc.ml
The file was addedtestsuite/tests/lexing/reject_bad_encoding.ml
The file was addedtestsuite/tests/lexing/reject_bad_encoding.compilers.reference
The file was modifiedutils/misc.mli
The file was modifiedparsing/lexer.mll
The file was modifiedtyping/env.ml
Commit 2db2632e489b0f359c3767c68e81986563444ba1 by Florian Angeletti
unicode support, extend test and remove a copy of "is_valid_identifier"
(commit: 2db2632)
The file was modifiedtestsuite/tests/parsing/latin9.ml
The file was addedtestsuite/tests/parsing/latin9.compilers.reference
The file was modifiedtyping/oprint.ml
Commit 7d39a93a28f0994e7902a8c95b08999d8fac5bcc by Florian Angeletti
utf8: text parsetree printer
(commit: 7d39a93)
The file was modifiedtestsuite/tests/parsetree/source.ml
The file was modified.gitattributes
Commit 314efa59cff35a59a4066eefb77997768384d25e by Florian Angeletti
Support latin-9 lowercase in quoted string delimiters
(commit: 314efa5)
The file was modifiedtestsuite/tests/parsing/latin9.ml
The file was modifiedtestsuite/tests/parsing/latin9.compilers.reference
The file was modifiedutils/misc.ml
The file was modifiedparsing/lexer.mli
The file was modifiedparsing/lexer.mll
The file was modifiedutils/misc.mli
Commit f3c661e312ef7ab7bf4c5f643a5259ec7a3895e7 by Florian Angeletti
Debugger lexer
(commit: f3c661e)
The file was modifieddebugger/debugger_lexer.mll
Commit 007a8ea3bc64a2b87de0bfc744f73be89dfa794b by Florian Angeletti
ocamllex: support latin-9 in actions and comments
(commit: 007a8ea)
The file was modifiedlex/lexer.mll
Commit 23f634c27acfbc841a2bd860a350e3cd55eec3a6 by Florian Angeletti
ocamldoc: latin-9 lexer and UTF-8 default charset
(commit: 23f634c)
The file was modifiedtestsuite/tests/tool-ocamldoc/Paragraph.html.reference
The file was modifiedtestsuite/tests/tool-ocamldoc/Variants.html.reference
The file was modified.depend
The file was modifiedtestsuite/tests/tool-ocamldoc/Module_whitespace.html.reference
The file was modifiedtestsuite/tests/tool-ocamldoc/Loop.html.reference
The file was modified.gitattributes
The file was modifiedocamldoc/odoc_lexer.mll
The file was modifiedtestsuite/tests/tool-ocamldoc/Alert_toplevel.html.reference
The file was addedtestsuite/tests/tool-ocamldoc/Latin9.html.reference
The file was modifiedtestsuite/tests/tool-ocamldoc/Entities.html.reference
The file was modifiedtestsuite/tests/tool-ocamldoc/Alerts_impl.html.reference
The file was modifiedocamldoc/odoc_html.ml
The file was modifiedtestsuite/tests/tool-ocamldoc/Alerts.html.reference
The file was modifiedtestsuite/tests/tool-ocamldoc/type_Linebreaks.reference
The file was modifiedtestsuite/tests/tool-ocamldoc/Item_ids.html.reference
The file was modifiedtestsuite/tests/tool-ocamldoc/Linebreaks.html.reference
The file was modifiedtestsuite/tests/tool-ocamldoc/Functions.html.reference
The file was modifiedocamldoc/odoc_ocamlhtml.mll
The file was modifiedtestsuite/tests/tool-ocamldoc/Documentation_tags.html.reference
The file was modifiedtestsuite/tests/tool-ocamldoc/Include_module_type_of.html.reference
The file was modifiedtestsuite/tests/tool-ocamldoc/Inline_records.html.reference
The file was modifiedtestsuite/tests/tool-ocamldoc/Alert_toplevel2.html.reference
The file was modifiedtestsuite/tests/tool-ocamldoc/No_preamble.html.reference
The file was addedtestsuite/tests/tool-ocamldoc/Latin9.ml
Commit 3897c58428f205fce44ed30859bfd085839347f8 by Florian Angeletti
Test NFD normalized unit names (#9)

The filename ça.ml is NFD normalized. The test source now the two
normalizations for each unit identifiers.
(commit: 3897c58)
The file was modifiedtestsuite/tests/typing-unicode/test.ml
The file was modifiedtestsuite/tests/typing-unicode/genfiles.ml
Commit 718f0983788c933ec9ae9334a43bb4059a818e3e by Florian Angeletti
review: UString -> UIdent
(commit: 718f098)
The file was modifieddebugger/debugger_lexer.mll
The file was modifiedocamldoc/odoc_ocamlhtml.mll
The file was modifiedocamldoc/odoc_lexer.mll
The file was modifiedparsing/lexer.mll
The file was modifiedutils/misc.ml
The file was modifiedparsing/unit_info.ml
The file was modifiedtyping/oprint.ml
The file was modifiedutils/misc.mli
The file was modifiedtyping/env.ml
Commit 20feb0075ef935a7dae5dc2e965cddf0aee2d7b8 by Florian Angeletti
review: mention NFC in documentation
(commit: 20feb00)
The file was modifiedutils/misc.mli
The file was modifiedparsing/unit_info.ml
Commit b2bfbc0846d9c411c745f03f42ce24f2e22bcc21 by Florian Angeletti
review: simplify lexer

The lexer now only has one merged case for raw and unicode identifiers
(commit: b2bfbc0)
The file was modifiedutils/misc.ml
The file was modifiedparsing/lexer.mll
Commit 1fffcc595cd83dd8a34ee6c16e640e0f2352443a by Florian Angeletti
review: character set
(commit: 1fffcc5)
The file was modifiedutils/misc.ml
Commit 0beae74b6ca280943dca96bf41de60b221fe0f57 by Florian Angeletti
review: lexer simplification
(commit: 0beae74)
The file was modifiedparsing/lexer.mll
Commit 5524d3dd51d606dd496110613e33bbdca32613b3 by Florian Angeletti
review: rename `modname_from_source` to `lax_modname_from_source`
(commit: 5524d3d)
The file was modifiedocamldoc/odoc_ast.ml
The file was modifiedocamldoc/odoc_analyse.ml
The file was modifiedparsing/unit_info.mli
The file was modifiedtoplevel/topcommon.ml
The file was modifiedocamldoc/odoc_sig.ml
The file was modifiedparsing/unit_info.ml
The file was modifieddriver/makedepend.ml
Commit 457721d6bf0ea697908d8bc5625aea07089c2734 by Florian Angeletti
review: rename UIdent ->  Utf8_lexeme
(commit: 457721d)
The file was modifiedparsing/lexer.mll
The file was modifieddebugger/debugger_lexer.mll
The file was modifiedtyping/oprint.ml
The file was modifiedutils/misc.ml
The file was modifiedocamldoc/odoc_ocamlhtml.mll
The file was modifiedtyping/env.ml
The file was modifiedocamldoc/odoc_lexer.mll
The file was modifiedparsing/unit_info.ml
The file was modifiedutils/misc.mli
Commit 5333ecff8b49c91ca879c33f0b06cebc57249f44 by Florian Angeletti
check-typo: tweaks for unicode file names
(commit: 5333ecf)
The file was added"testsuite/tests/unicode/\350\246\213.ml"
The file was modifiedtools/check-typo-since
The file was removed"testsuite/tests/win-unicode/n\303\251ant.ml"
The file was removed"testsuite/tests/win-unicode/\350\246\213.ml"
The file was modified.gitattributes
The file was added"testsuite/tests/unicode/n\303\251ant.ml"
Commit aca9b31ce3ce4713734dbbc4c22e0a1ffb77907a by Florian Angeletti
more check-typo tweaks
(commit: aca9b31)
The file was modifiedtools/ci/actions/check-typo.sh
The file was modified.gitattributes
Commit f06866667ba3d5f892459e85c002ec27a00bea5d by Florian Angeletti
review: merge check_label functions
(commit: f068666)
The file was modifiedparsing/lexer.mll
Commit 5d167408d18e930c2ec7da49bb355c97b8131b11 by seb
Let CI's sanitizer job use clang's default version

This is to avoid having to maintain a hard-coded version
(commit: 5d16740)
The file was modifiedtools/ci/inria/sanitizers/script
Commit c08287781d5075b247b5d51bf50e230ecce84c3f by seb
Build system: make sure -c appears as the last flag in compilation rules

It seems also more coherent to have the flag just before the name
of the file that is being compiled.
(commit: c082877)
The file was modifiedMakefile.common
The file was modifiedotherlibs/Makefile.otherlibs.common
The file was modifiedMakefile
The file was modifiedotherlibs/systhreads/Makefile
Commit 31cdf416280053dcd38351b7858e818b23110779 by seb
Build system: More clearly distinguish bytecode from native CFLAGS/CPPFLAGS
(commit: 31cdf41)
The file was modifiedconfigure.ac
The file was modifiedotherlibs/systhreads/Makefile
The file was modifiedutils/config.generated.ml.in
The file was modifiedMakefile.build_config.in
The file was modifiedconfigure
The file was modifiedMakefile
The file was modifiedMakefile.config.in
Commit 52edfea8727f0802f2cba4e51f769b3f5044af14 by seb
Fix configuration for the Sun C compiler

The CFLAGS should not be included there, and -D_XPG6 should be in
preprocessor rather than compiler flags.
(commit: 52edfea)
The file was modifiedconfigure
The file was modifiedconfigure.ac
Commit fd1cab4ace9bfc2f1f34c6e3c2164b52805fd149 by seb
Deduplicate the pthread CFLAGS
(commit: fd1cab4)
The file was modifiedconfigure.ac
The file was modifiedconfigure
Commit 3bdfbfdbb1e2663abd5f893e23b0f815fac63df5 by samuel
Use the `strip` command detected by libtool

Instead of using `strip` unconditionally to build `tmpheader.exe`, use
the `strip` command detected by `libtool` during configure so that it is
replaced with `:` when the command is absent and it becomes easy to
override it if need be
(commit: 3bdfbfd)
The file was modifiedMakefile.config.in
The file was modifiedstdlib/Makefile
Commit 0d57f1ac396a1b74cee07fba17a103791b0a96fb by samuel
Strip tmpheader.exe also on Windows

GNU strip can be called safely on binaries generated by cl as well as by
MinGW GCC (even if it doesn't produce a smaller executable for
cl-generated binaries) so invoke strip also on Windows so that MinGW
binaries are properly stripped
Tested with GNU strip 2.42
(commit: 0d57f1a)
The file was modifiedstdlib/Makefile
Commit 0b3e8f0ef3c5b7b4a741c27fe0eb33f7f4f4bb9e by antonin
Remove duplicated comment end
(commit: 0b3e8f0)
The file was modifiedruntime/platform.c
Commit ab0bf448bf800d5535897e2ecf1c078663b04935 by antonin
Introduce a new variable to avoid re-using a for loop iterator
(commit: ab0bf44)
The file was modifiedruntime/printexc.c
Commit c908e41c3eeff5f718b5b4c953fe2d9155d58c4e by antonin
Change macros to reduce the scope of the for loop iterator
(commit: c908e41)
The file was modifiedruntime/bigarray.c
Commit 9ae09f1b4aad522184effa70bc7bc5226ceab699 by antonin
Reduce the scope of the for loop iterator, avoid a shadowing warning

The function `caml_alloc_9` defines an `i` parameter. Compilers may
warn that defining local variables named `i` shadow this definition.
Pick the next available letter for the iterator.
(commit: 9ae09f1)
The file was modifiedruntime/alloc.c
Commit b41196afacb9ef6fb1e648637ed9242e749b5243 by antonin
Reduce the scope of for loop iterators
(commit: b41196a)
The file was modifiedotherlibs/unix/cst2constr.c
The file was modifiedruntime/alloc.c
The file was modifiedtestsuite/tests/asmgen/mainarith.c
The file was modifiedruntime/finalise.c
The file was modifiedruntime/minor_gc.c
The file was modifiedruntime/obj.c
The file was modifiedruntime/win32.c
The file was modifiedruntime/compare.c
The file was modifiedtestsuite/tests/lib-digest/blake2b_self_test_stubs.c
The file was modifiedocamltest/run_stubs.c
The file was modifiedotherlibs/unix/spawn.c
The file was modifiedotherlibs/unix/mmap_ba.c
The file was modifiedruntime/memprof.c
The file was modifiedChanges
The file was modifiedruntime/domain.c
The file was modifiedruntime/startup_byt.c
The file was modifiedotherlibs/runtime_events/runtime_events_consumer.c
The file was modifiedotherlibs/str/strstubs.c
The file was modifiedotherlibs/unix/cstringv.c
The file was modifiedruntime/bigarray.c
The file was modifiedotherlibs/systhreads/st_posix.h
The file was modifiedotherlibs/unix/execvp.c
The file was modifiedruntime/gc_stats.c
The file was modifiedotherlibs/unix/mmap_unix.c
The file was modifiedruntime/memory.c
The file was modifiedruntime/hash.c
The file was modifiedruntime/callback.c
The file was modifiedruntime/weak.c
The file was modifiedruntime/skiplist.c
The file was modifiedruntime/interp.c
The file was modifiedruntime/instrtrace.c
The file was modifiedtestsuite/tests/lib-dynlink-native/factorial.c
The file was modifiedruntime/globroots.c
The file was modifiedruntime/startup_nat.c
The file was modifiedruntime/extern.c
The file was modifiedruntime/backtrace_nat.c
The file was modifiedruntime/fix_code.c
The file was modifiedruntime/misc.c
The file was modifiedtestsuite/tests/asmgen/mainimmed.c
The file was modifiedotherlibs/unix/mmap_win32.c
The file was modifiedocamltest/run_win32.c
The file was modifiedruntime/caml/skiplist.h
The file was modifiedtestsuite/tests/lib-bigarray-2/bigarrcstub.c
The file was modifiedruntime/shared_heap.c
The file was modifiedotherlibs/unix/select_unix.c
The file was modifiedruntime/roots.c
The file was modifiedruntime/sys.c
The file was modifiedstdlib/header.c
The file was modifiedotherlibs/unix/select_win32.c
The file was modifiedtestsuite/tests/frame-pointers/fp_backtrace.c
The file was modifiedotherlibs/unix/setgroups.c
The file was modifiedruntime/signals.c
The file was modifiedruntime/unix.c
The file was modifiedruntime/backtrace.c
The file was modifiedocamltest/run_unix.c
The file was modifiedotherlibs/unix/termios.c
The file was modifiedruntime/signals_nat.c
The file was modifiedruntime/dynlink.c
The file was modifiedtestsuite/tests/gc-roots/globrootsprim.c
The file was modifiedruntime/io.c
The file was modifiedruntime/runtime_events.c
The file was modifiedotherlibs/unix/getgroups.c
The file was modifiedruntime/custom.c
The file was modifiedtestsuite/tests/asmgen/main.c
The file was modifiedruntime/gc_ctrl.c
The file was modifiedstdlib/headernt.c
The file was modifiedruntime/addrmap.c
The file was modifiedotherlibs/systhreads/st_stubs.c
The file was modifiedruntime/printexc.c
The file was modifiedruntime/array.c
The file was modifiedruntime/major_gc.c
The file was modifiedruntime/meta.c
The file was modifiedotherlibs/unix/signals.c
The file was modifiedruntime/dynlink_nat.c
The file was modifiedruntime/intern.c
The file was modifiedotherlibs/unix/getaddrinfo.c
The file was modifiedruntime/backtrace_byt.c
The file was modifiedruntime/fail.c
The file was modifiedruntime/fiber.c
Commit 962cc4223daccd21498a50709db13ebab50e0c4f by noreply
Remove dangling function prototypes in header (#13301)

Co-authored-by: Gabriel Scherer <gabriel.scherer@gmail.com>
(commit: 962cc42)
The file was modifiedruntime/caml/memory.h
Commit a1409db06364f09407322acaadf31483637a3ba4 by kc
Use syntax for effect handlers in the manual page
(commit: a1409db)
The file was modifiedmanual/src/refman/extensions/effects.etex
The file was modifiedmanual/src/refman/patterns.etex
The file was modifiedChanges
Commit a056f5a00f9c8219469e9703b58598d6ba145fc1 by gabriel.scherer
minor HACKING.adoc fix
(commit: a056f5a)
The file was modifiedHACKING.adoc
Commit e443814f8f7664c8043c89062e8850fdd9f4d8b8 by seb
Changes entry
(commit: e443814)
The file was modifiedChanges
Commit 95f30eb1efa83728ba35bea65b3abb766fd767b2 by nick
Remove "mean space overhead" computation, as it's broadly unused and leaked memory.
(commit: 95f30eb)
The file was modifiedruntime/caml/major_gc.h
The file was modifiedruntime/major_gc.c
The file was modifiedruntime/sys.c
Commit ed2aef4a157f40e2bb9d4fee6f7e9e8927fea7b0 by antonin
Simplify CAMLalign

In our public headers, we're using either:
- C23 where `alignas` is a keyword;
- C++11 or later where `alignas` is also available;
- C11/C17 where `_Alignas` is available.
(commit: ed2aef4)
The file was modifiedaclocal.m4
The file was modifiedChanges
The file was modifiedconfigure.ac
The file was modifiedconfigure
The file was modifiedruntime/caml/misc.h
Commit 20ff2cc8f8069b93b32cec8c2b256b090a6bfc53 by antonin
Use C11 max_align_t for struct pool_block alignment

Explanations from Xavier Leroy at
https://github.com/ocaml/ocaml/pull/13139#discussion_r1625611990

- The target systems we care about are 64-bit architecture with alignment
  constraints <= 16 and malloc returning 16-aligned blocks. In this case, the
  `data` part of `struct pool_block` is naturally 16-aligned (because the two
  pointers before use 16 bytes), and nothing needs to be done. Aligning data
  using `max_align_t` should have no effect.

- For a 32-bit architecture with 16-byte alignment constraints and malloc
  returning 16-aligned blocks (e.g. Linux x86-32), aligning `data` to 16 seems
  preferable to me and can be achieved by using `max_align_t`.

- For a 32-bit architecture with 16-byte alignment constraints and malloc
  returning 8-aligned blocks (perhaps Windows 32 bits, not sure): no amount of
  alignment constraints in `struct pool_block` will give 16-aligned `data`
  fields, so you could just as well put no alignment constraints.

Unfortunately, MSVC C11 suppport is incomplete and doesn't define `max_align_t`.
- https://developercommunity.visualstudio.com/t/max_align_t-is-not-provided-by-stddefh/10299797
- https://developercommunity.visualstudio.com/t/stdc11-should-add-max-align-t-to-stddefh/1386891
(commit: 20ff2cc)
The file was modifiedconfigure
The file was modifiedconfigure.ac
The file was modifiedruntime/caml/s.h.in
The file was modifiedruntime/memory.c
Commit 50bf119f12cf806b6127a1c27ed10a5ed4b2ca70 by antonin
Simplify fallback definition of max_align_t for MSVC

For C++, MSVC defines `using max_align_t = double`. LLVM's clang-cl
copies this.

It's unlikely that we need to carry a fallback implementation for
other compilers. If so, the following could be used:

    typedef struct {
      alignas(long long) long long ll;
      alignas(long double) long double ld;
    } max_align_t;

https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=gcc/ginclude/stddef.h
https://github.com/llvm/llvm-project/blob/main/clang/lib/Headers/__stddef_max_align_t.h

https://en.cppreference.com/w/c/types/max_align_t
(commit: 50bf119)
The file was modifiedruntime/memory.c
Commit 84a377338473c833cf69e0dedc196865cd57af54 by antonin
Remove magic debug number from struct pool_block
(commit: 84a3773)
The file was modifiedruntime/memory.c
Commit 0e256509f4e64c554c189f2a3e90dce377b80761 by antonin
Simplify struct pool_block access and allocation
(commit: 0e25650)
The file was modifiedruntime/memory.c
Commit 484e86347830d2a8e4f1e82c9570f8de0b2bd11e by antonin
Use aligned alloc for struct pool_block on Windows

This ensures that the data field is always aligned to the best
boundary.
(commit: 484e863)
The file was modifiedChanges
The file was modifiedruntime/memory.c
Commit f98f7371c9b900a79e2e38c9ff423226c6a9c8bc by david.allsopp
Parallelise alldepend target
(commit: f98f737)
The file was modifiedMakefile
The file was modified.gitignore
Commit 8a5566b6e2c880083595e776dae87e7b51514f8b by david.allsopp
Remove architecture-specific files from .depend
(commit: 8a5566b)
The file was modifiedMakefile
The file was modified.depend
Commit 3b09bfd1815b01e5443d107521ff11b8748579dc by david.allsopp
Include the dependencies for all the emitters
(commit: 3b09bfd)
The file was modifiedMakefile
The file was modified.depend
Commit fae0e77d85bda866d981011669a150ab5af380e7 by david.allsopp
Don't invalidate ocamlopt with make alldepend
(commit: fae0e77)
The file was modifiedMakefile
Commit cdf5f3a6774b80a3fc6de675afe7f8b949b4186a by jules
Implement 'exp_is_nominal' on Parsetree

This function can be used to improve the type clash error message, which
uses the parsetree instead of the typedtree to avoid loosing some
information from the source code (eg. how constants are printed).

This function is used for the "this function ..." message, which can be
easily changed to use untyped expression.
(commit: cdf5f3a)
The file was modifiedparsing/pprintast.mli
The file was modified.depend
The file was modifiedparsing/pprintast.ml
The file was modifiedtyping/typedtree.ml
The file was modifiedtyping/typedtree.mli
The file was modifiedtyping/typecore.ml
Commit 6def5cbf28b6fbf12a1d16885a3a9b3ef6f2f346 by jules
Print short expressions in type error messages

Re-use the mechanism implemented for the "This function" message in
type clash errors to print the original expression if possible.

Type error messages now look like this:

    Error: The expression '43' has type int
           but an expression was expected of type int32

The argument 'unify_exp ~sexp' is made non-optional as this isn't too
intrusive and ensures the new error is implemented in more cases.
(commit: 6def5cb)
The file was modifiedtestsuite/tests/tool-toplevel/error_highlighting.compilers.reference
The file was modifiedtestsuite/tests/typing-gadts/pr6980.ml
The file was modifiedtestsuite/tests/typing-gadts/pr5948.ml
The file was modifiedtestsuite/tests/tool-toplevel/multi_phrase_line.compilers.reference
The file was modifiedtestsuite/tests/typing-misc/labels.ml
The file was modifiedtyping/typecore.mli
The file was modifiedtestsuite/tests/typing-misc/scope_escape.ml
The file was modifiedtestsuite/tests/typing-poly/error_messages.ml
The file was modifiedtestsuite/tests/typing-misc-bugs/pr6303_bad.compilers.reference
The file was modifiedtestsuite/tests/typing-core-bugs/const_int_hint.ml
The file was modifiedtestsuite/tests/typing-poly/pr9603.ml
The file was modifiedtestsuite/tests/typing-modules-bugs/pr6992_bad.compilers.reference
The file was modifiedparsing/pprintast.ml
The file was modifiedtestsuite/tests/tool-toplevel/use_command.ml
The file was modifiedtestsuite/tests/typing-misc/occur_check.ml
The file was modifiedtestsuite/tests/typing-gadts/principality-and-gadts.ml
The file was modifiedtestsuite/tests/typing-objects/dummy.ml
The file was modifiedtestsuite/tests/tool-caml-tex/redirections.reference
The file was modifiedtestsuite/tests/typing-gadts/ambiguity.ml
The file was modifiedtestsuite/tests/typing-modules/firstclass.ml
The file was modifiedtestsuite/tests/typing-objects/self_cannot_be_closed.ml
The file was modifiedtestsuite/tests/typing-gadts/didier.ml
The file was modifiedtestsuite/tests/typing-core-bugs/type_expected_explanation.ml
The file was modifiedtestsuite/tests/typing-missing-cmi-3/user.ml
The file was modifiedtestsuite/tests/typing-misc/pr7937.ml
The file was modifiedtestsuite/tests/typing-objects/Exemples.ml
The file was modifiedtestsuite/tests/typing-short-paths/errors.ml
The file was modifiedtestsuite/tests/tool-toplevel/redefinition_hints.compilers.reference
The file was modifiedtestsuite/tests/typing-misc/let_rec_approx.ml
The file was modifiedtestsuite/tests/typing-misc/pr7103.ml
The file was modifiedtyping/typecore.ml
The file was modifiedtestsuite/tests/typing-objects/abstract_rows.ml
The file was modifiedtestsuite/tests/typing-core-bugs/unit_fun_hints.ml
The file was modifiedtestsuite/tests/typing-poly/poly.ml
The file was modifiedtestsuite/tests/typing-misc/polyvars.ml
The file was modifiedtestsuite/tests/typing-gadts/pr7374.ml
The file was modifiedtestsuite/tests/typing-modules-bugs/pr6752_bad.compilers.reference
The file was modifiedtestsuite/tests/typing-misc/unique_names_in_unification.ml
The file was modifiedtestsuite/tests/hidden_includes/not_included.ocamlc.reference
The file was modifiedtestsuite/tests/typing-objects/pr6123_bad.ml
The file was modifiedtestsuite/tests/typing-private/private.compilers.reference
The file was modifiedtestsuite/tests/typing-extensions/extensions.ml
The file was modifiedtestsuite/tests/typing-fstclassmod/scope_escape.ml
The file was modifiedtestsuite/tests/typing-objects/Tests.ml
The file was modifiedtestsuite/tests/typing-warnings/records.ml
The file was modifiedtestsuite/tests/typing-short-paths/short-paths.compilers.reference
The file was modifiedtestsuite/tests/typing-gadts/pr6174.ml
The file was modifiedtestsuite/tests/typing-fstclassmod/nondep_instance.ml
The file was modifiedtestsuite/tests/typing-private/private.compilers.principal.reference
The file was modifiedtestsuite/tests/tool-expect-test/clean_typer.ml
The file was modifiedtestsuite/tests/typing-gadts/test.ml
The file was modifiedtestsuite/tests/typing-missing-cmi/test.compilers.reference
The file was modifiedtestsuite/tests/typing-typeparam/newtype.ocaml.reference
The file was modifiedtestsuite/tests/let-syntax/let_syntax.ml
The file was modifiedtestsuite/tests/typing-rectypes-bugs/pr6174_bad.compilers.reference
The file was modifiedtestsuite/tests/typing-gadts/or_patterns.ml
The file was modifiedtestsuite/tests/typing-polyvariants-bugs/pr5057a_bad.compilers.reference
The file was modifiedtestsuite/tests/typing-gadts/packed-module-recasting.ml
The file was modifiedtestsuite/tests/typing-misc/printing.ml
Commit 3c7b2592385d0bffa92e41feb4877d49d7a2aebc by jules
More precise denomination for some expressions

Clarify type clash error messages by printing the kind of the reported
expression.

Currently implemented for expression that are likely 'nominal' but not
necessarily.

Example:

    The constant "42" has type ...

    This field has type ...

This is similar to the `Apply_non_function` error:

    The function "foo" has type ...

    This function has type ...
(commit: 3c7b259)
The file was modifiedtestsuite/tests/typing-missing-cmi-3/user.ml
The file was modifiedtestsuite/tests/tool-ocamlc-locations/marshalled.compilers.reference
The file was modifiedtestsuite/tests/hidden_includes/not_included.ocamlc.reference
The file was modifiedtestsuite/tests/typing-missing-cmi/test.compilers.reference
The file was modifiedtestsuite/tests/typing-private/private.compilers.principal.reference
The file was modifiedtestsuite/tests/typing-warnings/records.ml
The file was modifiedtestsuite/tests/tool-caml-tex/redirections.reference
The file was modifiedtestsuite/tests/typing-polyvariants-bugs-2/pr3918c.compilers.reference
The file was modifiedtestsuite/tests/typing-rectypes-bugs/pr6174_bad.compilers.reference
The file was modifiedtestsuite/tests/typing-gadts/pr6980.ml
The file was modifiedtestsuite/tests/typing-poly/pr9603.ml
The file was modifiedtestsuite/tests/printing-types/existentials.ml
The file was modifiedtestsuite/tests/typing-objects/Tests.ml
The file was modifiedtestsuite/tests/typing-polyvariants-bugs/pr5057a_bad.compilers.reference
The file was modifiedtestsuite/tests/generalized-open/gpr1506.ml
The file was modifiedtestsuite/tests/typing-fstclassmod/nondep_instance.ml
The file was modifiedtestsuite/tests/let-syntax/let_syntax.ml
The file was modifiedtestsuite/tests/typing-gadts/or_patterns.ml
The file was modifiedtestsuite/tests/effect-syntax/error_messages.ml
The file was modifiedtestsuite/tests/typing-modules-bugs/pr6752_bad.compilers.reference
The file was modifiedtestsuite/tests/tool-toplevel/multi_phrase_line.compilers.reference
The file was modifiedtestsuite/tests/typing-core-bugs/const_int_hint.ml
The file was modifiedtestsuite/tests/tool-toplevel/use_command.ml
The file was modifiedtestsuite/tests/typing-modules-bugs/pr6992_bad.compilers.reference
The file was modifiedtestsuite/tests/typing-poly/poly.ml
The file was modifiedtestsuite/tests/typing-misc/scope_escape.ml
The file was modifiedtyping/typecore.ml
The file was modifiedtestsuite/tests/typing-misc/printing.ml
The file was modifiedtestsuite/tests/typing-modules/firstclass.ml
The file was modifiedtestsuite/tests/tool-toplevel/redefinition_hints.compilers.reference
The file was addedtestsuite/tests/typing-misc/exp_denom.ml
The file was modifiedtestsuite/tests/typing-poly/error_messages.ml
The file was modifiedtestsuite/tests/typing-gadts/ambiguity.ml
The file was modifiedtestsuite/tests/typing-misc/labels.ml
The file was modifiedtestsuite/tests/typing-gadts/pr7374.ml
The file was modifiedtestsuite/tests/typing-gadts/pr6174.ml
The file was modifiedtestsuite/tests/typing-extensions/extensions.ml
The file was modifiedtestsuite/tests/typing-misc/pr7937.ml
The file was modifiedtestsuite/tests/typing-misc/let_rec_approx.ml
The file was modifiedtestsuite/tests/typing-core-bugs/type_expected_explanation.ml
The file was modifiedtestsuite/tests/typing-typeparam/newtype.ocaml.reference
The file was modifiedtestsuite/tests/formatting/margins.ocaml.reference
The file was modifiedtestsuite/tests/typing-core-bugs/unit_fun_hints.ml
The file was modifiedtestsuite/tests/typing-gadts/principality-and-gadts.ml
The file was modifiedtestsuite/tests/typing-gadts/pr5948.ml
The file was modifiedtestsuite/tests/typing-gadts/packed-module-recasting.ml
The file was modifiedtestsuite/tests/tool-expect-test/clean_typer.ml
The file was modifiedtestsuite/tests/typing-private/private.compilers.reference
The file was modifiedtestsuite/tests/typing-misc/unique_names_in_unification.ml
The file was modifiedtestsuite/tests/typing-objects/dummy.ml
The file was modifiedtestsuite/tests/typing-misc-bugs/pr6303_bad.compilers.reference
The file was modifiedtestsuite/tests/typing-gadts/pr5689.ml
The file was modifiedtestsuite/tests/typing-misc/polyvars.ml
The file was modifiedtestsuite/tests/typing-short-paths/short-paths.compilers.reference
The file was modifiedtestsuite/tests/typing-gadts/didier.ml
The file was modifiedtestsuite/tests/typing-objects/Exemples.ml
The file was modifiedtestsuite/tests/tool-toplevel/error_highlighting.compilers.reference
The file was modifiedtestsuite/tests/typing-misc/occur_check.ml
The file was modifiedtestsuite/tests/typing-objects/self_cannot_be_closed.ml
The file was modifiedtestsuite/tests/typing-fstclassmod/scope_escape.ml
The file was modifiedtestsuite/tests/typing-gadts/test.ml
The file was modifiedtestsuite/tests/typing-objects/pr6123_bad.ml
The file was modifiedtestsuite/tests/typing-misc/pr7103.ml
The file was modifiedtestsuite/tests/typing-short-paths/errors.ml
The file was modifiedtestsuite/tests/typing-objects/abstract_rows.ml
Commit 1a63317fcf2fcaeb32259aab7da63b3e015dbfc4 by jules
Denomination for multi-keyword expressions

Add denominations for expressions like `for`, `while`, `if`, `match`,
etc.. that are often spanning several lines.

It acts as a confirmation that the error is about the containing
expression rather than a nested one as the printed code is sometimes
harder to read.

There's no test for some of them (`try`, `if`) but they'll become
easily reachable if the denomination is used in other messages.
(commit: 1a63317)
The file was modifiedtestsuite/tests/typing-core-bugs/type_expected_explanation.ml
The file was modifiedtestsuite/tests/typing-misc/exp_denom.ml
The file was modifiedtyping/typecore.ml
Commit bc88b1b1faa6a8d0c449d2f8980d84aaaa914be6 by jules
Update Changes
(commit: bc88b1b)
The file was modifiedChanges
Commit d0fbfc78e9a9a87e60ebcdf8ac9071a05befe318 by noreply
Add a missing `$(EXE)` extension (#13312)

The extension was unintentionally overwritten in cherry-pick commit
46c7122888c5f57b45d75098ca95f159a14420b8
(commit: d0fbfc7)
The file was modifiedotherlibs/Makefile.otherlibs.common
Commit 65eaf62cb6420011b579cf57015f9279c4c4b088 by gabriel.scherer
restore caml_process_pending_actions_exn

I made a mistake when introducing caml_process_pending_actions_res (#13013), currently in trunk `caml_process_pending_actions_exn` is exported in signals.h but its implementation is removed.

This function is not CAML_INTERNALS, and Coq uses it.

To restore this function I reintroduced a helper function to transform `caml_result` values back into encoded exception (earlier #13013 designs had this). It is named `caml_result_get_encoded_exception`, in fail.h, CAML_INTERNALS-only.
(commit: 65eaf62)
The file was modifiedruntime/signals.c
The file was modifiedruntime/caml/fail.h
Commit bf5ba7c796146d510ff7381fd3934026ef3197ba by edwin.torok
doc(Bigarray.int): add link to element kinds

Signed-off-by: Edwin Török <edwin@etorok.net>
(commit: bf5ba7c)
The file was modifiedstdlib/bigarray.mli
Commit 4208c8bb46dcdb53f037b964fe471f1a394241ec by edwin.torok
doc(Bigarray.int): clarify that it refers to OCaml ints and NOT C int

This is mentioned in the 'Element kinds' documentation, but that is not
visible anywhere in LSP documentation completions.
It is worth emphasizing this, because getting this wrong may lead to
memory corruption.

Suggested-by: Florian Angeletti <<florian.angeletti@inria.fr>>
Signed-off-by: Edwin Török <edwin@etorok.net>
(commit: 4208c8b)
The file was modifiedstdlib/bigarray.mli
Commit 6b7befd9bf8615b79b52e47659d3f8925c19328a by edwin.torok
doc(Bigarray.int): add changes entry

Signed-off-by: Edwin Török <edwin.torok@cloud.com>
(commit: 6b7befd)
The file was modifiedChanges
Commit bbc7ce7e46342b3ead02222be23fea4094ee6e04 by noreply
Fix typo "get_succ_x" instead of "get_x". (#13313)

(commit: bbc7ce7)
The file was modifiedmanual/src/tutorials/objectexamples.etex
Commit fb010ad9da2db7cb94a33aa44d1739da1dbd60a3 by noreply
Format_doc: preserve the type of Foo.report_error, add Foo.report_error_doc (#13311)

* Format_doc: preserve the type of Foo.report_error, add Foo.report_error_doc

The introduction of Format_doc changed the type of various
'reprot_error' functions in the compiler codebase. But this breaks
user code. An alternative proposed here is to keep 'report_error'
at the same type as before and introduce 'report_error_doc' in addition.
(commit: fb010ad)
The file was modifiedlambda/translprim.mli
The file was modifieddriver/pparse.mli
The file was modifiedlambda/translclass.mli
The file was modifiedasmcomp/asmpackager.mli
The file was modifiedChanges
The file was modifiedtyping/includeclass.ml
The file was modifiedtyping/typemod.ml
The file was modifiedutils/linkdeps.ml
The file was modifiedbytecomp/bytelink.ml
The file was modifieddebugger/main.ml
The file was modifiedasmcomp/asmgen.ml
The file was modifiedutils/format_doc.ml
The file was modifiedtyping/includemod_errorprinter.ml
The file was modifiedtyping/typetexp.ml
The file was modifiedtyping/envaux.mli
The file was modifiedasmcomp/emitaux.ml
The file was modifiedbytecomp/symtable.mli
The file was modifiedlambda/translclass.ml
The file was modifiedtyping/env.ml
The file was modifiedasmcomp/asmlibrarian.ml
The file was modifiedtyping/persistent_env.mli
The file was modifieddriver/pparse.ml
The file was modifiedtyping/includeclass.mli
The file was modifiedlambda/translcore.ml
The file was modifiedasmcomp/asmgen.mli
The file was modifiedtyping/typetexp.mli
The file was modifiedasmcomp/asmlibrarian.mli
The file was modifiedtyping/persistent_env.ml
The file was modifiedlambda/translcore.mli
The file was modifiedparsing/attr_helper.ml
The file was modifiedtyping/env.mli
The file was modifiedbytecomp/bytelibrarian.mli
The file was modifieddebugger/command_line.ml
The file was modifiedtyping/typeclass.mli
The file was modifiedmiddle_end/compilenv.ml
The file was modifiedasmcomp/asmlink.mli
The file was modifiedlambda/translprim.ml
The file was modifiedutils/format_doc.mli
The file was modifiedutils/linkdeps.mli
The file was modifiedasmcomp/asmpackager.ml
The file was modifiedbytecomp/bytelibrarian.ml
The file was modifiedtyping/typedecl.mli
The file was modified.depend
The file was modifiedtyping/typedecl.ml
The file was modifiedbytecomp/bytelink.mli
The file was modifiedbytecomp/symtable.ml
The file was modifiedbytecomp/bytepackager.mli
The file was modifiedtyping/typeclass.ml
The file was modifiedasmcomp/asmlink.ml
The file was modifiedfile_formats/cmi_format.mli
The file was modifiedbytecomp/bytepackager.ml
The file was modifiedocamldoc/odoc_analyse.ml
The file was modifiedfile_formats/cmi_format.ml
The file was modifiedmiddle_end/compilenv.mli
The file was modifiedparsing/attr_helper.mli
The file was modifiedtoplevel/topcommon.ml
The file was modifiedtyping/envaux.ml
The file was modifiedasmcomp/emitaux.mli
Commit 4ed62698e61bd6ceb7a2b477c5bfa1e98caac430 by seb
Testsuite: simplify the C# test: do not spell-out dynlink libraries

Before this commit, the test was adding dynlink.cmx?a to the
all_modules variable but this is actually not necessary because
the "include dynlink" directive already adds them as appropriate to
the libraries variable.

This has been spotted by @dra27 as it led to a test failure when
-linkall was (incorrectly) used because this led to some modules
being linked twice.
(commit: 4ed6269)
The file was modifiedtestsuite/tests/lib-dynlink-csharp/main.ml
Commit d3741bc95dd3b36349bc7e3cd300681697189ad6 by seb
Build system: introduce per-program variables to store link flags

This commit introduces build variables

  foo_{COMMON,BYTECODE,NATIVE}_LINKFLAGS

where foo is the name of a program to build.

These variables are initialised with empty strings (no flags) and
can then be overridden by each program which needs to.

Such variables allow more fine-grained control over flags so that they
do not propagate when put in target-specific variables.

It may be the case that these variables become unnecessary once we
use a version of GNU make which is recent enough to support the
private keyword.
(commit: d3741bc)
The file was modifiedMakefile
The file was modifiedMakefile.common
Commit f00ff1c58315d0bdbafac408ff4ed176ec69cac7 by seb
Build system: introduce the private OTHERLIBS variable

This variable lists the other libraries that get built by the
recursive makefiles.

At this point it has the same content as the OTHERLIBRARIES variable
but, when the other libraries will be built by the root Makefile
their names will be removed from this variable.

It is thus expected that this variable becomes empty and can be removed
once all the other libraries get built by the root Makefile.
(commit: f00ff1c)
The file was modifiedconfigure
The file was modifiedMakefile
The file was modifiedMakefile.build_config.in
The file was modifiedotherlibs/Makefile
The file was modifiedconfigure.ac
Commit c741526001824755be44bdec4a728b82930ac345 by seb
Let configure generate otherlibs/dynlink/dynlink_platform_intf.mli

otherlibs/dynlink/dynlink_platform_intf.mli is a copy of the
corresponding otherlibs/dynlink/dynlink_platform_intf.ml file.
Before this commit, the copy was done during the build. With this commit
the copy (more likely a symlink) is done by configure as is already
done for other files that need to be duplicated.
(commit: c741526)
The file was modifiedconfigure
The file was modifiedotherlibs/dynlink/Makefile
The file was modifiedconfigure.ac
Commit c7d15af22a7c8183e5ca7930f805a277591a4086 by seb
Makefile: remove duplicate target-specific variable definition
(commit: c7d15af)
The file was modifiedMakefile
Commit 4c6a5d5010bda01c99ad95d9bd7a4a460cc293cb by seb
Merge otherlibs/dynlink/Makefile into the root Makefile
(commit: 4c6a5d5)
The file was modifiedChanges
The file was modifiedotherlibs/Makefile
The file was modifiedconfigure
The file was removedotherlibs/dynlink/Makefile
The file was modifiedconfigure.ac
The file was modifiedtestsuite/tests/lib-dynlink-initializers/test10_main.native.reference
The file was modified.depend
The file was modifiedMakefile
The file was modifiedtestsuite/tests/backtrace/backtrace_dynlink.flambda.reference
The file was modifiedtestsuite/tests/backtrace/backtrace_dynlink.reference
The file was modifiedtestsuite/tests/lib-dynlink-initializers/test10_main.byte.reference
The file was removedotherlibs/dynlink/.depend
Commit 715821fdb9cacf94e1a9e22d72c900ed0b137430 by seb
otherlibs/systhreads/Makefile: Do not add -g to C compiler flags

This is already dealt with by the build system, meaning that,
before this commit, -g was actually occurring twice.
(commit: 715821f)
The file was modifiedotherlibs/systhreads/Makefile
Commit d0590d84ec030e61e45245dd90acbc1c1af3325e by seb
otherlibs/systhreads/Makefile: Deduplicate C compiler flags

This is a leftover from 31cdf416280053dcd38351b7858e818b23110779,
(part of #12589).
(commit: d0590d8)
The file was modifiedChanges
The file was modifiedotherlibs/systhreads/Makefile
Commit f0b65a68295bd4fb67096187f803c0398f5457d5 by edwin.torok
sanitizer(UBSAN): really enable UBSAN

The clang-14 docs are not clear about this, but the latest docs say:
> -fsanitize-trap= and -fsanitize-recover= are a no-op in the absence of a -fsanitize= option. There is no unused command line option warning.

Avoid this trap and specify `-fsanitize=$ubsan` too.

Signed-off-by: Edwin Török <edwin.torok@cloud.com>
(commit: f0b65a6)
The file was modifiedtools/ci/inria/sanitizers/script
Commit e1108ab874fbc4fc6aa9dbc0316efba2aafd8000 by edwin.torok
sanitizers(UBSAN): fix linker warning

Apparently >-O0 needs to be supplied when linking too:
```
clang: warning: the object size sanitizer has no effect at -O0, but is explicitly enabled: -fsanitize=bool,builtin,bounds,enum,nonnull-attribute,nullability,object-size,pointer-overflow,returns-nonnull-attribute,shift-exponent,unreachable [-Winvalid-command-line-argument]
```

Signed-off-by: Edwin Török <edwin.torok@cloud.com>
(commit: e1108ab)
The file was modifiedtools/ci/inria/sanitizers/script
Commit d726e523349212b6d67489eddb7e9f9fe2bd9106 by edwin.torok
sanitizers: move flag definitions

Move compiler flag definitions to shell variables.
This will enable testing them.

No functional change yet.

Signed-off-by: Edwin Török <edwin.torok@cloud.com>
(commit: d726e52)
The file was modifiedtools/ci/inria/sanitizers/script
Commit 40b917d52c6e54309bbe3dde5c0305b78bf685e2 by edwin.torok
sanitizers: add a test that ASAN/UBSAN works

Compile 2 small test programs, and check expected output.

Signed-off-by: Edwin Török <edwin.torok@cloud.com>
(commit: 40b917d)
The file was modifiedtools/ci/inria/sanitizers/script
Commit 24a4657a053f9d24dd7d929c516225438918d3d5 by edwin.torok
sanitizer(UBSAN): switch to printing instead of trap

Still stop on first error, but instead of dumping core print a message,
and stacktrace, like ASAN.

This may be more convenient when used in a CI than a coredump.

Signed-off-by: Edwin Török <edwin.torok@cloud.com>
(commit: 24a4657)
The file was modifiedtools/ci/inria/sanitizers/script
Commit 4bd83509eb047434bf5ad7f5c6768dfd2a8e3556 by edwin.torok
sanitizers: add -g flag

For better stacktraces.

Signed-off-by: Edwin Török <edwin.torok@cloud.com>
(commit: 4bd8350)
The file was modifiedtools/ci/inria/sanitizers/script
Commit 814c0074e83538699efdd100b78daca5ad84f705 by edwin.torok
sanitizers: future proof by using -Og instead of -o1

This is currently equivalent to -O1 on clang, but may improve debuggability in the future compared to -O1.

GCC already disables certain optimizations at -Og, and recommends it when using the sanitizers:
```
To get more accurate stack traces, it is possible to use options such as -O0, -O1, or -Og (which, for instance, prevent  most  function  inlining)
```

(there are also other flag recommendations, but I think they are only relevant if you want to use -O2 or higher,
they wouldn't be active at -O1/-Og)

Also don't use -O0. Even for pure debugging, the manual recommends -Og:
```
It is a better choice than -O0 for producing debuggable code because some compiler passes that collect debug information are disabled at -O0
```

Signed-off-by: Edwin Török <edwin.torok@cloud.com>
(commit: 814c007)
The file was modifiedtools/ci/inria/sanitizers/script