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 modified utils/misc.mli The file was modified utils/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 modified parsing/lexer.mli The file was modified parsing/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 modified utils/misc.ml The file was modified typing/env.ml The file was modified parsing/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 added testsuite/tests/parsing/latin9.ml The file was modified .gitattributes The file was added testsuite/tests/typing-unicode/genfiles.ml The file was added testsuite/tests/typing-unicode/test.ml The file was modified utils/misc.ml The file was modified testsuite/tests/parsing/latin9.ml The file was modified .gitattributes The file was modified parsing/lexer.mli The file was modified parsing/lexer.mll The file was modified Changes 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 modified parsing/unit_info.mli The file was modified parsing/lexer.mli The file was modified parsing/unit_info.ml The file was modified utils/load_path.ml The file was modified utils/misc.ml The file was added testsuite/tests/lexing/reject_bad_encoding.ml The file was added testsuite/tests/lexing/reject_bad_encoding.compilers.reference The file was modified utils/misc.mli The file was modified parsing/lexer.mll The file was modified typing/env.ml The file was modified testsuite/tests/parsing/latin9.ml The file was added testsuite/tests/parsing/latin9.compilers.reference The file was modified typing/oprint.ml The file was modified testsuite/tests/parsetree/source.ml The file was modified .gitattributes The file was modified testsuite/tests/parsing/latin9.ml The file was modified testsuite/tests/parsing/latin9.compilers.reference The file was modified utils/misc.ml The file was modified parsing/lexer.mli The file was modified parsing/lexer.mll The file was modified utils/misc.mli The file was modified debugger/debugger_lexer.mll The file was modified lex/lexer.mll The file was modified testsuite/tests/tool-ocamldoc/Paragraph.html.reference The file was modified testsuite/tests/tool-ocamldoc/Variants.html.reference The file was modified .depend The file was modified testsuite/tests/tool-ocamldoc/Module_whitespace.html.reference The file was modified testsuite/tests/tool-ocamldoc/Loop.html.reference The file was modified .gitattributes The file was modified ocamldoc/odoc_lexer.mll The file was modified testsuite/tests/tool-ocamldoc/Alert_toplevel.html.reference The file was added testsuite/tests/tool-ocamldoc/Latin9.html.reference The file was modified testsuite/tests/tool-ocamldoc/Entities.html.reference The file was modified testsuite/tests/tool-ocamldoc/Alerts_impl.html.reference The file was modified ocamldoc/odoc_html.ml The file was modified testsuite/tests/tool-ocamldoc/Alerts.html.reference The file was modified testsuite/tests/tool-ocamldoc/type_Linebreaks.reference The file was modified testsuite/tests/tool-ocamldoc/Item_ids.html.reference The file was modified testsuite/tests/tool-ocamldoc/Linebreaks.html.reference The file was modified testsuite/tests/tool-ocamldoc/Functions.html.reference The file was modified ocamldoc/odoc_ocamlhtml.mll The file was modified testsuite/tests/tool-ocamldoc/Documentation_tags.html.reference The file was modified testsuite/tests/tool-ocamldoc/Include_module_type_of.html.reference The file was modified testsuite/tests/tool-ocamldoc/Inline_records.html.reference The file was modified testsuite/tests/tool-ocamldoc/Alert_toplevel2.html.reference The file was modified testsuite/tests/tool-ocamldoc/No_preamble.html.reference The file was added testsuite/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 modified testsuite/tests/typing-unicode/test.ml The file was modified testsuite/tests/typing-unicode/genfiles.ml The file was modified debugger/debugger_lexer.mll The file was modified ocamldoc/odoc_ocamlhtml.mll The file was modified ocamldoc/odoc_lexer.mll The file was modified parsing/lexer.mll The file was modified utils/misc.ml The file was modified parsing/unit_info.ml The file was modified typing/oprint.ml The file was modified utils/misc.mli The file was modified typing/env.ml The file was modified utils/misc.mli The file was modified parsing/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 modified utils/misc.ml The file was modified parsing/lexer.mll The file was modified utils/misc.ml The file was modified parsing/lexer.mll The file was modified ocamldoc/odoc_ast.ml The file was modified ocamldoc/odoc_analyse.ml The file was modified parsing/unit_info.mli The file was modified toplevel/topcommon.ml The file was modified ocamldoc/odoc_sig.ml The file was modified parsing/unit_info.ml The file was modified driver/makedepend.ml The file was modified parsing/lexer.mll The file was modified debugger/debugger_lexer.mll The file was modified typing/oprint.ml The file was modified utils/misc.ml The file was modified ocamldoc/odoc_ocamlhtml.mll The file was modified typing/env.ml The file was modified ocamldoc/odoc_lexer.mll The file was modified parsing/unit_info.ml The file was modified utils/misc.mli The file was added "testsuite/tests/unicode/\350\246\213.ml" The file was modified tools/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" The file was modified tools/ci/actions/check-typo.sh The file was modified .gitattributes The file was modified parsing/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 modified tools/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 modified Makefile.common The file was modified otherlibs/Makefile.otherlibs.common The file was modified Makefile The file was modified otherlibs/systhreads/Makefile
Commit
31cdf416280053dcd38351b7858e818b23110779
by seb Build system: More clearly distinguish bytecode from native CFLAGS/CPPFLAGS (commit: 31cdf41 ) The file was modified configure.ac The file was modified otherlibs/systhreads/Makefile The file was modified utils/config.generated.ml.in The file was modified Makefile.build_config.in The file was modified configure The file was modified Makefile The file was modified Makefile.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 modified configure The file was modified configure.ac
Commit
fd1cab4ace9bfc2f1f34c6e3c2164b52805fd149
by seb Deduplicate the pthread CFLAGS (commit: fd1cab4 ) The file was modified configure.ac The file was modified configure
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 modified Makefile.config.in The file was modified stdlib/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 modified stdlib/Makefile The file was modified runtime/platform.c
Commit
ab0bf448bf800d5535897e2ecf1c078663b04935
by antonin Introduce a new variable to avoid re-using a for loop iterator (commit: ab0bf44 ) The file was modified runtime/printexc.c
Commit
c908e41c3eeff5f718b5b4c953fe2d9155d58c4e
by antonin Change macros to reduce the scope of the for loop iterator (commit: c908e41 ) The file was modified runtime/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 modified runtime/alloc.c
Commit
b41196afacb9ef6fb1e648637ed9242e749b5243
by antonin Reduce the scope of for loop iterators (commit: b41196a ) The file was modified otherlibs/unix/cst2constr.c The file was modified runtime/alloc.c The file was modified testsuite/tests/asmgen/mainarith.c The file was modified runtime/finalise.c The file was modified runtime/minor_gc.c The file was modified runtime/obj.c The file was modified runtime/win32.c The file was modified runtime/compare.c The file was modified testsuite/tests/lib-digest/blake2b_self_test_stubs.c The file was modified ocamltest/run_stubs.c The file was modified otherlibs/unix/spawn.c The file was modified otherlibs/unix/mmap_ba.c The file was modified runtime/memprof.c The file was modified Changes The file was modified runtime/domain.c The file was modified runtime/startup_byt.c The file was modified otherlibs/runtime_events/runtime_events_consumer.c The file was modified otherlibs/str/strstubs.c The file was modified otherlibs/unix/cstringv.c The file was modified runtime/bigarray.c The file was modified otherlibs/systhreads/st_posix.h The file was modified otherlibs/unix/execvp.c The file was modified runtime/gc_stats.c The file was modified otherlibs/unix/mmap_unix.c The file was modified runtime/memory.c The file was modified runtime/hash.c The file was modified runtime/callback.c The file was modified runtime/weak.c The file was modified runtime/skiplist.c The file was modified runtime/interp.c The file was modified runtime/instrtrace.c The file was modified testsuite/tests/lib-dynlink-native/factorial.c The file was modified runtime/globroots.c The file was modified runtime/startup_nat.c The file was modified runtime/extern.c The file was modified runtime/backtrace_nat.c The file was modified runtime/fix_code.c The file was modified runtime/misc.c The file was modified testsuite/tests/asmgen/mainimmed.c The file was modified otherlibs/unix/mmap_win32.c The file was modified ocamltest/run_win32.c The file was modified runtime/caml/skiplist.h The file was modified testsuite/tests/lib-bigarray-2/bigarrcstub.c The file was modified runtime/shared_heap.c The file was modified otherlibs/unix/select_unix.c The file was modified runtime/roots.c The file was modified runtime/sys.c The file was modified stdlib/header.c The file was modified otherlibs/unix/select_win32.c The file was modified testsuite/tests/frame-pointers/fp_backtrace.c The file was modified otherlibs/unix/setgroups.c The file was modified runtime/signals.c The file was modified runtime/unix.c The file was modified runtime/backtrace.c The file was modified ocamltest/run_unix.c The file was modified otherlibs/unix/termios.c The file was modified runtime/signals_nat.c The file was modified runtime/dynlink.c The file was modified testsuite/tests/gc-roots/globrootsprim.c The file was modified runtime/io.c The file was modified runtime/runtime_events.c The file was modified otherlibs/unix/getgroups.c The file was modified runtime/custom.c The file was modified testsuite/tests/asmgen/main.c The file was modified runtime/gc_ctrl.c The file was modified stdlib/headernt.c The file was modified runtime/addrmap.c The file was modified otherlibs/systhreads/st_stubs.c The file was modified runtime/printexc.c The file was modified runtime/array.c The file was modified runtime/major_gc.c The file was modified runtime/meta.c The file was modified otherlibs/unix/signals.c The file was modified runtime/dynlink_nat.c The file was modified runtime/intern.c The file was modified otherlibs/unix/getaddrinfo.c The file was modified runtime/backtrace_byt.c The file was modified runtime/fail.c The file was modified runtime/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 modified runtime/caml/memory.h
Commit
a1409db06364f09407322acaadf31483637a3ba4
by kc Use syntax for effect handlers in the manual page (commit: a1409db ) The file was modified manual/src/refman/extensions/effects.etex The file was modified manual/src/refman/patterns.etex The file was modified Changes The file was modified HACKING.adoc The file was modified Changes
Commit
95f30eb1efa83728ba35bea65b3abb766fd767b2
by nick Remove "mean space overhead" computation, as it's broadly unused and leaked memory. (commit: 95f30eb ) The file was modified runtime/caml/major_gc.h The file was modified runtime/major_gc.c The file was modified runtime/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 modified aclocal.m4 The file was modified Changes The file was modified configure.ac The file was modified configure The file was modified runtime/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 modified configure The file was modified configure.ac The file was modified runtime/caml/s.h.in The file was modified runtime/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 modified runtime/memory.c
Commit
84a377338473c833cf69e0dedc196865cd57af54
by antonin Remove magic debug number from struct pool_block (commit: 84a3773 ) The file was modified runtime/memory.c
Commit
0e256509f4e64c554c189f2a3e90dce377b80761
by antonin Simplify struct pool_block access and allocation (commit: 0e25650 ) The file was modified runtime/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 modified Changes The file was modified runtime/memory.c The file was modified Makefile The file was modified .gitignore The file was modified Makefile The file was modified .depend The file was modified Makefile The file was modified .depend The file was modified Makefile
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 modified parsing/pprintast.mli The file was modified .depend The file was modified parsing/pprintast.ml The file was modified typing/typedtree.ml The file was modified typing/typedtree.mli The file was modified typing/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 modified testsuite/tests/tool-toplevel/error_highlighting.compilers.reference The file was modified testsuite/tests/typing-gadts/pr6980.ml The file was modified testsuite/tests/typing-gadts/pr5948.ml The file was modified testsuite/tests/tool-toplevel/multi_phrase_line.compilers.reference The file was modified testsuite/tests/typing-misc/labels.ml The file was modified typing/typecore.mli The file was modified testsuite/tests/typing-misc/scope_escape.ml The file was modified testsuite/tests/typing-poly/error_messages.ml The file was modified testsuite/tests/typing-misc-bugs/pr6303_bad.compilers.reference The file was modified testsuite/tests/typing-core-bugs/const_int_hint.ml The file was modified testsuite/tests/typing-poly/pr9603.ml The file was modified testsuite/tests/typing-modules-bugs/pr6992_bad.compilers.reference The file was modified parsing/pprintast.ml The file was modified testsuite/tests/tool-toplevel/use_command.ml The file was modified testsuite/tests/typing-misc/occur_check.ml The file was modified testsuite/tests/typing-gadts/principality-and-gadts.ml The file was modified testsuite/tests/typing-objects/dummy.ml The file was modified testsuite/tests/tool-caml-tex/redirections.reference The file was modified testsuite/tests/typing-gadts/ambiguity.ml The file was modified testsuite/tests/typing-modules/firstclass.ml The file was modified testsuite/tests/typing-objects/self_cannot_be_closed.ml The file was modified testsuite/tests/typing-gadts/didier.ml The file was modified testsuite/tests/typing-core-bugs/type_expected_explanation.ml The file was modified testsuite/tests/typing-missing-cmi-3/user.ml The file was modified testsuite/tests/typing-misc/pr7937.ml The file was modified testsuite/tests/typing-objects/Exemples.ml The file was modified testsuite/tests/typing-short-paths/errors.ml The file was modified testsuite/tests/tool-toplevel/redefinition_hints.compilers.reference The file was modified testsuite/tests/typing-misc/let_rec_approx.ml The file was modified testsuite/tests/typing-misc/pr7103.ml The file was modified typing/typecore.ml The file was modified testsuite/tests/typing-objects/abstract_rows.ml The file was modified testsuite/tests/typing-core-bugs/unit_fun_hints.ml The file was modified testsuite/tests/typing-poly/poly.ml The file was modified testsuite/tests/typing-misc/polyvars.ml The file was modified testsuite/tests/typing-gadts/pr7374.ml The file was modified testsuite/tests/typing-modules-bugs/pr6752_bad.compilers.reference The file was modified testsuite/tests/typing-misc/unique_names_in_unification.ml The file was modified testsuite/tests/hidden_includes/not_included.ocamlc.reference The file was modified testsuite/tests/typing-objects/pr6123_bad.ml The file was modified testsuite/tests/typing-private/private.compilers.reference The file was modified testsuite/tests/typing-extensions/extensions.ml The file was modified testsuite/tests/typing-fstclassmod/scope_escape.ml The file was modified testsuite/tests/typing-objects/Tests.ml The file was modified testsuite/tests/typing-warnings/records.ml The file was modified testsuite/tests/typing-short-paths/short-paths.compilers.reference The file was modified testsuite/tests/typing-gadts/pr6174.ml The file was modified testsuite/tests/typing-fstclassmod/nondep_instance.ml The file was modified testsuite/tests/typing-private/private.compilers.principal.reference The file was modified testsuite/tests/tool-expect-test/clean_typer.ml The file was modified testsuite/tests/typing-gadts/test.ml The file was modified testsuite/tests/typing-missing-cmi/test.compilers.reference The file was modified testsuite/tests/typing-typeparam/newtype.ocaml.reference The file was modified testsuite/tests/let-syntax/let_syntax.ml The file was modified testsuite/tests/typing-rectypes-bugs/pr6174_bad.compilers.reference The file was modified testsuite/tests/typing-gadts/or_patterns.ml The file was modified testsuite/tests/typing-polyvariants-bugs/pr5057a_bad.compilers.reference The file was modified testsuite/tests/typing-gadts/packed-module-recasting.ml The file was modified testsuite/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 modified testsuite/tests/typing-missing-cmi-3/user.ml The file was modified testsuite/tests/tool-ocamlc-locations/marshalled.compilers.reference The file was modified testsuite/tests/hidden_includes/not_included.ocamlc.reference The file was modified testsuite/tests/typing-missing-cmi/test.compilers.reference The file was modified testsuite/tests/typing-private/private.compilers.principal.reference The file was modified testsuite/tests/typing-warnings/records.ml The file was modified testsuite/tests/tool-caml-tex/redirections.reference The file was modified testsuite/tests/typing-polyvariants-bugs-2/pr3918c.compilers.reference The file was modified testsuite/tests/typing-rectypes-bugs/pr6174_bad.compilers.reference The file was modified testsuite/tests/typing-gadts/pr6980.ml The file was modified testsuite/tests/typing-poly/pr9603.ml The file was modified testsuite/tests/printing-types/existentials.ml The file was modified testsuite/tests/typing-objects/Tests.ml The file was modified testsuite/tests/typing-polyvariants-bugs/pr5057a_bad.compilers.reference The file was modified testsuite/tests/generalized-open/gpr1506.ml The file was modified testsuite/tests/typing-fstclassmod/nondep_instance.ml The file was modified testsuite/tests/let-syntax/let_syntax.ml The file was modified testsuite/tests/typing-gadts/or_patterns.ml The file was modified testsuite/tests/effect-syntax/error_messages.ml The file was modified testsuite/tests/typing-modules-bugs/pr6752_bad.compilers.reference The file was modified testsuite/tests/tool-toplevel/multi_phrase_line.compilers.reference The file was modified testsuite/tests/typing-core-bugs/const_int_hint.ml The file was modified testsuite/tests/tool-toplevel/use_command.ml The file was modified testsuite/tests/typing-modules-bugs/pr6992_bad.compilers.reference The file was modified testsuite/tests/typing-poly/poly.ml The file was modified testsuite/tests/typing-misc/scope_escape.ml The file was modified typing/typecore.ml The file was modified testsuite/tests/typing-misc/printing.ml The file was modified testsuite/tests/typing-modules/firstclass.ml The file was modified testsuite/tests/tool-toplevel/redefinition_hints.compilers.reference The file was added testsuite/tests/typing-misc/exp_denom.ml The file was modified testsuite/tests/typing-poly/error_messages.ml The file was modified testsuite/tests/typing-gadts/ambiguity.ml The file was modified testsuite/tests/typing-misc/labels.ml The file was modified testsuite/tests/typing-gadts/pr7374.ml The file was modified testsuite/tests/typing-gadts/pr6174.ml The file was modified testsuite/tests/typing-extensions/extensions.ml The file was modified testsuite/tests/typing-misc/pr7937.ml The file was modified testsuite/tests/typing-misc/let_rec_approx.ml The file was modified testsuite/tests/typing-core-bugs/type_expected_explanation.ml The file was modified testsuite/tests/typing-typeparam/newtype.ocaml.reference The file was modified testsuite/tests/formatting/margins.ocaml.reference The file was modified testsuite/tests/typing-core-bugs/unit_fun_hints.ml The file was modified testsuite/tests/typing-gadts/principality-and-gadts.ml The file was modified testsuite/tests/typing-gadts/pr5948.ml The file was modified testsuite/tests/typing-gadts/packed-module-recasting.ml The file was modified testsuite/tests/tool-expect-test/clean_typer.ml The file was modified testsuite/tests/typing-private/private.compilers.reference The file was modified testsuite/tests/typing-misc/unique_names_in_unification.ml The file was modified testsuite/tests/typing-objects/dummy.ml The file was modified testsuite/tests/typing-misc-bugs/pr6303_bad.compilers.reference The file was modified testsuite/tests/typing-gadts/pr5689.ml The file was modified testsuite/tests/typing-misc/polyvars.ml The file was modified testsuite/tests/typing-short-paths/short-paths.compilers.reference The file was modified testsuite/tests/typing-gadts/didier.ml The file was modified testsuite/tests/typing-objects/Exemples.ml The file was modified testsuite/tests/tool-toplevel/error_highlighting.compilers.reference The file was modified testsuite/tests/typing-misc/occur_check.ml The file was modified testsuite/tests/typing-objects/self_cannot_be_closed.ml The file was modified testsuite/tests/typing-fstclassmod/scope_escape.ml The file was modified testsuite/tests/typing-gadts/test.ml The file was modified testsuite/tests/typing-objects/pr6123_bad.ml The file was modified testsuite/tests/typing-misc/pr7103.ml The file was modified testsuite/tests/typing-short-paths/errors.ml The file was modified testsuite/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 modified testsuite/tests/typing-core-bugs/type_expected_explanation.ml The file was modified testsuite/tests/typing-misc/exp_denom.ml The file was modified typing/typecore.ml The file was modified Changes
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 modified otherlibs/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 modified runtime/signals.c The file was modified runtime/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 modified stdlib/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 modified stdlib/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 modified Changes
Commit
bbc7ce7e46342b3ead02222be23fea4094ee6e04
by noreply Fix typo "get_succ_x" instead of "get_x". (#13313) (commit: bbc7ce7 ) The file was modified manual/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 modified lambda/translprim.mli The file was modified driver/pparse.mli The file was modified lambda/translclass.mli The file was modified asmcomp/asmpackager.mli The file was modified Changes The file was modified typing/includeclass.ml The file was modified typing/typemod.ml The file was modified utils/linkdeps.ml The file was modified bytecomp/bytelink.ml The file was modified debugger/main.ml The file was modified asmcomp/asmgen.ml The file was modified utils/format_doc.ml The file was modified typing/includemod_errorprinter.ml The file was modified typing/typetexp.ml The file was modified typing/envaux.mli The file was modified asmcomp/emitaux.ml The file was modified bytecomp/symtable.mli The file was modified lambda/translclass.ml The file was modified typing/env.ml The file was modified asmcomp/asmlibrarian.ml The file was modified typing/persistent_env.mli The file was modified driver/pparse.ml The file was modified typing/includeclass.mli The file was modified lambda/translcore.ml The file was modified asmcomp/asmgen.mli The file was modified typing/typetexp.mli The file was modified asmcomp/asmlibrarian.mli The file was modified typing/persistent_env.ml The file was modified lambda/translcore.mli The file was modified parsing/attr_helper.ml The file was modified typing/env.mli The file was modified bytecomp/bytelibrarian.mli The file was modified debugger/command_line.ml The file was modified typing/typeclass.mli The file was modified middle_end/compilenv.ml The file was modified asmcomp/asmlink.mli The file was modified lambda/translprim.ml The file was modified utils/format_doc.mli The file was modified utils/linkdeps.mli The file was modified asmcomp/asmpackager.ml The file was modified bytecomp/bytelibrarian.ml The file was modified typing/typedecl.mli The file was modified .depend The file was modified typing/typedecl.ml The file was modified bytecomp/bytelink.mli The file was modified bytecomp/symtable.ml The file was modified bytecomp/bytepackager.mli The file was modified typing/typeclass.ml The file was modified asmcomp/asmlink.ml The file was modified file_formats/cmi_format.mli The file was modified bytecomp/bytepackager.ml The file was modified ocamldoc/odoc_analyse.ml The file was modified file_formats/cmi_format.ml The file was modified middle_end/compilenv.mli The file was modified parsing/attr_helper.mli The file was modified toplevel/topcommon.ml The file was modified typing/envaux.ml The file was modified asmcomp/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 modified testsuite/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 modified Makefile The file was modified Makefile.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 modified configure The file was modified Makefile The file was modified Makefile.build_config.in The file was modified otherlibs/Makefile The file was modified configure.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 modified configure The file was modified otherlibs/dynlink/Makefile The file was modified configure.ac
Commit
c7d15af22a7c8183e5ca7930f805a277591a4086
by seb Makefile: remove duplicate target-specific variable definition (commit: c7d15af ) The file was modified Makefile
Commit
4c6a5d5010bda01c99ad95d9bd7a4a460cc293cb
by seb Merge otherlibs/dynlink/Makefile into the root Makefile (commit: 4c6a5d5 ) The file was modified Changes The file was modified otherlibs/Makefile The file was modified configure The file was removed otherlibs/dynlink/Makefile The file was modified configure.ac The file was modified testsuite/tests/lib-dynlink-initializers/test10_main.native.reference The file was modified .depend The file was modified Makefile The file was modified testsuite/tests/backtrace/backtrace_dynlink.flambda.reference The file was modified testsuite/tests/backtrace/backtrace_dynlink.reference The file was modified testsuite/tests/lib-dynlink-initializers/test10_main.byte.reference The file was removed otherlibs/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 modified otherlibs/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 modified Changes The file was modified otherlibs/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 modified tools/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 modified tools/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 modified tools/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 modified tools/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 modified tools/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 modified tools/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 modified tools/ci/inria/sanitizers/script