The file was modified ocamltest/main.ml (diff) The file was modified ocamltest/ocamltest_stdlib.mli (diff) The file was modified ocamltest/ocamltest_stdlib.ml (diff) The file was modified ocamltest/main.ml (diff) The file was modified ocamltest/ocamltest_stdlib.mli (diff) The file was modified ocamltest/ocamltest_stdlib.ml (diff) The file was modified ocamltest/ocaml_actions.ml (diff) The file was modified runtime/caml/io.h (diff) The file was modified runtime/caml/osdeps.h (diff) The file was modified runtime/caml/memory.h (diff) The file was modified runtime/caml/misc.h (diff) The file was modified Changes (diff) The file was modified typing/ctype.ml (diff) The file was modified Changes (diff) The file was modified typing/typedecl.ml (diff) The file was modified testsuite/tests/typing-misc/constraints.ml (diff) The file was added testsuite/tests/typing-modules/mixmod5.ml The file was modified Changes (diff) The file was modified typing/typedecl.ml (diff) The file was modified ocamltest/main.ml (diff) The file was modified release-info/howto.md (diff) The file was modified runtime/minor_gc.c (diff) The file was modified runtime/startup_aux.c (diff) The file was modified runtime/sys.c (diff) The file was modified runtime/win32.c (diff) The file was modified runtime/dynlink.c (diff) The file was modified runtime/meta.c (diff) The file was modified stdlib/gc.mli (diff) The file was modified runtime/intern.c (diff) The file was modified runtime/misc.c (diff) The file was modified runtime/extern.c (diff) The file was modified runtime/finalise.c (diff) The file was modified runtime/compare.c (diff) The file was modified runtime/gc_ctrl.c (diff) The file was modified runtime/caml/misc.h (diff) The file was modified runtime/startup_byt.c (diff) The file was modified runtime/major_gc.c (diff) The file was modified runtime/platform.c (diff) The file was modified configure.ac (diff) The file was modified configure (diff) The file was modified asmcomp/arm64/emit.mlp (diff) The file was modified asmcomp/arm64/proc.ml (diff) The file was modified testsuite/tests/frame-pointers/exception_handler.ml (diff) The file was modified runtime/arm64.S (diff) The file was modified asmcomp/arm64/emit.mlp (diff) The file was modified testsuite/tests/frame-pointers/stack_realloc.ml (diff) The file was modified testsuite/tests/frame-pointers/stack_realloc2.ml (diff) The file was modified testsuite/tests/frame-pointers/fp_backtrace.c (diff) The file was added testsuite/tests/frame-pointers/stack_realloc.arm64.reference The file was modified testsuite/tests/frame-pointers/stack_realloc2.ml (diff) The file was modified testsuite/tests/frame-pointers/stack_realloc.ml (diff) The file was added testsuite/tests/frame-pointers/stack_realloc2.arm64.reference The file was added testsuite/tests/frame-pointers/exceptions.reference The file was added testsuite/tests/frame-pointers/exceptions.ml The file was modified Changes (diff) The file was modified otherlibs/systhreads/thread.ml (diff) The file was modified otherlibs/systhreads/st_stubs.c (diff) The file was modified Changes (diff) The file was modified otherlibs/systhreads/thread.mli (diff) The file was modified otherlibs/systhreads/thread.ml (diff)
Commit
a5426e17148642bd57c55979c266375c3fe6c26d
by gabriel.scherer predef: add a variant type of all predefined type constructors It is useful for some type-directed analyses to special case predefined type constructors -- see for example {!Typeopt.classify}. Currently the only way to do it is to list all special cases by hand, with an explicit path check. If we add more predefined types, we typically forget to update those lists of cases, and the new types are not properly taken into account by the analyses. In this PR we introduce a variant type of all predefined types, so that analyses can be defined by pattern-matching on this variant type, and will get an exhaustivity warning if a new case is added. (We make sure to also use the variant type internally -- in the module itself -- so that people don't forget to extend it when they add a new predefined type.) The file was modified typing/predef.mli (diff) The file was modified typing/typeopt.ml (diff) The file was modified typing/predef.ml (diff) The file was modified Changes (diff) The file was modified typing/predef.ml (diff) The file was modified otherlibs/systhreads/st_stubs.c (diff) The file was modified configure (diff) The file was modified configure.ac (diff) The file was modified typing/ctype.ml (diff) The file was modified Changes (diff)
Commit
fc33fcd31a83d01dcdd9880ffd9d486e8ae0d4c5
by david.allsopp Simplify the checking on caml_global_data Partly owing to an old multicore API removed prior to merging, caml_global_data was initialised to NULL in fiber.c and changed to Val_unit when starting up the interpreter prior to being registered as a root. That required checks for both NULL and Val_unit to determine if the global data had been loaded when raising exceptions during initialisation. Code updated to be more as the 4.14 version with caml_global_data set to Val_unit statically. The file was modified runtime/caml/fiber.h (diff) The file was modified runtime/interp.c (diff) The file was modified runtime/fail_byt.c (diff) The file was modified runtime/fiber.c (diff) The file was modified release-info/howto.md (diff) The file was modified release-info/howto.md (diff) The file was modified runtime/minor_gc.c (diff) The file was modified toplevel/genprintval.ml (diff) The file was modified toplevel/genprintval.ml (diff) The file was modified toplevel/genprintval.ml (diff) The file was modified toplevel/genprintval.ml (diff) The file was modified toplevel/genprintval.ml (diff) The file was modified toplevel/genprintval.ml (diff)
Commit
27c82c430ac27873e073ff7eab93a812d8fe67c8
by noreply Do not write to ring after going out of stw participant set. (#13529) When the runtime events ring is destroyed, only the domains that are part of the stop-the-world (stw) participant list are stopped. So it is unsafe to write to ring when the domain is not part of the stw participant set. This fixes the data race in `lib-runtime-events/test_dropped_events`. The file was modified runtime/major_gc.c (diff) The file was modified Changes (diff)
Commit
bf63f888ccd49e8fc93685b677a576d4c89437d4
by noreply Confirm runtime events ring is still active after callback. (#13522) Need to check whether the ring is still active after a callback. It may be possible that ring has been destroyed during the execution of the callback. The file was modified Changes (diff) The file was modified runtime/runtime_events.c (diff) The file was modified runtime/domain.c (diff) The file was modified runtime/domain.c (diff) The file was modified runtime/caml/domain.h (diff)
Commit
292442034b8748d00611ff06df57c62f3d102181
by miod Bring back "memory cleanup at exit" mode, step 1. Upon shutdown, if memory cleanup is requested, make sure all domain and backup threads are terminated, and invoke the domain termination function for the last running domain if it was alone at shutdown time. The file was modified runtime/major_gc.c (diff) The file was modified runtime/caml/domain.h (diff) The file was modified runtime/startup_aux.c (diff) The file was modified runtime/domain.c (diff) The file was modified runtime/caml/major_gc.h (diff) The file was modified runtime/gc_stats.c (diff) The file was modified runtime/startup_aux.c (diff) The file was modified runtime/caml/gc_stats.h (diff) The file was modified runtime/major_gc.c (diff) The file was modified runtime/shared_heap.c (diff) The file was modified runtime/caml/shared_heap.h (diff) The file was modified otherlibs/systhreads/st_stubs.c (diff) The file was modified runtime/domain.c (diff) The file was modified otherlibs/systhreads/st_stubs.c (diff) The file was modified runtime/domain.c (diff) The file was modified runtime/platform.c (diff) The file was modified runtime/caml/platform.h (diff) The file was modified Changes (diff) The file was modified lambda/matching.ml (diff) The file was modified lambda/matching.ml (diff) The file was modified typing/typecore.ml (diff) The file was modified testsuite/tests/typing-objects/Tests.ml (diff) The file was modified typing/typecore.ml (diff) The file was added testsuite/tests/typing-misc/coerce_principal.ml The file was modified Changes (diff)
Commit
0f6f333c09af5ea86b97064d92d125cde84823e9
by miod Fix riscv64 oracle. While there, use a better filename for the alternate reference output and explain better in the test comments, why there are two reference output files. The file was added testsuite/tests/asmcomp/func_sections.no_jump_tables_in_rodata.reference The file was removed testsuite/tests/asmcomp/func_sections.arm.reference The file was modified testsuite/tests/asmcomp/func_sections.ml (diff) The file was modified runtime/caml/skiplist.h (diff) The file was modified yacc/lr0.c (diff) The file was modified yacc/defs.h (diff) The file was modified runtime/caml/bigarray.h (diff) The file was modified runtime/caml/frame_descriptors.h (diff) The file was modified Changes (diff) The file was modified runtime/callback.c (diff) The file was modified runtime/caml/finalise.h (diff) The file was modified runtime/backtrace_nat.c (diff)
Commit
48264c3a3b3e1a9b5a982c4f35e7adb0c06ff8bf
by antonin Annotate alloc/free open/close functions with compiler attributes This helps the compiler optimize code, and static analysis by detecting potential mismatches in alloc/free pairs. - malloc > The malloc attribute indicates that the function acts like a system > memory allocation function, returning a pointer to allocated storage > disjoint from the storage for any other object accessible to the > caller. https://clang.llvm.org/docs/AttributeReference.html#malloc > Associating a function with a deallocator helps detect calls to > mismatched allocation and deallocation functions and diagnose them > under the control of options such as -Wmismatched-dealloc. It also > makes it possible to diagnose attempts to deallocate objects that > were not allocated dynamically, by -Wfree-nonheap-object. To > indicate that an allocation function both satisifies the nonaliasing > property and has a deallocator associated with it, both the plain > form of the attribute and the one with the deallocator argument must > be used. > The warnings guarded by -fanalyzer respect allocation and > deallocation pairs marked with the malloc. https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-malloc-function-attribute Note that the malloc attribute can only be applied to functions returning pointers. The OCaml value type is a typedef to an integer type, and the C compiler will refuse applying the attribute to a function returning an OCaml value. - nodiscard / warn_unused_result Prevent memory leaks by warning if the result of an allocation is ignored. https://clang.llvm.org/docs/AttributeReference.html#nodiscard-warn-unused-result - alloc_align > GCC uses this information to improve pointer alignment analysis. https://clang.llvm.org/docs/AttributeReference.html#alloc-align https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-alloc_005falign-function-attribute - alloc_size > GCC uses this information to improve the results of > __builtin_object_size. https://clang.llvm.org/docs/AttributeReference.html#alloc-size https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-alloc_005fsize-function-attribute - returns_nonnull > lets the compiler optimize callers based on the knowledge that the > return value will never be null. > The analyzer considers the possibility that an allocation function > could fail and return null. […] If the allocator always returns > non-null, use __attribute__ ((returns_nonnull)) to suppress these > warnings. https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-returns_005fnonnull-function-attribute With GCC, restrict the attributes usage to GCC >= 14, as GCC 13 reports false positives on the runtime code. The file was modified runtime/caml/io.h (diff) The file was modified runtime/caml/memory.h (diff) The file was modified runtime/caml/misc.h (diff) The file was modified Changes (diff) The file was modified runtime/caml/osdeps.h (diff)
Commit
c1cd73fe2bc1a42e01adc133622f96e1e40ed291
by Florian Angeletti explicit local substitution (#13388) Local substitutions for module types ``` module type t := sig end ``` or ``` s with module type t := sig end ``` may fail when trying to substitute the module type path inside the type of first class module. Before this commit, the `Typemod` logic was duplicating part of the substitution composition logic to detect those failing substitutions in advance but failed to detect many cases. This commit introduces an alternative (and easier to maintain) approach which splits substitutions in two types belonging to the same type family: - standard substitutions that are guaranteed to succeed - local substitutions that may fail With this change, `Typemod` can use local substitution without affecting the rest of the typechecker. The file was modified typing/btype.ml (diff) The file was modified typing/typemod.mli (diff) The file was modified typing/subst.ml (diff) The file was modified typing/typemod.ml (diff) The file was modified typing/env.ml (diff) The file was modified testsuite/tests/typing-modules/module_type_substitution.ml (diff) The file was modified typing/includemod.ml (diff) The file was modified typing/subst.mli (diff) The file was modified runtime/caml/misc.h (diff) The file was modified runtime/caml/domain_state.h (diff) The file was modified runtime/caml/alloc.h (diff) The file was modified typing/includemod.ml (diff) The file was modified typing/subst.mli (diff) The file was modified typing/subst.ml (diff) The file was modified typing/typemod.ml (diff) The file was modified typing/env.ml (diff) The file was modified Changes (diff) The file was modified .github/workflows/build.yml (diff) The file was modified runtime/caml/misc.h (diff) The file was modified runtime/caml/tsan.h (diff) The file was modified typing/untypeast.ml (diff) The file was modified lambda/translclass.ml (diff) The file was modified Changes (diff) The file was modified otherlibs/systhreads/st_stubs.c (diff) The file was modified otherlibs/systhreads/st_stubs.c (diff) The file was modified otherlibs/systhreads/thread.mli (diff) The file was modified otherlibs/systhreads/st_stubs.c (diff) The file was modified otherlibs/systhreads/st_stubs.c (diff) The file was modified stdlib/buffer.ml (diff) The file was modified stdlib/string.ml (diff) The file was modified stdlib/digest.ml (diff) The file was modified runtime/md5.c (diff) The file was modified stdlib/digest.ml (diff) The file was modified runtime/blake2.c (diff) The file was modified Changes (diff) The file was modified testsuite/tests/lib-runtime-events/test_dropped_events.ml (diff) The file was modified stdlib/bytesLabels.mli (diff) The file was modified stdlib/string.mli (diff) The file was modified stdlib/.depend (diff) The file was modified stdlib/bytes.mli (diff) The file was modified stdlib/stringLabels.mli (diff) The file was modified stdlib/lexing.ml (diff) The file was modified testsuite/tests/lib-unix/common/append.ml (diff) The file was modified testsuite/tests/statmemprof/moved_while_blocking.ml (diff) The file was modified typing/subst.mli (diff) The file was modified typing/subst.ml (diff) The file was modified typing/typedecl.ml (diff) The file was modified typing/typemod.ml (diff) The file was modified Changes (diff) The file was modified typing/typedecl.ml (diff) The file was modified typing/subst.ml (diff) The file was modified typing/subst.mli (diff) The file was modified typing/typemod.ml (diff)
Commit
301e8d4c63add8daa72f137905d18f77098fb265
by talex5 Add Runtime_events.EV_EMPTY_MINOR EV_EMPTY_MINOR shows when a domain is trying to empty its minor heap. It may be a long time between starting this process and actually performing a minor GC if, for example, another domain is holding the platform lock. Without this event, profiling tools tend to under-report the amount of time spent on GC. The file was modified runtime/minor_gc.c (diff) The file was modified otherlibs/runtime_events/runtime_events.mli (diff) The file was modified runtime/caml/runtime_events.h (diff) The file was modified Changes (diff) The file was modified otherlibs/runtime_events/runtime_events.ml (diff) The file was modified typing/typecore.ml (diff) The file was modified typing/oprint.ml (diff) The file was modified testsuite/tests/typing-misc/pr7937.ml (diff) The file was modified testsuite/tests/typing-modules/Test.ml (diff) The file was modified typing/out_type.ml (diff) The file was modified parsing/pprintast.mli (diff) The file was modified typing/env.mli (diff) The file was modified .depend (diff) The file was modified testsuite/tests/typing-objects/Tests.ml (diff) The file was modified testsuite/tests/parsing/rawidents.ml (diff) The file was modified testsuite/tests/tool-toplevel/multi_phrase_line.compilers.reference (diff) The file was modified parsing/pprintast.ml (diff) The file was modified typing/typedecl.ml (diff) The file was modified testsuite/tests/tool-ocamlc-locations/marshalled.compilers.reference (diff) The file was modified testsuite/tests/typing-poly/poly.ml (diff) The file was modified typing/env.ml (diff) The file was modified runtime/caml/memory.h (diff) The file was modified testsuite/tests/parsing/rawidents.ml (diff) The file was modified Changes (diff) The file was modified .github/workflows/parsetree-change.yml (diff)
Commit
199caf4297a36365e6de0911c037b533cbba8aa3
by antonin Add explanation to the doc of Hashtbl.create Majority view in the triage discussion of #13474 concluded that we should allow negative values but document that they are disregarded. The file was modified stdlib/hashtbl.mli (diff) The file was modified stdlib/moreLabels.mli (diff) The file was modified Changes (diff) The file was modified stdlib/templates/hashtbl.template.mli (diff) The file was modified Changes (diff) The file was modified Changes (diff) The file was modified manual/src/tutorials/parallelism.etex (diff) The file was modified Changes (diff) The file was modified stdlib/sys.mli (diff) The file was modified otherlibs/dynlink/dynlink_config.ml.in (diff) The file was modified runtime/interp.c (diff) The file was modified runtime/caml/interp.h (diff)
Commit
a11272a4fd9a4c87c64ac0fb874f52b653ee320a
by xavier.leroy Reimplement bytecode callbacks without per-thread bytecode fragments - Use the new `caml_bytecode_interpreter` API to jump straight to the function's code. - Avoid modifying bytecode in place. - Avoid per-thread bytecode. - Register bytecode early and only once. Fixes: #13402 Fixes: #13512 Closes: #13549 The file was modified runtime/callback.c (diff) The file was modified runtime/interp.c (diff) The file was modified runtime/callback.c (diff) The file was modified testsuite/tests/callback/test1.ml (diff) The file was modified testsuite/tests/callback/test1_.c (diff) The file was modified testsuite/tests/callback/test1.reference (diff) The file was modified Changes (diff) The file was modified testsuite/tests/tsan/waitgroup_stubs.c (diff) The file was modified Changes (diff) The file was modified runtime/platform.c (diff) The file was modified Changes (diff) The file was modified otherlibs/systhreads/Makefile (diff) The file was modified Changes (diff) The file was modified otherlibs/systhreads/thread.mli (diff) The file was modified otherlibs/systhreads/st_stubs.c (diff) The file was modified otherlibs/systhreads/thread.ml (diff) The file was modified runtime/amd64.S (diff) The file was modified Changes (diff) The file was modified runtime/power.S (diff) The file was modified runtime/amd64.S (diff) The file was modified runtime/power.S (diff) The file was modified runtime/s390x.S (diff) The file was modified asmcomp/cmm_helpers.ml (diff)
Commit
f27da793946370b6c7305d9ec4f1c13da91edad7
by gabriel.scherer cmm_helper: less tagging on switches Co-authored-by: Clément Allain <clef-men@orange.fr> Suggested-by: Vesa Karvonen <vesa.a.j.k@gmail.com> `ocamlopt` optimizes switches that return only constants (from jump tables to lookup tables). Furthermore it optimizes switches where the constants are all tagged integers that happen to determine an affine transformation of the switch index. One aspect of this optimization that is slightly frustrating is that it often generates more tagging noise than we would like. This is particularly visible on identity transformations: ```ocaml type t = A0 | A1 | A2 | A3 let test = function | A0 -> 0 | A1 -> 1 | A2 -> 2 | A3 -> 3 ``` One would reasonably expect `test` to be just the identity at runtime, but in fact it is not, as shown in the `-dcmm` output: ```ocaml (function camlMicro.test_401 (param/403: val) (+ (<< (>>s param/403 1) 1) 1)) ``` The reason why there are more tagging operations than expected, in trunk, is that the affine function is computed on the tagged representations of the OCaml integers, rather than their untagged representations. In the example of the identity above, the affine function that is computed is not (0 -> 0, 1 -> 1, 2 -> 2) (slope 1, offset 0) but instead (0 -> 1n, 1 -> 3n, 2 -> 5n) (slope 2n, offset 1n). To apply the affine function to an argument, we first untag it, and then apply the affine transformation: `arg` becomes `2 * (arg >> 1) + 1`. The cmm_helpers smart contructors cannot rewrite this into the identity `arg`, because this rewriting is not correct in general (only for `arg` that have their least bit set). In this commit, we instead compute the affine transformation on OCaml (untagged) integers. Instead of computing `slope * untag(arg) + offset`, we compute `tag(slope) *caml arg +caml tag(offset)`, which generates nicer code and in particular simplifies into just `arg` when we have (slope=1, offset=0). There is a subtlety in the implementation, which is that the `make_switch` function responsible for this optimization is called in two different contexts in trunk, sometimes (from cmmgen) on tagged integers and sometimes (from Switch) on untagged integers. If we just change `make_switch` to not require untagging in cmmgen, but introduce tagging in Switch to compensate, we risk adding a small performance regression in the Switch case. Instead we make the function support both calling contexts, and ensure that the minimal amount of tagging/untagging is performed -- in particular, never more than before. The file was modified asmcomp/cmm_helpers.mli (diff) The file was modified asmcomp/cmm_helpers.ml (diff) The file was modified asmcomp/cmmgen.ml (diff) The file was modified Changes (diff) The file was modified .github/workflows/stale.yml (diff)
Commit
75a216047cb9579ac9d9688e74468ab6ab989418
by gabriel.scherer cleanup ocamldoc{,.opt}{,.exe} in partialclean This avoids a (make bootstrap) failure where (make manpages) picks up a stale ocamldoc.opt after a bootstrap cycle. Reported-by: Clément Allain <clef-men@orange.fr> Reviewed-by: David Allsopp <david.allsopp@metastack.com> Reviewed-by: Xavier Leroy <xavier.leroy@college-de-france.fr> The file was modified Makefile (diff) The file was modified testsuite/tests/lib-dynlink-initializers/test10_main.byte.reference (diff) The file was modified Changes (diff) The file was modified otherlibs/dynlink/byte/dynlink.ml (diff) The file was modified stdlib/format.ml (diff) The file was modified stdlib/ephemeron.ml (diff) The file was modified runtime/riscv.S (diff)
Commit
f5ff74224029dc9ed765fe0942bd7fd41b194e39
by noreply Add a `-keywords <version?+list>` flag (#13471) This commit adds a `-keywords <version?+list>` flag which takes as argument: - an optional version v number (formatted as %d.%d) - a +-separated list of additional keywords and defines the set of keywords recognized by the lexer as the set of keywords at the version `v` of OCaml (defaulting to the current version if no versions were given) completed by the list of additional keywords. This is intended to provide an easy way to keep old OCaml code with newer version of the compiler with additional keywords. The file was modified .depend (diff) The file was modified manual/src/cmds/unified-options.etex (diff) The file was modified parsing/parse.ml (diff) The file was modified Changes (diff) The file was modified man/ocamlc.1 (diff) The file was modified utils/clflags.ml (diff) The file was modified driver/compenv.ml (diff) The file was modified parsing/lexer.mli (diff) The file was modified driver/main_args.mli (diff) The file was modified driver/main_args.ml (diff) The file was modified parsing/lexer.mll (diff) The file was modified utils/clflags.mli (diff) The file was modified runtime/memory.c (diff) The file was modified Changes (diff) The file was modified testsuite/tests/parsetree/source.ml (diff) The file was modified parsing/pprintast.ml (diff)
Commit
77f29baefc1acac53a51d95159b078a6f4a8a9e1
by noreply Fix #11865 by detecting deletion of a root during root scanning. (#13584) If a C finaliser tries to delete a root while we're iterating over the set of roots, then mark the root as to be deleted lazily rather than attempting to modify the roots data structure in place. The file was modified runtime/caml/skiplist.h (diff) The file was modified runtime/globroots.c (diff) The file was added testsuite/tests/regression/pr11865/mkroot.reference The file was added testsuite/tests/regression/pr11865/mkroot.ml The file was modified manual/src/cmds/intf-c.etex (diff) The file was modified Changes (diff) The file was modified runtime/skiplist.c (diff) The file was added testsuite/tests/regression/pr11865/mkroot_stubs.c The file was added testsuite/tests/typing-gadts/pr13579.ml The file was modified typing/ctype.ml (diff) The file was modified Changes (diff)
Commit
b7bb8b4f89c4f76e613a65ad0e396216969da0ac
by noreply error messages: disable text-based inline code styling (#13563) * error messages: disable textual inline code quoting we only keep bold styling when terminal support it (and we specifically re-enable visible quotes in the testsuite). The file was modified testsuite/tests/typing-misc-bugs/pr6946_bad.compilers.reference (diff) The file was modified testsuite/tests/tool-ocamlc-locations/marshalled.compilers.reference (diff) The file was modified testsuite/tests/badly-ordered-deps/main.native.reference (diff) The file was modified testsuite/tests/typing-modules-bugs/pr6899_first_bad.compilers.reference (diff) The file was modified testsuite/tests/typing-recordarg/recordarg.ocaml.reference (diff) The file was modified testsuite/tests/typing-recmod/t01bad.compilers.reference (diff) The file was modified testsuite/tests/typing-short-paths/pr5918.compilers.reference (diff) The file was modified testsuite/tests/badly-ordered-deps/main.bytecode.reference (diff) The file was modified testsuite/tests/typing-short-paths/short-paths.compilers.reference (diff) The file was modified testsuite/tests/hidden_includes/hidden_stays_hidden.ocamlc.reference (diff) The file was modified testsuite/tests/parse-errors/unclosed_class_simpl_expr3.compilers.reference (diff) The file was modified testsuite/tests/typing-recmod/t11bad.compilers.reference (diff) The file was modified testsuite/tests/typing-modules/pr13099/test.compilers.reference (diff) The file was modified testsuite/tests/typing-objects-bugs/pr3968_bad.compilers.reference (diff) The file was modified testsuite/tests/typing-recmod/t08bad.compilers.reference (diff) The file was modified testsuite/tests/typing-private/private.compilers.principal.reference (diff) The file was modified testsuite/tests/basic/unit_naming.compilers.reference (diff) The file was modified testsuite/tests/hidden_includes/wrong_include_order.ocamlc.reference (diff) The file was modified testsuite/tests/formatting/margins.ocaml.reference (diff) The file was modified testsuite/tests/parse-errors/mismatch_struct_sig.compilers.reference (diff) The file was modified testsuite/tests/typing-recmod/t07bad.compilers.reference (diff) The file was modified testsuite/tests/tool-ocamlc-locations/test.compilers.reference (diff) The file was modified testsuite/tests/typing-recmod/t12bad.compilers.reference (diff) The file was modified typing/typecore.ml (diff) The file was modified testsuite/tests/letrec-check/pr7706.ocaml.reference (diff) The file was modified testsuite/tests/typing-rectypes-bugs/pr6870_bad.compilers.reference (diff) The file was modified testsuite/tests/tool-toplevel/redefinition_hints.compilers.reference (diff) The file was modified testsuite/tests/generated-parse-errors/errors.compilers.reference (diff) The file was modified testsuite/tests/typing-modules-bugs/pr6293_bad.compilers.reference (diff) The file was modified testsuite/tests/typing-modules-bugs/pr6992_bad.compilers.reference (diff) The file was modified testsuite/tests/typing-modules-bugs/pr9695_bad.compilers.reference (diff) The file was modified testsuite/tests/typing-recmod/t05bad.compilers.reference (diff) The file was modified testsuite/tests/parse-errors/unclosed_class_signature.compilers.reference (diff) The file was modified testsuite/tests/letrec-check/pr7231.ocaml.reference (diff) The file was modified testsuite/tests/typing-private/private.compilers.reference (diff) The file was modified testsuite/tests/typing-recmod/t14bad.compilers.reference (diff) The file was modified testsuite/tests/parse-errors/unclosed_simple_pattern.compilers.reference (diff) The file was modified testsuite/tests/tool-toplevel/error_highlighting.compilers.reference (diff) The file was modified testsuite/tests/typing-objects-bugs/pr4018_bad.compilers.reference (diff) The file was modified testsuite/tests/typing-recmod/t09bad.compilers.reference (diff) The file was modified testsuite/tests/parse-errors/unclosed_paren_module_expr3.compilers.reference (diff) The file was modified testsuite/tests/tool-toplevel/multi_phrase_line.compilers.reference (diff) The file was modified testsuite/tools/expect.ml (diff) The file was modified testsuite/tests/typing-sigsubst/sig_local_aliases_syntax_errors.compilers.reference (diff) The file was modified testsuite/tests/parse-errors/unclosed_struct.compilers.reference (diff) The file was modified testsuite/tests/typing-recmod/t15bad.compilers.reference (diff) The file was modified testsuite/tests/parse-errors/unclosed_paren_module_type.compilers.reference (diff) The file was modified testsuite/tests/typing-modules-bugs/pr6899_second_bad.compilers.reference (diff) The file was modified testsuite/tests/parse-errors/unclosed_paren_module_expr5.compilers.reference (diff) The file was modified testsuite/tests/parse-errors/unclosed_simple_expr.compilers.reference (diff) The file was modified testsuite/tests/parse-errors/unclosed_paren_module_expr2.compilers.reference (diff) The file was modified testsuite/tests/parse-errors/unclosed_class_simpl_expr2.compilers.reference (diff) The file was modified testsuite/tests/parse-errors/unclosed_class_simpl_expr1.compilers.reference (diff) The file was modified testsuite/tests/typing-objects-bugs/pr4435_bad.compilers.reference (diff) The file was modified testsuite/tests/parse-errors/unclosed_paren_module_expr4.compilers.reference (diff) The file was modified testsuite/tests/parsing/latin9.compilers.reference (diff) The file was modified testsuite/tests/typing-objects-bugs/pr4824a_bad.compilers.reference (diff) The file was modified testsuite/tests/typing-private-bugs/pr5026_bad.compilers.reference (diff) The file was modified testsuite/tests/typing-missing-cmi/test.compilers.reference (diff) The file was modified testsuite/tests/typing-misc/typecore_empty_polyvariant_error.compilers.reference (diff) The file was modified testsuite/tests/typing-modules-bugs/pr6752_bad.compilers.reference (diff) The file was modified testsuite/tests/shadow_include/cannot_shadow_error.compilers.reference (diff) The file was modified testsuite/tests/effect-syntax/when_test.compilers.reference (diff) The file was modified testsuite/tests/typing-modules-bugs/pr7414_bad.compilers.reference (diff) The file was modified testsuite/tests/typing-typeparam/newtype.ocaml.reference (diff) The file was modified testsuite/tests/parse-errors/unclosed_object.compilers.reference (diff) The file was modified testsuite/tests/tool-ocamlopt-save-ir/check_for_pack.compilers.reference (diff) The file was modified testsuite/tests/typing-modules-bugs/pr10693_bad.compilers.reference (diff) The file was modified testsuite/tests/parsing/int_and_float_with_modifier.compilers.reference (diff) The file was modified Changes (diff) The file was modified testsuite/tests/parse-errors/expecting.compilers.reference (diff) The file was modified testsuite/tests/typing-safe-linking/b_bad.compilers.reference (diff) The file was modified testsuite/tests/parse-errors/unclosed_paren_module_expr1.compilers.reference (diff) The file was modified testsuite/tests/typing-extension-constructor/test.ocaml.reference (diff) The file was modified testsuite/tests/typing-modules-bugs/pr7414_2_bad.compilers.reference (diff) The file was modified testsuite/tests/typing-ocamlc-i/pr7620_bad.compilers.reference (diff) The file was modified testsuite/tests/typing-gadts/unexpected_existentials.ml (diff) The file was modified testsuite/tests/typing-rectypes-bugs/pr6174_bad.compilers.reference (diff) The file was modified testsuite/tests/typing-misc-bugs/pr6303_bad.compilers.reference (diff) The file was modified testsuite/tests/typing-polyvariants-bugs-2/pr3918c.compilers.reference (diff) The file was modified testsuite/tests/typing-rectypes-bugs/pr5343_bad.compilers.reference (diff) The file was modified testsuite/tests/typing-polyvariants-bugs/pr5057a_bad.compilers.reference (diff) The file was modified testsuite/tests/hidden_includes/cant_reference_hidden.ocamlc.reference (diff) The file was modified testsuite/tests/typing-recmod/t02bad.compilers.reference (diff) The file was modified testsuite/tests/typing-recmod/t04bad.compilers.reference (diff) The file was modified testsuite/tests/hidden_includes/not_included.ocamlc.reference (diff) The file was modified testsuite/tests/parse-errors/unclosed_sig.compilers.reference (diff) The file was modified utils/misc.ml (diff) The file was modified testsuite/tests/letrec-check/pr7215.ocaml.reference (diff) The file was modified testsuite/tests/typing-sigsubst/test_locations.compilers.reference (diff)
Commit
e8b1620201d7bf7d0129bd636f6e39cd4535918d
by antonin Perform a shallow clone of git submodules by default Users and contributors likely don't need the full history of FlexDLL and winpthreads development. The history can always be populated later, on request, or with --no-recommend-shallow. https://git-scm.com/docs/gitmodules#Documentation/gitmodules.txt-submoduleltnamegtshallow https://git-scm.com/docs/git-submodule#Documentation/git-submodule.txt---no-recommend-shallow The file was modified .gitattributes (diff) The file was modified .gitmodules (diff)
Commit
59f4d280e3f228f883ac1515f5cee4afa8d966c0
by seb Makefile.config: restore the {OCAMLC,OCAMLOPT}_{CFLAGS,CPPFLAGS} variables They had been renamed in 31cdf416280053dcd38351b7858e818b23110779 (part of #12589) but we should keep the old names for backward compatibility. The file was modified Changes (diff) The file was modified Makefile.config.in (diff) The file was modified runtime/bigarray.c (diff) The file was modified runtime/caml/platform.h (diff) The file was removed runtime/caml/atomic_refcount.h The file was modified runtime/caml/mlvalues.h (diff) The file was modified runtime/major_gc.c (diff) The file was modified runtime/caml/camlatomic.h (diff) The file was modified runtime/caml/misc.h (diff) The file was modified testsuite/tests/typing-misc/constraints.ml (diff) The file was modified runtime/major_gc.c (diff) The file was modified runtime/caml/bigarray.h (diff) The file was modified otherlibs/unix/mmap_ba.c (diff) The file was modified runtime/caml/camlatomic.h (diff) The file was modified otherlibs/systhreads/st_stubs.c (diff) The file was modified runtime/caml/s.h.in (diff) The file was modified configure (diff) The file was modified configure.ac (diff) The file was modified typing/typedecl.ml (diff) The file was modified Changes (diff) The file was added testsuite/tests/typing-objects/pr13495.ml The file was modified typing/ctype.ml (diff) The file was added testsuite/tests/typing-recmod/pr13514.ml The file was modified configure.ac (diff) The file was modified otherlibs/systhreads/st_stubs.c (diff) The file was modified runtime/caml/s.h.in (diff) The file was modified configure (diff) The file was modified runtime/caml/s.h.in (diff) The file was modified configure.ac (diff) The file was modified configure (diff) The file was modified otherlibs/systhreads/st_stubs.c (diff) The file was modified otherlibs/systhreads/st_stubs.c (diff) The file was modified otherlibs/systhreads/st_stubs.c (diff) The file was modified configure.ac (diff) The file was modified configure (diff) The file was modified configure (diff) The file was modified configure.ac (diff) The file was modified configure.ac (diff) The file was modified configure (diff) The file was modified configure.ac (diff) The file was modified configure (diff) The file was modified dune (diff)
Commit
7812c19f2da9e9aecc153c6d0e96d4e58c0b7941
by timmcgil Use '$' instead of '.' to separate module names in symbol names. This changes mangling of OCaml long identifiers from `camlModule.name_NNN` to `camlModule$name_NNN`. Additionally it changes the encoding of special characters from $xx (two hex digits) to $$xx (two dollar signs followed by two hex digits). Mangled names are now consistent across all platforms. The file was modified asmcomp/x86_proc.ml (diff) The file was modified runtime/amd64.S (diff) The file was modified testsuite/tests/native-debugger/linux-gdb-arm64.reference (diff) The file was modified runtime/caml/frame_descriptors.h (diff) The file was modified testsuite/tests/frame-pointers/exception_handler.reference (diff) The file was modified testsuite/tests/native-debugger/macos-lldb-amd64.reference (diff) The file was modified runtime/startup_nat.c (diff) The file was modified testsuite/tests/native-debugger/linux-lldb-arm64.reference (diff) The file was modified Changes (diff) The file was modified testsuite/tests/frame-pointers/effects.reference (diff) The file was modified testsuite/tests/frame-pointers/c_call.reference (diff) The file was modified testsuite/tests/unwind/stack_walker.c (diff) The file was modified testsuite/tests/native-debugger/macos-lldb-arm64.reference (diff) The file was modified asmcomp/emitaux.ml (diff) The file was modified runtime/amd64nt.asm (diff) The file was modified runtime/power.S (diff) The file was modified runtime/riscv.S (diff) The file was modified testsuite/tests/frame-pointers/stack_realloc.reference (diff) The file was modified runtime/s390x.S (diff) The file was modified middle_end/compilenv.ml (diff) The file was modified testsuite/tests/native-debugger/linux-gdb-amd64.reference (diff) The file was modified testsuite/tests/asmcomp/func_sections.run (diff) The file was modified testsuite/tests/native-debugger/lldb-script (diff) The file was modified testsuite/tests/native-debugger/linux-lldb-amd64.reference (diff) The file was modified testsuite/tests/frame-pointers/reperform.reference (diff) The file was modified testsuite/tests/frame-pointers/stack_realloc2.reference (diff) The file was modified runtime/dynlink_nat.c (diff) The file was modified runtime/arm64.S (diff) The file was modified testsuite/tests/native-debugger/linux-gdb-riscv.reference (diff) The file was modified parsing/pprintast.ml (diff) The file was modified testsuite/tests/parsetree/source.ml (diff) The file was modified runtime/caml/shared_heap.h (diff) The file was modified runtime/caml/weak.h (diff) The file was modified runtime/caml/runtime_events.h (diff) The file was modified runtime/caml/bigarray.h (diff) The file was modified runtime/caml/camlatomic.h (diff) The file was modified runtime/caml/platform.h (diff) The file was modified runtime/caml/codefrag.h (diff) The file was modified runtime/caml/fail.h (diff) The file was modified runtime/caml/alloc.h (diff) The file was modified runtime/caml/memprof.h (diff) The file was modified runtime/caml/instrtrace.h (diff) The file was modified runtime/caml/skiplist.h (diff) The file was modified runtime/caml/tsan.h (diff) The file was modified runtime/caml/signals.h (diff) The file was modified runtime/caml/printexc.h (diff) The file was modified runtime/caml/custom.h (diff) The file was modified runtime/caml/addrmap.h (diff) The file was modified otherlibs/runtime_events/caml/runtime_events_consumer.h (diff)
Commit
d0a28652ba2967759445958fd256f89c4ecd9913
by antonin Audit the installed headers for C++ compatibility C++ name mangling applies to symbols: variable and function names. The rule of thumb is to enclose public symbols declarations in blocks: #ifdef __cplusplus extern "C" { #endif /* symbols go here */ #ifdef __cplusplus } #endif Symbols protected by CAML_INTERNALS blocks need not to be covered. Headers that contain definitions incompatible with C++, such as _Atomic, also need protection. The file was modified runtime/caml/domain.h (diff) The file was modified runtime/caml/domain_state.h (diff) The file was modified runtime/caml/osdeps.h (diff) The file was modified runtime/caml/tsan.h (diff) The file was modified otherlibs/runtime_events/caml/runtime_events_consumer.h (diff) The file was modified runtime/caml/addrmap.h (diff) The file was modified runtime/caml/runtime_events.h (diff) The file was modified runtime/caml/backtrace.h (diff) The file was modified runtime/caml/custom.h (diff) The file was modified runtime/caml/minor_gc.h (diff) The file was modified runtime/caml/address_class.h (diff) The file was modified runtime/caml/intext.h (diff) The file was modified runtime/caml/signals.h (diff) The file was modified Changes (diff) The file was modified runtime/caml/weak.h (diff) The file was modified runtime/caml/hooks.h (diff) The file was modified runtime/caml/printexc.h (diff) The file was modified runtime/caml/sys.h (diff)
Commit
1addeb9c8547a9dfb317329955f204bf1c4141b6
by antonin Test whether C++ stubs can be compiled and linked - Test whether OCaml C headers are also valid in C++; - Test whether C++ files can be linked with the runtime. Symbols that are not covered by CAML_INTERNALS need to have C linkage (under extern "C" { ... }). There are too many to check exhaustively, so use a dummy stub for now. Co-authored-by: Kate <kit-ty-kate@outlook.com> The file was added testsuite/tests/cxx-api/all_includes.ml The file was added testsuite/tests/cxx-api/stubs.c The file was added testsuite/tests/cxx-api/all-includes.h The file was modified asmcomp/riscv/emit.mlp (diff) The file was modified utils/numbers.ml (diff) The file was modified Changes (diff) The file was modified typing/untypeast.ml (diff) The file was modified lambda/translcore.mli (diff) The file was modified ocamldoc/odoc_ast.ml (diff) The file was modified typing/typedtree.mli (diff) The file was modified lambda/translcore.ml (diff) The file was modified typing/printtyped.ml (diff) The file was modified typing/tast_mapper.ml (diff) The file was modified typing/typedtree.ml (diff) The file was modified typing/typeclass.ml (diff) The file was modified typing/value_rec_check.ml (diff) The file was modified typing/tast_iterator.ml (diff) The file was modified typing/typecore.ml (diff) The file was modified runtime/s390x.S (diff) The file was modified runtime/amd64.S (diff) The file was modified runtime/lf_skiplist.c (diff) The file was modified runtime/skiplist.c (diff) The file was modified runtime/caml/lf_skiplist.h (diff) The file was modified runtime/lf_skiplist.c (diff) The file was modified runtime/major_gc.c (diff) The file was modified Changes (diff) The file was modified configure.ac (diff) The file was modified configure (diff) The file was modified configure (diff) The file was modified configure.ac (diff) The file was modified configure.ac (diff) The file was modified Changes (diff) The file was modified configure (diff) The file was modified runtime/alloc.c (diff) The file was modified boot/ocamlc (diff) The file was modified boot/ocamllex (diff) The file was modified parsing/pprintast.ml (diff) The file was modified Changes (diff) The file was modified testsuite/tests/warnings/w01.compilers.reference (diff) The file was modified testsuite/tests/warnings/w74.ml (diff) The file was modified testsuite/tests/match-exception-warnings/exhaustiveness_warnings.ml (diff) The file was modified testsuite/tests/tool-toplevel/pr7060.compilers.reference (diff) The file was modified testsuite/tests/tmc/usage_warnings.ml (diff) The file was modified testsuite/tests/typing-extensions/open_types.ml (diff) The file was modified testsuite/tests/typing-misc/records.ml (diff) The file was modified utils/misc.mli (diff) The file was modified parsing/location.ml (diff) The file was modified testsuite/tests/typing-gadts/pr7390.ml (diff) The file was modified testsuite/tests/warnings/w51.ml (diff) The file was modified testsuite/tests/tool-toplevel/multi_phrase_line.compilers.reference (diff) The file was modified testsuite/tests/warnings/w54.compilers.reference (diff) The file was modified testsuite/tests/typing-ocamlc-i/pr4791.compilers.reference (diff) The file was modified testsuite/tests/warnings/w26_alias.ml (diff) The file was modified testsuite/tests/asmcomp/0001-test.compilers.reference (diff) The file was modified testsuite/tests/warnings/w04_failure.compilers.reference (diff) The file was modified testsuite/tests/warnings/w45.compilers.reference (diff) The file was modified testsuite/tests/warnings/w55.flambda.reference (diff) The file was modified testsuite/tests/warnings/w55.native.reference (diff) The file was modified testsuite/tests/typing-warnings/ambiguous_guarded_disjunction.ml (diff) The file was modified testsuite/tests/typing-gadts/pr7269.ml (diff) The file was modified testsuite/tests/warnings/w59.flambda.reference (diff) The file was modified testsuite/tests/typing-warnings/pr6872.ml (diff) The file was modified testsuite/tests/typing-gadts/pr7016.ml (diff) The file was modified testsuite/tests/no-alias-deps/aliases.compilers.reference (diff) The file was modified testsuite/tests/warnings/w52.ml (diff) The file was modified testsuite/tests/typing-gadts/test.ml (diff) The file was modified testsuite/tests/typing-misc/disambiguate_principality.ml (diff) The file was modified testsuite/tests/warnings/w53_across_cmi.compilers.reference (diff) The file was modified testsuite/tests/typing-warnings/open_warnings.ml (diff) The file was modified testsuite/tests/typing-gadts/pr7432.ml (diff) The file was modified testsuite/tests/typing-misc/empty_variant.ml (diff) The file was modified testsuite/tests/typing-misc/labels.ml (diff) The file was modified testsuite/tests/typing-gadts/pr5906.ml (diff) The file was modified testsuite/tests/match-side-effects/partiality.ml (diff) The file was modified testsuite/tests/typing-objects/Tests.ml (diff) The file was modified testsuite/tests/local-functions/non_local.compilers.reference (diff) The file was modified testsuite/tests/warnings/w53.compilers.reference (diff) The file was modified testsuite/tests/typing-warnings/exhaustiveness.ml (diff) The file was modified testsuite/tests/syntactic-arity/max_arity.compilers.reference (diff) The file was modified testsuite/tests/typing-gadts/pr6241.ml (diff) The file was modified testsuite/tests/typing-gadts/syntactic-arity.ml (diff) The file was modified testsuite/tests/typing-objects-bugs/pr7284_bad.compilers.reference (diff) The file was modified testsuite/tests/typing-poly/poly.ml (diff) The file was modified testsuite/tests/typing-gadts/pr9019.ml (diff) The file was modified testsuite/tests/typing-deprecated/alerts.ml (diff) The file was modified testsuite/tests/typing-ocamlc-i/pr7402.compilers.reference (diff) The file was modified testsuite/tests/typing-warnings/pr7553.ml (diff) The file was modified testsuite/tests/typing-warnings/application.ml (diff) The file was modified testsuite/tests/typing-warnings/unused_recmodule.ml (diff) The file was modified testsuite/tests/typing-misc/pr6416.ml (diff) The file was modified testsuite/tests/tmc/other_features.ml (diff) The file was modified testsuite/tests/typing-gadts/principality-and-gadts.ml (diff) The file was modified testsuite/tests/tool-ocamlc-open/tool-ocamlc-open-error.compilers.reference (diff) The file was modified testsuite/tests/warnings/w47_inline.compilers.reference (diff) The file was modified testsuite/tests/typing-misc/build_as_type.ml (diff) The file was modified testsuite/tests/let-syntax/let_syntax.ml (diff) The file was modified testsuite/tests/typing-gadts/pr5981.ml (diff) The file was modified testsuite/tests/lexing/uchar_esc.ocaml.reference (diff) The file was modified testsuite/tests/typing-deprecated/deprecated.ml (diff) The file was modified testsuite/tests/typing-gadts/pr5997.ml (diff) The file was modified testsuite/tests/typing-misc/constraints.ml (diff) The file was modified testsuite/tests/typing-misc/injectivity.ml (diff) The file was modified testsuite/tests/typing-warnings/pr7261.compilers.reference (diff) The file was modified testsuite/tests/basic/patmatch_incoherence.ml (diff) The file was modified utils/misc.ml (diff) The file was modified testsuite/tests/warnings/w06.compilers.reference (diff) The file was modified testsuite/tests/typing-gadts/pr5785.ml (diff) The file was modified testsuite/tests/typing-warnings/pr7115.ml (diff) The file was modified typing/typecore.ml (diff) The file was modified testsuite/tests/typing-warnings/records.ml (diff) The file was modified testsuite/tests/typing-extensions/disambiguation.ml (diff) The file was modified testsuite/tests/typing-gadts/yallop_bugs.ml (diff) The file was modified testsuite/tests/typing-ocamlc-i/pervasives_leitmotiv.compilers.reference (diff) The file was modified testsuite/tests/typing-gadts/pr7234.ml (diff) The file was modified testsuite/tests/typing-misc/polyvars.ml (diff) The file was modified testsuite/tests/warnings/w58.native.reference (diff) The file was modified testsuite/tests/typing-objects/field_kind.ml (diff) The file was modified testsuite/tests/typing-gadts/pr6993_bad.ml (diff) The file was modified testsuite/tests/typing-warnings/unused_types.ml (diff) The file was modified testsuite/tests/typing-warnings/pr9244.ml (diff) The file was modified testsuite/tests/messages/precise_locations.ml (diff) The file was modified testsuite/tests/typing-gadts/pr5989.ml (diff) The file was modified testsuite/tests/warnings/w03.compilers.reference (diff) The file was modified testsuite/tests/warnings/w04.compilers.reference (diff) The file was modified testsuite/tests/typing-safe-linking/b_bad.compilers.reference (diff) The file was modified testsuite/tests/typing-polyvariants-bugs/pr7824.ml (diff) The file was modified testsuite/tests/typing-unboxed/test.ml (diff) The file was modified testsuite/tests/basic-more/pr10338.compilers.reference (diff) The file was modified testsuite/tests/typing-gadts/didier.ml (diff) The file was modified testsuite/tests/tmc/tupled_function_calls.native.reference (diff) The file was modified utils/warnings.ml (diff) The file was modified testsuite/tests/basic-more/morematch.compilers.reference (diff) The file was modified testsuite/tests/typing-warnings/unused_functor_parameter.ml (diff) The file was modified testsuite/tests/typing-warnings/pr7085.ml (diff) The file was modified testsuite/tests/typing-objects/Exemples.ml (diff) The file was modified testsuite/tests/tmc/partial_application.compilers.reference (diff) The file was modified testsuite/tests/typing-gadts/pr10189.ml (diff) The file was modified testsuite/tests/typing-warnings/disable_warnings_classes.ml (diff) The file was modified testsuite/tests/typing-modules/generative.ml (diff) The file was modified testsuite/tests/warnings/w44.ml (diff) The file was modified testsuite/tests/warnings/w47_ppwarning.compilers.reference (diff) The file was modified utils/warnings.mli (diff) The file was modified testsuite/tests/basic-more/robustmatch.compilers.reference (diff) The file was modified testsuite/tests/lexing/escape.ocaml.reference (diff) The file was modified testsuite/tests/typing-warnings/pr5892.ml (diff) The file was modified testsuite/tests/typing-ocamlc-i/pr6323.compilers.reference (diff) The file was modified utils/warnings.mli (diff) The file was modified utils/warnings.ml (diff) The file was modified testsuite/tests/typing-warnings/exhaustiveness.ml (diff) The file was modified testsuite/tests/typing-extensions/open_types.ml (diff) The file was modified typing/parmatch.ml (diff) The file was modified parsing/location.ml (diff) The file was modified testsuite/tests/typing-extensions/disambiguation.ml (diff) The file was modified testsuite/tests/typing-warnings/ambiguous_guarded_disjunction.ml (diff) The file was modified testsuite/tests/typing-objects/Tests.ml (diff) The file was modified testsuite/tests/typing-warnings/records.ml (diff) The file was modified utils/warnings.ml (diff) The file was modified testsuite/tests/typing-warnings/pr6872.ml (diff) The file was modified testsuite/tests/warnings/w45.compilers.reference (diff) The file was modified testsuite/tests/typing-poly/poly.ml (diff) The file was modified testsuite/tests/typing-extensions/floatarray.ml (diff) The file was modified testsuite/tests/typing-misc/disambiguate_principality.ml (diff) The file was modified utils/warnings.ml (diff) The file was modified testsuite/tests/typing-gadts/principality-and-gadts.ml (diff) The file was modified testsuite/tests/typing-polyvariants-bugs/pr8575.ml (diff) The file was modified testsuite/tests/typing-warnings/records.ml (diff) The file was modified testsuite/tests/let-syntax/let_syntax.ml (diff) The file was modified typing/typecore.ml (diff) The file was modified testsuite/tests/typing-warnings/pr6872.ml (diff) The file was modified utils/warnings.ml (diff) The file was modified testsuite/tests/warnings/w59.flambda.reference (diff) The file was modified Changes (diff)
Commit
c839100f2dbe91b7f7182b638682d6d532bffbc5
by noreply Update format.ml to avoid Queue.empty (#13572) In case of concurrent races, Format functions may raise an uncaught `Queue.empty` exception. Change this into a clean `Invalid_argument` failure to make it easier for users to figure out what is going on. The file was modified Changes (diff) The file was modified stdlib/format.ml (diff) The file was modified stdlib/format.mli (diff)
Commit
6c3dc598871ca0cb279cdb7ed9a047089326eca1
by antonin Various fixes to set thread name - a Debian code search shows that projects check at configure-time for the prctl symbol, not the declaration. https://codesearch.debian.net/search?q=HAVE_PRCTL https://codesearch.debian.net/search?q=HAVE_DECL_PRCTL - only check for SetThreadDescription declaration if the symbol has been found; - fix SetThreadDescription missing declaration to include __declspec(import) and __cdecl (for x86). The declaration should have been copied from the header rather than from the documentation, which is missing these bits; - fix caml/osdeps.h include style. The file was modified Changes (diff) The file was modified configure (diff) The file was modified otherlibs/systhreads/st_stubs.c (diff) The file was modified runtime/caml/s.h.in (diff) The file was modified configure.ac (diff) The file was modified ocamldoc/odoc_ast.ml (diff) The file was modified Changes (diff) The file was modified typing/gprinttyp.ml (diff) The file was modified .depend (diff) The file was modified typing/gprinttyp.mli (diff) The file was modified configure.ac (diff) The file was modified configure (diff) The file was modified aclocal.m4 (diff) The file was modified configure (diff) The file was modified configure.ac (diff) The file was modified otherlibs/unix/truncate_unix.c (diff) The file was modified runtime/io.c (diff) The file was modified runtime/domain.c (diff) The file was modified otherlibs/unix/setsid.c (diff) The file was modified runtime/caml/s.h.in (diff) The file was modified runtime/runtime_events.c (diff) The file was modified otherlibs/unix/ftruncate.c (diff) The file was modified runtime/fix_code.c (diff) The file was modified otherlibs/unix/nice.c (diff) The file was modified runtime/caml/compatibility.h (diff) The file was modified otherlibs/unix/setgroups.c (diff) The file was modified otherlibs/unix/unixsupport_unix.c (diff) The file was modified otherlibs/unix/lseek_win32.c (diff) The file was modified runtime/unix.c (diff) The file was modified otherlibs/runtime_events/runtime_events_consumer.c (diff) The file was modified otherlibs/unix/lseek_unix.c (diff) The file was modified runtime/startup_byt.c (diff) The file was modified runtime/fiber.c (diff) The file was modified otherlibs/unix/caml/unixsupport.h (diff) The file was modified otherlibs/unix/mmap_unix.c (diff) The file was modified runtime/backtrace_byt.c (diff) The file was modified otherlibs/unix/getgroups.c (diff) The file was modified otherlibs/unix/open_unix.c (diff) The file was modified configure.ac (diff) The file was modified otherlibs/unix/initgroups.c (diff) The file was modified runtime/dynlink.c (diff) The file was modified runtime/debugger.c (diff) The file was modified otherlibs/unix/fcntl.c (diff) The file was modified stdlib/header.c (diff) The file was modified yacc/main.c (diff) The file was modified configure (diff) The file was modified otherlibs/unix/envir_unix.c (diff) The file was modified runtime/sys.c (diff) The file was modified otherlibs/unix/lockf_unix.c (diff) The file was modified otherlibs/systhreads/st_pthreads.h (diff) The file was modified runtime/platform.c (diff) The file was modified otherlibs/unix/access.c (diff) The file was modified Changes (diff) The file was modified stdlib/string.ml (diff) The file was modified runtime/major_gc.c (diff) The file was modified runtime/major_gc.c (diff) The file was added testsuite/tests/parsing/comments.compilers.reference The file was modified Changes (diff) The file was modified parsing/lexer.mll (diff) The file was added testsuite/tests/parsing/comments.ml The file was modified testsuite/tests/parsing/quotedextensions.compilers.reference (diff) The file was modified testsuite/tests/parsing/quotedextensions.ml (diff) The file was modified .gitattributes (diff) The file was modified Changes (diff) The file was modified boot/menhir/parser.ml (diff) The file was modified parsing/parser.mly (diff) The file was modified tools/ci/actions/check-configure.sh (diff) The file was modified tools/pre-commit-githook (diff) The file was modified release-info/howto.md (diff) The file was modified HACKING.adoc (diff)
Commit
346be1a68c5d1a479465bcfcb2023a86f577277a
by antonin Suggest a Docker image to regenerate the configure script In case the user's system and the current CI ship a different version of GNU Autoconf, the user-generated configure s cript might be rejected by the CI. Suggest a Docker image based on the latest Ubuntu LTS, which should match the CI and help . The file was modified HACKING.adoc (diff) The file was modified Changes (diff) The file was modified Changes (diff) The file was modified testsuite/tests/tsan/exn_in_callback.reference (diff) The file was modified testsuite/tests/tsan/waitgroup_stubs.c (diff) The file was modified testsuite/tests/tsan/exn_reraise.reference (diff) The file was modified testsuite/tests/tsan/reperform.reference (diff) The file was modified testsuite/tests/tsan/perform.reference (diff) The file was modified testsuite/tests/tsan/record_field.reference (diff) The file was modified testsuite/tests/tsan/exn_from_c.reference (diff) The file was modified testsuite/tests/tsan/array_elt.reference (diff) The file was modified testsuite/tests/tsan/raise_through_handler.reference (diff) The file was modified testsuite/tests/tsan/unhandled.reference (diff) The file was modified testsuite/tests/typing-gadts/pr13579.ml (diff) The file was modified typing/ctype.ml (diff) The file was modified typing/typecore.ml (diff) The file was modified Changes (diff) The file was modified typing/ctype.mli (diff) The file was modified typing/ctype.ml (diff) The file was modified Changes (diff) The file was modified typing/typecore.ml (diff) The file was modified testsuite/tests/typing-gadts/pr13579.ml (diff) The file was modified testsuite/tests/tsan/unhandled.reference (diff) The file was modified testsuite/tests/tsan/perform.reference (diff) The file was modified testsuite/tests/tsan/reperform.reference (diff) The file was modified testsuite/tests/tsan/raise_through_handler.reference (diff) The file was modified testsuite/tests/tsan/exn_from_c.reference (diff) The file was modified testsuite/tests/tsan/exn_reraise.reference (diff) The file was modified testsuite/tests/tsan/filter-locations.sh (diff) The file was modified testsuite/tests/tsan/record_field.reference (diff) The file was modified testsuite/tests/frame-pointers/exceptions.reference (diff) The file was modified testsuite/tests/tsan/array_elt.reference (diff) The file was modified testsuite/tests/tsan/exn_in_callback.reference (diff) The file was modified Changes (diff) The file was modified testsuite/tests/unwind/check-linker-version.sh (diff) The file was modified asmcomp/arm64/emit.mlp (diff) The file was modified testsuite/tests/typing-gadts/pr13579.ml (diff) The file was modified typing/ctype.ml (diff) The file was modified testsuite/tests/typing-gadts/pr13579.ml (diff) The file was modified typing/ctype.ml (diff) The file was modified typing/ctype.mli (diff) The file was modified typing/typecore.ml (diff) The file was modified typing/typecore.ml (diff) The file was modified typing/ctype.mli (diff) The file was modified testsuite/tests/typing-gadts/pr13579.ml (diff) The file was modified runtime/s390x.S (diff) The file was modified runtime/power.S (diff) The file was modified Changes (diff) The file was modified runtime/amd64.S (diff) The file was modified testsuite/tests/frame-pointers/stack_realloc2.arm64.reference (diff) The file was modified testsuite/tests/frame-pointers/fp_backtrace.c (diff) The file was modified testsuite/tests/frame-pointers/stack_realloc.arm64.reference (diff) The file was modified configure (diff) The file was modified configure.ac (diff) The file was modified HACKING.adoc (diff) The file was modified build-aux/ltoptions.m4 (diff) The file was modified build-aux/ltsugar.m4 (diff) The file was modified build-aux/ltmain.sh (diff) The file was modified build-aux/lt~obsolete.m4 (diff) The file was modified build-aux/libtool.m4 (diff) The file was modified configure (diff) The file was modified build-aux/ltversion.m4 (diff) The file was modified build-aux/missing (diff) The file was modified build-aux/compile (diff) The file was modified build-aux/install-sh (diff) The file was modified build-aux/config.guess (diff) The file was modified build-aux/config.sub (diff) The file was modified Changes (diff) The file was modified .gitattributes (diff) The file was removed build-aux/compile The file was removed build-aux/missing The file was modified Makefile (diff) The file was modified Makefile.common (diff)
Commit
7f0c3f49a9fa8418aebad1ed576fe7e259fae387
by gabriel.scherer typecore.ml: documentation comments for untyped_apply_arg Co-authored-by: Samuel Vivien <samuel.vivien@inria.fr> Co-authored-by: Florian Angeletti <florian.angeletti@inria.fr> Co-authored-by: Ulysse Gérard <thevoodoos@gmail.com> The file was modified typing/typecore.ml (diff)
Commit
0a100d80e1739973d42648a7226f773c1a08a8c0
by gabriel.scherer typecore.ml: documentation comments for type_application Co-authored-by: Samuel Vivien <samuel.vivien@inria.fr> Co-authored-by: Florian Angeletti <florian.angeletti@inria.fr> Co-authored-by: Ulysse Gérard <thevoodoos@gmail.com> The file was modified typing/typecore.ml (diff) The file was modified typing/typecore.ml (diff) The file was modified typing/typecore.ml (diff)
Commit
21604ef63321b7c1e0743e1dffc6a6c858d347ac
by gabriel.scherer typecore.ml: small location improvement in an type_application error message Co-authored-by: Samuel Vivien <samuel.vivien@inria.fr> Co-authored-by: Florian Angeletti <florian.angeletti@inria.fr> Co-authored-by: Ulysse Gérard <thevoodoos@gmail.com> The file was modified typing/typecore.ml (diff) The file was modified typing/typecore.ml (diff)
Commit
a1a11b55601c3a071acc060ef3507f15d021d9dc
by gabriel.scherer typecore.ml: an [instance] was possibly missing compared to the trunk version (This might make a difference when reconstructed omitted parameters that were deconstructed from a generic type.) Co-authored-by: Samuel Vivien <samuel.vivien@inria.fr> Co-authored-by: Florian Angeletti <florian.angeletti@inria.fr> Co-authored-by: Ulysse Gérard <thevoodoos@gmail.com> The file was modified typing/typecore.ml (diff) The file was modified typing/typecore.ml (diff) The file was modified runtime/startup_byt.c (diff)
Commit
d32da7937b59d5b62baba06cfeb844ecc370f540
by stedolan Avoid traversing C parts of frame pointer chain when reallocating stack When the OCaml stack grows we need to rewrite frame pointers (if enabled) to point to the new stack. However, when using a C library that was not compiled with frame pointers enabled, we cannot assume that there is an unbroken chain of frame pointers through both the OCaml and C parts of the stack. Doing so leads to segfaults. Instead, we note that the only frame pointers that can point to OCaml stacks (the ones that need updating) are those already on OCaml stacks, plus the first ones pushed after any OCaml->C calls. These can be found by traversing the struct c_stack_link chain, without needing to traverse any intervening C frames. This imposes a new constraint on the runtime assembly stubs: after switching to C they must not push anything to the stack before calling a C function. This was already true for all but caml_c_call_stack_args. Enforcing this invariant for caml_c_call_stack_args is straightforward enough, and simplifies the DWARF backtrace logic. For arm64, a side-effect of this change is that DWARF backtraces now work on stacks containing calls to caml_c_call_stack_args, which were broken before. (Tested with macos lldb) The file was modified Changes (diff) The file was modified runtime/fiber.c (diff) The file was modified runtime/arm64.S (diff) The file was modified testsuite/tests/frame-pointers/c_call.reference (diff) The file was added testsuite/tests/frame-pointers/qsort.reference The file was modified runtime/amd64nt.asm (diff) The file was modified runtime/amd64.S (diff) The file was added testsuite/tests/frame-pointers/qsort.ml The file was added testsuite/tests/frame-pointers/qsort_.c
Commit
96c9d6ced14ffbf0e390291f98807e4d3d831294
by samuel Include the `runtime` directory only for ocamltest The `runtime` directory must be `-I`ncluded only since PR#12896 and only in ocamltest. When building an OCaml cross compiler, two OCaml compilers are actually involved, where the non-cross compiler is used to build the cross one. Most cross-compiler projects do that by overriding variables such as `CAMLOPT` to point to the non-cross compiler during the build of the cross compilers. In these use cases, adding the explicit `-I runtime` makes them generate the cross compilers linking in the cross runtime (which naturally fails) instead of the build/host runtime that the non-cross compiler would use without `-I runtime`. To re-enable those use cases, this patch moves the addition only on `ocamltest/%` targets. The file was modified Makefile (diff)
Commit
f7ba75b2d92448b57c05ff3a749468bc29f4b209
by samuel Use `target` instead of `host` to detect the C toolchain Recall that the only currently officially supported configurations are when `build` ~ `host` = `target`, where '~' means that the code generated for `host` runs on `build` even when they differ (such as when `build` is `x86_64-pc-cygwin` and `host` is `x86_64-pc-windows` (MSVC) or `x86_64-w64-mingw32`). Still, many projects use OCaml cross compilers. All those projects generate a cross compiler by assuming a non-cross OCaml compiler is available in `PATH` (where non-cross means generating code that will run on `host`). For the cross compiler, a C compiler and binutils for `target` are necessary to build the target runtime. (Note that the non-cross compiler will link its own (`build`/`host`) runtime into the generated `.opt` cross compilers rather than the just-compiled target runtime.) In that setup the runtime that will be compiled to create a cross compiler will run only on the `target` so this commit: - sets `cross_compiling` by comparing `build` to `target` (rather than to `host`), as this variable will be used later, - uses `target` to set up the tool prefix, - temporarily assigns `host*` values to `target*` values during the libtool configuration, as this detects a `build` to `host` toolchain. Note that all these changes are transparent when `host` = `target`. The file was modified configure (diff) The file was modified configure.ac (diff)
Commit
4ec617b5a65c24cea5ebac8e99ce7d3c173ab103
by samuel Use `target` instead of `host` when relevant in configuration As the C toolchain being configured is generating code for `target`, use `target` in every test that is done according to the toolchain. Note that all these changes are transparent when `host` = `target`. The file was modified aclocal.m4 (diff) The file was modified configure.ac (diff) The file was modified configure (diff)
Commit
b6a46a5d27dab85ec76581be63e33ec5f6acec1b
by samuel Detect a _build_ C toolchain to build `sak` Import `ax_prog_cc_for_build` from the Autoconf Macro Archive to detect the C toolchain for the build machine when (and only when) we are generating a cross compiler, namely when code generated for the target doesn't run on the build machine Move the configuration of `SAK_*` variables in `configure` to set them using the build C toolchain to compile and link `sak` when generating a cross compiler This assumes that `sak` can be built with the default automatically-detected flags when building a cross compiler The file was modified Makefile (diff) The file was added build-aux/ax_prog_cc_for_build.m4 The file was modified Makefile.build_config.in (diff) The file was modified aclocal.m4 (diff) The file was modified configure.ac (diff) The file was modified configure (diff)
Commit
32e393c31541777c7f97e1a255814fd619d84f03
by samuel Check that the OCaml versions are compatible for a cross compiler When building a cross compiler using an already built non-cross compiler, check that they are of the same version as a sanity check, as the cross compiler will be linked using the OCaml code in the source tree and the C runtime from the non-cross compiler The file was modified configure.ac (diff) The file was modified configure (diff) The file was modified stdlib/templates/map.template.mli (diff) The file was modified stdlib/map.mli (diff) The file was modified stdlib/moreLabels.mli (diff) The file was modified typing/typedecl.ml (diff) The file was modified typing/typedecl_variance.mli (diff) The file was modified Changes (diff) The file was modified typing/typedecl_variance.ml (diff) The file was modified testsuite/tests/typing-gadts/yallop_bugs.ml (diff) The file was modified typing/typemod.ml (diff) The file was modified typing/env.ml (diff) The file was modified typing/typeclass.ml (diff) The file was modified testsuite/tests/typing-recmod/gpr1626.ml (diff) The file was modified testsuite/tests/typing-recmod/pr6491.ml (diff) The file was modified Changes (diff) The file was modified typing/env.mli (diff) The file was modified release-info/calendar.md (diff)
Commit
54ca811639689aa21ce9d4c2bd7d16de331029fe
by samuel Use a `TARGET_BINDIR` configure variable instead of `--with-target-bindir` Change the way to configure the location of the runtime binaries on the target system from a `--with-target-bindir=...`, which allows users to use a meaningless `--without-target-bindir`, to a `TARGET_BINDIR` variable Suggested-by: Sébastien Hinderer <seb@tarides.com> Suggested-by: David Allsopp <david.allsopp@metastack.com> The file was modified configure (diff) The file was modified configure.ac (diff)
Commit
799fd8e2d0e0c250d03f5174f83d110ae5d24057
by samuel Add a configurable library directory on target Add a `TARGET_LIBDIR` variable to `configure` and assign a Makefile `TARGET_LIBDIR` variable with it Use the value of `LIBDIR` by default for this new variable Use `TARGET_LIBDIR` to define the `OCAML_STDLIB_DIR` macro used by the runtime When building a cross compiler, the OCaml standard library has no reason to be found at the same paths on the host and on the target. This allows users to provide a path that is meaningful to look for libraries to link dynamically on the target. The file was modified configure (diff) The file was modified Makefile (diff) The file was modified Makefile.config.in (diff) The file was modified configure.ac (diff)
Commit
a11d993d9c30109951fc036374d7dc5c8b68ec0b
by samuel Detect `flexlink` only on relevant targets On Unix platforms, make sure it is possible to have a `flexlink` executable in `PATH` (which is useful for instance when using a cross compiler to Windows), and still be able to configure and build a non-cross compiler The file was modified configure.ac (diff) The file was modified configure (diff)
Commit
5e3d5b97c4dfc696b8a0246da0bfe2a1087649db
by samuel Add a `Config` entry for the compression libraries Define `Config.compression_c_libraries` for the flags needed to link with the `comprmarsh` library Need bootstrap Co-authored-by: Sébastien Hinderer <seb@tarides.com> The file was modified utils/config.mli (diff) The file was modified utils/config.fixed.ml (diff) The file was modified utils/config.generated.ml.in (diff) The file was modified utils/config.common.ml.in (diff)
Commit
c552e7d5f470f985fcda472e60ef6910a2f061d9
by samuel Add a `Config` entry for the target OS type Define `Config.target_os_type` so that: - the `%ostype_*` primitives correspond to the target OS type rather than the host OS one, - the default executable name is the expected default of the target platform. Need bootstrap The file was modified middle_end/flambda/closure_conversion.ml (diff) The file was modified utils/config.mli (diff) The file was modified utils/config.generated.ml.in (diff) The file was modified configure (diff) The file was modified utils/config.common.ml.in (diff) The file was modified utils/config.fixed.ml (diff) The file was modified configure.ac (diff) The file was modified .depend (diff) The file was modified middle_end/closure/closure.ml (diff) The file was modified boot/ocamlc (diff) The file was modified boot/ocamllex (diff)
Commit
e836fae84502eebb34c524e4babc3e5d1d2e4649
by samuel Add a Makefile.cross with rules to build a cross compiler Add a new `Makefile.cross` that gets enabled when building a cross compiler, aka when host is different from target Define two new (phony) targets: - crossopt, to build the cross compilers to the native target (and what is required for such cross compilers to work) - installcross, to install the cross compilers The file was added Makefile.cross The file was modified Makefile (diff)
Commit
27861bd9a7100376a29023ef35d83f1f96581c8a
by samuel Enable bootstrapping flexdll in the cross-compiler setting Add a rule to build flexdll in the cross-compiler setting, namely building flexdll on Unix, by driving its `Makefile` so that Windows resources are not built and only the .opt version is really built (and copied to the byte binary directory nevertheless) Use the `-o` flag to tell `make` to never try to rebuild `flexlink` (as it would otherwise, according to the dependencies in the main `Makefile`) The file was modified Makefile.cross (diff)
Commit
5d48e0ddca638c24680db268f47041b9b9578ee0
by samuel Add cross-compilation cases to `sak` When building a Windows-to-Unix OCaml cross compiler, `sak` gets a Windows string (of UTF-16 `wchar_t`s) and must produce a Unix string (of UTF-8 `char`s). And vice versa when building a Unix-to-Windows cross compiler. To make this possible, this commit splits the `encode-C-literal` command into two commands with specific encodings of the result: `encode-C-utf8-literal` and `encode-C-utf16-literal`. Instead of pulling in a library (and the problems of linking with it) for the task, this commit adds the specific and simple UTF-* encoders and decoders that are needed and uses them only when building a cross compiler (the result is unchanged in non-cross-compiler settings). In the cross-compiler UTF-8 case, the non-printable characters are encoded to get a safer generated code. The file was modified configure (diff) The file was modified runtime/sak.c (diff) The file was modified configure.ac (diff) The file was modified Makefile (diff) The file was modified Makefile.build_config.in (diff) The file was modified INSTALL.adoc (diff) The file was modified Changes (diff)
Commit
b74457d71c0cabd1f9e15981aa0e10080ad37953
by samuel Add a CI workflow to test cross compilers This commit adds a new CI workflow to build a set of cross compilers, use them to compile a simple program and run the generated binaries on the target platforms This new workflow can be triggered on PRs by adding the `run-crosscompiler-tests` label and on `trunk` manually The file was modified .gitattributes (diff) The file was added .github/workflows/build-cross.yml
Commit
e1da88653cac3e26962a1a3d652848f81062581b
by fdsteffahn Improve `regular_nested` example for “polymorphism” chapter Previously, the example dept function for `regular_nested` was clearly buggy. In particular the expression ``` 1 + max (maximal_depth a) (maximal_depth (Nested q)) ``` was adding `1` to the `maximal_depth (Nested q)` side, too, resulting in unbalanced depth calculation (later list elements get increasingly larger “depth”) The minimal fix would have been ``` max (1 + maximal_depth a) (maximal_depth (Nested q)) ``` but then I still find the `Nested [] -> 0` case confusing. Adding a `List []` element to produce `Nested [List []]` makes the depth jump by `2`!? We could redefine this. E.g. as `Nested [] -> 1`, which is better already. Still, this calls out a “Nested” case for certain values which aren’t actually reporting a depth>1. During PR review, we thus ended up with actually making `..._depth (Nested [])` evaluate to 2! A minimally changed definition thus looks like ``` let rec regular_depth = function | List _ -> 1 | Nested [] -> 2 | Nested (a::q) -> max (1 + maximal_depth a) (maximal_depth (Nested q));; ``` (about the name change, see below) We instead change the definition now to work with `List._` API instead, so it becomes ``` let rec regular_depth = function | List _ -> 1 | Nested n -> 1 + List.fold_left max 1 (List.map regular_depth n);; ``` This avoids the use of the previous, somewhat weird “manual fold” approach; additionally it makes the `Nested [] -> 2` case less prominent and thus (hopefully) less distracting to readers who don’t actually *want* do reason about the exact behavior of this depth-function. And finally, with this ``` let rec regular_depth = function | List _ -> 1 | Nested n -> 1 + …something…with…regular_depth…n…;; ``` structure, the function becomes (at least superficially) very similar to the subsequent ``` let rec depth = function | List _ -> 1 | Nested n -> 1 + depth n;; ``` which could help a reader to focus less on wondering if the latter really is just the result of directly “adapting” the former. The naming is also changed to keep more consistent: now it is `regular_nested` with `regular_depth` and then `nested` with `depth` Finally (also relating to naming) there actually was a clear typo that’s fixed now: the original text had one instance where it misspelled “`regular_nested`” as “`regular_depth`” in line 306 (now 305). (This commit also includes a few instances of bad-looking extra indentation removed, and the definition of `type 'a regular_nested` is not separated via `;;` from the example `let l = ...` which should help improve readability) The file was modified Changes (diff) The file was modified manual/src/tutorials/polymorphism.etex (diff) The file was modified Changes (diff) The file was modified typing/ctype.mli (diff) The file was modified typing/ctype.ml (diff) The file was modified typing/typecore.ml (diff) The file was modified tools/ci/appveyor/appveyor_build.cmd (diff) The file was modified configure (diff) The file was modified configure.ac (diff) The file was modified asmcomp/amd64/emit.mlp (diff) The file was added testsuite/tests/badly-ordered-deps/a.ml The file was added testsuite/tests/badly-ordered-deps/cocinelle.reference The file was added testsuite/tests/badly-ordered-deps/cocinelle.ml The file was modified asmcomp/asmlink.ml (diff) The file was modified bytecomp/bytelink.ml (diff) The file was modified asmcomp/asmlibrarian.ml (diff) The file was modified Changes (diff) The file was modified testsuite/tests/badly-ordered-deps/cocinelle.ml (diff) The file was modified Changes (diff)
Commit
143aabbcb8770b0a8f4b7a67216db30d10a6285a
by gabriel.scherer [refactor] genprintval: abstract away the use of Out_name Note: `tree_of_qualified` now take a `name : string` instead of a `name : out_name` that had to sometimes be transformed back without being used for printing. The file was modified toplevel/genprintval.ml (diff) The file was added testsuite/tests/tool-toplevel/constructor_printing.ml The file was modified typing/data_types.mli (diff) The file was modified typing/data_types.ml (diff) The file was modified .depend (diff) The file was modified testsuite/tests/tool-toplevel/constructor_printing.ml (diff) The file was modified toplevel/genprintval.ml (diff) The file was modified testsuite/tests/tool-toplevel/constructor_printing.ml (diff) The file was modified testsuite/tests/tool-toplevel/constructor_printing.ml (diff) The file was modified Changes (diff) The file was modified runtime/domain.c (diff) The file was modified testsuite/tests/native-debugger/linux-lldb-amd64.reference (diff) The file was modified .github/workflows/build.yml (diff) The file was modified testsuite/tests/native-debugger/sanitize.awk (diff) The file was modified testsuite/tests/lib-bool/test.ml (diff) The file was modified stdlib/bool.mli (diff) The file was modified stdlib/bool.ml (diff) The file was modified Changes (diff) The file was modified typing/typetexp.ml (diff) The file was modified typing/out_type.ml (diff) The file was modified parsing/pprintast.ml (diff) The file was modified typing/typemod.ml (diff) The file was modified parsing/pprintast.ml (diff) The file was modified Changes (diff) The file was modified tools/gdb.py (diff) The file was modified tools/ocaml.py (diff) The file was modified tools/lldb.py (diff) The file was modified typing/ctype.ml (diff) The file was added testsuite/tests/typing-misc/automatic_generalize.ml The file was modified typing/ctype.ml (diff) The file was modified runtime/domain.c (diff) The file was modified Changes (diff) The file was modified manual/src/Makefile (diff) The file was modified manual/src/manual.tex (diff) The file was modified manual/tools/transf.mll (diff) The file was modified manual/src/refman/lex.etex (diff) The file was modified Changes (diff) The file was modified Changes (diff) The file was modified manual/src/refman/lex.etex (diff) The file was modified manual/tools/transf.mll (diff) The file was modified manual/src/refman/lex.etex (diff) The file was modified manual/src/refman/lex.etex (diff) The file was modified Changes (diff) The file was modified manual/src/refman/lex.etex (diff) The file was modified .github/workflows/build.yml (diff) The file was modified lambda/translcore.ml (diff) The file was modified typing/typedtree.ml (diff) The file was modified typing/tast_mapper.ml (diff) The file was modified typing/typedtree.mli (diff) The file was modified lambda/translcore.ml (diff) The file was modified typing/typecore.ml (diff) The file was modified typing/typedtree.mli (diff) The file was modified typing/typecore.ml (diff) The file was modified Changes (diff) The file was modified Changes (diff)
Commit
94fafd4c02b8da396e7d7646c236a95091353dc2
by mail Rewrite mutable globals for GC control to be atomic This rewrites four globals to be atomic, thus avoiding data races to them and bringing them in line with the atomic caml_verb_gc: - caml_percent_free - caml_custom_major_ratio - caml_custom_minor_ratio - caml_custom_minor_max_bsz The file was modified runtime/caml/custom.h (diff) The file was modified runtime/custom.c (diff) The file was modified runtime/gc_ctrl.c (diff) The file was modified runtime/major_gc.c (diff) The file was modified Makefile (diff)
Commit
e8a96519666e4ec1253aeee3d85ecea145130f91
by david.allsopp Fix static builds of the compiler ocamlc -custom needs to include <caml/mlvalues.h> and therefore the build has -I runtime in order to facilitate this. -I runtime breaks cross-compilation, since it causes the .a files in runtime to be found by the host ocamlopt instead of its own. This workaround defeats that problem by adding + to VPATH as the first include, which will cause the host compiler's Standard Library directory (which includes the runtime .a files) to be included first in the search path. When building the compiler's libraries (which should be using the target's Standard Library, not the host's), -nostdlib -I stdlib is already inserted before VPATH by the build system, which means this mechanism never interferes with the selection of the correct Standard Library. The file was modified Makefile.cross (diff) The file was modified manual/src/cmds/intf-c.etex (diff) The file was modified Changes (diff) The file was modified runtime/fiber.c (diff) The file was modified Changes (diff) The file was modified parsing/lexer.mll (diff) The file was modified runtime/caml/weak.h (diff) The file was modified runtime/weak.c (diff) The file was modified typing/typemod.ml (diff) The file was modified typing/typemod.ml (diff) The file was modified testsuite/tests/parsing/comments.ml (diff) The file was modified testsuite/tests/parsing/comments.compilers.reference (diff)
Commit
4d2298df37987fe5bb099bc0943a304024b524c9
by noreply Add `Char.Ascii` module (#13695) * char.mli: add a module preamble. * char.mli: replace incorrect mentions of 'ASCII code' by 'integer code'. * char.mli: uniformize integer range notations, turn US-ASCII into ASCII. * char.mli: section the module. * Add Char.Ascii module. * Address review comments. * Change {lower,upper}_hex_digit_of_int to behave like digit_of_int. The file was modified testsuite/tests/typing-modules/aliases.ml (diff) The file was modified stdlib/char.ml (diff) The file was modified Changes (diff) The file was modified stdlib/char.mli (diff) The file was added testsuite/tests/lib-char/test.ml The file was added testsuite/tests/lib-char/test.reference The file was modified runtime/caml/io.h (diff) The file was modified runtime/runtime_events.c (diff) The file was modified runtime/caml/platform.h (diff) The file was modified runtime/callback.c (diff) The file was modified runtime/signals.c (diff) The file was modified runtime/io.c (diff) The file was modified runtime/caml/frame_descriptors.h (diff) The file was modified runtime/codefrag.c (diff) The file was modified runtime/frame_descriptors.c (diff) The file was modified runtime/globroots.c (diff) The file was modified runtime/gc_stats.c (diff) The file was modified Changes (diff) The file was modified Changes (diff) The file was modified runtime/io.c (diff) The file was modified runtime/io.c (diff) The file was modified runtime/caml/platform.h (diff) The file was modified runtime/runtime_events.c (diff) The file was modified Changes (diff) The file was modified typing/typecore.ml (diff) The file was modified tools/ci/appveyor/appveyor_build.cmd (diff)
Commit
3adf26f4284e4f8c74cfe347565466e6572e2d22
by david.allsopp Correct OOM semantics of caml_stat_strdup_to_os The Windows implementation caml_stat_strdup_to_utf16 returned NULL on OOM, where caml_stat_strdup raises Out_of_memory. Windows implementation fixed to raise Out_of_memory. caml_stat_strdup_noexc_to_os to be used in the one place in the runtime where NULL should in fact be returned. The file was modified runtime/win32.c (diff) The file was modified Changes (diff) The file was modified runtime/caml/misc.h (diff) The file was modified runtime/caml/osdeps.h (diff) The file was modified Changes (diff) The file was modified testsuite/tests/typing-misc/polyvars.ml (diff) The file was modified typing/ctype.ml (diff)
Commit
b082fd17f080c7fb7e13f2bbb57edb06cd1e81c8
by david.allsopp Create symlinks on Windows when available Previously Windows unconditionally uses `cp`, doubling the size required for the OCaml binaries. `configure` now determines if `ln` creates native symlinks and only uses `cp` if that fails. Users of the compiler are simply required to enable Developer Mode (or build OCaml using an elevated shell). The file was modified configure.ac (diff) The file was modified configure (diff) The file was modified Changes (diff) The file was modified aclocal.m4 (diff) The file was modified Makefile.common (diff) The file was modified aclocal.m4 (diff) The file was modified configure (diff) The file was modified .github/workflows/build-msvc.yml (diff) The file was modified .gitattributes (diff) The file was modified stdlib/result.mli (diff) The file was modified testsuite/tests/lib-result/test.ml (diff) The file was modified stdlib/result.ml (diff) The file was modified Changes (diff) The file was modified testsuite/tests/match-side-effects/test_contexts_code.ml (diff)
Commit
bb153516686ec1d4b180cbbec5736e5f0aea6dda
by samuel Add a dummy `caml_debugger_saved_instruction` when `HAS_SOCKETS` is false The `caml_debugger_saved_instruction` function is called unconditionally in `runtime/interp.c` to implement the debugger-specific instructions. This patch provides a dummy implementation for that function, alongside the other `caml_debugger_*` functions, so that the interpreter can be built in the uncommon setups with no available socket implementation. The file was modified runtime/debugger.c (diff) The file was modified stdlib/dynarray.mli (diff) The file was modified .github/workflows/multicoretests.yml (diff) The file was modified stdlib/ephemeron.mli (diff) The file was modified Changes (diff) The file was modified stdlib/seq.ml (diff) The file was modified testsuite/tests/lib-seq/test.ml (diff) The file was modified Changes (diff) The file was modified stdlib/seq.mli (diff) The file was modified stdlib/either.ml (diff) The file was modified testsuite/tests/match-side-effects/test_contexts_code.ml (diff) The file was modified Changes (diff) The file was modified stdlib/either.mli (diff) The file was modified Changes (diff) The file was modified asmcomp/arm64/emit.mlp (diff) The file was modified utils/config.fixed.ml (diff) The file was modified configure (diff) The file was modified Makefile.config.in (diff) The file was modified utils/config.mli (diff) The file was modified utils/config.generated.ml.in (diff) The file was modified utils/config.common.ml.in (diff) The file was modified asmcomp/arm64/emit.mlp (diff) The file was modified configure.ac (diff)
Commit
2da20f7641342c880289c850e83d4f2f58ba23c8
by noreply Improve performance of Weak.add (#13737) * Improve performance of Weak.add Replace a recursive function by a while loop. The recursive function was allocated for each element when resizing, contributing significantly to the memory footprint of code using weak tables. * More idiomatic code * Changes * nitpick from Gabriel The file was modified stdlib/weak.ml (diff) The file was modified Changes (diff) The file was removed testsuite/tests/badly-ordered-deps/cocinelle.reference The file was removed testsuite/tests/badly-ordered-deps/cocinelle.ml The file was added testsuite/tests/badly-ordered-deps/coccinelle.reference The file was added testsuite/tests/badly-ordered-deps/coccinelle.ml
Commit
ab31621c1e3f9da0350ef952a2043780771c4356
by david.allsopp Fix coccinelle linking regression test on Cygwin Native code version of the test specifies that the program is coccinelle.exe (on all platforms) and the output coccinelle. On Cygwin, these are the same file and setting up the output therefore truncates the program before it runs. The file was modified testsuite/tests/badly-ordered-deps/coccinelle.ml (diff) The file was modified testsuite/tests/badly-ordered-deps/coccinelle.ml (diff) The file was modified tools/ci/inria/main (diff) The file was modified .github/workflows/build.yml (diff)
Commit
8f2daefea61762313728a38e415c00b6cad903ca
by noreply Optimize Weak.find_aux (#13740) Change the Stdlib Weak module's find_aux function that is used by find, find_opt, mem, merge, and remove to avoid a closure allocation by converting a nested recursive function to a while loop. The file was modified stdlib/weak.ml (diff) The file was modified Changes (diff) The file was modified stdlib/.depend (diff) The file was modified testsuite/tests/lib-string/test_string.ml (diff)
Commit
657d79eb2d4d6c3502cf49067d24980c25d2b442
by david.allsopp Add caml_stat_char_array_{to,of}_os Allows conversion of arbitrary char/wchar_t sequences by allowing the number of characters copied to be specified. The output length of the encoding can also be returned by these functions. The file was modified runtime/caml/memory.h (diff) The file was modified runtime/memory.c (diff) The file was modified Changes (diff) The file was modified runtime/caml/misc.h (diff) The file was modified runtime/caml/osdeps.h (diff) The file was modified runtime/win32.c (diff) The file was modified runtime/caml/osdeps.h (diff) The file was modified runtime/caml/memory.h (diff) The file was modified .github/workflows/build.yml (diff) The file was modified .github/workflows/build.yml (diff) The file was modified HACKING.adoc (diff) The file was modified Changes (diff) The file was added .editorconfig The file was modified .gitattributes (diff) The file was modified Changes (diff) The file was modified manual/src/cmds/intf-c.etex (diff) The file was modified Changes (diff) The file was modified otherlibs/unix/select_unix.c (diff) The file was modified otherlibs/unix/stat_unix.c (diff) The file was modified otherlibs/unix/execvp.c (diff) The file was modified testsuite/tests/tsan/waitgroup_stubs.c (diff) The file was modified otherlibs/unix/sockopt_win32.c (diff) The file was modified otherlibs/unix/gettimeofday_win32.c (diff) The file was modified otherlibs/unix/itimer.c (diff) The file was modified otherlibs/unix/utimes_win32.c (diff) The file was modified otherlibs/unix/sleep_win32.c (diff) The file was modified runtime/caml/misc.h (diff) The file was modified otherlibs/unix/access.c (diff) The file was modified otherlibs/unix/times_unix.c (diff) The file was modified otherlibs/unix/gettimeofday_unix.c (diff) The file was modified otherlibs/unix/stat_win32.c (diff) The file was modified otherlibs/unix/utimes_unix.c (diff) The file was modified runtime/sys.c (diff) The file was modified runtime/win32.c (diff) The file was modified otherlibs/unix/sleep_unix.c (diff) The file was modified otherlibs/unix/select_win32.c (diff) The file was modified otherlibs/unix/caml/unixsupport.h (diff) The file was modified otherlibs/unix/sockopt_unix.c (diff) The file was modified runtime/platform.c (diff) The file was modified runtime/unix.c (diff)
Commit
de538165495f0d06dfebf33be2d6dcfc047ef7a3
by antonin Prevent erroneously waiting for an unbounded time in Unix.select The documentation of `Unix.select _ _ _ s` reads: > The fourth argument is the maximal timeout, in seconds; a negative > fourth argument means no timeout (unbounded wait). This fixes a potential bug on Windows with the implementation of `Unix.select`. If a file descriptor list exceeds `FD_SETSIZE` (64 elements by default), or if one of the lists contains at least one fd that's not a socket, then [`select`][1] is emulated. In this code path, if the timeout ends up equating the sentinel value for an unbounded wait (`INFINITE` in the WinAPI, equal to $2^{32}$), then the wait becomes unbounded. This breaks the semantics of [Unix.select]. Cap the timeout to $2^{32}$ milliseconds. [1]: https://learn.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-select The file was modified Changes (diff) The file was modified otherlibs/unix/unix.mli (diff) The file was modified otherlibs/unix/select_win32.c (diff) The file was modified otherlibs/unix/unixLabels.mli (diff) The file was modified Changes (diff) The file was modified Changes (diff) The file was modified stdlib/seq.mli (diff) The file was modified typing/typecore.ml (diff) The file was modified typing/typecore.ml (diff) The file was modified typing/typecore.ml (diff) The file was modified typing/typecore.ml (diff) The file was modified typing/typecore.ml (diff) The file was modified typing/typecore.ml (diff) The file was modified Changes (diff) The file was modified typing/typecore.ml (diff) The file was modified typing/typecore.ml (diff) The file was modified asmcomp/cmmgen.ml (diff) The file was modified asmcomp/cmm_helpers.mli (diff) The file was modified asmcomp/cmm_helpers.ml (diff) The file was modified asmcomp/cmmgen.ml (diff) The file was modified asmcomp/cmmgen.ml (diff) The file was modified asmcomp/cmm_helpers.mli (diff) The file was modified Changes (diff) The file was modified middle_end/flambda/flambda_invariants.ml (diff) The file was modified middle_end/flambda/inline_and_simplify.ml (diff) The file was modified middle_end/flambda/inconstant_idents.ml (diff) The file was modified middle_end/flambda/flambda_to_clambda.ml (diff) The file was added testsuite/tests/asmcomp/static_catch_unboxing.ml The file was modified middle_end/flambda/flambda.ml (diff) The file was modified middle_end/flambda/flambda.mli (diff) The file was modified Changes (diff) The file was modified middle_end/flambda/closure_conversion.ml (diff) The file was modified middle_end/flambda/flambda_utils.ml (diff) The file was modified release-info/calendar.md (diff)
Commit
1d68ef7038a71442eee90e3679c3d7999caa40b9
by david.allsopp Skip emit blank lines in the native-debugger tests They're not interesting in terms of what's being analysed - in passing this should deal with the instability of the location of the suppressed lldb plugin message. The file was modified testsuite/tests/native-debugger/sanitize.awk (diff) The file was modified testsuite/tests/native-debugger/linux-gdb-riscv.reference (diff) The file was modified testsuite/tests/native-debugger/linux-gdb-amd64.reference (diff) The file was modified testsuite/tests/native-debugger/linux-gdb-arm64.reference (diff) The file was modified testsuite/tests/native-debugger/linux-lldb-amd64.reference (diff) The file was modified otherlibs/dynlink/dynlink_types.ml (diff) The file was modified stdlib/seq.mli (diff) The file was modified runtime/shared_heap.c (diff) The file was modified Changes (diff) The file was modified runtime/shared_heap.c (diff) The file was modified Changes (diff) The file was added testsuite/tests/compaction/test_compact_manydomains.ml The file was modified runtime/major_gc.c (diff) The file was modified runtime/gc_ctrl.c (diff) The file was modified Changes (diff) The file was modified runtime/caml/major_gc.h (diff)
Commit
5ed57a94f9bfa412e36e71ca7d20154b78cff00f
by lmaurer Fix ocamltest line numbers after multiline comments, strings Any multiline string or comment in an ocamltest throws off the line numbers in output: (* TEST (* This is a long comment *) fail; (* this is line 5 *) *) ... testing 'main.ml' with line 4 (fail) => failed (the fail action always fails) This PR fixes both strings and comments. The file was modified ocamltest/tsl_lexer.mll (diff) The file was modified otherlibs/systhreads/st_stubs.c (diff) The file was modified Changes (diff) The file was modified otherlibs/systhreads/st_win32.h (diff) The file was modified otherlibs/systhreads/st_posix.h (diff) The file was modified runtime/caml/misc.h (diff) The file was modified runtime/riscv.S (diff) The file was modified runtime/arm64.S (diff) The file was modified runtime/power.S (diff) The file was modified runtime/s390x.S (diff) The file was modified runtime/amd64.S (diff)
Commit
9698d2e40c17b1029950aaf6cecfc3ceba5c7adb
by samuel Detect the need for the GNU note for non-executable stack Detect during `configure` whether the C compiler generates a `.note.GNU-stack` section to mark it explicitly as non-executable Define a macro in `m.h` and a configure variable so that OCaml can do as cc does Detail: without the explicit `.note.GNU-stack` section, recent versions of GNU ld show, at least on some targets: /usr/bin/ld: warning: .... missing .note.GNU-stack section implies executable stack /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker The file was modified configure.ac (diff) The file was modified runtime/caml/m.h.in (diff) The file was modified configure (diff) The file was modified aclocal.m4 (diff)
Commit
9c2c93750356bd9b8d3da0d00c086cf40ae80cc1
by samuel Add a `Config` variable for the need of the GNU non-executable stack note Add a `Config.with_nonexecstack_note` variable to indicate whether the `.note.GNU-stack` section should be present to mark the stack explicitly as non-executable The file was modified utils/config.fixed.ml (diff) The file was modified utils/config.common.ml.in (diff) The file was modified utils/config.generated.ml.in (diff) The file was modified utils/config.mli (diff) The file was modified man/ocamlprof.1 (diff) The file was modified Changes (diff) The file was modified manual/src/cmds/ocamldep.etex (diff) The file was modified man/ocamldep.1 (diff) The file was modified manual/src/cmds/profil.etex (diff) The file was modified tools/ocamlcp_common.ml (diff) The file was modified tools/ocamlprof.ml (diff) The file was modified .depend (diff) The file was modified driver/makedepend.ml (diff) The file was modified testsuite/tests/backtrace/pr2195.opt.reference (diff) The file was modified typing/tast_mapper.ml (diff) The file was modified typing/typedtree.ml (diff) The file was modified typing/printtyped.ml (diff) The file was modified .depend (diff) The file was modified bytecomp/bytegen.ml (diff) The file was modified typing/untypeast.ml (diff) The file was modified lambda/lambda.mli (diff) The file was modified testsuite/tests/backtrace/pr2195-locs.byte.reference (diff) The file was modified typing/outcometree.mli (diff) The file was modified typing/patterns.mli (diff) The file was modified toplevel/genprintval.ml (diff) The file was modified lambda/translcore.ml (diff) The file was modified typing/parmatch.ml (diff) The file was modified lambda/tmc.ml (diff) The file was modified runtime/str.c (diff) The file was modified middle_end/flambda/closure_conversion.ml (diff) The file was modified lambda/matching.ml (diff) The file was modified typing/predef.ml (diff) The file was modified lambda/printlambda.ml (diff) The file was modified tools/ocamlprof.ml (diff) The file was modified middle_end/convert_primitives.ml (diff) The file was modified testsuite/tests/basic/patmatch_for_multiple.ml (diff) The file was modified typing/typecore.ml (diff) The file was modified typing/typeopt.ml (diff) The file was modified typing/predef.mli (diff) The file was modified typing/tast_iterator.ml (diff) The file was modified typing/typedtree.mli (diff) The file was modified typing/printpat.ml (diff) The file was modified middle_end/closure/closure.ml (diff) The file was modified tools/sync_stdlib_docs (diff) The file was modified lambda/simplif.ml (diff) The file was modified lambda/value_rec_compiler.ml (diff) The file was modified lambda/translprim.ml (diff) The file was modified lambda/lambda.ml (diff) The file was modified typing/patterns.ml (diff) The file was modified typing/value_rec_check.ml (diff) The file was modified middle_end/internal_variable_names.ml (diff) The file was modified typing/oprint.ml (diff) The file was modified lambda/printlambda.ml (diff) The file was modified lambda/lambda.mli (diff) The file was modified lambda/translprim.ml (diff) The file was modified runtime/str.c (diff) The file was modified middle_end/convert_primitives.ml (diff) The file was modified middle_end/internal_variable_names.ml (diff) The file was modified middle_end/closure/closure.ml (diff) The file was modified lambda/value_rec_compiler.ml (diff) The file was modified lambda/lambda.ml (diff) The file was modified lambda/tmc.ml (diff) The file was modified lambda/simplif.ml (diff) The file was modified middle_end/flambda/closure_conversion.ml (diff) The file was modified bytecomp/bytegen.ml (diff) The file was modified boot/ocamllex (diff) The file was modified boot/ocamlc (diff) The file was modified tools/sync_stdlib_docs (diff) The file was modified manual/src/library/stdlib-blurb.etex (diff) The file was modified stdlib/stdlib.mli (diff) The file was modified stdlib/StdlibModules (diff) The file was added stdlib/iarray.mli The file was added stdlib/iarrayLabels.ml The file was modified .depend (diff) The file was added stdlib/iarrayLabels.mli The file was modified stdlib/stdlib.ml (diff) The file was modified stdlib/.depend (diff) The file was added stdlib/iarray.ml The file was modified testsuite/tests/match-side-effects/test_contexts_code.ml (diff) The file was modified testsuite/tests/match-side-effects/partiality.ml (diff) The file was added testsuite/tests/lib-array/test_iarray.ml The file was modified testsuite/tests/match-side-effects/check_partial.ml (diff) The file was added testsuite/tests/typing-extensions/iarray.ml The file was added testsuite/tests/array-functions/test_iarray.ml The file was modified testsuite/tests/backtrace/pr2195.opt.reference (diff) The file was modified testsuite/tests/backtrace/pr2195-locs.byte.reference (diff) The file was added testsuite/tests/array-functions/test_iarray.reference The file was modified testsuite/tests/basic/patmatch_for_multiple.ml (diff) The file was modified testsuite/tests/array-functions/test_iarray.ml (diff) The file was modified typing/typedtree.mli (diff) The file was modified stdlib/iarrayLabels.mli (diff) The file was modified stdlib/iarray.mli (diff) The file was modified testsuite/tests/lib-array/test_iarray.ml (diff) The file was modified stdlib/iarray.ml (diff) The file was modified Changes (diff) The file was removed stdlib/iarrayLabels.mli The file was modified testsuite/tests/basic/patmatch_for_multiple.ml (diff) The file was modified stdlib/stdlib.mli (diff) The file was modified stdlib/iarray.ml (diff) The file was modified testsuite/tests/match-side-effects/test_contexts_code.ml (diff) The file was modified stdlib/StdlibModules (diff) The file was modified testsuite/tests/match-side-effects/check_partial.ml (diff) The file was modified testsuite/tests/lib-array/test_iarray.ml (diff) The file was modified tools/sync_stdlib_docs (diff) The file was removed stdlib/iarrayLabels.ml The file was modified stdlib/iarray.mli (diff) The file was modified stdlib/.depend (diff) The file was modified stdlib/stdlib.ml (diff) The file was modified testsuite/tests/match-side-effects/partiality.ml (diff)
Commit
49a91aaff110db94dcbd5653534441cb8d841a83
by samuel Output the `.note.GNU-stack` section based on `configure` Uniformly rely on the detection during `configure` of whether the `.note.GNU-stack` section is generated by the C compiler to decide whether to output it Define a macro in `asm.h` and a function in `Emitaux` to output the section when it should be Before that patch, the `.note.GNU-stack` section was: - on x86_64: - generated by `emit.mlp` only on Linux and FreeBSD - present in `amd64.S` only on Linux and FreeBSD - on ARM: - generated by `emit.mlp` only on Linux - present in `arm64.S` except on macOS - on RISC-V: - never generated by `emit.mlp` - always present in `riscv.S` - on POWER: - always generated by `emit.mlp` - always present in `power.S` - on S/390: - always generated by `emit.mlp` - always present in `s390x.S` The file was modified asmcomp/riscv/emit.mlp (diff) The file was modified runtime/s390x.S (diff) The file was modified runtime/amd64.S (diff) The file was modified asmcomp/power/emit.mlp (diff) The file was modified testsuite/tools/asmgen_s390x.S (diff) The file was modified asmcomp/s390x/emit.mlp (diff) The file was modified runtime/arm64.S (diff) The file was modified asmcomp/amd64/emit.mlp (diff) The file was modified runtime/caml/asm.h (diff) The file was modified testsuite/tools/asmgen_arm.S (diff) The file was modified testsuite/tools/asmgen_power.S (diff) The file was modified runtime/riscv.S (diff) The file was modified asmcomp/emitaux.ml (diff) The file was modified asmcomp/emitaux.mli (diff) The file was modified runtime/power.S (diff) The file was modified testsuite/tools/asmgen_arm64.S (diff) The file was modified asmcomp/arm64/emit.mlp (diff)
Commit
a3a2d568eac511f2dd4272816400f616bebd4308
by samuel Detect support for `.size` and `.type` assembler directives Detect during `configure` whether the C compiler generates `.size` and `.type` assembler directives Set the result to true if and only if both directives are generated for functions and the `.type` directive is generated for objects (directives equivalent to `.size` could be used for a simple `int`); display a warning if some of the three combinations appear but not all three Define a macro in `m.h` and a configure variable so that OCaml can do as cc does The file was modified configure.ac (diff) The file was modified configure (diff) The file was modified runtime/caml/m.h.in (diff) The file was modified aclocal.m4 (diff)
Commit
d42a7281755e0eaffedd27ec166266d9fe19bdc3
by samuel Add a `Config` variable for the `.size` and `.type` assembler directives Add a `Config.asm_size_type_directives` variable to indicate whether the `.size` and `.type` assembler directives can be used in assembler code The file was modified utils/config.generated.ml.in (diff) The file was modified utils/config.fixed.ml (diff) The file was modified utils/config.common.ml.in (diff) The file was modified utils/config.mli (diff)
Commit
1094fa31703e1b813672b9fe82c53778aea027af
by samuel Output the `.size` and `.type` directives based on `configure` result Uniformly rely on the detection during `configure` of whether the `.size` and `.type` directives are generated by the C compiler to decide whether to output them Define two macros in `asm.h` and two functions in `Emitaux` to output those directives to factorize them; to do so, `Emitaux.emit_symbol` knows the special macOS case Before that patch, the `.size` and `.type` directives were: - on x86_64: - generated by `emit.mlp` only on Linux and GNU OSes; `.size` was generated for frametables only for a definite list of OSes, `.type` was never generated for frametables - present in `amd64.S` only on Linux and GNU OSes; the `.type` directives was present for functions on all but macOS, Cygwin, MinGW, MSVC - on ARM: - generated by `emit.mlp` except on macOS - present in `arm64.S` except on macOS - on RISC-V: - always generated by `emit.mlp`; `.size` was not generated for frametables - always present in `riscv.S` - on POWER: - always generated by `emit.mlp`; `.size` was not generated for frametables - always present in `power.S` - on S/390: - always generated by `emit.mlp` for `.type`, never generated for `.size` - always present in `s390x.S` for `.type`, never present for `.size` The file was modified runtime/caml/asm.h (diff) The file was modified asmcomp/power/emit.mlp (diff) The file was modified runtime/amd64.S (diff) The file was modified asmcomp/riscv/emit.mlp (diff) The file was modified asmcomp/s390x/emit.mlp (diff) The file was modified runtime/riscv.S (diff) The file was modified runtime/s390x.S (diff) The file was modified runtime/power.S (diff) The file was modified asmcomp/emitaux.mli (diff) The file was modified asmcomp/amd64/emit.mlp (diff) The file was modified asmcomp/arm64/emit.mlp (diff) The file was modified asmcomp/emitaux.ml (diff) The file was modified runtime/arm64.S (diff) The file was modified Changes (diff) The file was modified Changes (diff) The file was modified stdlib/type.ml (diff) The file was modified testsuite/tests/backtrace/pr2195-locs.byte.reference (diff) The file was modified stdlib/stdlib.ml (diff) The file was modified testsuite/tests/basic/patmatch_for_multiple.ml (diff) The file was modified testsuite/tests/match-side-effects/check_partial.ml (diff) The file was modified Changes (diff) The file was modified stdlib/stdlib.mli (diff) The file was modified testsuite/tests/match-side-effects/test_contexts_code.ml (diff) The file was modified testsuite/tests/match-side-effects/partiality.ml (diff) The file was modified testsuite/tests/backtrace/pr2195.opt.reference (diff) The file was modified parsing/lexer.mll (diff) The file was modified ocamldoc/odoc_lexer.mll (diff) The file was modified otherlibs/unix/caml/unixsupport.h (diff) The file was modified testsuite/tests/match-side-effects/check_partial.ml (diff) The file was modified runtime/caml/misc.h (diff) The file was modified stdlib/in_channel.ml (diff) The file was modified stdlib/sys.ml.in (diff) The file was modified stdlib/sys.mli (diff) The file was modified Changes (diff) The file was modified runtime/sys.c (diff) The file was modified runtime/caml/io.h (diff) The file was modified tools/ci/appveyor/appveyor_build.sh (diff) The file was modified tools/ci/appveyor/appveyor_build.sh (diff) The file was modified tools/ci/appveyor/appveyor_build.sh (diff) The file was modified asmcomp/power/emit.mlp (diff) The file was modified driver/main_args.mli (diff) The file was modified utils/clflags.mli (diff) The file was modified utils/clflags.ml (diff) The file was modified driver/main_args.ml (diff) The file was modified testsuite/tests/basic/patmatch_for_multiple.ml (diff) The file was modified testsuite/tests/basic/patmatch_split_no_or.ml (diff) The file was modified testsuite/tests/match-side-effects/test_contexts_code.ml (diff) The file was modified testsuite/tests/match-side-effects/check_partial.ml (diff) The file was modified typing/ident.ml (diff) The file was modified testsuite/tests/match-side-effects/partiality.ml (diff) The file was modified Changes (diff) The file was modified testsuite/tests/match-side-effects/check_partial.ml (diff) The file was modified typing/ident.ml (diff) The file was modified testsuite/tests/basic/patmatch_split_no_or.ml (diff) The file was modified testsuite/tests/match-side-effects/partiality.ml (diff) The file was modified testsuite/tests/match-side-effects/test_contexts_code.ml (diff) The file was modified testsuite/tests/basic/patmatch_for_multiple.ml (diff)
Commit
1ef454907b19fba693a182296594d5b8024fa6f4
by Florian Angeletti format: add a out_width function to Format device This new function is used to compute the rendered width of substrings when printing. The aim is to improve the rendering for unicode strings. However unicode-aware width function should know that `Format` decompose substrings at the seams of format string constructors and thus joining characters split across those seams will result in approximative width computation. For instance, the underlying formatting engine considers that width "@[<h>ᄒ@,ᅢ@,ᆫ@,ᄀ@,ᅳ@,ᆯ@]@]" is equal to the sum width "ᄒ" + width "ᅢ@"+ width "ᆫ" + width "ᄀ" + width "ᅳ" + width "ᆯ" rather than the width of the joined characters: width "핸틀" The file was modified stdlib/format.mli (diff) The file was added testsuite/tests/lib-format/unicode.ml The file was modified .gitattributes (diff) The file was modified stdlib/format.ml (diff) The file was modified .gitattributes (diff) The file was modified testsuite/tests/lib-format/unicode.ml (diff) The file was modified stdlib/format.mli (diff) The file was modified stdlib/format.ml (diff) The file was modified stdlib/.depend (diff) The file was modified stdlib/format.mli (diff) The file was modified .gitattributes (diff) The file was modified testsuite/tests/lib-format/unicode.ml (diff) The file was modified testsuite/tests/tool-toplevel/strings.compilers.reference (diff) The file was modified testsuite/tests/win-unicode/mltest.compilers.reference (diff) The file was modified stdlib/format.mli (diff) The file was modified stdlib/format.ml (diff) The file was modified stdlib/format.mli (diff) The file was modified Changes (diff) The file was modified stdlib/format.mli (diff) The file was modified configure.ac (diff) The file was modified configure (diff) The file was modified aclocal.m4 (diff) The file was modified aclocal.m4 (diff) The file was modified configure (diff) The file was modified Changes (diff) The file was modified configure.ac (diff)
Commit
9d3164630236aa4e6a070966b934474f5fd1a3f8
by david.allsopp Fix backslashes in runtime/build_config.h echo cannot portably be used to display strings containing backslashes and the echo builtin in dash in particular always transforms \\ to \ which breaks the transformation in sak. Use printf instead. Co-authored-by: Samuel Hym <samuel@tarides.com> The file was modified Makefile (diff) The file was modified Changes (diff) The file was modified Makefile.config.in (diff) The file was modified Makefile.build_config.in (diff) The file was modified tools/check-typo (diff)
Commit
2caa6556b15faae542a326ca8d6de9649052a689
by david.allsopp Require all text files to be valid UTF-8 Files which Git regards as binary are already skipped, but require _all_ non-binary files therefore to be valid UTF-8. The files still require the utf8 attribute for UTF-8 to be _expected_. The file was modified tools/check-typo (diff) The file was modified .gitattributes (diff) The file was modified tools/check-typo (diff) The file was modified .github/workflows/hygiene.yml (diff) The file was modified tools/ci/actions/check-typo.sh (diff) The file was modified .github/workflows/hygiene.yml (diff)
Commit
9e497a6235494caeb9e15ae8f074ebb65ae36f76
by david.allsopp Use non-ascii name rather than utf8 Rationale: all text files must be valid UTF-8 (and any UTF-8 is valid in copyright headers, as before), but source files which use non-ASCII characters (still forming valid UTF-8 sequences) must indicate non-ascii. The file was modified tools/check-typo (diff) The file was modified .gitattributes (diff) The file was modified parsing/ast_helper.mli (diff) The file was modified typing/patterns.mli (diff) The file was modified typing/datarepr.ml (diff) The file was modified typing/outcometree.mli (diff) The file was modified typing/parmatch.ml (diff) The file was modified typing/printpat.ml (diff) The file was modified utils/warnings.ml (diff) The file was modified typing/typecore.mli (diff) The file was modified lambda/matching.ml (diff) The file was modified manual/src/refman/Makefile (diff) The file was modified typing/typedecl_variance.ml (diff) The file was modified tools/ocamlprof.ml (diff) The file was modified typing/typetexp.mli (diff) The file was modified parsing/ast_invariants.ml (diff) The file was modified utils/misc.mli (diff) The file was modified manual/src/refman/exten.etex (diff) The file was added testsuite/tests/typing-labeled-tuples/labeled_tuple_patterns.ml The file was modified typing/untypeast.ml (diff) The file was added testsuite/tests/parse-errors/singleton_labeled_tuple_type.ml The file was modified typing/typedtree.ml (diff) The file was modified ocamldoc/odoc_value.ml (diff) The file was modified testsuite/tests/parsing/illegal_ppx.ml (diff) The file was added testsuite/tests/typing-labeled-tuples/labeled_tuples_and_constructors.ml The file was added testsuite/tests/typing-labeled-tuples/labeled_tuples_dsource.ml The file was modified typing/typecore.ml (diff) The file was modified testsuite/tests/generated-parse-errors/errors.compilers.reference (diff) The file was added testsuite/tests/parse-errors/bigarray_index_labels.ml The file was modified typing/types.ml (diff) The file was modified typing/printtyped.ml (diff) The file was modified Changes (diff) The file was modified ocamldoc/odoc_ast.ml (diff) The file was modified parsing/ast_helper.ml (diff) The file was modified debugger/eval.ml (diff) The file was modified boot/menhir/parser.ml (diff) The file was modified parsing/ast_mapper.ml (diff) The file was modified typing/value_rec_check.ml (diff) The file was modified toplevel/genprintval.ml (diff) The file was modified testsuite/tests/parsing/broken_invariants.ml (diff) The file was modified testsuite/tests/parsing/broken_invariants.compilers.reference (diff) The file was modified testsuite/tests/parsetree/locations_test.compilers.reference (diff) The file was modified typing/oprint.ml (diff) The file was modified typing/tast_mapper.ml (diff) The file was modified typing/typedecl_separability.ml (diff) The file was modified utils/warnings.mli (diff) The file was modified manual/tests/cross_reference_checker.ml (diff) The file was modified typing/typedecl.ml (diff) The file was modified typing/typedtree.mli (diff) The file was modified typing/tast_iterator.ml (diff) The file was modified manual/src/refman/expr.etex (diff) The file was modified typing/rawprinttyp.ml (diff) The file was modified typing/ctype.ml (diff) The file was modified lambda/translcore.ml (diff) The file was modified typing/types.mli (diff) The file was added manual/src/refman/extensions/labeledtuples.etex The file was modified testsuite/tools/expect.ml (diff) The file was modified typing/typetexp.ml (diff) The file was modified utils/misc.ml (diff) The file was modified parsing/parser.mly (diff) The file was modified parsing/pprintast.ml (diff) The file was added testsuite/tests/parse-errors/bigarray_index_labels.compilers.reference The file was modified manual/src/refman/types.etex (diff) The file was modified typing/out_type.ml (diff) The file was modified manual/src/refman/patterns.etex (diff) The file was modified typing/printtyp.ml (diff) The file was modified typing/gprinttyp.ml (diff) The file was modified typing/predef.ml (diff) The file was modified typing/btype.ml (diff) The file was modified parsing/parsetree.mli (diff) The file was modified parsing/printast.ml (diff) The file was modified typing/patterns.ml (diff) The file was modified parsing/ast_iterator.ml (diff) The file was added testsuite/tests/typing-labeled-tuples/labeled_tuples.ml The file was added testsuite/tests/parse-errors/singleton_labeled_tuple_type.compilers.reference The file was modified parsing/depend.ml (diff) The file was modified typing/ctype.mli (diff) The file was modified boot/ocamlc (diff) The file was modified boot/ocamllex (diff) The file was modified stdlib/either.ml (diff) The file was modified Changes (diff) The file was modified stdlib/either.mli (diff) The file was modified testsuite/tests/lib-either/test.ml (diff) The file was modified Makefile (diff) The file was modified Changes (diff) The file was modified stdlib/format.mli (diff) The file was modified stdlib/format.ml (diff) The file was modified testsuite/tests/lib-format/unicode.ml (diff) The file was modified Changes (diff) The file was modified stdlib/StdlibModules (diff) The file was modified stdlib/array.ml (diff) The file was modified stdlib/.depend (diff) The file was modified stdlib/string.mli (diff) The file was modified stdlib/stringLabels.mli (diff) The file was modified .gitattributes (diff) The file was modified stdlib/.depend (diff) The file was modified testsuite/tests/lib-string/test_string.ml (diff) The file was modified stdlib/string.ml (diff) The file was modified stdlib/string.ml (diff) The file was modified stdlib/string.mli (diff) The file was modified stdlib/stringLabels.mli (diff) The file was modified testsuite/tests/lib-string/test_string.ml (diff) The file was modified stdlib/string.ml (diff) The file was modified testsuite/tests/lib-string/test_string.ml (diff) The file was modified stdlib/string.ml (diff) The file was modified stdlib/string.mli (diff) The file was modified stdlib/stringLabels.mli (diff) The file was modified stdlib/.depend (diff) The file was modified stdlib/string.ml (diff) The file was modified testsuite/tests/lib-string/test_string.ml (diff) The file was modified stdlib/stringLabels.mli (diff) The file was modified stdlib/string.ml (diff) The file was modified stdlib/string.mli (diff) The file was modified stdlib/string.ml (diff) The file was modified stdlib/stringLabels.mli (diff) The file was modified stdlib/string.ml (diff) The file was modified stdlib/string.mli (diff) The file was modified stdlib/stringLabels.mli (diff) The file was modified stdlib/string.ml (diff) The file was modified stdlib/string.mli (diff) The file was modified stdlib/string.ml (diff) The file was modified stdlib/string.ml (diff) The file was modified testsuite/tests/lib-string/test_string.ml (diff) The file was modified stdlib/string.mli (diff) The file was modified stdlib/stringLabels.mli (diff) The file was modified stdlib/string.ml (diff) The file was modified stdlib/string.ml (diff) The file was modified Changes (diff) The file was modified runtime/caml/misc.h (diff) The file was modified Changes (diff)
Commit
9fb92d973f1154d395f849bc70606361bdcee31f
by noreply Track type of variables bound by `as` (#13763) Keep the types of variables bound by `as` because they may not equal the types of the `as` patterns themselves. This fixes some incorrect value kinds that can lead to miscompilation. --------- Co-authored-by: Leo White <leo@lpw25.net> The file was modified typing/patterns.mli (diff) The file was modified typing/typedtree.ml (diff) The file was added testsuite/tests/asmcomp/regression_value_kinds.ml The file was modified typing/tast_mapper.ml (diff) The file was modified ocamldoc/odoc_ast.ml (diff) The file was modified typing/patterns.ml (diff) The file was modified typing/typedtree.mli (diff) The file was modified typing/parmatch.ml (diff) The file was modified Changes (diff) The file was modified lambda/translclass.ml (diff) The file was modified lambda/translcore.ml (diff) The file was modified typing/printtyped.ml (diff) The file was modified lambda/matching.ml (diff) The file was modified typing/printpat.ml (diff) The file was modified typing/untypeast.ml (diff) The file was modified typing/value_rec_check.ml (diff) The file was modified typing/tast_iterator.ml (diff) The file was modified typing/typecore.ml (diff) The file was modified typing/cmt2annot.ml (diff) The file was modified CONTRIBUTING.md (diff) The file was modified stdlib/string.ml (diff) The file was modified .gitattributes (diff) The file was modified .gitattributes (diff) The file was modified Changes (diff) The file was modified .gitattributes (diff) The file was modified stdlib/.depend (diff) The file was added stdlib/pqueue.ml The file was modified stdlib/stdlib.mli (diff) The file was added testsuite/tests/lib-pqueue/test.ml The file was modified stdlib/StdlibModules (diff) The file was modified stdlib/stdlib.ml (diff) The file was added stdlib/pqueue.mli The file was added testsuite/tests/lib-pqueue/test.reference The file was modified stdlib/pqueue.mli (diff) The file was modified testsuite/tests/lib-pqueue/test.ml (diff) The file was modified stdlib/pqueue.ml (diff) The file was modified stdlib/.depend (diff) The file was modified Changes (diff) The file was modified stdlib/pqueue.ml (diff) The file was modified stdlib/pqueue.mli (diff) The file was modified manual/src/library/stdlib-blurb.etex (diff) The file was modified stdlib/pqueue.ml (diff)
Commit
7d20f94f378d50ab017cd293a7a67663a3c532e2
by gabriel.scherer stdlib: better interface for priority queues introducing two different signatures for min-priority queues and max-priority queues (and accordingly two functors to build them) is much clearer, at the cost of a slightly bigger interface for Pqueue The file was modified stdlib/pqueue.ml (diff) The file was modified stdlib/pqueue.mli (diff) The file was modified testsuite/tests/lib-pqueue/test.ml (diff) The file was modified testsuite/tests/lib-pqueue/test.ml (diff) The file was modified stdlib/pqueue.mli (diff) The file was modified stdlib/pqueue.ml (diff) The file was modified testsuite/tests/lib-pqueue/test.ml (diff) The file was modified stdlib/pqueue.mli (diff) The file was modified stdlib/pqueue.ml (diff) The file was modified stdlib/pqueue.ml (diff) The file was modified stdlib/pqueue.mli (diff) The file was modified testsuite/tests/lib-pqueue/test.ml (diff) The file was modified testsuite/tests/lib-pqueue/test.ml (diff) The file was modified stdlib/pqueue.ml (diff) The file was modified stdlib/pqueue.mli (diff) The file was modified stdlib/pqueue.ml (diff) The file was modified stdlib/pqueue.mli (diff) The file was modified testsuite/tests/lib-pqueue/test.ml (diff) The file was modified stdlib/pqueue.mli (diff) The file was modified stdlib/pqueue.ml (diff) The file was modified testsuite/tests/lib-pqueue/test.ml (diff) The file was modified stdlib/.depend (diff) The file was modified Changes (diff) The file was modified .gitattributes (diff) The file was modified Changes (diff) The file was modified stdlib/string.ml (diff) The file was modified stdlib/uchar.mli (diff) The file was modified stdlib/uchar.ml (diff) The file was modified testsuite/tests/lib-uchar/test.ml (diff) The file was modified stdlib/uchar.mli (diff) The file was modified runtime/sys.c (diff) The file was modified stdlib/sys.ml.in (diff) The file was modified Changes (diff) The file was modified Changes (diff) The file was modified testsuite/tests/typing-misc/constraints.ml (diff) The file was modified Changes (diff) The file was modified typing/typetexp.ml (diff) The file was modified Changes (diff) The file was modified testsuite/tests/typing-misc/constraints.ml (diff) The file was modified testsuite/tests/typing-misc/pr6939-no-flat-float-array.ml (diff) The file was modified manual/src/macros.tex (diff) The file was modified api_docgen/Ocaml_operators.mld (diff) The file was modified typing/types.ml (diff) The file was modified configure (diff) The file was modified utils/config.generated.ml.in (diff) The file was modified configure.ac (diff) The file was modified Makefile.config.in (diff) The file was modified ocamltest/ocamltest_config.ml.in (diff) The file was modified configure.ac (diff) The file was modified configure (diff)
Commit
cd18b1bef1bae1f63b66bad7d18c345c76702820
by antonin Update AX_PROG_CC_FOR_BUILD to rev 26 The AX_PROG_CC_FOR_BUILD macro has fixes from revision 21 to 26 that are needed, or it would overwrite OBJEXT and EXEEXT with BUILD_OBJEXT and BUILD_EXEEXT without defining the latter. The file was modified configure (diff) The file was modified build-aux/ax_prog_cc_for_build.m4 (diff) The file was modified configure (diff) The file was modified configure.ac (diff)
Commit
041937c701aeac03be6a203391987be1763de7d2
by antonin Fix sak build not using the proper build compiler invocation sak doesn't need separate compilation and linking stages, and this avoids adding build-specific variables to the Makefiles. Co-authored-by: shym <samuel@tarides.com> The file was modified Makefile.build_config.in (diff) The file was modified configure.ac (diff) The file was modified configure (diff) The file was modified .github/workflows/build-cross.yml (diff) The file was modified Makefile (diff) The file was modified Changes (diff) The file was modified Makefile.common (diff)
Commit
7ed394b8dc3f1befdc4883f88e2ae311567409ae
by matthewelse1997 Add support for unaligned accesses on arm64 As discussed in #13631, the decision not to support unaligned accesses on arm64 was made before any hardware was available, and in practice all ARMv8 CPUs support unaligned accesses. The file was modified Changes (diff) The file was modified asmcomp/arm64/arch.ml (diff)
Commit
41d0c6009b27935109345f4491aae514f624bb3f
by noreply Expose a way to get current timestamp in runtime events (#13785) It's useful to be able to access the current timestamp, to be able to correlate timestamps from the event buffer with other time sources such as `mtime` or `ptime`. Co-authored-by: David Allsopp <david.allsopp@metastack.com> The file was modified runtime/caml/osdeps.h (diff) The file was added testsuite/tests/lib-runtime-events/test_timestamp_monotonic.ml The file was modified otherlibs/runtime_events/runtime_events_consumer.c (diff) The file was modified otherlibs/runtime_events/runtime_events.mli (diff) The file was modified otherlibs/runtime_events/runtime_events.ml (diff) The file was modified Changes (diff) The file was modified typing/typetexp.ml (diff) The file was modified Changes (diff) The file was modified testsuite/tests/typing-misc/typetexp_errors.ml (diff) The file was modified typing/typetexp.ml (diff) The file was modified Changes (diff) The file was modified parsing/ast_helper.mli (diff) The file was modified parsing/ast_mapper.ml (diff) The file was modified parsing/ast_helper.ml (diff) The file was modified typing/untypeast.ml (diff) The file was modified parsing/parsetree.mli (diff) The file was modified testsuite/tests/parsing/shortcut_ext_attr.compilers.reference (diff) The file was modified typing/typetexp.ml (diff) The file was modified parsing/ast_iterator.mli (diff) The file was modified parsing/ast_iterator.ml (diff) The file was modified testsuite/tests/parsetree/locations_test.compilers.reference (diff) The file was modified boot/menhir/parser.ml (diff) The file was modified parsing/parser.mly (diff) The file was modified testsuite/tests/parsing/attributes.compilers.reference (diff) The file was modified parsing/pprintast.ml (diff) The file was modified testsuite/tests/typing-modules/package_constraint.ml (diff) The file was modified parsing/ast_mapper.mli (diff) The file was modified parsing/printast.ml (diff) The file was modified parsing/ast_invariants.ml (diff) The file was modified parsing/depend.ml (diff) The file was modified typing/untypeast.ml (diff) The file was modified parsing/depend.ml (diff) The file was modified typing/typecore.ml (diff) The file was modified boot/menhir/parser.ml (diff) The file was modified parsing/ast_helper.mli (diff) The file was modified parsing/parsetree.mli (diff) The file was modified testsuite/tests/parsing/attributes.compilers.reference (diff) The file was modified tools/ocamlprof.ml (diff) The file was modified parsing/parser.mly (diff) The file was modified parsing/ast_iterator.ml (diff) The file was modified parsing/ast_helper.ml (diff) The file was modified parsing/pprintast.ml (diff) The file was modified parsing/printast.ml (diff) The file was modified parsing/ast_mapper.ml (diff) The file was modified typing/typecore.ml (diff) The file was modified testsuite/tests/typing-modules/firstclass.ml (diff) The file was modified Changes (diff) The file was modified typing/typemod.ml (diff) The file was modified Changes (diff) The file was modified testsuite/tests/typing-modules/package_constraint.ml (diff) The file was modified testsuite/tests/messages/spellcheck.ml (diff) The file was modified utils/misc.mli (diff) The file was modified utils/misc.ml (diff) The file was modified typing/typetexp.ml (diff) The file was modified Changes (diff) The file was modified typing/env.ml (diff) The file was modified tools/check-typo (diff)
Commit
0c5ae452e490d5dfde0d611f21da8fd47712affb
by thevoodoos Attach new locs to `Ldot` and `Lapply` nodes instead of `Lident` nodes. Parser changes. Requires bootstrap. Co-authored-by: Jules Aguillon <jules@j3s.fr> Suggested-by: Florian Angeletti <florian.angeletti@inria.fr> The file was modified typing/typeclass.ml (diff) The file was modified boot/menhir/menhirLib.mli (diff) The file was modified parsing/ast_mapper.ml (diff) The file was modified .depend (diff) The file was modified toplevel/byte/trace.ml (diff) The file was modified typing/printtyped.ml (diff) The file was modified debugger/debugger_parser.mly (diff) The file was modified typing/untypeast.ml (diff) The file was modified typing/typemod.ml (diff) The file was modified typing/tast_iterator.ml (diff) The file was modified typing/gprinttyp.ml (diff) The file was modified parsing/depend.ml (diff) The file was modified ocamldoc/odoc_misc.ml (diff) The file was modified toplevel/topdirs.ml (diff) The file was modified typing/out_type.ml (diff) The file was modified parsing/longident.ml (diff) The file was modified parsing/parser.mly (diff) The file was modified toplevel/genprintval.ml (diff) The file was modified typing/tast_mapper.ml (diff) The file was modified parsing/printast.ml (diff) The file was modified typing/ctype.ml (diff) The file was modified parsing/longident.mli (diff) The file was modified boot/menhir/menhirLib.ml (diff) The file was modified typing/typecore.ml (diff) The file was modified parsing/pprintast.ml (diff) The file was modified lambda/lambda.ml (diff) The file was modified parsing/ast_invariants.ml (diff) The file was modified boot/menhir/parser.ml (diff) The file was modified parsing/ast_iterator.ml (diff) The file was modified typing/env.ml (diff) The file was modified parsing/pprintast.ml (diff) The file was modified parsing/longident.mli (diff) The file was modified typing/typecore.ml (diff) The file was modified typing/ctype.ml (diff) The file was modified parsing/longident.ml (diff) The file was modified typing/typetexp.ml (diff) The file was modified typing/out_type.ml (diff) The file was modified typing/gprinttyp.ml (diff) The file was modified typing/typecore.mli (diff) The file was modified typing/types.ml (diff) The file was modified typing/out_type.ml (diff) The file was modified typing/typemod.mli (diff) The file was modified typing/types.mli (diff) The file was modified typing/ctype.ml (diff) The file was modified typing/rawprinttyp.ml (diff) The file was modified typing/ctype.mli (diff) The file was modified typing/typemod.ml (diff) The file was modified typing/typetexp.ml (diff) The file was modified .depend (diff) The file was modified Changes (diff) The file was modified testsuite/tests/typing-modules/pr7851.ml (diff) The file was modified testsuite/tests/hidden_includes/hidden_stays_hidden.ocamlc.reference (diff) The file was modified testsuite/tests/typing-modules/functors.ml (diff) The file was modified testsuite/tests/typing-objects/pr6383.ml (diff) The file was modified testsuite/tests/typing-recmod/pr6491.ml (diff) The file was modified testsuite/tests/typing-misc/records.ml (diff) The file was modified testsuite/tests/typing-modules/Test.ml (diff) The file was modified testsuite/tests/warnings/deprecated_module.compilers.reference (diff) The file was modified testsuite/tests/typing-misc/injectivity.ml (diff) The file was modified testsuite/tests/typing-modules/pr7726.ml (diff) The file was modified testsuite/tests/parsing/illegal_ppx.ml (diff) The file was modified testsuite/tests/typing-modules/pr7207.ml (diff) The file was modified testsuite/tests/typing-modules/pr6633.ml (diff) The file was modified testsuite/tests/typing-sigsubst/sig_local_aliases.ml (diff) The file was modified testsuite/tests/warnings/deprecated_module_use.compilers.reference (diff) The file was modified testsuite/tests/hidden_includes/cant_reference_hidden.ocamlc.reference (diff) The file was modified testsuite/tests/typing-modules/applicative_functor_type.ml (diff) The file was modified testsuite/tests/compiler-libs/test_longident.ml (diff) The file was modified testsuite/tests/basic/unit_naming.compilers.reference (diff) The file was modified boot/ocamlc (diff) The file was modified boot/ocamllex (diff) The file was modified testsuite/tests/compiler-libs/test_longident.ml (diff)
Commit
828b92d0b12591aa51cdedb1b66059428ec7dd63
by Florian Angeletti stdlib: add a format_text function for text-like format strings this functions replaces spaces and newlines ([' '] and ['\n']) by Format formatting hints in format string literals. This make it easier to mix free-flowing text with [Printf] specifiers, boxes and tags. The file was modified stdlib/format.ml (diff) The file was modified stdlib/format.mli (diff) The file was modified stdlib/camlinternalFormatBasics.ml (diff) The file was modified stdlib/camlinternalFormatBasics.mli (diff) The file was added testsuite/tests/lib-format/format_text.ml The file was modified testsuite/tests/lib-format/format_text.ml (diff) The file was modified stdlib/format.ml (diff) The file was modified stdlib/format.mli (diff) The file was modified stdlib/format.mli (diff) The file was modified stdlib/format.ml (diff) The file was modified Changes (diff) The file was modified stdlib/format.mli (diff) The file was modified stdlib/format.ml (diff) The file was modified Changes (diff) The file was modified typing/tast_iterator.ml (diff) The file was modified parsing/ast_iterator.ml (diff)
Commit
175f59e684688502bdcaa6b1a0407ea06c42cbf2
by antonin Light refactor of caml_unix_random_seed - use the buffer size instead of a magic constant; - remove unused _WIN32 guards around getpid/getppid, Windows has its own caml_win32_random_seed. The file was modified runtime/sys.c (diff) The file was modified Changes (diff) The file was modified runtime/win32.c (diff) The file was modified stdlib/random.mli (diff) The file was modified testsuite/tests/typing-warnings/unused_types.ml (diff) The file was modified typing/typetexp.ml (diff) The file was modified Changes (diff) The file was modified .depend (diff) The file was modified testsuite/tests/typing-warnings/unused_types.ml (diff) The file was modified typing/typetexp.ml (diff) The file was modified typing/typetexp.ml (diff) The file was modified testsuite/tests/typing-warnings/unused_types.ml (diff) The file was modified utils/warnings.mli (diff) The file was modified typing/typedecl.ml (diff) The file was modified utils/warnings.ml (diff) The file was modified typing/env.ml (diff) The file was modified typing/typetexp.ml (diff) The file was modified runtime/caml/misc.h (diff) The file was modified otherlibs/systhreads/thread.mli (diff) The file was modified otherlibs/systhreads/st_stubs.c (diff) The file was modified runtime/misc.c (diff) The file was modified runtime/runtime_events.c (diff) The file was modified Changes (diff)
Commit
d608d2be2b9232bd4abbdd6c958189ac379f0eb1
by noreply Avoid re-marking ephemerons with trivial data (#13827) In general, ephemerons may need to be marked more than once, if new marking has occurred since ephemeron marking began. This patch optimises this logic: re-marking is never necessary if the data field of the ephemeron is trivial. This optimisation was present in OCaml 4, and is important for Stdlib.Weak, which only uses ephemerons with trivial data. The file was modified Changes (diff) The file was modified runtime/major_gc.c (diff) The file was modified runtime/minor_gc.c (diff) The file was modified runtime/weak.c (diff) The file was added testsuite/tests/weak-ephe-final/weak_array_par.reference The file was modified Changes (diff) The file was modified runtime/shared_heap.c (diff) The file was modified runtime/caml/weak.h (diff) The file was modified runtime/caml/runtime_events.h (diff) The file was modified runtime/caml/minor_gc.h (diff) The file was modified runtime/major_gc.c (diff) The file was added testsuite/tests/weak-ephe-final/weak_array_par.ml The file was modified runtime/minor_gc.c (diff) The file was modified runtime/minor_gc.c (diff) The file was modified runtime/minor_gc.c (diff)
Commit
bf28aea732543de4534b81c75a16ddc9b91ae5a6
by noreply Skip running native debugger tests when TSan is enabled. (#13816) Using TSan adds extra frames into backtraces as part of the design of this feature. For now disable these tests with TSan, it would be possible in future to modify these tests to handle this combination. The file was modified testsuite/tests/native-debugger/linux-gdb-riscv.ml (diff) The file was modified testsuite/tests/native-debugger/macos-lldb-amd64.ml (diff) The file was modified testsuite/tests/native-debugger/linux-gdb-amd64.ml (diff) The file was modified testsuite/tests/native-debugger/linux-gdb-arm64.ml (diff) The file was modified testsuite/tests/native-debugger/linux-lldb-amd64.ml (diff) The file was modified testsuite/tests/native-debugger/macos-lldb-arm64.ml (diff) The file was modified testsuite/tests/native-debugger/linux-lldb-arm64.ml (diff) The file was modified lambda/translobj.mli (diff) The file was modified lambda/translobj.ml (diff) The file was modified lambda/translmod.ml (diff) The file was modified parsing/parsetree.mli (diff) The file was modified typing/typetexp.ml (diff) The file was modified testsuite/tests/messages/highlight_tabs.ml (diff) The file was modified testsuite/tests/typing-misc/printing.ml (diff) The file was modified testsuite/tests/messages/spellcheck.ml (diff) The file was modified testsuite/tests/typing-misc/typetexp_errors.ml (diff) The file was modified typing/typecore.ml (diff) The file was modified testsuite/tests/typing-modules/pr6633.ml (diff) The file was modified testsuite/tests/typing-misc/records.ml (diff) The file was modified testsuite/tests/typing-core-bugs/missing_rec_hint.ml (diff) The file was modified testsuite/tests/typing-extensions/disambiguation.ml (diff) The file was modified testsuite/tests/typing-core-bugs/repeated_did_you_mean.ml (diff) The file was modified utils/misc.ml (diff) The file was modified testsuite/tests/typing-misc/polyvars.ml (diff) The file was modified testsuite/tests/typing-warnings/records.ml (diff) The file was modified toplevel/topcommon.ml (diff) The file was modified typing/env.ml (diff) The file was modified testsuite/tests/typing-labeled-tuples/labeled_tuples.ml (diff) The file was modified testsuite/tests/typing-sigsubst/sig_local_aliases.ml (diff) The file was modified utils/misc.mli (diff) The file was modified toplevel/topcommon.ml (diff) The file was modified typing/env.ml (diff) The file was modified typing/typecore.ml (diff) The file was modified typing/typetexp.ml (diff) The file was modified utils/misc.mli (diff) The file was modified utils/misc.ml (diff) The file was modified utils/format_doc.mli (diff) The file was modified typing/typetexp.ml (diff) The file was modified testsuite/tests/messages/spellcheck.ml (diff) The file was modified toplevel/topcommon.ml (diff) The file was modified typing/env.ml (diff) The file was modified typing/typecore.ml (diff) The file was modified utils/format_doc.ml (diff) The file was modified utils/misc.mli (diff) The file was modified utils/misc.ml (diff) The file was modified typing/typetexp.ml (diff) The file was modified typing/env.ml (diff) The file was modified typing/typecore.ml (diff) The file was modified toplevel/topcommon.ml (diff) The file was modified utils/misc.ml (diff) The file was modified utils/misc.mli (diff) The file was modified .github/workflows/build.yml (diff) The file was modified .github/workflows/tsan.yml (diff) The file was modified .github/workflows/build-cross.yml (diff) The file was modified utils/format_doc.ml (diff) The file was modified typing/typetexp.ml (diff) The file was modified typing/env.ml (diff) The file was modified utils/misc.mli (diff) The file was modified toplevel/topcommon.ml (diff) The file was modified typing/typecore.ml (diff) The file was modified utils/misc.ml (diff) The file was modified Changes (diff) The file was modified utils/misc.mli (diff) The file was modified testsuite/tests/compiler-libs/test_untypeast.ml (diff) The file was modified testsuite/tests/compiler-libs/test_untypeast.ml (diff) The file was modified typing/untypeast.ml (diff) The file was modified parsing/printast.mli (diff) The file was added stdlib/dune_support/dune The file was modified stdlib/dune (diff) The file was added stdlib/dune_support/new_predef_types.mli The file was modified typing/untypeast.ml (diff) The file was modified testsuite/tests/compiler-libs/test_untypeast.ml (diff) The file was modified Changes (diff) The file was modified typing/printtyped.ml (diff) The file was modified manual/src/cmds/intf-c.etex (diff) The file was modified parsing/location.mli (diff) The file was modified parsing/parser.mly (diff) The file was modified manual/src/cmds/intf-c.etex (diff)
Commit
91d3075f98f2b6c7b6f111ec0bc5d49120fbff14
by josh Fix Weak.get_copy not darkening custom blocks This PR changes `ephe_get_field_copy` to darken the value it returns if it is a custom block. While looking at PRs related to ephemerons I noticed a suspicious code path in `ephe_get_field_copy`. So far I have not managed to trigger a crash, but figured I would send this PR for feedback anyhow. The scenario that worries me is if `ephe_get_field_copy` is called with a value that is not `caml_ephe_none` and is a custom block. In this case, a `Some` block will be allocated to wrap it, and returned. So the argument custom block value will be returned without being copied nor darkened. If `ephe_get_field` were called, it would be darkened. It makes sense that custom blocks are not copied, to avoid issues with calling finalizers multiple times. But I can not see how it is safe to not darken the returned value. Looking at the history, when custom blocks stopped being copied, they were darkened: https://github.com/ocaml/ocaml/pull/710 Unrelated but in the same code, `ephe_get_field_copy` has a retry loop to protect against an allocation changing the tag or size of the value it is being asked to copy. Isn't changing tags or sizes no longer possible with the ocaml 5 runtime? But I'm unsure about `Forward_tag` values. Signed-off-by: Josh Berdine <josh@berdine.net> The file was modified Changes (diff) The file was modified runtime/weak.c (diff) The file was modified manual/src/cmds/intf-c.etex (diff) The file was modified runtime/callback.c (diff) The file was modified stdlib/float.ml (diff) The file was modified stdlib/float.ml (diff)
Commit
e610c443732841b6b3a285c29e823f42bbd9502f
by noreply Index all paths components (#13848) Now that we have locations for all longident components, we can add these to the index for tools to be able to provide project-wide occurrences and renaming of these modules. The file was modified Changes (diff) The file was modified testsuite/tests/shape-index/index_functor.reference (diff) The file was modified testsuite/tests/shape-index/index.reference (diff) The file was modified testsuite/tests/shape-index/index_aliases.reference (diff) The file was modified testsuite/tests/shape-index/index_constrs.reference (diff) The file was modified file_formats/cmt_format.ml (diff) The file was modified testsuite/tests/shape-index/index_modules.reference (diff) The file was modified testsuite/tests/shape-index/index_bindingops.reference (diff) The file was modified testsuite/tests/shape-index/index.ml (diff) The file was modified testsuite/tests/shape-index/index_constrs_records.reference (diff)
Commit
2038290d90f1608756244be1d6ac7e0e093db98e
by noreply Add `[Float.]Array.{equal.compare}` (#13836) * Add [Float.]Array.{equal,compare}. * Array.equal: do not implement it with an exception. * Array.compare: while cosmetics. * Alternate implementation of Array.compare. * Array.compare docstring: remove reference to List.compare. * Update changes. * Array.compare: more test cases for normalization. The file was modified stdlib/float.mli (diff) The file was modified stdlib/float.ml (diff) The file was modified Changes (diff) The file was modified stdlib/arrayLabels.mli (diff) The file was modified stdlib/array.ml (diff) The file was modified stdlib/array.mli (diff) The file was modified testsuite/tests/lib-array/test_array.ml (diff) The file was modified stdlib/templates/floatarraylabeled.template.mli (diff) The file was modified Changes (diff) The file was modified stdlib/.depend (diff) The file was modified testsuite/tests/backtrace/pr2195-locs.byte.reference (diff) The file was modified Changes (diff) The file was modified stdlib/StdlibModules (diff) The file was added stdlib/repr.mli The file was modified manual/src/library/stdlib-blurb.etex (diff) The file was modified testsuite/tests/backtrace/pr2195.opt.reference (diff) The file was modified stdlib/stdlib.ml (diff) The file was modified stdlib/stdlib.mli (diff) The file was added stdlib/repr.ml The file was modified Changes (diff) The file was added testsuite/tests/weak-ephe-final/ephe_custom.ml The file was added testsuite/tests/weak-ephe-final/ephe_custom.reference
Commit
ce90c353e353f0f1b4abdf7ea5db508253248920
by noreply Add pointer to ocamltest docs from testsuite/HACKING.md (#13869) I would have found this useful, since the special treatment of the `(* TEST *)` comment in new test was not apparent. Signed-off-by: Josh Berdine <josh@berdine.net> The file was modified testsuite/HACKING.adoc (diff) The file was modified typing/typemod.ml (diff) The file was modified parsing/asttypes.mli (diff) The file was modified parsing/pprintast.ml (diff) The file was modified Changes (diff) The file was modified utils/clflags.mli (diff) The file was modified driver/main_args.ml (diff) The file was modified typing/out_type.ml (diff) The file was modified typing/types.ml (diff) The file was modified utils/clflags.ml (diff) The file was modified driver/main_args.mli (diff) The file was modified typing/typedecl_variance.ml (diff) The file was modified parsing/asttypes.ml (diff) The file was modified typing/oprint.ml (diff) The file was modified parsing/parser.mly (diff) The file was modified boot/menhir/parser.ml (diff) The file was modified testsuite/tests/typing-misc/constraints.ml (diff) The file was modified testsuite/tests/typing-misc/injectivity.ml (diff) The file was modified testsuite/tests/typing-misc/variance.ml (diff) The file was modified testsuite/tests/shape-index/index_aliases.reference (diff) The file was modified testsuite/tests/shape-index/index.reference (diff) The file was modified typing/shape_reduce.ml (diff) The file was modified testsuite/tests/shape-index/index_functor.reference (diff) The file was modified typing/shape_reduce.ml (diff) The file was modified testsuite/tests/shape-index/index_functor.reference (diff) The file was modified testsuite/tests/shape-index/index_types.reference (diff) The file was modified testsuite/tests/shape-index/index_aliases.reference (diff) The file was modified testsuite/tests/shape-index/index_labels.reference (diff) The file was modified testsuite/tests/shape-index/index.reference (diff) The file was modified testsuite/tests/shape-index/index_vb.reference (diff) The file was modified testsuite/tests/shape-index/index_constrs.reference (diff) The file was modified testsuite/tests/shape-index/index_objects.reference (diff) The file was modified testsuite/tests/shape-index/index_constrs_records.reference (diff) The file was modified testsuite/tests/shape-index/index_bindingops.reference (diff) The file was modified testsuite/tests/shape-index/index_modules.reference (diff) The file was modified ocamldoc/odoc_latex.mli (diff) The file was modified ocamldoc/odoc_args.ml (diff) The file was modified ocamldoc/odoc_latex.ml (diff) The file was modified manual/src/cmds/unified-options.etex (diff) The file was modified api_docgen/ocamldoc/Makefile (diff) The file was modified manual/src/library/compilerlibs.etex (diff) The file was modified manual/tests/check-stdlib-modules (diff) The file was modified manual/src/library/stdlib-blurb.etex (diff) The file was modified testsuite/tests/lib-unix/common/cloexec.ml (diff) The file was modified testsuite/tests/lib-unix/common/fdstatus_main.ml (diff) The file was modified testsuite/tests/lib-unix/common/cloexec.ml (diff) The file was modified testsuite/tests/lib-unix/common/fdstatus_aux.c (diff)
Commit
8d5175fe298efc2215dcba1015bd1dc7ea8e39e4
by david.allsopp Add not-target-windows ocamltest action The windows / not-windows tests catch Cygwin as well (since Cygwin runs on Windows). not-target-windows passes as long the compiler targets neither MSVC nor mingw-w64. The file was modified ocamltest/ocamltest_config.mli (diff) The file was modified ocamltest/ocamltest_config.ml.in (diff) The file was modified ocamltest/builtin_actions.ml (diff)
Commit
9edc8660342bccb712ef16a00db32b8905d6a688
by david.allsopp Test Unix.create_process as well Ensures that both Unix.create_process (using posix_spawn, when available) and Unix.execve are correctly doing cloexec. At present, test disabled on Windows, because Unix.create_process needs reimplementing in terms of MSVC's spawn primitive (in order to inherit fds correctly). The file was modified testsuite/tests/lib-unix/common/cloexec.ml (diff) The file was modified testsuite/tests/lib-unix/common/fdstatus_main.ml (diff) The file was modified testsuite/tests/lib-systhreads/eintr.ml (diff) The file was modified testsuite/tests/lib-unix/common/fork_cleanup_systhreads.ml (diff) The file was modified testsuite/tests/lib-systhreads/testpreempt.ml (diff) The file was modified testsuite/tests/lib-systhreads/testyield.ml (diff) The file was modified testsuite/tests/hidden_includes/test.ml (diff) The file was modified testsuite/tests/lib-unix/common/fork_cleanup.ml (diff) The file was modified testsuite/tests/lib-unix/common/multicore_fork_domain_alone.ml (diff) The file was modified testsuite/tests/lib-unix/common/multicore_fork_domain_alone2.ml (diff) The file was modified testsuite/tests/parallel/catch_break.ml (diff) The file was modified testsuite/tests/lib-systhreads/threadsigmask.ml (diff) The file was modified testsuite/tests/callback/signals_alloc.ml (diff) The file was modified testsuite/tests/lib-runtime-events/test_user_event_signal.ml (diff) The file was modified testsuite/tests/lib-unix/common/sigwait.ml (diff) The file was modified testsuite/tests/lib-threads/delayintr.ml (diff) The file was modified testsuite/tests/lib-unix/kill/unix_kill.ml (diff) The file was modified testsuite/tests/lib-runtime-events/test_external.ml (diff) The file was modified testsuite/tests/lib-runtime-events/test_external_preserve.ml (diff) The file was modified testsuite/tests/lib-threads/sockets.ml (diff) The file was modified testsuite/tests/lib-systhreads/testfork2.ml (diff) The file was modified testsuite/tests/lib-runtime-events/test_fork.ml (diff) The file was modified testsuite/tests/lib-systhreads/testfork.ml (diff) The file was modified testsuite/tests/lib-threads/signal.ml (diff) The file was modified testsuite/tests/lib-runtime-events/test_corrupted.ml (diff) The file was modified testsuite/tests/lib-runtime-events/test_user_event_unknown.ml (diff) The file was modified testsuite/tests/callback/test_signalhandler.ml (diff) The file was modified testsuite/tests/lib-unix/win-env/test_env.ml (diff) The file was modified testsuite/tests/lib-unix/win-symlink/parallel_symlink.ml (diff) The file was modified testsuite/tests/lib-unix/win-socketpair/test.ml (diff) The file was modified testsuite/tests/lib-unix/win-stat/test.ml (diff) The file was modified testsuite/tests/lib-unix/win-channel-of/parallel_channel_of.ml (diff) The file was modified testsuite/tests/lib-unix/isatty/isatty_tty.ml (diff) The file was modified ocamltest/builtin_actions.ml (diff) The file was modified testsuite/tests/lib-unix/win-createprocess/test.ml (diff) The file was modified testsuite/tests/lib-unix/win-symlink/test.ml (diff) The file was modified testsuite/tests/runtime-errors/syserror.ml (diff)
Commit
998bf6443b38a31bceae6be06a88939661d41d95
by noreply error messsages: convert most hints to submessage (#13838) This commit * converts most hints in error messages to separate submessages * removes some non-modular boxing * inlines grammatical contents in format strings in order to improve the indentation of such hints and pave the way to reunifying the error and warning formats for compiler report. The file was modified testsuite/tests/typing-modules/pr6633.ml (diff) The file was modified typing/typedecl.ml (diff) The file was modified typing/typetexp.mli (diff) The file was modified testsuite/tests/typing-extensions/iarray.ml (diff) The file was modified testsuite/tests/tool-toplevel/error_highlighting.compilers.reference (diff) The file was modified testsuite/tests/let-syntax/let_syntax.ml (diff) The file was modified testsuite/tests/typing-core-bugs/type_expected_explanation.ml (diff) The file was modified testsuite/tests/typing-warnings/application.ml (diff) The file was modified testsuite/tests/warnings/w44.ml (diff) The file was modified typing/env.ml (diff) The file was modified parsing/lexer.mll (diff) The file was modified Changes (diff) The file was modified testsuite/tests/typing-gadts/syntactic-arity.ml (diff) The file was modified testsuite/tests/formatting/errors_batch.reference (diff) The file was modified typing/typemod.ml (diff) The file was modified typing/typedecl.mli (diff) The file was modified utils/misc.mli (diff) The file was modified typing/typecore.ml (diff) The file was modified testsuite/tests/typing-objects/Tests.ml (diff) The file was modified typing/env.mli (diff) The file was modified typing/includemod_errorprinter.ml (diff) The file was modified testsuite/tests/typing-misc/typecore_nolabel_errors.ml (diff) The file was modified testsuite/tests/generated-parse-errors/errors.compilers.reference (diff) The file was modified parsing/parse.ml (diff) The file was modified typing/includecore.ml (diff) The file was modified typing/typetexp.ml (diff) The file was modified parsing/location.mli (diff) The file was modified testsuite/tests/typing-private/invalid_private_row.ml (diff) The file was modified .depend (diff) The file was modified parsing/location.ml (diff) The file was modified testsuite/tests/typing-misc/typetexp_errors.ml (diff) The file was modified utils/misc.ml (diff) The file was modified testsuite/tests/typing-core-bugs/const_int_hint.ml (diff) The file was modified testsuite/tests/lib-unix/common/cloexec.ml (diff) The file was modified Changes (diff) The file was modified Changes (diff) The file was modified asmcomp/cmmgen.ml (diff) The file was modified asmcomp/afl_instrument.ml (diff) The file was modified asmcomp/cmm_invariants.ml (diff) The file was modified asmcomp/cmm.mli (diff) The file was modified asmcomp/cmm.ml (diff) The file was modified asmcomp/selectgen.ml (diff) The file was modified asmcomp/cmm_helpers.ml (diff) The file was modified asmcomp/thread_sanitizer.ml (diff) The file was modified .depend (diff) The file was modified asmcomp/printcmm.ml (diff) The file was modified testsuite/tools/parsecmm.mly (diff) The file was modified testsuite/tools/parsecmmaux.ml (diff) The file was modified testsuite/tools/parsecmmaux.mli (diff) The file was modified asmcomp/cmm_invariants.ml (diff) The file was modified asmcomp/cmm_helpers.mli (diff) The file was modified asmcomp/cmmgen.ml (diff) The file was modified asmcomp/cmm_helpers.ml (diff) The file was added testsuite/tests/basic/eval_order_9.ml The file was added testsuite/tests/asmcomp/issue13875.ml The file was added testsuite/tests/basic/eval_order_9.reference
Commit
af77a8a93225081ce833ea0417c147b7ce93094e
by noreply Make object stat counters atomic (#13880) In a codebase where a lot of object were being created in parallel, thread sanitizer reported races, which seem to be from these counters. The file was modified stdlib/camlinternalOO.ml (diff) The file was modified Changes (diff) The file was modified stdlib/.depend (diff)
Commit
979ce41050ddaf772cd1f372b571b924d35a4325
by noreply Use a dedicated primitive for Lazy blocks (#13867) Lazy blocks are very special, in that a value bound to a lazy block may, at any moment, completely change its shape (it could become an immediate, or any other kind of value). By splitting these blocks from the regular blocks, we allow the middle-end to assume that any Pmakeblock behaves as a normal block, making all related optimisations safer. In passing, this also fixes an issue with Forward blocks in recursive definitions. The file was modified lambda/translcore.ml (diff) The file was modified lambda/translprim.ml (diff) The file was modified lambda/value_rec_compiler.ml (diff) The file was added testsuite/tests/lazy/lazy9.reference The file was modified middle_end/clambda_primitives.ml (diff) The file was modified middle_end/flambda/inlining_cost.ml (diff) The file was added testsuite/tests/lazy/lazy10.ml The file was modified lambda/lambda.mli (diff) The file was modified lambda/printlambda.ml (diff) The file was modified middle_end/closure/closure.ml (diff) The file was modified middle_end/internal_variable_names.ml (diff) The file was added testsuite/tests/lazy/lazy10.reference The file was modified lambda/lambda.ml (diff) The file was modified middle_end/printclambda_primitives.ml (diff) The file was modified middle_end/convert_primitives.ml (diff) The file was modified middle_end/semantics_of_primitives.ml (diff) The file was added testsuite/tests/lazy/lazy9.ml The file was modified Changes (diff) The file was modified lambda/tmc.ml (diff) The file was modified .depend (diff) The file was modified middle_end/clambda_primitives.mli (diff) The file was modified asmcomp/cmmgen.ml (diff) The file was modified bytecomp/bytegen.ml (diff) The file was modified testsuite/tests/lib-dynarray/test.ml (diff) The file was modified stdlib/dynarray.mli (diff) The file was modified Changes (diff) The file was modified stdlib/dynarray.ml (diff) The file was modified .mailmap (diff) The file was modified Changes (diff) The file was modified typing/ctype.ml (diff) The file was modified typing/types.ml (diff) The file was modified typing/typemod.ml (diff) The file was modified typing/typedecl_separability.ml (diff) The file was modified typing/out_type.ml (diff) The file was modified typing/rawprinttyp.ml (diff) The file was modified ocamldoc/odoc_env.ml (diff) The file was modified typing/btype.ml (diff) The file was modified typing/types.mli (diff) The file was modified typing/typedecl_variance.ml (diff) The file was modified typing/subst.ml (diff) The file was modified typing/typecore.ml (diff) The file was modified typing/typetexp.ml (diff) The file was modified typing/ctype.ml (diff) The file was modified typing/gprinttyp.ml (diff) The file was modified typing/types.mli (diff) The file was modified typing/types.ml (diff) The file was modified boot/ocamlc (diff) The file was modified boot/ocamllex (diff) The file was modified typing/ctype.ml (diff) The file was modified typing/ctype.ml (diff) The file was modified typing/ctype.mli (diff) The file was modified typing/typemod.ml (diff) The file was modified typing/ctype.ml (diff) The file was modified typing/ctype.ml (diff) The file was modified typing/ctype.ml (diff) The file was modified typing/ctype.ml (diff) The file was modified typing/typecore.ml (diff) The file was modified typing/typemod.ml (diff) The file was modified typing/typecore.mli (diff) The file was modified typing/gprinttyp.ml (diff) The file was modified typing/ctype.ml (diff) The file was modified typing/typemod.mli (diff) The file was modified typing/typemod.ml (diff) The file was modified typing/oprint.ml (diff) The file was modified typing/out_type.ml (diff) The file was modified typing/outcometree.mli (diff) The file was modified Changes (diff) The file was modified typing/typetexp.ml (diff) The file was modified typing/typedtree.ml (diff) The file was modified typing/printtyped.ml (diff) The file was modified typing/tast_mapper.ml (diff) The file was modified typing/typedtree.mli (diff) The file was modified typing/untypeast.ml (diff) The file was modified typing/tast_iterator.ml (diff) The file was modified typing/untypeast.ml (diff) The file was modified typing/typemod.ml (diff) The file was modified typing/printtyped.ml (diff) The file was modified typing/typedtree.mli (diff) The file was modified typing/typetexp.ml (diff) The file was modified typing/tast_iterator.ml (diff) The file was modified typing/tast_mapper.ml (diff) The file was modified typing/typedtree.ml (diff) The file was modified file_formats/cmt_format.ml (diff) The file was modified typing/ctype.ml (diff)
Commit
97b72fbc9846e6e27f89aa1bef5a871b413932b6
by noreply #13702 error messages: specialized error messages for non-functors (#13865) This commit adds a specialized error message for functor appearing in a context where non-functors were expected (and reciprocally) rather than using the generic error message for mismatched functor parameters. The file was modified Changes (diff) The file was modified typing/includemod.ml (diff) The file was modified testsuite/tests/typing-modules/functors.ml (diff) The file was modified typing/includemod.mli (diff) The file was modified typing/includemod_errorprinter.ml (diff) The file was modified Changes (diff)
Commit
f26e623319eb1548d7e62003a5af71c2fcd668cf
by antonin gitignore: ignore macOS executable debug symbols directory When an executable is linked using the -g flag, a directory for debug symbols is created under macOS. It's only appearing for sak, and creates noise with git status. Ignore it. The file was modified .gitignore (diff) The file was modified typing/ctype.mli (diff) The file was modified typing/ctype.ml (diff) The file was modified typing/ctype.ml (diff) The file was modified Changes (diff) The file was modified typing/ctype.ml (diff) The file was modified testsuite/tests/shape-index/index_constrs_records.reference (diff) The file was modified testsuite/tests/shape-index/index_constrs_records.ml (diff)
Commit
46a22fe69b40139e2ba6262f864deef5c13e8df3
by thevoodoos Use `Pextra_ty` for specific shape paths and correctly index modules in these. This makes the handling of the custom cases when resolving shape paths less ad-hoc and fixes shape resolution for modules in constructor and labels paths. Suggested-by: Florian Angeletti <florian.angeletti@inria.fr> Refactor and add apply case Introduce a [scrape_extra_ty] function The file was modified testsuite/tests/shape-index/index_constrs_records.reference (diff) The file was modified file_formats/cmt_format.ml (diff) The file was modified typing/path.mli (diff) The file was modified typing/path.ml (diff) The file was modified typing/shape.ml (diff) The file was modified Changes (diff)
Commit
92e54c4c5a62bf6e7cffb5a94e1fa1b6007f33b4
by kit-ty-kate Fix C _Atomic in header incompatibility with C++ _Atomic is standard C11 but is not standard C++ (although sometimes available as a compiler extension). Use atomic_uintnat from our camlatomic.h. In file included from all-includes.h:6: /Users/antonin/Tarides/ocaml/trunk/runtime/caml/custom.h:54:12: error: '_Atomic' does not name a type; did you mean 'Atom'? 54 | CAMLextern _Atomic uintnat caml_custom_major_ratio; | ^~~~~~~ | Atom The file was modified runtime/caml/custom.h (diff) The file was modified Changes (diff) The file was modified typing/typetexp.ml (diff) The file was modified Changes (diff) The file was modified testsuite/tests/typing-warnings/unused_types.ml (diff) The file was modified Changes (diff) The file was modified typing/typemod.ml (diff) The file was modified testsuite/tests/typing-modules/recursive.ml (diff) The file was modified testsuite/tests/typing-modules/module_type_substitution.ml (diff)
Commit
daab3677fddfa989364ab28fd583e44b868d5582
by stephen Remove quotes around \var{...} in intfc manual The quotes prevent the `\var` operator from being applied, resulting in "\var{...}" literally being displayed on the page. Signed-off-by: Stephen Sherratt <stephen@sherra.tt> The file was modified manual/src/cmds/intf-c.etex (diff) The file was modified stdlib/array.mli (diff) The file was modified stdlib/float.mli (diff) The file was modified stdlib/templates/floatarraylabeled.template.mli (diff) The file was modified stdlib/dynarray.mli (diff) The file was modified stdlib/arrayLabels.mli (diff) The file was modified middle_end/closure/closure.ml (diff) The file was modified Changes (diff)
Commit
db5d77597cc8bd2804c5693ad9dbc45a65476a46
by noreply Mark tests that actually require multicore (#13906) Some tests fail or hang on mono-core systems. In this commit, we introduce the "multicore" predicate in ocamltest, and mark the affected tests. Bug-Debian: https://bugs.debian.org/1101353 The file was modified ocamltest/builtin_actions.ml (diff) The file was modified testsuite/tests/memory-model/publish.ml (diff) The file was modified testsuite/tests/parallel/mctest.ml (diff) The file was modified testsuite/tests/memory-model/forbidden.ml (diff) The file was modified Changes (diff) The file was modified testsuite/tests/parallel/pingpong.ml (diff) The file was modified manual/src/tutorials/parallelism.etex (diff)
Commit
1f9c6094d1b7af713581e3563bd4c3e4f6ef1a0b
by david.allsopp Apply BUILD_PATH_PREFIX_MAP to Sys.argv.(0) in cmt Cmt_format.cmt_infos.cmt_args includes a copy of Sys.argv from the compiler invocation. The user is in control of the arguments passed to a binary (Sys.argv.(1) and above) and can avoid embedding absolute paths, but Sys.argv.(0) on some platforms is converted to an absolute path, regardless of how the executable was invoked. The file was modified Changes (diff) The file was modified file_formats/cmt_format.mli (diff) The file was modified file_formats/cmt_format.ml (diff) The file was modified .github/workflows/build-msvc.yml (diff) The file was modified .github/workflows/build-msvc.yml (diff)
Commit
d39f8c60d5b302b681ea700704ba2d64e4c73206
by antonin GHA: tell Cygwin's bash to ignore CR line endings As suggested by the cygwin-install action. Makes much nicer looking shell scripts! https://github.com/cygwin/cygwin-install-action?tab=readme-ov-file#line-endings The file was modified .github/workflows/build-msvc.yml (diff)
Commit
4de803e9f3c3ac60ab25ca48d65ffdaae74c7857
by antonin GHA: revisit limits on concurrent Make jobs - When using MinGW-w64 on Linux, Make may spawn too many processes, triggering the OOM-killer, and ending the build. - Running `make test` with `-j` has no effect, the test runner is already built and is responsible of running tests in parallel. The file was modified .github/workflows/build-cross.yml (diff) The file was modified .github/workflows/build-msvc.yml (diff) The file was modified .github/workflows/build-msvc.yml (diff) The file was modified .github/workflows/build-msvc.yml (diff) The file was modified tools/ci/actions/runner.sh (diff) The file was modified tools/ci/actions/runner.sh (diff) The file was modified .github/workflows/build-msvc.yml (diff)
Commit
13a1158adf94b4ad67ce3cb6bae16c6121446b58
by antonin GHA: use a fold for config.log in GHA If configure fails, it is useful to have config.log, but the error is initially more useful, and that's often harder to spot at the end of config.log The file was modified .github/workflows/build-msvc.yml (diff) The file was modified tools/ci/actions/multicoretests.sh (diff) The file was modified tools/ci/actions/runner.sh (diff)
Commit
72c750170ab42cf30572d89aedbf200ada220348
by Sebastien.Hinderer Get rid of the @since attribute for the Uchar.hash function Given that this function is present in the module since it was introduced, the convension is to not have any @since attribute at the function level, since the module-level one applies. This commit reverts the addition of the attribute done in PR #13240, see commit 9585cfe264c4d9b4185f60ebfbbec3f8e54d1432. The file was modified stdlib/uchar.mli (diff) The file was modified testsuite/tests/lib-result/test.ml (diff) The file was modified stdlib/result.mli (diff) The file was modified Changes (diff) The file was modified stdlib/result.ml (diff) The file was modified stdlib/stdlib.mli (diff) The file was modified stdlib/repr.mli (diff) The file was modified stdlib/fun.mli (diff) The file was modified stdlib/fun.mli (diff) The file was modified stdlib/fun.mli (diff) The file was modified stdlib/fun.mli (diff) The file was modified stdlib/fun.mli (diff) The file was modified stdlib/fun.mli (diff) The file was modified stdlib/fun.mli (diff) The file was modified stdlib/fun.mli (diff) The file was modified stdlib/fun.mli (diff) The file was modified stdlib/fun.mli (diff) The file was modified stdlib/fun.mli (diff) The file was modified stdlib/fun.mli (diff) The file was modified stdlib/fun.mli (diff) The file was modified stdlib/fun.mli (diff) The file was modified stdlib/fun.mli (diff) The file was modified stdlib/fun.mli (diff) The file was modified stdlib/fun.mli (diff) The file was modified stdlib/fun.mli (diff) The file was modified stdlib/fun.mli (diff) The file was modified stdlib/fun.mli (diff) The file was modified stdlib/fun.mli (diff) The file was modified Changes (diff)
Commit
55e9cd44ed34d6a62b83d1a608a15de709df5b1e
by david.allsopp Harden the cloexec.ml test on Windows On slower machines, it's possible for the main part of the test (in fdstatus_main.ml) to complete before the cloexec.ml has actually terminated as part of `Unix.execv` (this is an artefact of how the underlying CRT `execv` call is implemented on Windows). Strictly on native Windows, cloexec.ml creates an additional dummy file and takes a write lock on it (with `Unix.lockf`). Before running, if this file exists, fdstatus_main.ml will also try to take a write lock on it, providing a way of fdstatus_main.ml being sure that its ancestor has fully terminated without actually having to know its PID. The file was modified testsuite/tests/lib-unix/common/fdstatus_main.ml (diff) The file was modified testsuite/tests/lib-unix/common/cloexec.ml (diff)
Commit
78fc5774e856cfbe133750c66dfab48e3ab75452
by david.allsopp Harden cloexec.ml test against virus scanners! Particularly on slow VMs, on Windows it's possible to end up seeing a "permission denied" error trying to delete tmp.txt at the end of the test. The issue is that Windows Defender (or other virus scanners) are backlogged during a testsuite run scanning executables which are being compiled. When tmp.txt is closed, it gets added to Windows Defender's scan queue, but it can take long enough that it hasn't actually closed the file by the time fdstatus_main.ml tries to delete it. The solution here is instead to open tmp.txt with O_SHARE_DELETE and then use an additional C stub to open the file with FILE_FLAG_DELETE_ON_CLOSE. This way, when fdstatus_main.ml terminates, the file is automatically by Windows "when it's ready". ocamltest merrily waits for the entire process group to terminate, as it usually does. The file was modified testsuite/tests/lib-unix/common/cloexec.ml (diff) The file was modified testsuite/tests/lib-unix/common/fdstatus_aux.c (diff) The file was modified testsuite/tests/lib-unix/common/fdstatus_main.ml (diff) The file was modified ocamltest/OCAMLTEST.org (diff) The file was modified manual/src/refman/extensions/alerts.etex (diff) The file was modified manual/src/refman/extensions/alerts.etex (diff)
Commit
ef86a89081864cb6529a74e9a532fad4e63a9f10
by valentin.gatienbaron manual: alerts: document how to put alerts on all structure/signature items Personally, I had no idea it was possible to put an alert on a let binding until I saw it mentioned on a github issue, because it's undocumented. Ideally, warning 53 would teach users that write: let x = 1 [@@deprecated] to write: let x [@deprecated] = 1 instead, but I'm only changing doc here. And arguably, the first form could be interpreted as the second form, when the pattern contains a single variable (and fail otherwise), as that's how alerts works for all other binding constructs. The file was modified Changes (diff) The file was modified manual/src/refman/extensions/alerts.etex (diff) The file was modified Makefile.dev (diff) The file was modified parsing/HACKING.adoc (diff) The file was modified runtime/gc_ctrl.c (diff) The file was modified runtime/memory.c (diff) The file was modified runtime/minor_gc.c (diff) The file was modified runtime/caml/major_gc.h (diff) The file was modified runtime/intern.c (diff)
Commit
94f501e35c640646cc1ce4bacb3c097e97769aa6
by gabriel.scherer runtime: "suspended" and "resumed" allocations affect the major GC speed This is a buildup commit, currently there is no control in the GC to suspend or resume specific allocations, so these counters are always 0. The intuition is to "suspend" allocations during ramp-up phases, and "resume" allocations during ramp-down. The file was modified runtime/major_gc.c (diff) The file was modified runtime/domain.c (diff) The file was modified runtime/caml/domain_state.tbl (diff)
Commit
96622777af462b25d18af319b7041d31063c4abf
by gabriel.scherer runtime: simplistic support for [ramp_up], [ramp_down] During [ramp_up], the deallocation work coming from allocations is "suspended". It can be "resumed" by calling [ramp_down]. [ramp_up] does not currently count the total number of suspended allocations (this needs more domain state that is not reset on each major state), so the user would not know which value to provided to [ramp_down]. This will be added next. The file was modified runtime/gc_ctrl.c (diff) The file was modified runtime/caml/major_gc.h (diff) The file was modified runtime/caml/gc_ctrl.h (diff) The file was modified runtime/caml/misc.h (diff) The file was modified runtime/caml/domain_state.tbl (diff) The file was modified runtime/caml/domain_state.tbl (diff) The file was modified runtime/major_gc.c (diff) The file was modified runtime/gc_ctrl.c (diff) The file was modified runtime/caml/gc_ctrl.h (diff) The file was modified runtime/domain.c (diff) The file was modified runtime/gc_ctrl.c (diff) The file was modified runtime/gc_ctrl.c (diff) The file was modified runtime/caml/gc_ctrl.h (diff) The file was modified stdlib/gc.mli (diff) The file was modified stdlib/gc.ml (diff) The file was modified Changes (diff) The file was modified runtime/gc_ctrl.c (diff) The file was modified runtime/gc_ctrl.c (diff) The file was modified stdlib/gc.mli (diff) The file was modified runtime/array.c (diff) The file was modified runtime/array.c (diff) The file was modified stdlib/float.ml (diff) The file was modified testsuite/tests/lib-floatarray/floatarray.ml (diff) The file was modified Changes (diff) The file was modified ocamltest/ocaml_actions.ml (diff) The file was modified utils/config.generated.ml.in (diff) The file was modified ocamltest/ocaml_tests.ml (diff) The file was modified ocamltest/ocamltest_config.ml.in (diff) The file was modified Makefile.config.in (diff) The file was modified configure (diff) The file was modified ocamltest/ocamltest_config.mli (diff) The file was modified configure.ac (diff) The file was modified ocamltest/builtin_actions.ml (diff) The file was modified stdlib/result.ml (diff) The file was modified Changes (diff) The file was modified stdlib/result.mli (diff) The file was modified testsuite/tests/lib-result/test.ml (diff) The file was modified stdlib/seq.mli (diff) The file was modified testsuite/tests/backtrace/backtrace_dynlink.reference (diff) The file was modified testsuite/tests/lib-dynlink-initializers/test10_main.native.reference (diff) The file was modified testsuite/tests/translprim/comparison_table.compilers.reference (diff) The file was modified stdlib/list.ml (diff) The file was modified stdlib/seq.ml (diff) The file was modified stdlib/list.mli (diff) The file was modified testsuite/tests/lib-dynlink-initializers/test10_main.byte.reference (diff) The file was modified stdlib/listLabels.mli (diff) The file was modified testsuite/tests/backtrace/backtrace_dynlink.flambda.reference (diff) The file was modified Changes (diff) The file was modified stdlib/effect.mli (diff) The file was modified stdlib/domain.mli (diff) The file was modified Changes (diff) The file was modified testsuite/tests/shadow_include/shadow_all.ml (diff) The file was modified testsuite/tests/typing-modules/nondep.ml (diff)
Commit
4904473f55fcbaac0779060b8975e6dcd5c9c9a0
by clement.blaudeau Removed abstraction of whole module types when avoiding a field * Not backward compatible: code could use this behavior to create signatures with abstract module type fields, and place them in negative positions with [module type of], but it is highly unlikely intentional. There is no loss of expressivity: the desired resulting signature can still be obtained with an explicit signature constraint. * Added Change entry The file was modified typing/mtype.ml (diff) The file was modified testsuite/tests/shadow_include/shadow_all.ml (diff) The file was modified testsuite/tests/typing-modules/nondep.ml (diff) The file was modified Changes (diff) The file was modified .depend (diff) The file was modified testsuite/tests/weak-ephe-final/ephe_custom.ml (diff) The file was modified lambda/lambda.mli (diff) The file was modified lambda/matching.ml (diff) The file was modified lambda/lambda.ml (diff) The file was modified lambda/matching.ml (diff) The file was modified lambda/lambda.ml (diff) The file was modified lambda/lambda.mli (diff) The file was modified lambda/matching.ml (diff) The file was modified lambda/lambda.ml (diff) The file was modified lambda/lambda.mli (diff) The file was modified .depend (diff) The file was modified runtime/array.c (diff) The file was modified Changes (diff) The file was modified typing/typeopt.ml (diff) The file was added testsuite/tests/typeopt/nested_unboxed.ml The file was modified Changes (diff) The file was modified runtime/obj.c (diff) The file was modified runtime/alloc.c (diff)
Commit
33b6307cf78ad1680e9e66d8bf6fd086b73add98
by gabriel.scherer caml_update_dummy: the [Infix_tag] case is dead code We stopped using dummies for values at a function type in OCaml 5.2, and the matching [caml_alloc_dummy_infix] function was removed in cd48dc0ac20f58fa460b55fafb75784d5a9d62f3. The file was modified runtime/obj.c (diff) The file was modified lambda/value_rec_compiler.ml (diff) The file was modified lambda/value_rec_compiler.ml (diff) The file was modified runtime/obj.c (diff) The file was modified testsuite/tests/letrec-compilation/lazy_.reference (diff) The file was modified testsuite/tests/letrec-compilation/lazy_.ml (diff) The file was modified Changes (diff) The file was modified lambda/value_rec_compiler.ml (diff) The file was modified stdlib/camlinternalLazy.mli (diff) The file was modified stdlib/camlinternalLazy.ml (diff) The file was modified runtime/obj.c (diff) The file was modified lambda/value_rec_compiler.ml (diff) The file was modified Changes (diff) The file was modified runtime/caml/domain.h (diff) The file was modified runtime/domain.c (diff) The file was modified runtime/domain.c (diff) The file was modified runtime/domain.c (diff) The file was modified Changes (diff) The file was modified tools/ci/appveyor/appveyor_build.cmd (diff) The file was modified stdlib/list.mli (diff) The file was modified stdlib/listLabels.mli (diff) The file was modified testsuite/tests/lib-list/test.ml (diff) The file was modified stdlib/list.ml (diff) The file was modified Changes (diff) The file was modified toplevel/topdirs.ml (diff) The file was modified .depend (diff) The file was modified toplevel/topprinters.mli (diff) The file was modified toplevel/topprinters.ml (diff) The file was modified .depend (diff) The file was modified toplevel/topprinters.ml (diff) The file was modified toplevel/topprinters.mli (diff) The file was modified toplevel/topdirs.ml (diff) The file was modified debugger/command_line.ml (diff) The file was modified debugger/loadprinter.mli (diff) The file was modified debugger/printval.mli (diff) The file was modified .depend (diff) The file was modified debugger/loadprinter.ml (diff) The file was modified debugger/printval.ml (diff) The file was modified debugger/loadprinter.mli (diff) The file was modified .depend (diff) The file was modified debugger/loadprinter.ml (diff) The file was modified toplevel/topprinters.ml (diff) The file was modified toplevel/topprinters.mli (diff) The file was modified release-info/introduction.md (diff) The file was modified release-info/calendar.md (diff) The file was modified .github/workflows/multicoretests.yml (diff) The file was modified .github/workflows/multicoretests.yml (diff) The file was modified typing/ctype.ml (diff) The file was modified Changes (diff) The file was modified typing/ctype.ml (diff) The file was modified stdlib/sys.mli (diff) The file was modified stdlib/sys.ml.in (diff) The file was modified runtime/signals.c (diff) The file was modified stdlib/sys.ml.in (diff) The file was modified stdlib/sys.mli (diff) The file was added testsuite/tests/lib-sys/signal.reference The file was modified stdlib/sys.ml.in (diff) The file was modified stdlib/sys.mli (diff) The file was added testsuite/tests/lib-sys/signal.ml The file was modified runtime/signals.c (diff) The file was modified stdlib/sys.ml.in (diff) The file was modified stdlib/sys.mli (diff) The file was modified testsuite/tests/lib-sys/signal.reference (diff) The file was modified testsuite/tests/lib-sys/signal.ml (diff) The file was modified otherlibs/unix/unix.mli (diff) The file was modified stdlib/sys.mli (diff) The file was modified otherlibs/unix/unixLabels.mli (diff) The file was modified tools/sync_stdlib_docs (diff)
Commit
ca72d32976636342855eec063cf391e1ef5ebc2c
by timmcgil Check int and signal argument ranges for conversion functions Signal_to_string and signal_to_int call invalid_arg if presented with an unrecognised negative number. signal_of_int calls invalid_arg for all negative numbers. The file was modified stdlib/sys.ml.in (diff) The file was modified stdlib/sys.mli (diff) The file was modified testsuite/tests/lib-sys/signal.ml (diff) The file was modified Changes (diff) The file was modified boot/menhir/parser.ml (diff) The file was modified parsing/parser.mly (diff) The file was modified Changes (diff) The file was modified ocamltest/options.ml (diff) The file was modified ocamltest/environments.ml (diff) The file was modified ocamltest/builtin_actions.ml (diff) The file was modified ocamltest/main.ml (diff) The file was modified ocamltest/run_unix.c (diff) The file was modified ocamltest/run_win32.c (diff) The file was modified ocamltest/run_unix.c (diff) The file was modified ocamltest/run_unix.c (diff) The file was modified ocamltest/run_win32.c (diff)
Commit
79c00fac1fda1f568f83124e15fa37eca0063f9c
by antonin ocamltest: alarm(3) is always successful > The alarm() function is always successful, and no return value is > reserved to indicate an error. Sometimes an invalid perror message could appear in the logs. https://pubs.opengroup.org/onlinepubs/9799919799/functions/alarm.html The file was modified ocamltest/run_unix.c (diff)
Commit
02a3282c112a5ed8eef7f4b6cd3bcbdb7366b41c
by antonin Teach ocamltest about colors As the compiler drivers and various ocaml tools, ocamltest now accepts the -color flag, and recognizes the OCAML_COLOR and NO_COLOR environment variables. It uses them to pass a corresponding --color flag to diff, if it was detected during configure that diff supports this flag. The file was modified utils/misc.mli (diff) The file was modified ocamltest/options.ml (diff) The file was modified configure.ac (diff) The file was modified driver/main_args.ml (diff) The file was modified utils/misc.ml (diff) The file was modified ocamltest/filecompare.ml (diff) The file was modified driver/main_args.mli (diff) The file was modified configure (diff) The file was modified .github/workflows/build.yml (diff) The file was modified testsuite/tests/native-debugger/linux-lldb-arm64.ml (diff) The file was modified testsuite/tests/native-debugger/linux-gdb-amd64.ml (diff) The file was modified testsuite/tests/native-debugger/linux-gdb-arm64.ml (diff) The file was modified testsuite/tests/native-debugger/macos-lldb-amd64.ml (diff) The file was modified testsuite/tests/native-debugger/macos-lldb-arm64.ml (diff) The file was modified testsuite/tests/native-debugger/linux-lldb-amd64.reference (diff) The file was modified testsuite/tests/native-debugger/macos-lldb-arm64.reference (diff) The file was modified testsuite/tests/native-debugger/linux-lldb-amd64.ml (diff) The file was modified testsuite/tests/native-debugger/linux-gdb-amd64.reference (diff) The file was modified testsuite/tests/native-debugger/linux-gdb-riscv.ml (diff) The file was modified testsuite/tests/native-debugger/macos-lldb-amd64.reference (diff)
Commit
e366fcc2752085c02cc91e47bfe9a36876aecf74
by antonin tests: native-debugger: sanitize library path Debian and Fedora derivatives have different libpaths: -Using host libthread_db library "/lib/aarch64-linux-gnu/libthread_db.so.1". +Using host libthread_db library "/lib64/libthread_db.so.1". fixup_libthread The file was modified testsuite/tests/native-debugger/linux-gdb-riscv.reference (diff) The file was modified testsuite/tests/native-debugger/sanitize.awk (diff) The file was modified testsuite/tests/native-debugger/linux-gdb-amd64.reference (diff) The file was modified testsuite/tests/native-debugger/linux-gdb-arm64.reference (diff) The file was modified testsuite/tests/native-debugger/has_gdb.sh (diff)
Commit
d4fcbe5bfed02a08b6d59f3d048e3e3a78572978
by antonin tests: native-debugger: disable disabling ASLR This allows running the tests more easily in Docker images. The sanitization step takes care of removing artifacts of randomization anyway. The file was modified testsuite/tests/native-debugger/macos-lldb-amd64.reference (diff) The file was modified testsuite/tests/native-debugger/linux-lldb-arm64.reference (diff) The file was modified testsuite/tests/native-debugger/lldb-script (diff) The file was modified testsuite/tests/native-debugger/macos-lldb-arm64.reference (diff) The file was modified testsuite/tests/native-debugger/gdb-script (diff) The file was modified testsuite/tests/native-debugger/linux-lldb-amd64.reference (diff) The file was modified testsuite/tests/native-debugger/linux-lldb-amd64.reference (diff) The file was modified testsuite/tests/native-debugger/macos-lldb-arm64.reference (diff) The file was modified testsuite/tests/native-debugger/sanitize.awk (diff) The file was modified testsuite/tests/native-debugger/linux-lldb-arm64.reference (diff) The file was modified testsuite/tests/native-debugger/linux-lldb-arm64.ml (diff) The file was modified testsuite/tests/native-debugger/linux-gdb-amd64.ml (diff) The file was modified testsuite/tests/native-debugger/linux-gdb-arm64.ml (diff) The file was modified testsuite/tests/native-debugger/macos-lldb-amd64.ml (diff) The file was modified testsuite/tests/native-debugger/macos-lldb-arm64.ml (diff) The file was modified testsuite/tests/native-debugger/linux-gdb-riscv.ml (diff) The file was modified testsuite/tests/native-debugger/linux-lldb-amd64.ml (diff) The file was modified testsuite/tests/native-debugger/sanitize.sh (diff) The file was modified ocamltest/filecompare.ml (diff) The file was modified driver/main_args.mli (diff) The file was modified ocamltest/options.ml (diff) The file was modified driver/main_args.ml (diff) The file was modified ocamltest/filecompare.ml (diff) The file was modified ocamltest/ocamltest_config.mli (diff) The file was modified ocamltest/ocamltest_config.ml.in (diff) The file was modified configure.ac (diff) The file was modified configure (diff)
Commit
4b905fd93d349f41c416f9a06bd2433425fc67b6
by noreply Fix hygiene check for generating `configure` (#13935) * Allow check-configure.sh to be run locally * Re-bash the autoconf test * Simplify - and correct - check-configure.sh The script contained an unused feature to be able to check PRs as one - this is never wanted, as we should always be checking that every commit has a valid committed configure script. The mechanism for checking whether commits should be tested is shifted back to the actual trawl of the log. This is both simpler (because it can be done with a simple file list) but also fixes a bug, since commits which _didn't_ update configure could reset a failure from an earlier commit. * Wrong parameter checked in check-configure.sh * Review The file was modified tools/ci/actions/check-configure.sh (diff) The file was modified typing/printtyped.ml (diff) The file was added testsuite/tests/typedtree/module_presence.ml The file was modified .depend (diff) The file was modified lambda/value_rec_compiler.ml (diff) The file was modified lambda/value_rec_compiler.ml (diff) The file was added testsuite/tests/letrec-compilation/nested2.ml The file was modified Changes (diff) The file was added manual/src/cmds/profile-perf.etex The file was modified manual/src/allfiles.etex (diff) The file was modified manual/src/cmds/Makefile (diff) The file was modified manual/README.md (diff) The file was modified Changes (diff) The file was modified manual/src/cmds/profil.etex (diff) The file was modified manual/src/cmds/profil.etex (diff) The file was modified manual/README.md (diff) The file was removed manual/src/cmds/profile-perf.etex The file was modified manual/src/allfiles.etex (diff) The file was modified manual/src/cmds/Makefile (diff) The file was modified .depend (diff) The file was modified driver/pparse.ml (diff) The file was modified parsing/ast_invariants.mli (diff) The file was modified driver/main_args.ml (diff) The file was modified parsing/ast_invariants.ml (diff) The file was modified testsuite/tests/parsing/shortcut_ext_attr.compilers.reference (diff) The file was modified utils/clflags.mli (diff) The file was modified testsuite/tests/parsing/shortcut_ext_attr.ml (diff) The file was modified utils/clflags.ml (diff) The file was modified driver/main_args.mli (diff) The file was modified testsuite/tests/parsetree/locations_test.compilers.reference (diff) The file was modified parsing/ast_invariants.ml (diff) The file was modified Changes (diff) The file was modified parsing/parser.mly (diff) The file was modified testsuite/tests/parsing/shortcut_ext_attr.compilers.reference (diff) The file was modified parsing/parser.mly (diff) The file was modified boot/menhir/parser.ml (diff) The file was added testsuite/tests/typing-poly/pr11544.ml The file was modified testsuite/tests/typing-fstclassmod/scope_escape.ml (diff) The file was modified testsuite/tests/effect-syntax/error_messages.ml (diff) The file was modified testsuite/tests/typing-poly/pr11544.ml (diff) The file was modified typing/typecore.ml (diff) The file was modified Changes (diff) The file was modified parsing/ast_mapper.ml (diff) The file was modified parsing/depend.ml (diff) The file was modified testsuite/tests/ppx-contexts/myppx.ml (diff) The file was modified driver/compenv.ml (diff) The file was modified typing/env.ml (diff) The file was modified driver/main_args.ml (diff) The file was modified testsuite/tests/ppx-contexts/test.compilers.reference (diff) The file was modified utils/clflags.mli (diff) The file was modified Changes (diff) The file was modified driver/makedepend.ml (diff) The file was modified utils/clflags.ml (diff) The file was modified driver/makedepend.ml (diff) The file was modified Changes (diff) The file was modified Changes (diff) The file was modified configure (diff) The file was modified configure.ac (diff) The file was modified Changes (diff) The file was modified Changes (diff) The file was modified configure.ac (diff) The file was modified configure (diff) The file was modified Changes (diff) The file was modified Changes (diff) The file was modified build-aux/ocaml_version.m4 (diff) The file was modified configure (diff) The file was modified VERSION (diff) The file was modified Changes (diff) The file was modified release-info/calendar.md (diff) The file was modified README.adoc (diff) The file was modified Changes (diff) The file was modified runtime/array.c (diff) The file was modified typing/typecore.ml (diff) The file was modified typing/typecore.ml (diff) The file was modified typing/typeclass.ml (diff) The file was modified typing/typecore.mli (diff) The file was modified testsuite/tests/typing-misc/typecore_errors.ml (diff) The file was modified typing/typecore.ml (diff) The file was modified testsuite/tests/typing-misc/let_rec_approx.ml (diff) The file was modified testsuite/tests/typing-misc/let_rec_approx.ml (diff) The file was modified typing/typecore.ml (diff) The file was modified typing/typecore.ml (diff) The file was modified typing/typecore.ml (diff) The file was modified typing/typecore.ml (diff) The file was modified Changes (diff)
Commit
4c6856f0d3b74d1f98a053fd60ebf2d8d1c23007
by david.allsopp Propagate file_descr cloexec correctly to channels On Windows, the Unix library performs most operations on files using the Windows API directly, but the Unix.file_descr structure has the option for using an underlying CRT fd. In particular, these are needed for the {in,out}_channel_of_descr functions. For some reason, the underlying _open_osfhandle call doesn't check for inheritability of the OS handle itself (it's slightly odd, because it does check other properties of it). By doing this ourselves, the resulting CRT fd now correctly propagates O_CLOEXEC. The file was modified Changes (diff) The file was modified otherlibs/unix/channels_win32.c (diff)
Commit
84474967c692e5fb37e697ed9257fdc6495691d9
by david.allsopp Set FLEXDIR when bootstrapping flexlink Previously, the flexdll support objects were placed in both byte/bin and opt/bin with the copy of flexlink.exe when flexlink was being bootstrapped with OCaml. The objects are small, so the copying was not particulary onerous. However, if opt/bin/flexlink.exe is a native Windows symlink (pointing to ../../flexlink.opt.exe) then Sys.executable_name when flexlink runs will point to the wrong place. While flexlink ought to be checking Sys.argv.(0) rather than Sys.executable_name, a better hardening is to be explicit and set the FLEXDIR environment variable to point to the directory containing the support objects. This also allows byte/bin/flexlink.exe and opt/bin/flexlink.exe to share the same copy of the objects. The file was modified Makefile.build_config.in (diff) The file was modified Makefile.cross (diff) The file was modified Makefile.common (diff) The file was modified Makefile (diff) The file was modified tools/ocamlmklib.ml (diff) The file was modified Changes (diff) The file was modified typing/typecore.ml (diff) The file was modified Makefile (diff) The file was modified configure (diff) The file was modified boot/ocamlc (diff) The file was modified build-aux/ocaml_version.m4 (diff) The file was modified boot/ocamllex (diff) The file was modified VERSION (diff) The file was modified ocaml-variants.opam (diff)
Commit
4ee429d49dc03663eb6a91a8dd3f7da7ffaf7149
by clement.blaudeau Refactor [is_functor_arg] table of env into [not_aliasable] - In [env.ml], renamed the internal table used to track non aliasable modules from [Env_functor_arg] to [Env_not_aliasable], renamed the associated test function from [is_functor_arg] to [is_aliasable], renamed the [~arg] flags of some functions into [~noalias] - In [includemod.ml], removed the redundant [can_alias] function - In [typemod.ml], changed the error message for [Cannot_alias] The file was modified typing/env.mli (diff) The file was modified typing/out_type.ml (diff) The file was modified typing/includemod.ml (diff) The file was modified typing/mtype.ml (diff) The file was modified typing/env.ml (diff) The file was modified typing/envaux.ml (diff) The file was modified typing/typemod.ml (diff) The file was modified testsuite/tests/typing-modules/pr13185.ml (diff) The file was modified testsuite/tests/typing-sigsubst/sigsubst.ml (diff) The file was modified typing/typemod.ml (diff) The file was modified testsuite/tests/typing-sigsubst/sigsubst.ml (diff) The file was modified testsuite/tests/typing-modules/pr13185.ml (diff) The file was modified testsuite/tests/typing-modules/aliases.ml (diff) The file was modified toplevel/genprintval.ml (diff) The file was modified debugger/debugcom.ml (diff) The file was modified toplevel/topcommon.ml (diff) The file was modified debugger/eval.ml (diff) The file was modified toplevel/genprintval.mli (diff) The file was modified debugger/debugcom.mli (diff)
Commit
ff699be4ada40b4d40c38db7460d290b5851eb92
by gabriel.scherer genprintval: move user-installed printers out of the Make functor User-provided printers see a whole Obj.t value, rather than getting the remote value on-demand during printing. Co-authored-by: Pierre Boutillier <pierre.boutillier@laposte.net> The file was modified .depend (diff) The file was modified debugger/printval.ml (diff) The file was modified toplevel/genprintval.ml (diff) The file was modified debugger/debugcom.ml (diff) The file was modified debugger/printval.mli (diff) The file was modified toplevel/genprintval.mli (diff) The file was modified debugger/debugcom.mli (diff) The file was modified debugger/loadprinter.ml (diff) The file was modified toplevel/topcommon.ml (diff) The file was modified .depend (diff) The file was modified debugger/loadprinter.ml (diff) The file was modified debugger/printval.mli (diff) The file was modified debugger/printval.ml (diff) The file was modified Changes (diff) The file was modified testsuite/tests/tool-debugger/printer/printer.ml (diff) The file was modified testsuite/tests/tool-debugger/printer/debuggee.ml (diff) The file was modified testsuite/tests/tool-debugger/printer/debuggee.reference (diff) The file was modified testsuite/tests/tool-debugger/printer/input_script (diff) The file was modified .github/workflows/multicoretests.yml (diff) The file was modified parsing/builtin_attributes.mli (diff) The file was modified manual/src/refman/extensions/attributes.etex (diff) The file was modified parsing/builtin_attributes.ml (diff) The file was modified Changes (diff) The file was modified .depend (diff) The file was modified typing/typemod.ml (diff) The file was modified Changes (diff) The file was modified testsuite/tests/lib-dynarray/test.ml (diff) The file was modified stdlib/dynarray.ml (diff) The file was modified stdlib/dynarray.mli (diff)
Commit
aaab90d38322567df59927a46959cbdabc3fee95
by noreply Reimplement `let open`, `let module` and `let exception` in terms of a single construct (#13839) * Expose Translcore.transl_struct_item * Expose Typemod.type_str_item * Define helper function Typecore.is_nonexpansive_stritem * Add Pexp_struct_item, Texp_struct_item * Reimplement 'let module' * Reimplement 'let exception' * Reimplement 'let open' * Promote parser * Accept tests * Remove reimplemented AST nodes * Ast_invariants: disallow other structure items * Wrap in generalization region (suggested by @samsa1) * Changes * .depend The file was modified lambda/translcore.ml (diff) The file was modified typing/typecore.ml (diff) The file was modified lambda/translcore.mli (diff) The file was modified parsing/ast_invariants.ml (diff) The file was modified parsing/pprintast.ml (diff) The file was modified tools/ocamlprof.ml (diff) The file was modified typing/tast_iterator.ml (diff) The file was modified typing/typemod.ml (diff) The file was modified parsing/parser.mly (diff) The file was modified typing/typecore.mli (diff) The file was modified typing/typedtree.mli (diff) The file was modified parsing/ast_helper.ml (diff) The file was modified testsuite/tests/parsetree/locations_test.compilers.reference (diff) The file was modified testsuite/tests/shape-index/index_modules.reference (diff) The file was modified .depend (diff) The file was modified Changes (diff) The file was modified typing/cmt2annot.ml (diff) The file was modified typing/value_rec_check.ml (diff) The file was modified lambda/translmod.ml (diff) The file was modified parsing/depend.ml (diff) The file was modified parsing/parsetree.mli (diff) The file was modified testsuite/tests/parsing/shortcut_ext_attr.compilers.reference (diff) The file was modified file_formats/cmt_format.ml (diff) The file was modified parsing/printast.ml (diff) The file was modified typing/tast_mapper.ml (diff) The file was modified typing/typedtree.ml (diff) The file was modified typing/printtyped.ml (diff) The file was modified parsing/ast_iterator.ml (diff) The file was modified boot/menhir/parser.ml (diff) The file was modified parsing/ast_mapper.ml (diff) The file was modified parsing/ast_helper.mli (diff) The file was modified typing/untypeast.ml (diff) The file was modified manual/src/html_processing/scss/style.scss (diff) The file was modified Changes (diff) The file was modified manual/src/html_processing/src/process_api.ml (diff) The file was modified stdlib/in_channel.mli (diff) The file was modified stdlib/out_channel.mli (diff) The file was modified parsing/pprintast.ml (diff) The file was modified Changes (diff) The file was modified testsuite/tests/parsetree/source.ml (diff) The file was modified ocaml-variants.opam (diff) The file was modified runtime/shared_heap.c (diff) The file was modified tools/check-symbol-names (diff) The file was modified HACKING.adoc (diff) The file was modified .github/workflows/build.yml (diff)
Commit
bd08fe5ff3125b0f0ef3549649420b3b4352d347
by david.allsopp Add optional static and mimimal jobs Tests a full `--disable-shared` build on Linux and also a Linux build with as many options disabled as possible (as the minimal build in the other-configs job on Jenkins also does). The matrix is expanded by adding the 'CI: Full matrix' label to a pull request. The file was modified HACKING.adoc (diff) The file was modified .github/workflows/build.yml (diff) The file was modified .github/workflows/build.yml (diff)
Commit
1183b2e68ac431be0717daa8d2858ce0834a936c
by david.allsopp Fix test_create_cursor_failures.ml on Cygwin If Cygwin is running "elevated" - which it is in CI - then it acts as though it's running as root. It intentionally activates SeBackupPrivilege, which thwarts the test_create_cursor_failures.ml test. The OCaml testsuite will never require root privileges for anything meaningful, so ocamltest on Cygwin simply drops the SeBackupPrivilege when running on Cygwin, which means the test correctly fails. The file was modified ocamltest/run_stubs.c (diff) The file was modified ocamltest/run_command.ml (diff) The file was modified .github/workflows/build-msvc.yml (diff) The file was modified .github/workflows/build-msvc.yml (diff) The file was modified .github/workflows/build-msvc.yml (diff) The file was modified .github/workflows/build-msvc.yml (diff) The file was modified tools/ci/appveyor/appveyor_build.sh (diff) The file was modified HACKING.adoc (diff) The file was modified .github/workflows/build.yml (diff) The file was modified tools/check-symbol-names (diff) The file was modified .github/workflows/build-msvc.yml (diff) The file was modified .github/workflows/stale.yml (diff) The file was modified runtime/intern.c (diff) The file was modified Changes (diff) The file was modified Changes (diff) The file was modified Changes (diff) The file was modified typing/typemod.ml (diff) The file was modified typing/typemod.ml (diff)
Commit
c86afcccb3914ab718d88f8a89c169d508dd2da7
by clement.blaudeau [refactor merge] Changed the return logic - Typedtrees are no longer built inside [merge_constraint] but inside [transl_with], which removes the need for a special approximation case: merging always returns a module type, not a Typedtree. Changed [transl_with] to build the Typedtree there. - Removed the [real_ids] mechanism that was used to store (imperatively) the list of affected paths. Now the patches (defined by [return], [return_payload] and [return_paths]) store both the resulting path and the list of affected paths. - Added a [payload] mechanism used only for the type constraint case, where the replacement declaration is returned as an additional payload. Other cases return [None]. - Create separate functions ([merge_type], [merge_module], [merge_modtype]) - Extracted the post processing (wellformedness checks and substitutions) into an helper function [post_process] The file was modified typing/typemod.ml (diff)
Commit
69fa2d8ce47c79aa903be4ecac1dc1784eb535dc
by clement.blaudeau [refactor merge] Extracted the recursive functions for deep constr - Broke down the main merging function into three parts: [merge_signature], [patch_deep_item] and [patch_all]. The first two are mutually recursive and use an extra argument [~patch]. For now, the only patch provided (in [merge_type], [merge_module], etc) is [patch_all]. The file was modified typing/typemod.ml (diff) The file was modified typing/typemod.ml (diff) The file was modified typing/typemod.ml (diff) The file was modified typing/typemod.ml (diff) The file was modified typing/typemod.ml (diff) The file was modified typing/typemod.ml (diff)
Commit
cac4e069f00e81db589e652a808e4bb7f3898b35
by clement.blaudeau [refactor merge] Added comments, minor stylistic changes - Added general comments about merging - Renamed the `merge_package_constraint` into `merge_package` - Moved the [try ... with] of [merge_signature] to the outer function [merge]. The file was modified typing/typemod.ml (diff) The file was modified typing/typemod.ml (diff) The file was modified typing/typemod.ml (diff) The file was modified typing/typemod.ml (diff) The file was modified Changes (diff) The file was modified asmcomp/printcmm.ml (diff) The file was added testsuite/tests/atomic-locs/cmm.compilers.reference The file was added testsuite/tests/atomic-locs/cmm.ml The file was modified runtime/memory.c (diff)
Commit
1c6248081df5f7b6954115f22ce17bc456a5d6f5
by gabriel.scherer [breaking] Change the prototype of [caml_atomic_cas_field]. This is a breaking change because this function was (unfortunately) exposed outside CAML_INTERNALS, and is used by exactly one external user, you guessed it: https://github.com/ocaml-multicore/multicore-magic/blob/360c2e829c9addeca9ccaee1c71f4ad36bb14a79/src/Multicore_magic.mli#L181-L185 https://github.com/ocaml-multicore/multicore-magic/blob/360c2e829c9addeca9ccaee1c71f4ad36bb14a79/src/unboxed5/multicore_magic_atomic_array.ml#L36-L43 We chose to change the prototype to remain consistent with the naming convention for the new caml_atomic_*_field primitives, which will be added to support atomic record fields. User code can easily adapt to this new prototype we are using, but not in a way that is compatible with both old and new versions of OCaml (not without some preprocessing at least). Another option would be to expose int caml_atomic_cas_field(value obj, intnat fld, value, value) value caml_atomic_cas_field_boxed(value obj, value vfld, value, value) but no other group of primitives in the runtime uses this _boxed terminology, they instead use int caml_atomic_cas_field_unboxed(value obj, intnat fld, value, value) value caml_atomic_cas_field(value obj, value vfld, value, value) and this would again break compatiblity -- it is not easier to convert code to that two-version proposal, and not noticeably more efficient. So in this case we decided to break compatibility (of an obscure, experimental, undocumented but exposed feature) in favor of consistency and simplificity of the result. The file was modified runtime/caml/memory.h (diff) The file was modified runtime/memory.c (diff) The file was modified runtime/obj.c (diff) The file was modified runtime/memory.c (diff)
Commit
2122b66dba9cb7525ab68db7cbf30b09a4f97681
by gabriel.scherer lambda: Add support for new atomic primitives. Uses of existing atomic primitives %atomic_foo, which act on single-field references, are now translated into %atomic_foo_field, which act on a pointer and an offset -- passed as separate arguments. In particular, note that the arity of the internal Lambda primitive Patomic_load increases by one with this patchset. (Initially we renamed it into Patomic_load_field but this creates a lot of churn for no clear benefits.) We also support primitives of the form %atomic_foo_loc, which expects a pair of a pointer and an offset (as a single argument), as we proposed in the RFC on atomic fields https://github.com/ocaml/RFCs/pull/39 (but there is no language-level support for atomic record fields yet) Co-authored-by: Clément Allain <clef-men@orange.fr> The file was modified lambda/translprim.ml (diff) The file was modified runtime/memory.c (diff) The file was modified asmcomp/cmm_helpers.ml (diff) The file was modified asmcomp/cmmgen.ml (diff) The file was modified bytecomp/bytegen.ml (diff) The file was modified testsuite/tests/atomic-locs/cmm.compilers.reference (diff) The file was modified asmcomp/cmm_helpers.mli (diff) The file was modified parsing/builtin_attributes.ml (diff) The file was modified typing/typedecl.mli (diff) The file was modified typing/includecore.ml (diff) The file was modified typing/typedtree.mli (diff) The file was modified parsing/asttypes.mli (diff) The file was modified typing/data_types.mli (diff) The file was modified ocamldoc/odoc_sig.ml (diff) The file was modified typing/subst.ml (diff) The file was modified typing/typedecl.ml (diff) The file was modified parsing/builtin_attributes.mli (diff) The file was modified typing/printtyped.ml (diff) The file was modified typing/typedtree.ml (diff) The file was modified lambda/translcore.ml (diff) The file was modified typing/ctype.ml (diff) The file was modified typing/types.ml (diff) The file was modified parsing/asttypes.ml (diff) The file was modified typing/includecore.mli (diff) The file was modified typing/types.mli (diff) The file was modified typing/out_type.ml (diff) The file was modified typing/outcometree.mli (diff) The file was modified typing/oprint.ml (diff) The file was modified typing/datarepr.ml (diff) The file was modified typing/data_types.ml (diff) The file was modified ocamldoc/odoc_html.ml (diff) The file was modified ocamldoc/odoc_str.ml (diff) The file was modified ocamldoc/odoc_latex.ml (diff) The file was modified ocamldoc/odoc_info.mli (diff) The file was modified ocamldoc/odoc_type.mli (diff) The file was modified ocamldoc/odoc_man.ml (diff) The file was modified ocamldoc/odoc_sig.ml (diff) The file was modified ocamldoc/odoc_type.ml (diff)
Commit
b1dea05488aa0a6a57d1a28834355e61492eaf39
by gabriel.scherer Bootstrap. To reproduce (see BOOTSTRAP.adoc for details): - go to the earlier commit "lambda: Add support for new atomic primitives" as a known-good state, build that one - keep the build artifacts around, come here and do `make bootstrap` The file was modified boot/ocamllex (diff) The file was modified boot/ocamlc (diff) The file was modified testsuite/tests/atomic-locs/cmm.compilers.reference (diff) The file was added testsuite/tests/atomic-locs/record_fields.ml The file was modified testsuite/tests/atomic-locs/cmm.ml (diff) The file was modified testsuite/tests/compiler-libs/test_untypeast.ml (diff)
Commit
ab0634e53819145464a231262c1f417a6b917aa2
by gabriel.scherer Add predefined type ['a atomic_loc]. This type will be used for ['a Atomic.Loc.t], as proposed in the RFC https://github.com/ocaml/RFCs/pull/39 We implement this here to be able to use it in the stdlib later, after a bootstrap. The file was modified typing/predef.mli (diff) The file was modified typing/typeopt.ml (diff) The file was modified typing/predef.ml (diff) The file was modified typing/includecore.ml (diff) The file was modified typing/env.mli (diff) The file was modified typing/env.ml (diff) The file was modified typing/tast_mapper.ml (diff) The file was modified typing/typecore.mli (diff) The file was modified lambda/translcore.ml (diff) The file was modified typing/printtyped.ml (diff) The file was modified typing/value_rec_check.ml (diff) The file was modified testsuite/tests/compiler-libs/test_untypeast.ml (diff) The file was modified file_formats/cmt_format.ml (diff) The file was modified typing/tast_iterator.ml (diff) The file was modified typing/untypeast.ml (diff) The file was modified typing/typecore.ml (diff) The file was modified typing/typedtree.ml (diff) The file was modified typing/typedtree.mli (diff) The file was modified boot/ocamlc (diff) The file was modified stdlib/atomic.ml (diff) The file was modified stdlib/atomic.mli (diff) The file was modified testsuite/tests/atomic-locs/cmm.ml (diff) The file was modified testsuite/tests/atomic-locs/record_fields.ml (diff) The file was modified testsuite/tests/atomic-locs/cmm.compilers.reference (diff) The file was modified stdlib/atomic.ml (diff) The file was modified typing/typecore.ml (diff) The file was modified typing/typecore.mli (diff) The file was modified Changes (diff) The file was modified typing/typecore.ml (diff) The file was modified testsuite/tests/atomic-locs/record_fields.ml (diff) The file was modified typing/typecore.ml (diff) The file was modified testsuite/tests/atomic-locs/record_fields.ml (diff) The file was modified stdlib/atomic.mli (diff) The file was modified stdlib/atomic.mli (diff) The file was modified manual/src/refman/extensions/extensionnodes.etex (diff) The file was modified manual/src/refman/typedecl.etex (diff) The file was modified manual/src/refman/extensions/attributes.etex (diff) The file was modified manual/src/tutorials/parallelism.etex (diff)
Commit
3e00aa54590360c0a97e471a259c5ad38ea12713
by noreply Runtime events: dispatch the right event message type (#13970) * Dispatch the right event message type `type.runtime | type.user` does not really make sense as `.runtime` and `.user` are two projections of the same union type. Prevents a MSVC 19.44.35109.1 warning: runtime/runtime_events.c(595): warning C5287: operands are different enum types 'ev_runtime_message_type' and 'ev_user_message_type'; use an explicit cast to silence this warning Co-authored-by: Gabriel Scherer <gabriel.scherer@gmail.com> * Fit in 80 cols --------- Co-authored-by: Gabriel Scherer <gabriel.scherer@gmail.com> The file was modified runtime/runtime_events.c (diff) The file was modified Changes (diff) The file was modified otherlibs/unix/putenv.c (diff) The file was modified otherlibs/unix/unix.mli (diff) The file was modified otherlibs/unix/unix_win32.ml (diff) The file was modified otherlibs/unix/unix_unix.ml (diff) The file was modified otherlibs/unix/unixLabels.mli (diff) The file was modified testsuite/tests/lib-unix/win-env/test_env.reference (diff) The file was modified testsuite/tests/lib-unix/win-env/test_env.ml (diff) The file was modified typing/types.mli (diff) The file was modified stdlib/result.mli (diff) The file was modified Changes (diff) The file was modified stdlib/option.mli (diff) The file was modified testsuite/tests/lib-option/test.ml (diff) The file was modified stdlib/option.ml (diff) The file was modified runtime/caml/sizeclasses.h (diff) The file was modified tools/gen_sizeclasses.ml (diff)
Commit
000a5c57ee9da59bd81d3132c55fcf4931bd9f99
by antonin Fix unterminated-string-initialization warning yacc/reader.c:62:1: error: initializer-string for character array is too long, array size is 32 but initializer has size 33 (including the null terminating character); did you mean to use the 'nonstring' attribute? [-Werror,-Wunterminated-string-initialization] 62 | "\000\000\000\000\000\000\000\000\376\377\377\207\376\377\377\007\000\000\000\000\000\000\000\000\377\377\177\377\377\377\177\377"; | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ yacc/reader.c:64:1: error: initializer-string for character array is too long, array size is 32 but initializer has size 33 (including the null terminating character); did you mean to use the 'nonstring' attribute? [-Werror,-Wunterminated-string-initialization] 64 | "\000\000\000\000\200\000\377\003\376\377\377\207\376\377\377\007\000\000\000\000\000\000\000\000\377\377\177\377\377\377\177\377"; | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The file was modified yacc/reader.c (diff) The file was modified Changes (diff) The file was modified testsuite/tests/atomic-locs/cmm.compilers.reference (diff) The file was modified testsuite/tests/native-debugger/linux-gdb-arm64.reference (diff) The file was modified testsuite/tests/native-debugger/sanitize.awk (diff) The file was modified testsuite/tests/native-debugger/linux-gdb-riscv.reference (diff) The file was modified testsuite/tests/native-debugger/linux-gdb-amd64.reference (diff) The file was modified Changes (diff) The file was modified runtime/major_gc.c (diff)
Commit
5f663c525a88c76e93a7da27f2dad1aaacb2108c
by david.allsopp Add caml_sys_proc_self_exe primitive caml_executable_name is always called in native startup and for all the non-default bytecode linking mechanisms. Bytecode startup now always calls caml_executable_name, and this value is stored along with exe_name. caml_sys_proc_self_exe returns this stored value as a string option. It returns None if caml_executable_name is not implemented on a given platform. The file was modified runtime/sys.c (diff) The file was modified runtime/startup_byt.c (diff) The file was modified runtime/startup_nat.c (diff) The file was modified runtime/caml/startup_aux.h (diff) The file was modified runtime/caml/sys.h (diff) The file was modified runtime/startup_aux.c (diff) The file was modified stdlib/sys.ml.in (diff) The file was modified stdlib/sys.mli (diff) The file was modified Changes (diff) The file was modified typing/typecore.mli (diff) The file was modified typing/typemod.ml (diff) The file was modified .depend (diff) The file was modified typing/typecore.ml (diff) The file was removed tools/eqparsetree.ml The file was modified typing/types.mli (diff) The file was modified flexdll (diff) The file was modified testsuite/tests/lib-dynlink-domains/main.ml (diff) The file was modified typing/types.mli (diff) The file was modified Changes (diff) The file was modified testsuite/tests/native-debugger/linux-lldb-amd64.reference (diff) The file was modified testsuite/tests/native-debugger/sanitize.awk (diff) The file was modified testsuite/tests/native-debugger/linux-lldb-arm64.reference (diff) The file was modified ocamltest/variables.mli (diff) The file was modified ocamltest/variables.ml (diff) The file was modified ocamltest/tsl_semantics.ml (diff) The file was modified Changes (diff) The file was modified ocamltest/variables.ml (diff) The file was modified ocamltest/variables.mli (diff) The file was modified Changes (diff) The file was modified ocamltest/tsl_semantics.ml (diff) The file was modified driver/compenv.mli (diff) The file was modified driver/maindriver.ml (diff) The file was modified driver/compenv.ml (diff) The file was modified driver/optmaindriver.ml (diff) The file was modified driver/compile_common.mli (diff)
Commit
7da23dc454005c035ba9c4ec61ebbd3d4be03fed
by gabriel.scherer Better error messages on invalid recursive module definitions Partially addresses issue of ambiguous error messages when no safe module is defined in a recursive module chain. The error messages should list out the full path of the values that cause the module to be unsafe. The file was modified testsuite/tests/basic-modules/recursive_module_evaluation_errors.ml (diff) The file was modified .depend (diff) The file was modified Changes (diff) The file was modified lambda/translmod.ml (diff) The file was modified lambda/translmod.mli (diff) The file was added testsuite/tests/statmemprof/bigarray.ml The file was added testsuite/tests/statmemprof/bigarray_stubs.c The file was modified otherlibs/unix/mmap_ba.c (diff) The file was added testsuite/tests/statmemprof/bigarray.reference The file was modified Changes (diff)
Commit
5cc9a523d906307f59d1f00c3b5b1fb87c5d5d92
by gabriel.scherer Format: place hint white spaces after the break hint When formatting with margin > 9, "@[aaaa@ bbbb@;<∞ 0>cccc@]" the `a` and `b` blocks fits inside the margin, and thus this text ought to be formatted as aaaa bbbb cccc However, before this commit `Format` rendered this text as aaaa bbbb cccc because it attributed the size of the horizontal contents of the `@;<∞ 0>` break hint to the pending break hint `@ `. This commit fixes this issue by attributing the size of the horizontal contents of a break hint to the break hints itself rather than any pending break hint. The file was modified stdlib/format.ml (diff) The file was added testsuite/tests/lib-format/breaks.ml The file was modified Changes (diff) The file was modified Changes (diff)
Commit
76b1eddd94d7d2fb2ecd9d1225f8315733f39e61
by noreply Attach infix extension points/attributes on local module/exception/open to structure item instead of enclosing let expression (#14009) Before this change, infix extension points and/or attributes were attached to the AST node of the enclosing let expression, ie: let module%foo[@bar] M = N in ... was parsed as [%foo (let module M = N in ...)[@bar]] After this change, this is parsed as: let [%%foo module M = N [@@bar]] in ... Moreover, ext/attrs are now allowed following the "let" itself to attach them to the enclosing let: let%foo[@bar] module M = N in ... is parsed as [%foo (let module M = N in ...)[@bar]] This is a breaking change. The file was modified Changes (diff) The file was modified parsing/ast_invariants.ml (diff) The file was modified boot/menhir/parser.ml (diff) The file was modified testsuite/tests/warnings/w60.compilers.reference (diff) The file was modified parsing/parser.mly (diff) The file was modified testsuite/tests/parsing/shortcut_ext_attr.compilers.reference (diff)
Commit
3bc21edc8e45a4e3919ff5d7f2f484b014af6669
by toastal manual: fall back immediately to user-agent-defined fonts These font stacks aren’t well-curated & these defaults subjectively don’t look good. If the web font fails, to load, this is a better alternative. The file was modified Changes (diff) The file was modified manual/src/html_processing/scss/_common.scss (diff) The file was modified boot/menhir/parser.ml (diff) The file was modified parsing/parser.mly (diff) The file was modified toplevel/topprinters.ml (diff) The file was modified toplevel/topprinters.mli (diff) The file was modified toplevel/topcommon.mli (diff) The file was modified .depend (diff) The file was modified debugger/printval.ml (diff) The file was modified toplevel/topdirs.ml (diff) The file was modified debugger/printval.mli (diff) The file was modified debugger/loadprinter.ml (diff) The file was modified toplevel/topcommon.ml (diff) The file was modified toplevel/toploop.mli (diff) The file was modified stdlib/gc.mli (diff) The file was modified otherlibs/unix/mmap_ba.c (diff) The file was modified runtime/memprof.c (diff) The file was modified runtime/caml/memprof.h (diff) The file was modified stdlib/gc.ml (diff) The file was modified testsuite/tests/statmemprof/bigarray.ml (diff) The file was modified testsuite/tests/statmemprof/bigarray.reference (diff) The file was modified Changes (diff)
Commit
c36da49338c42193da62803f5eb4dbe31f28bf91
by gabriel.scherer Reimplement generational stack scanning a la OCaml 4 Uses spare bits in return addresses to mark already-scanned stack frames. Currently works on - POWER - RISC-V - ARM 64-bits in Top Bits Ignore mode (i.e. under Linux but not under macOS) The file was modified runtime/fiber.c (diff) The file was modified runtime/caml/roots.h (diff) The file was modified runtime/caml/stack.h (diff) The file was modified runtime/minor_gc.c (diff) The file was modified runtime/backtrace_nat.c (diff)
Commit
86e2926895af77e2bac57838cd442eb0e842530a
by gabriel.scherer ARM64: explicitly ignore top bits in return addresses Unless the hardware is in top-bits-ignore mode already. As a consequence, generational stack scanning is supported on all ARM64 platforms, incl. Apple Silicon / macOS. The overhead of the extra masking instruction before every `ret` instruction is low: 1% to 1.5% code size increase; run-time increase is lost in the noise. The file was modified asmcomp/arm64/arch.ml (diff) The file was modified asmcomp/arm64/arch.mli (diff) The file was modified runtime/caml/stack.h (diff) The file was modified runtime/arm64.S (diff) The file was modified asmcomp/arm64/emit.mlp (diff)
Commit
413a3bdee7adaf4cbe7fbdb2dfc191477b6a0943
by gabriel.scherer Better API for generational stack scanning Introduce the `Saved_return_address_raw` macro, to be used at the only place where return address marks matter (minor GC root scanning). The `Saved_return_address` macro transparently masks the mark bit off, so that existing uses of this macro for backtraces, etc, are unchanged. The file was modified runtime/backtrace_nat.c (diff) The file was modified runtime/caml/stack.h (diff) The file was modified runtime/fiber.c (diff) The file was modified runtime/tsan.c (diff) The file was modified Changes (diff) The file was modified runtime/tsan.c (diff) The file was modified manual/src/refman/extensions/modulealias.etex (diff) The file was modified manual/src/refman/extensions/alerts.etex (diff) The file was modified manual/src/refman/extensions/privatetypes.etex (diff) The file was modified manual/src/refman/extensions/doccomments.etex (diff) The file was modified manual/src/refman/extensions/indexops.etex (diff) The file was modified manual/src/refman/extensions/overridingopen.etex (diff) The file was modified manual/src/refman/extensions/generativefunctors.etex (diff) The file was modified manual/src/refman/extensions/recursivemodules.etex (diff) The file was modified manual/src/refman/extensions/moduletypeof.etex (diff) The file was modified manual/src/refman/extensions/generalizedopens.etex (diff) The file was modified manual/src/refman/extensions/arrayliterals.etex (diff) The file was modified manual/src/refman/extensions/gadts.etex (diff) The file was modified manual/src/refman/extensions/signaturesubstitution.etex (diff) The file was modified manual/src/refman/extensions/bigarray.etex (diff) The file was modified manual/src/refman/extensions/extensiblevariants.etex (diff) The file was modified manual/src/refman/exten.etex (diff) The file was modified manual/src/refman/extensions/extensionnodes.etex (diff) The file was modified manual/src/refman/extensions/locallyabstract.etex (diff) The file was modified manual/src/refman/extensions/firstclassmodules.etex (diff) The file was modified manual/src/refman/extensions/attributes.etex (diff) The file was modified manual/src/refman/extensions/inlinerecords.etex (diff) The file was modified manual/src/refman/extensions/letrecvalues.etex (diff) The file was modified manual/src/refman/extensions/effects.etex (diff) The file was modified manual/src/refman/extensions/extensionsyntax.etex (diff) The file was modified manual/src/refman/extensions/bindingops.etex (diff) The file was modified manual/src/refman/extensions/emptyvariants.etex (diff) The file was modified manual/src/refman/extensions/labeledtuples.etex (diff) The file was modified Changes (diff)
Commit
517e7bd99e9b379e4523a29bb2eddbfd042498b8
by pierre.boutillier Use BUILD_PATH_PREFIX_MAP to sanitize debug event paths, do not rewrite shebang 1. bytecomp/emitcode.ml Sanitize the paths in debug events using BUILD_PATH_PREFIX_MAP. However if the mapping has no effect, then do nothing. 2. bytecomp/bytelink.ml Do not do BUILD_PATH_PREFIX_MAP mapping of the path supplied by the user with the `-use-runtime` option. This is used to fill in the shebang part of the executable, and an abstract path is unlikely to work there. The file was modified bytecomp/emitcode.ml (diff) The file was modified Changes (diff) The file was modified bytecomp/bytelink.ml (diff)
Commit
a1263d64ddfdf5c5e91003e22abc10e3044258be
by samuel Accept native freestanding targets at configure time Accept `*-none` and `*-elf*` triplets for all the architectures with a native backend to describe the corresponding freestanding targets; `none` and `elf*` are the most commonly-used last components in triplets for freestanding targets Set `system` to `none` and `os_type` to `None` in such cases The file was modified configure.ac (diff) The file was modified configure (diff)
Commit
8bc40f9d8dea61824c2c7f4bf773b59ba118c8d7
by samuel Allow `*-ocaml` as target triplets to build freestanding cross compilers Allow `ocaml` to be used as the last component of the target triplet in case we are using a custom toolchain for a freestanding target. The target triplet is then temporarily rewritten to "<arch>-none" to compute the canonical target. This allows to use a `*-*-ocaml-` prefixes (`x86_64-solo5-ocaml-`, for instance) to create cross-compiler toolchains dedicated to specific freestanding targets. The file was modified configure (diff) The file was modified configure.ac (diff) The file was modified Changes (diff) The file was modified runtime/caml/shared_heap.h (diff) The file was modified runtime/domain.c (diff) The file was modified runtime/shared_heap.c (diff) The file was modified Changes (diff) The file was modified runtime/shared_heap.c (diff) The file was modified runtime/domain.c (diff) The file was modified runtime/shared_heap.c (diff) The file was modified runtime/caml/shared_heap.h (diff) The file was modified runtime/domain.c (diff) The file was modified runtime/shared_heap.c (diff) The file was modified runtime/caml/shared_heap.h (diff) The file was modified Changes (diff) The file was modified Changes (diff) The file was modified Changes (diff)
Commit
776e8c147f3853398a7941d52a910489c21c393e
by noreply Unix.kill: On Windows, make process exit code ERROR_PROCESS_ABORTED (#14046) * Unix.kill: On Windows, make process exit code non-zero * Changes * Changes * Exit with ERROR_PROCESS_ABORTED instead of 137 * Add since comment The file was modified otherlibs/unix/unixLabels.mli (diff) The file was modified otherlibs/unix/unix.mli (diff) The file was modified otherlibs/unix/createprocess.c (diff) The file was modified Changes (diff) The file was modified bytecomp/emitcode.ml (diff) The file was modified bytecomp/bytelink.ml (diff) The file was modified bytecomp/bytelink.ml (diff) The file was modified Changes (diff) The file was modified lambda/translprim.ml (diff) The file was modified Changes (diff) The file was modified debugger/source.ml (diff) The file was modified typing/gprinttyp.ml (diff) The file was modified stdlib/option.mli (diff) The file was modified stdlib/option.ml (diff) The file was modified Changes (diff) The file was modified typing/ctype.ml (diff) The file was modified typing/errortrace_report.ml (diff) The file was modified testsuite/tests/typing-labeled-tuples/labeled_tuples_and_constructors.ml (diff) The file was modified typing/errortrace.ml (diff) The file was modified testsuite/tests/typing-labeled-tuples/labeled_tuple_patterns.ml (diff) The file was modified testsuite/tests/typing-labeled-tuples/labeled_tuples.ml (diff) The file was modified typing/errortrace.mli (diff)
Commit
a2ff76a67ff6e00068d5d9cb0bd5102308be4d88
by thevoodoos Add a test showing spurious unused warnign in fonctor argument signatures. The bug was most certainly introduced in https://github.com/ocaml/ocaml/pull/13308 Illustrates issue https://github.com/ocaml/ocaml/issues/13955 Co-authored-by: Florian Angeletti <florian.angeletti@inria.fr> The file was modified testsuite/tests/warnings/w32.ml (diff) The file was modified testsuite/tests/warnings/w32.compilers.reference (diff) The file was modified typing/includemod.ml (diff) The file was modified testsuite/tests/warnings/w32.compilers.reference (diff) The file was modified typing/typemod.ml (diff) The file was modified testsuite/tests/warnings/w32.ml (diff) The file was modified typing/includemod.mli (diff) The file was modified testsuite/tests/warnings/w32.compilers.reference (diff) The file was modified testsuite/tests/warnings/w32.ml (diff) The file was modified Changes (diff)
Commit
77b6c42a5a23ba64c26e0e6bc5168eeb94d3046a
by me dynlink: fix exception name in printer It looks like the name got changed in #1063. The `Cannot_open_dll` name in the printer can be misleading because it points to a different type. The file was modified otherlibs/dynlink/dynlink_types.ml (diff) The file was modified Changes (diff) The file was modified Changes (diff) The file was modified manual/src/cmds/intf-c.etex (diff)
Commit
8761443617f229d5fe683ed2570aa79c8d64348a
by noreply Add a new type kind `Type_external` (#13712) * parser.mly * boot/menhir * let Ctype.mcomp 1. distinguish string and bytes, and 2. judge locally defined abstract types compatible (by disabling non_aliasable). * farewell non_aliasable * - make alldepend - Changes - add and promote tests - fix variance * rephrase "provably equal" comment The file was modified parsing/ast_mapper.ml (diff) The file was modified ocamldoc/odoc_str.ml (diff) The file was modified typing/untypeast.ml (diff) The file was modified typing/outcometree.mli (diff) The file was modified typing/typedtree.mli (diff) The file was modified typing/typeopt.ml (diff) The file was modified parsing/printast.ml (diff) The file was modified toplevel/genprintval.ml (diff) The file was modified boot/menhir/parser.ml (diff) The file was modified parsing/depend.ml (diff) The file was modified ocamldoc/odoc_html.ml (diff) The file was modified parsing/parsetree.mli (diff) The file was modified typing/btype.ml (diff) The file was modified ocamldoc/odoc_scan.ml (diff) The file was modified typing/env.ml (diff) The file was modified typing/datarepr.ml (diff) The file was modified ocamldoc/odoc_type.ml (diff) The file was modified testsuite/tests/typing-gadts/or_patterns.ml (diff) The file was added testsuite/tests/typing-misc/type_external.ml The file was modified testsuite/tests/typing-poly/poly.ml (diff) The file was modified .depend (diff) The file was modified ocamldoc/odoc_latex.ml (diff) The file was modified ocamldoc/odoc_search.ml (diff) The file was modified parsing/pprintast.ml (diff) The file was modified testsuite/tests/typing-misc/exp_denom.ml (diff) The file was modified ocamldoc/odoc_texi.ml (diff) The file was modified typing/subst.ml (diff) The file was modified testsuite/tests/tool-toplevel/multi_phrase_line.compilers.reference (diff) The file was modified testsuite/tests/typing-objects/Tests.ml (diff) The file was modified testsuite/tests/typing-gadts/test.ml (diff) The file was modified typing/includecore.mli (diff) The file was modified ocamldoc/odoc_type.mli (diff) The file was modified typing/tast_mapper.ml (diff) The file was modified testsuite/tests/typing-misc/records.ml (diff) The file was modified typing/typedecl_separability.ml (diff) The file was modified Changes (diff) The file was modified typing/types.ml (diff) The file was modified typing/types.mli (diff) The file was modified typing/includecore.ml (diff) The file was modified parsing/parser.mly (diff) The file was modified typing/printtyped.ml (diff) The file was modified typing/typedecl.ml (diff) The file was modified testsuite/tests/tool-ocamlc-locations/marshalled.compilers.reference (diff) The file was modified ocamldoc/odoc_dep.ml (diff) The file was modified testsuite/tests/typing-safe-linking/a.ml (diff) The file was modified typing/parmatch.ml (diff) The file was modified typing/typedtree.ml (diff) The file was modified testsuite/tests/parsing/rawidents.ml (diff) The file was modified typing/tast_iterator.ml (diff) The file was modified typing/oprint.ml (diff) The file was modified ocamldoc/odoc_sig.ml (diff) The file was modified ocamldoc/odoc_info.mli (diff) The file was modified testsuite/tests/typing-extension-constructor/test.ocaml.reference (diff) The file was modified typing/out_type.ml (diff) The file was modified typing/typedecl_variance.ml (diff) The file was modified ocamldoc/odoc_cross.ml (diff) The file was modified parsing/ast_iterator.ml (diff) The file was modified typing/ctype.ml (diff) The file was modified typing/predef.ml (diff) The file was modified ocamldoc/odoc_man.ml (diff) The file was modified asmcomp/arm64/emit.mlp (diff) The file was modified typing/errortrace_report.ml (diff) The file was modified testsuite/tests/typing-poly/poly.ml (diff) The file was modified typing/ctype.ml (diff) The file was modified typing/errortrace.mli (diff) The file was modified typing/errortrace.ml (diff) The file was modified asmcomp/s390x/emit.mlp (diff) The file was modified asmcomp/arm64/selection.ml (diff) The file was modified asmcomp/power/emit.mlp (diff) The file was modified asmcomp/printcmm.ml (diff) The file was modified asmcomp/cmm_helpers.ml (diff) The file was modified asmcomp/amd64/emit.mlp (diff) The file was modified asmcomp/riscv/emit.mlp (diff) The file was modified asmcomp/arm64/emit.mlp (diff) The file was modified asmcomp/cmm.ml (diff) The file was modified asmcomp/thread_sanitizer.ml (diff) The file was modified asmcomp/cmm.mli (diff)
Commit
721712624b6e0f148377fb5c444ff425b08d5e29
by noreply Fix note: the alignment of `_Atomic long long unsigned int` fields changed in GCC 11.1 on i686 (#14035) * Prevent a GCC 11.1+ note on _Atomic long long int alignment in i686 runtime/caml/runtime_events.h:217:1: note: the alignment of '_Atomic long long unsigned int' fields changed in GCC 11.1 217 | }; | ^ * Use GCC aligned attribute instead of C alignas The C standard _Alignas / alignas isn't enough to silence the GCC note, as of GCC 14. The file was modified Changes (diff) The file was modified runtime/caml/runtime_events.h (diff)
Commit
48efc58d67242349af56ae91944e3052c6cbd26b
by noreply Add missing `item-attribute` rule for `let-binding` in documentation of attributes (#14077) This reflects the grammar in https://github.com/ocaml/ocaml/blob/8761443617f229d5fe683ed2570aa79c8d64348a/parsing/parser.mly#L2742-L2759 and without this rule, the documentation doesn't account for forms like ``` let foo = bar [@@bax] ``` The file was modified Changes (diff) The file was modified manual/src/refman/extensions/attributes.etex (diff) The file was modified .github/workflows/build.yml (diff) The file was modified Changes (diff) The file was modified Changes (diff) The file was modified asmcomp/arm64/emit.mlp (diff)
Commit
5607fc429d6a45bf4802c175c2950a5c8ba3711a
by noreply Catch invalid aliases at merging rather than subtyping (#14066) * Add tests for introduction of invalid aliases via module constraints * Catch invalid aliases at module constraints, not at subtyping * Remove the unreachable "Invalid alias" subtyping error * changelog The file was modified Changes (diff) The file was modified testsuite/tests/typing-modules/merge_constraint.ml (diff) The file was modified typing/includemod.ml (diff) The file was modified typing/typemod.mli (diff) The file was modified testsuite/tests/typing-modules/pr7818.ml (diff) The file was modified testsuite/tests/typing-modules/aliases.ml (diff) The file was modified typing/includemod.mli (diff) The file was modified typing/includemod_errorprinter.ml (diff) The file was modified typing/typemod.ml (diff)
Commit
6b82c95cf44071e86c3cbba2757520d0c227f339
by david.allsopp Generalise Compmisc.init_path Previously, Compmisc.init_path initialised the load path using Config.standard_library, but this can now be altered via an optional ?standard_library argument. This is used internally when testing compiler installations in order to allow Ccomp.call_linker to be used. The file was modified driver/compmisc.mli (diff) The file was modified driver/compmisc.ml (diff) The file was modified bytecomp/dll.mli (diff) The file was modified bytecomp/dll.ml (diff) The file was modified utils/misc.ml (diff) The file was modified utils/misc.mli (diff) The file was modified bytecomp/bytelink.mli (diff) The file was modified Changes (diff) The file was modified stdlib/domain.mli (diff) The file was modified stdlib/domain.ml (diff) The file was modified runtime/domain.c (diff) The file was modified Changes (diff) The file was modified Changes (diff) The file was modified utils/config.generated.ml.in (diff) The file was modified aclocal.m4 (diff) The file was modified configure.ac (diff) The file was modified configure (diff) The file was modified utils/config.fixed.ml (diff) The file was modified utils/config.mli (diff) The file was added testsuite/tools/testRelocation.ml The file was added testsuite/in_prefix/README.md The file was added testsuite/tools/environment.mli The file was added testsuite/tools/cmdline.mli The file was added testsuite/tools/testDynlink.ml The file was added testsuite/tools/testBytecodeBinaries.ml The file was modified configure.ac (diff) The file was added testsuite/tools/harness.ml The file was added testsuite/tools/testToplevel.ml The file was added testsuite/tools/testRelocation.mli The file was added testsuite/tools/testLinkModes.ml The file was added testsuite/tools/test_in_prefix.ml The file was added testsuite/tools/testLinkModes.mli The file was added testsuite/tools/test_in_prefix.mli The file was added testsuite/tools/toolchain.mli The file was added testsuite/tools/test_ld_conf.ml The file was modified configure (diff) The file was added testsuite/tools/testToplevel.mli The file was modified Makefile.build_config.in (diff) The file was modified .depend (diff) The file was modified Makefile (diff) The file was added testsuite/tools/testDynlink.mli The file was added testsuite/tools/cmdline.ml The file was modified .gitignore (diff) The file was added testsuite/tools/main_in_c.c The file was added testsuite/tools/harness.mli The file was added testsuite/tools/environment.ml The file was added testsuite/tools/testBytecodeBinaries.mli The file was added testsuite/tools/toolchain.ml The file was added testsuite/in_prefix/Makefile.test The file was added testsuite/tools/test_ld_conf.mli The file was modified .github/workflows/build-msvc.yml (diff) The file was modified tools/ci/inria/main (diff) The file was modified .github/workflows/build.yml (diff) The file was modified tools/ci/actions/runner.sh (diff) The file was modified tools/ci/appveyor/appveyor_build.sh (diff) The file was modified Changes (diff) The file was modified Changes (diff) The file was modified runtime/io.c (diff) The file was added testsuite/tests/lib-channels/close_during_flush.reference The file was added testsuite/tests/lib-channels/close_during_flush.ml The file was modified runtime/io.c (diff) The file was modified testsuite/tests/lib-channels/close_during_flush.ml (diff) The file was modified Changes (diff)
Commit
d9068d1a24b33b4837cdb7ba3d62aeebe26c3bc8
by olivier Fix flakiness of TSan tests using flushes and synchronization Co-authored-by: Fabrice Buoro <fabbing@free.fr> All logging output is moved to stderr, the same output where TSan dumps its race reports. This is to help understanding what happens if the output of this test ever changes. Additionally, a second synchronizing barrier is added to some tests to remove flakiness. The existing barrier ensured that 1. there was a data race, by delaying the synchronizing `Domain.join` until after both domains had accessed the shared mutable field; and 2. that these accesses always happened in the same order (write first or read first). The role of the new barrier is to enforce always the same order between the TSan report and logging lines such as `"Leaving f"`. Not enforcing that order was the source of flakiness in these tests. The file was modified Changes (diff) The file was modified testsuite/tests/tsan/exn_from_c.reference (diff) The file was modified testsuite/tests/tsan/exn_in_callback.ml (diff) The file was modified testsuite/tests/tsan/exn_in_callback.reference (diff) The file was modified testsuite/tests/tsan/exn_reraise.reference (diff) The file was modified testsuite/tests/tsan/exn_from_c.ml (diff) The file was modified testsuite/tests/tsan/exn_reraise.ml (diff) The file was modified tools/ci/inria/sanitizers/script (diff) The file was modified otherlibs/unix/readlink_win32.c (diff) The file was modified otherlibs/unix/lockf_win32.c (diff) The file was modified otherlibs/unix/link_win32.c (diff)
Commit
072a905c85fbfcc1c6141d420ee4b4c3214790a7
by n.oje.bar Symmetrize caml_sys_rename and caml_unix_rename Make the libunix implementation common for Windows and POSIX. The Windows implementation was using a simple call to MoveFileEx, but rename_os aliases to caml_win32_rename, which is a more portable and POSIX-like reimplementation, with fixes from #12320 and before. The file was removed otherlibs/unix/rename_win32.c The file was modified otherlibs/unix/Makefile (diff) The file was removed otherlibs/unix/rename_unix.c The file was added otherlibs/unix/rename.c The file was modified runtime/caml/osdeps.h (diff) The file was modified runtime/sys.c (diff) The file was modified otherlibs/unix/chdir.c (diff) The file was modified runtime/sys.c (diff) The file was modified otherlibs/unix/close_unix.c (diff) The file was modified runtime/sys.c (diff)
Commit
055b3b16dbf74798829a68c8feab4ade081d40bb
by n.oje.bar Symmetrize caml_sys_system_command and caml_unix_system - caml_unix_system on Windows would raise ENOENT if the command string wasn't C safe. Prefer raising EINVAL as caml_sys_system_command. - caml_sys_system_command did not call _flushall on Windows as caml_unix_system did. The file was modified otherlibs/unix/system.c (diff) The file was modified runtime/sys.c (diff) The file was modified Changes (diff) The file was modified stdlib/option.mli (diff) The file was modified Changes (diff) The file was modified stdlib/option.ml (diff) The file was modified stdlib/dynarray.ml (diff) The file was modified stdlib/dynarray.mli (diff) The file was modified stdlib/dynarray.ml (diff) The file was modified testsuite/tests/lib-dynarray/test.ml (diff) The file was modified Changes (diff) The file was modified runtime/domain.c (diff) The file was modified stdlib/domain.ml (diff) The file was modified Changes (diff) The file was modified stdlib/domain.mli (diff) The file was modified Changes (diff) The file was modified ocamldoc/odoc_html.mli (diff) The file was modified ocamldoc/odoc_html.ml (diff) The file was modified testsuite/tests/tool-ocamldoc/Paragraph.html.reference (diff) The file was modified testsuite/tests/statmemprof/bigarray_stubs.c (diff) The file was modified testsuite/tests/lib-bigarray-2/bigarrfstub.c (diff) The file was modified testsuite/tests/lib-bigarray-2/bigarrcstub.c (diff) The file was modified Changes (diff) The file was modified testsuite/tests/tool-toplevel/install_printer.ml (diff) The file was modified testsuite/tests/tool-toplevel/install_printer.compilers.reference (diff) The file was modified typing/ctype.ml (diff) The file was modified typing/ctype.mli (diff) The file was modified toplevel/genprintval.ml (diff) The file was modified toplevel/genprintval.ml (diff) The file was modified typing/ctype.mli (diff) The file was modified typing/includecore.ml (diff) The file was modified typing/ctype.ml (diff) The file was modified Changes (diff) The file was modified .github/workflows/build.yml (diff) The file was modified .github/workflows/build-msvc.yml (diff) The file was modified configure (diff) The file was modified configure.ac (diff) The file was modified testsuite/tests/lib-bigarray-2/bigarrfstub.c (diff) The file was modified testsuite/tests/lib-bigarray-2/bigarrcstub.c (diff) The file was modified testsuite/tests/statmemprof/bigarray_stubs.c (diff) The file was modified Changes (diff) The file was modified runtime/minor_gc.c (diff) The file was modified testsuite/tests/lib-unix/win-stat/fakeclock.c (diff) The file was modified otherlibs/unix/truncate_win32.c (diff) The file was modified otherlibs/unix/stat_win32.c (diff) The file was modified runtime/caml/config.h (diff) The file was modified runtime/caml/io.h (diff) The file was modified otherlibs/unix/mmap_win32.c (diff)
Commit
9893cdd32e41d8347ccfcbd7dd60436913a8709f
by antonin Use time_t instead of MSVC __time64_t The documentation reads: > `time` is a wrapper for `_time64` and `time_t` is, by default, > equivalent to `__time64_t`. If you need to force the compiler to > interpret `time_t` as the old 32-bit `time_t`, you can define > `_USE_32BIT_TIME_T`. https://learn.microsoft.com/en-us/cpp/c-runtime-library/reference/time-time32-time64?view=msvc-170 The file was modified otherlibs/unix/stat_win32.c (diff) The file was modified runtime/caml/bigarray.h (diff) The file was modified runtime/bigarray.c (diff) The file was modified runtime/caml/config.h (diff) The file was modified runtime/caml/config.h (diff) The file was modified runtime/clambda_checks.c (diff) The file was modified runtime/caml/config.h (diff) The file was modified runtime/minor_gc.c (diff) The file was modified runtime/platform.c (diff) The file was modified runtime/parsing.c (diff) The file was modified runtime/gc_ctrl.c (diff) The file was modified runtime/fiber.c (diff) The file was modified runtime/caml/config.h (diff) The file was modified runtime/shared_heap.c (diff) The file was modified runtime/major_gc.c (diff) The file was modified runtime/printexc.c (diff) The file was modified runtime/instrtrace.c (diff) The file was modified runtime/domain.c (diff) The file was modified runtime/interp.c (diff) The file was modified testsuite/tests/lf_skiplist/stubs.c (diff) The file was modified runtime/sys.c (diff) The file was modified testsuite/tests/asmgen/mainarith.c (diff) The file was modified runtime/meta.c (diff) The file was modified testsuite/tests/asmgen/mainimmed.c (diff) The file was modified runtime/shared_heap.c (diff) The file was modified Changes (diff) The file was modified parsing/pprintast.ml (diff) The file was modified Changes (diff) The file was modified testsuite/tests/compiler-libs/test_untypeast.ml (diff) The file was modified toplevel/topcommon.ml (diff) The file was modified Changes (diff) The file was modified typing/ctype.ml (diff) The file was modified configure (diff) The file was modified configure.ac (diff) The file was modified stdlib/Makefile (diff)
Commit
fc3294370566b4a0f749addd6b9be7cd2b19a7e0
by david.allsopp Reduce tmpheader.exe to 4-5KiB on Windows stdlib/headernt.c was adapted in OCaml 3.00 to reduce its size by avoiding the use of the CRT and using Windows API functions directly (this is a well-studied trick on Windows, principally as a puzzle for producing tiny binaries). This got "regressed" slightly in OCaml 4.06, in the complex introduction of wide character support for Windows, as the mingw-w64 incantation required was unclear, so the entry point was changed to wmain, and the size of the header increased. By switching from wcslen (a CRT function) to lstrlen (a Win32 API function), headernt.c again only requires kernel32.dll. Additional flags are added for both ld (mingw-w64) and link (MSVC) to squeeze every last byte out of tmpheader.exe. The MSVC version of the header is once again no longer passed through strip, as this was found to be corrupting the executable (and had never been reducing its size anyway). The file was modified stdlib/headernt.c (diff) The file was modified stdlib/Makefile (diff)
Commit
776b993861f3b46bfb3d847e4abcd2fed9041321
by david.allsopp Stop using Caml_inline and CAMLnoret in headernt.c Modern C compilers are sufficiently intelligent not to need the inlining hints! Inline the definition from caml/misc.h for CAMLnoret. Co-authored-by: Antonin Décimo <antonin@tarides.com> The file was modified stdlib/headernt.c (diff)
Commit
558c630b234bf6c9da5180cdda6945b91ff6c937
by david.allsopp Remove unnecessary guards around unistd.h Already updated to remove the actual test in s.h, since XPG1 (1985) required it and it is therefore part of the Single Unix Specification (1992), but the _WIN32 guard and the loading of s.h are unnecessary. The file was modified stdlib/header.c (diff) The file was modified stdlib/header.c (diff) The file was modified stdlib/header.c (diff) The file was modified stdlib/header.c (diff) The file was modified stdlib/headernt.c (diff) The file was modified runtime/caml/exec.h.in (diff) The file was modified stdlib/header.c (diff) The file was modified stdlib/header.c (diff) The file was modified stdlib/headernt.c (diff) The file was modified stdlib/headernt.c (diff) The file was modified stdlib/headernt.c (diff) The file was modified stdlib/header.c (diff) The file was modified stdlib/headernt.c (diff) The file was modified stdlib/header.c (diff) The file was modified stdlib/header.c (diff) The file was modified stdlib/headernt.c (diff) The file was modified stdlib/header.c (diff) The file was modified stdlib/header.c (diff) The file was modified stdlib/headernt.c (diff) The file was modified stdlib/headernt.c (diff) The file was modified stdlib/headernt.c (diff) The file was modified stdlib/header.c (diff) The file was modified testsuite/tools/testLinkModes.ml (diff) The file was modified stdlib/Makefile (diff) The file was removed stdlib/headernt.c The file was modified testsuite/in_prefix/README.md (diff) The file was modified stdlib/header.c (diff) The file was modified typing/typecore.ml (diff) The file was modified testsuite/tests/typing-misc/apply_non_function.ml (diff) The file was modified Changes (diff) The file was modified Changes (diff) The file was modified configure (diff) The file was modified configure.ac (diff)
Commit
d7af01eec1f8ff8cdd3b0b375f6ba9a0dc55f8e4
by noreply Increase the amount of data written to a pipe in a test (#14116) On some OSes, you need to write more than 1MB of data to a pipe before writes block, and read more than 64k to unblock them. The file was modified testsuite/tests/lib-channels/close_during_flush.ml (diff) The file was modified testsuite/tests/typing-modules/merge_constraint.ml (diff) The file was modified testsuite/tests/typing-modules/merge_constraint.ml (diff) The file was modified typing/typemod.ml (diff) The file was modified testsuite/tests/typing-modules/merge_constraint.ml (diff) The file was modified Changes (diff) The file was modified stdlib/templates/set.template.mli (diff) The file was modified stdlib/set.mli (diff) The file was modified testsuite/tests/generalized-open/accepted_expect.ml (diff) The file was modified stdlib/moreLabels.mli (diff) The file was modified stdlib/templates/map.template.mli (diff) The file was modified Changes (diff) The file was modified stdlib/map.mli (diff) The file was modified testsuite/tests/typing-modules/aliases.ml (diff) The file was modified stdlib/set.ml (diff) The file was modified testsuite/tests/shapes/comp_units.ml (diff) The file was modified testsuite/tests/typing-modules/pr7818.ml (diff) The file was modified stdlib/map.ml (diff) The file was modified testsuite/tests/typing-short-paths/short-paths.compilers.reference (diff) The file was modified testsuite/tests/typing-implicit_unpack/implicit_unpack.ml (diff) The file was modified Changes (diff) The file was modified stdlib/listLabels.mli (diff) The file was modified testsuite/tests/lib-list/test.ml (diff) The file was modified stdlib/list.mli (diff) The file was modified stdlib/list.ml (diff) The file was modified stdlib/char.mli (diff)
Commit
4a034852ad619b353f2fade2822f875e583545b6
by clement.blaudeau Add the approx flag to merging of module constraints - While module types constraints were using the [approx] flag to disable equivalence checking when merging, module constraints were only checked for cyclicity. Now, both use the same logic: the constraints is approximated and then merged in approx mode, where no equivalence check is done. It computes a better skeleton for the approximated signature, as the destructive substitutions are correctly removing the fields. - Add tests borrowed (and adapted) from https://github.com/oxcaml/oxcaml/pull/4121 - This commit changes the [lookup_module_path ~load:false] for [lookup_module], where the load flag is not set to false. I should not have much impact for well-typed programs, as the loading would happen after the approximation phase anyway. The file was modified typing/typemod.ml (diff) The file was added testsuite/tests/typing-recmod/regression_destructive_subst.ml
Commit
971d0b59c732bd6778b79f10b3f62e5e0ebe4d67
by clement.blaudeau Add a [merge_type_approx] for approximation of type constraints This commit introduces a new function to specifically deal with merging type constraints in approximation mode: - destructive constraints actually remove the constrained field, to prevent incorrect approximation (specifically, incorrect shadowing) - non-destructive constraints are treated as an identity patch, where the constrained field is replaced by itself. This allows us to reuse the normal merging infrastructure and fail early in case of ill-formed constraints where the field is not present (other forms of ill-formedness are caught later) The [post_process] function is made aware of the approximation flag to disable wellformedness checks The file was modified typing/typemod.ml (diff) The file was modified testsuite/tests/typing-modules/merge_constraint.ml (diff) The file was modified Changes (diff) The file was modified testsuite/tests/typing-modules/merge_constraint.ml (diff)
Commit
3114cddc8b4bdd717aa98f0fd0a6a4fc7fdb09b8
by clement.blaudeau Address review comments on #14100 - Factor out computation of the [destructive] flag for constraints between merging in normal and approximation modes - Fix typos in test descriptions - Add test that ghost items are not affected by constraints - Update Changelog The file was modified typing/typemod.ml (diff) The file was modified Changes (diff) The file was modified testsuite/tests/typing-modules/merge_constraint.ml (diff) The file was modified Changes (diff)
Commit
f9025a6d8644b69ccef173847a3d662210a023c4
by clement.blaudeau Refactor post_process of signature merging The [post_process] function for signature merging was taking two linked arguments: a [~destructive] flag and a [replace] function to apply only if the flag was set to [true]. This commit combines the two into a single optional function [replace] and clarifies some documentation comments. The file was modified typing/typemod.ml (diff) The file was modified typing/typemod.ml (diff) The file was modified Changes (diff) The file was modified typing/typemod.ml (diff) The file was modified stdlib/float.mli (diff) The file was modified stdlib/templates/float.template.mli (diff) The file was modified stdlib/stdlib.mli (diff)
Commit
bea10971d2ae2b4f7276830371528c3fd36ba301
by noreply Fix `__tsan_func_exit()` signature mismatch (#14065) (#14082) * Added checks to ensure __tsan_* internal builtins are as we expect them to be and introduced wrappers for them and updated configure * Changes to .S files reflecting the fact that we use caml_tsan_* in favour of __tsan_* --------- Signed-off-by: HHN <harihara.sn@gmail.com> Co-authored-by: Antonin Décimo <antonin.decimo@gmail.com> The file was modified runtime/arm64.S (diff) The file was modified configure.ac (diff) The file was modified runtime/power.S (diff) The file was modified runtime/s390x.S (diff) The file was modified runtime/amd64.S (diff) The file was modified configure (diff) The file was modified runtime/memory.c (diff) The file was modified runtime/riscv.S (diff) The file was modified Changes (diff) The file was modified runtime/tsan.c (diff) The file was modified runtime/caml/tsan.h (diff) The file was modified runtime/caml/s.h.in (diff) The file was modified asmcomp/thread_sanitizer.ml (diff) The file was modified typing/typemod.ml (diff) The file was modified lambda/matching.ml (diff) The file was modified Changes (diff) The file was modified middle_end/flambda/ref_to_variables.ml (diff) The file was modified middle_end/flambda/flambda_to_clambda.ml (diff) The file was modified middle_end/flambda/augment_specialised_args.ml (diff) The file was modified middle_end/flambda/flambda_utils.ml (diff) The file was modified middle_end/flambda/freshening.ml (diff) The file was modified middle_end/flambda/inline_and_simplify.ml (diff)