Skip to content
Success

Changes

Summary

  1. Ensure the minor heap is actually empty before reallocating it (details)
  2. use No_scan_tag and NOT_MARKABLE to indicate free block (details)
  3. change shared pools heap representation to indicate contiguous free ranges (details)
  4. add prefetching (details)
  5. add Changes (details)
  6. actually prefetch a page ahead (details)
  7. restore split asserts (details)
  8. clarify comment in verify_pool (details)
  9. fix bug in compaction (details)
  10. write Debug_free_major in to newly initialised pools (details)
  11. fix bug in pool_finalise (details)
  12. simplify macro (details)
  13. Update runtime/shared_heap.c (details)
  14. Update runtime/shared_heap.c (details)
  15. restore atomic header read (details)
  16. make note about GC pacing logic (details)
  17. Update runtime/shared_heap.c (details)
  18. wh -> Whsize_hd (details)
  19. always update the pointer in the last free block (details)
  20. revert all_used annotation (details)
  21. error messages: external with non-syntactic arity (details)
  22. release calendar update (details)
  23. Upstream "mark-delay" change from flambda-backend. (details)
  24. Hack to work around accounting problem: artificially catch-up work_counter at the start of any slice when it falls very far behind alloc_counter. (details)
  25. fix finaliser handling bug (details)
  26. Guard call to caml_darken (details)
  27. Fix ephe_custom.ml test for the mark-delay scheme (details)
  28. Don't make finaliser updates dependent on work being available. (details)
  29. Removed unused field in package_type (details)
  30. Changes (details)
  31. Rename cstrs to constraints to distinguish from cstrs = constructors (#14141) (details)
  32. Move the orphaned ephemerons GC colour check inside the barrier. (details)
  33. minor gc: more consistent memprof logging (details)
  34. Fix missing expectations in typing-poly/poly.ml (details)
  35. Additional corrections (details)
  36. Audit unexecuted phrases (details)
  37. Audit (details)
  38. Fix audit (details)
  39. Changes (details)
  40. Update changes (details)
  41. runtime: free the minor heap when leaving STW participants (details)
  42. Update parser and adapt to the new Tpoly invariant. Requires bootstrap. (details)
  43. bootstrap (details)
  44. Add tests for polymorphic parameters (details)
  45. Promote polymorphic parameters tests failures (details)
  46. Refactor: more descriptive return type for [split_function], renaming and comment work (details)
  47. Introduce new error "opt params cannot be polymorphic" (details)
  48. Wrap and generalize filter_arrow_mono if principal (details)
  49. Handle polymorphic parameters in type_apply_arg (details)
  50. Refactor Pexp_function case and handle poly (details)
  51. Add one generalization level in type_class_arg_pattern (details)
  52. Handle polymorphic parameters in [type_approx and] [type_pat_aux] (details)
  53. Add changes entry for #15733 (details)
  54. Add test with class argument (details)
  55. Additional tests with labels (details)
  56. review: reorder functions in btype (details)
  57. review: comment format (details)
  58. review: add a Btype.newgenmono utility symetrical to Ctype.newmono (details)
  59. review: use label names in error messages (details)
  60. review: additional tests (details)
  61. Add test for polymorphic variants in polymorphic parameters (details)
  62. Take fixed instances of polys where appropriate (details)
  63. Show issue with subtyping trace (details)
  64. Fix subtyping error trace (details)
  65. tests: Promote error messages improvements after rebasing. (details)
  66. review: more reuse in parser and reloc in [param_type] (details)
  67. review: move [is_really_poly] utility to Ctype. (details)
  68. Add more test cases (details)
  69. Move definition closer to usage (details)
  70. Additional test cases (details)
  71. Document function in comment (details)
  72. Add test cases (details)
  73. Fix typo in error message (details)
  74. Rename function and move it to Btype (details)
  75. Inline function and exception used only once (details)
  76. Document function (details)
  77. Enforce Tpoly invariant (details)
  78. Clarify conditions (details)
  79. Clearer argument label and field names (details)
  80. Turn ordinary comment into a documentation comment (details)
  81. Clearer variable name (details)
  82. Fix wrong set of univars (details)
  83. review: De-duplicate parser rule for let (details)
  84. review: Add test with syntactic arity mismatch (details)
  85. review: Fix test (details)
  86. Fix dependency generation when tools are disabled (details)
  87. Fix generation of config.status for dynlink (details)
  88. Don't generate ocamltest_config.ml when not needed (details)
  89. Correct ocamltest-manual (details)
  90. symbol names: revert to using `$` only on macOS and Windows (#14143) (details)
  91. bookkeeping: update release info (details)
  92. Minor heap reservation: change the terminology (details)
  93. review: use 'arena' for the (committed) minor heap space (details)
  94. self-review: solidify two separate comments on minor heap layout (details)
  95. runtime/domain.c: add a category of 'parked' stw_domains (details)
  96. [minor] domain.c: reorder domain_self and heap-reservation variables (details)
  97. [minor] domain.c: reorder domain_create (details)
  98. use POOL_FIRST_BLOCK (details)
  99. domain.c: fix `stw_resize_minor_heaps_reservation`. (details)
  100. Extend parsetree to distinguish between `(module M : S)` and `(module M) : (module S)` (details)
  101. Changes (details)
  102. add hashtbl remove and replace which return the previous value (#14060) (details)
  103. Memprof.start replaces any existing profile in the domain, Memprof.is_sampling (details)
  104. Adjust test and add test (details)
  105. [minor] Code clean-up (details)
  106. [documentation] Clarify a difference between threads and domains (details)
  107. Changes (details)
  108. Clarify test (details)
  109. Run callbacks before starting a different profile (details)
  110. Bump multicoretests to the trunk-compatible 0.9 (details)
  111. Also bump qcheck to 0.26 while we are at it (details)
  112. runtime: host aligned fibers inside the fiber cache whenever possible (#14169) (details)
  113. Add expectation to wellfounded11150.ml (#14170) (details)
  114. Print row types when they are GADT constructors (details)
  115. Better Btype.is_row_name (details)
  116. Gc.stat: restore stack_size and add live_stacks_words (#14168) (details)
  117. error message: explain quantification mismatches (details)
  118. deprecation alert: file location (details)
  119. update Changes (details)
  120. Fix #13658 (details)
  121. Remove misleading comment, and change call back to the more intuitive function (now that that function can't allocate after the minor GC). (details)
  122. Add runtime counters EV_C_MINOR_PROMOTED_WORDS and EV_C_MINOR_ALLOCATED_WORDS. (details)
  123. ocamlprof: do not instrument unreachable clauses (details)
  124. Changes (details)
  125. Changes: 14169 was included in 5.4 (details)
  126. Add Changes (details)
  127. Highlight known units for runtime_counter. (details)
Commit 0c50c0f6fdb21b7dae9bdd0c233568b505dd80b0 by mshinwell
Ensure the minor heap is actually empty before reallocating it

(cherry picked from flambda-backend commit 85a505610bb3b1900d05347651435b323620f48b)
(cherry picked from flambda-backend commit 3583cc128279820f5861b27fb58b095861fc8725)
The file was modifiedruntime/minor_gc.c (diff)
Commit 4b7b06d940e89c14ba12ba935134c8202bf8c0be by sadiq
use No_scan_tag and NOT_MARKABLE to indicate free block
The file was modifiedruntime/shared_heap.c (diff)
Commit c1a457ffe187cae4debca7a2b2f9db5e66be8461 by sadiq
change shared pools heap representation to indicate contiguous free ranges
update sweep and shared heap allocation to use this
The file was modifiedruntime/major_gc.c (diff)
The file was modifiedruntime/shared_heap.c (diff)
The file was modifiedruntime/shared_heap.c (diff)
The file was modifiedChanges (diff)
Commit 85436a95e692b0c58f7bd9d31ebdffcc1caaad65 by sadiq
actually prefetch a page ahead
The file was modifiedruntime/shared_heap.c (diff)
Commit 066cf23736bd006590c6262bb7ef3467e69691a0 by sadiq
restore split asserts
The file was modifiedruntime/shared_heap.c (diff)
The file was modifiedruntime/major_gc.c (diff)
Commit 395cc3311c1fe6f7f0775264054baa5a5aba3dc4 by sadiq
clarify comment in verify_pool
The file was modifiedruntime/shared_heap.c (diff)
Commit 868adceb0630e6e94a941d4cd85407a1bf378f99 by sadiq
fix bug in compaction
The file was modifiedruntime/shared_heap.c (diff)
Commit 32fec020f8f47ce737a7def9f3dd07daa076488c by sadiq
write Debug_free_major in to newly initialised pools
The file was modifiedruntime/shared_heap.c (diff)
Commit aa2a6e991cc6174cb3512fe45ffc17d78c51d1c4 by sadiq
fix bug in pool_finalise
The file was modifiedruntime/shared_heap.c (diff)
The file was modifiedruntime/shared_heap.c (diff)
Commit 40ac8974421510aba2aeff9550b4e319f5ebf211 by sadiq
Update runtime/shared_heap.c

Co-authored-by: Damien Doligez <damien.doligez@gmail.com>
The file was modifiedruntime/shared_heap.c (diff)
Commit 4f6ad7ab4db475edc62a7456b0db4e84c335fdd3 by sadiq
Update runtime/shared_heap.c

Co-authored-by: Damien Doligez <damien.doligez@gmail.com>
The file was modifiedruntime/shared_heap.c (diff)
Commit 0beada7047b1ba547a5cafdd2f8a82f5a2486fef by sadiq
restore atomic header read
The file was modifiedruntime/shared_heap.c (diff)
Commit a968da8280c5a684663069ebca3763f219b00b5b by sadiq
make note about GC pacing logic
The file was modifiedruntime/shared_heap.c (diff)
Commit 7ee99a65f3ae60b5edb430257fd707e4418ce23d by sadiq
Update runtime/shared_heap.c

Co-authored-by: Damien Doligez <damien.doligez@gmail.com>
The file was modifiedruntime/shared_heap.c (diff)
The file was modifiedruntime/shared_heap.c (diff)
Commit 8954ebc5bc8931dc7d571eefbbb2c4990a15d2f6 by sadiq
always update the pointer in the last free block
The file was modifiedruntime/shared_heap.c (diff)
Commit 9ee312af447a65295414381edc08c6c4dba56815 by sadiq
revert all_used annotation
The file was modifiedruntime/shared_heap.c (diff)
Commit 36ddb173e8749d726bc3d9581bc61596d3530048 by Florian Angeletti
error messages: external with non-syntactic arity
The file was addedtestsuite/tests/typing-external/non_syntactic_arity.ml
The file was modifiedChanges (diff)
The file was modifiedtyping/typedecl.mli (diff)
The file was modifiedtyping/typedecl.ml (diff)
The file was modifiedrelease-info/calendar.md (diff)
Commit fc83a8b6149bcd8a12eb0accc52ae0b386951029 by Nick.Barnes
Upstream "mark-delay" change from flambda-backend.

Co-authored-by: Stephen Dolan <sdolan@janestreet.com>
The file was addedtestsuite/tests/parallel/churn.reference
The file was modifiedruntime/domain.c (diff)
The file was modifiedruntime/weak.c (diff)
The file was modifiedChanges (diff)
The file was modifiedruntime/caml/major_gc.h (diff)
The file was modifiedruntime/shared_heap.c (diff)
The file was modifiedruntime/signals.c (diff)
The file was modifiedruntime/minor_gc.c (diff)
The file was modifiedruntime/memory.c (diff)
The file was addedtestsuite/tests/parallel/churn.ml
The file was modifiedruntime/intern.c (diff)
The file was modifiedruntime/caml/domain.h (diff)
The file was modifiedruntime/array.c (diff)
The file was modifiedruntime/caml/minor_gc.h (diff)
The file was modifiedruntime/caml/shared_heap.h (diff)
The file was modifiedruntime/fiber.c (diff)
The file was modifiedruntime/major_gc.c (diff)
Commit 0cfcba5d68041f91b0aec3364a8bfb46d59b8d9c by Nick.Barnes
Hack to work around accounting problem: artificially catch-up work_counter at the start of any slice when it falls very far behind alloc_counter.
The file was modifiedruntime/major_gc.c (diff)
Commit d5545a34e72810b51768c68427951afc233f556f by Nick.Barnes
fix finaliser handling bug
The file was modifiedruntime/major_gc.c (diff)
Commit ce14eedd7bf220d58fea01025712a6a909383cdc by Nick.Barnes
Guard call to caml_darken
The file was modifiedruntime/weak.c (diff)
Commit 17d14fab2b86b6f1ede285c8a4c6b54292f29cdf by Nick.Barnes
Fix ephe_custom.ml test for the mark-delay scheme
The file was modifiedtestsuite/tests/weak-ephe-final/ephe_custom.ml (diff)
Commit 1e4b55cb4aab4a65c1b52a5fd06bb041bffa2463 by Nick.Barnes
Don't make finaliser updates dependent on work being available.
The file was modifiedruntime/major_gc.c (diff)
Commit 1aeb967946849b83fb909912e6ac939a3fa00582 by samuel.aime.vivien
Removed unused field in package_type
The file was modifiedtyping/typetexp.ml (diff)
The file was modifiedtyping/typedtree.mli (diff)
The file was modifiedtyping/typemod.ml (diff)
The file was modifiedtyping/typedtree.ml (diff)
The file was modifiedtyping/typetexp.mli (diff)
The file was modifiedChanges (diff)
Commit 5e89966f8fee3e4d4829e29d0abe1ac02c757aad by noreply
Rename cstrs to constraints to distinguish from cstrs = constructors (#14141)

The file was modifiedtyping/typedecl.ml (diff)
The file was modifiedtyping/typedecl_variance.ml (diff)
The file was modifiedtestsuite/tests/parsing/hash_ambiguity.compilers.reference (diff)
The file was modifiedtestsuite/tests/parsetree/locations_test.compilers.reference (diff)
The file was modifiedparsing/ast_iterator.ml (diff)
The file was modifiedtyping/types.mli (diff)
The file was modifiedtestsuite/tests/parsing/shortcut_ext_attr.compilers.reference (diff)
The file was modifiedtyping/subst.ml (diff)
The file was modifiedtestsuite/tests/parsing/attributes.compilers.reference (diff)
The file was modifiedparsing/ast_helper.mli (diff)
The file was modifiedparsing/parser.mly (diff)
The file was modifiedparsing/ast_invariants.ml (diff)
The file was modifiedtyping/rawprinttyp.ml (diff)
The file was modifiedtyping/untypeast.ml (diff)
The file was modifiedocamldoc/odoc_env.ml (diff)
The file was modifiedtestsuite/tests/parsing/extensions.compilers.reference (diff)
The file was modifiedparsing/parsetree.mli (diff)
The file was modifiedtyping/typedecl_separability.ml (diff)
The file was modifiedparsing/depend.ml (diff)
The file was modifiedparsing/pprintast.ml (diff)
The file was modifiedtyping/btype.ml (diff)
The file was modifiedtyping/tast_iterator.ml (diff)
The file was modifiedtyping/typedtree.ml (diff)
The file was modifiedtyping/out_type.ml (diff)
The file was modifiedtyping/tast_mapper.ml (diff)
The file was modifiedtyping/typeclass.ml (diff)
The file was modifiedChanges (diff)
The file was modifiedparsing/ast_helper.ml (diff)
The file was modifiedtyping/typedtree.mli (diff)
The file was modifiedtyping/typemod.ml (diff)
The file was modifiedparsing/printast.ml (diff)
The file was modifiedtyping/typetexp.ml (diff)
The file was modifiedparsing/ast_mapper.ml (diff)
The file was modifiedtyping/outcometree.mli (diff)
The file was modifiedtyping/ctype.ml (diff)
The file was modifiedtyping/oprint.ml (diff)
The file was modifiedtyping/types.ml (diff)
The file was modifiedboot/menhir/parser.ml (diff)
The file was modifiedtyping/printtyped.ml (diff)
The file was modifiedtyping/gprinttyp.ml (diff)
Commit 2c2d2cda5c8be18912e59c4171ece83b86e4bd87 by kc
Move the orphaned ephemerons GC colour check inside the barrier.
The file was modifiedruntime/domain.c (diff)
The file was modifiedruntime/major_gc.c (diff)
Commit 69ed94cf28d9485d47bb572bacfa545b6959a9df by gabriel.scherer
minor gc: more consistent memprof logging

In
  https://github.com/ocaml/ocaml/pull/13580#issuecomment-3092253963
jmid reports that he needed to tweak the GC verbosity setting to avoid
getting spammed by minor-gc messages when debugging an assertion
failure.

The other sub-phases of the GC minor all uses `caml_gc_log` rather
than CAML_GC_MESSAGE, and do not seem to cause similar spamming
issues. Fixing the code to be consistent will avoid inconsistent
verbosity levels in end-user scripts.
The file was modifiedruntime/minor_gc.c (diff)
Commit ca3d055ae4984319da49fefc05b3b813b5edb1c1 by source
Fix missing expectations in typing-poly/poly.ml
The file was modifiedtestsuite/tests/typing-poly/poly.ml (diff)
Commit cc99be18afe97fe7c28e6d6a3d3a6cc1256b06bf by source
Additional corrections
The file was modifiedtestsuite/tests/typing-poly/poly.ml (diff)
Commit 0df7dea905dae52c0de7df81437cc3b313cf5c88 by source
Audit unexecuted phrases
The file was modifiedtestsuite/tools/expect.ml (diff)
The file was modifiedtestsuite/tests/typing-gadts/pr5985.ml (diff)
The file was modifiedtestsuite/tests/typing-unboxed-types/test.ml (diff)
The file was modifiedtestsuite/tests/typing-recmod/pr6491.ml (diff)
The file was modifiedtestsuite/tests/letrec-check/float_unboxing.ml (diff)
The file was modifiedtestsuite/tests/typing-modules/firstclass.ml (diff)
The file was modifiedtestsuite/tests/typing-modules/pr7851.ml (diff)
The file was modifiedtestsuite/tests/typing-misc/variance.ml (diff)
The file was modifiedtestsuite/tests/typing-misc/polyvars.ml (diff)
The file was modifiedtestsuite/tests/letrec-check/records.ml (diff)
The file was modifiedtestsuite/tests/typing-gadts/pr13579.ml (diff)
The file was modifiedtestsuite/tests/typing-gadts/yallop_bugs.ml (diff)
The file was modifiedtestsuite/tests/lib-array/test_array.ml (diff)
The file was modifiedtestsuite/tests/typing-gadts/gadthead.ml (diff)
The file was modifiedtestsuite/tests/typing-immediate/immediate.ml (diff)
The file was modifiedtestsuite/tests/typing-misc/injectivity.ml (diff)
The file was modifiedtestsuite/tests/typing-gadts/pr6158.ml (diff)
The file was modifiedtestsuite/tests/typing-modules/pr7818.ml (diff)
The file was modifiedtestsuite/tests/typing-modules/aliases.ml (diff)
The file was modifiedtestsuite/tests/typing-gadts/pr7374.ml (diff)
The file was modifiedtestsuite/tests/typing-poly/poly.ml (diff)
The file was modifiedtestsuite/tests/typing-gadts/ambiguity.ml (diff)
The file was modifiedtestsuite/tests/lib-array/test_array.ml (diff)
The file was modifiedtestsuite/tests/typing-gadts/pr5985.ml (diff)
The file was modifiedtestsuite/tests/typing-immediate/immediate.ml (diff)
The file was modifiedtestsuite/tests/typing-gadts/yallop_bugs.ml (diff)
The file was modifiedtestsuite/tests/typing-gadts/pr13579.ml (diff)
The file was modifiedtestsuite/tests/typing-misc/variance.ml (diff)
The file was modifiedtestsuite/tests/typing-modules/firstclass.ml (diff)
The file was modifiedtestsuite/tests/typing-gadts/pr7374.ml (diff)
The file was modifiedtestsuite/tests/letrec-check/float_unboxing.ml (diff)
The file was modifiedtestsuite/tests/typing-modules/aliases.ml (diff)
The file was modifiedtestsuite/tests/letrec-check/records.ml (diff)
The file was modifiedtestsuite/tests/typing-modules/pr7851.ml (diff)
The file was modifiedtestsuite/tests/typing-recmod/pr6491.ml (diff)
The file was modifiedtestsuite/tests/typing-unboxed-types/test.ml (diff)
The file was modifiedtestsuite/tests/typing-misc/injectivity.ml (diff)
The file was modifiedtestsuite/tests/typing-poly/poly.ml (diff)
The file was modifiedtestsuite/tests/typing-gadts/ambiguity.ml (diff)
The file was modifiedtestsuite/tests/typing-gadts/pr6158.ml (diff)
The file was modifiedtestsuite/tests/typing-gadts/gadthead.ml (diff)
The file was modifiedtestsuite/tests/typing-modules/pr7818.ml (diff)
The file was modifiedtestsuite/tests/typing-misc/polyvars.ml (diff)
The file was modifiedChanges (diff)
The file was modifiedChanges (diff)
Commit 8f0d4f4b77215029fcc3f331cfc0cee3cdff051b by gabriel.scherer
runtime: free the minor heap when leaving STW participants

The reserved address space for the minor heap area is a global
resource shared by all domains; each domain owns a portion of it,
within which it commits a part for its minor heap. (Having contiguous
address space allows for an efficient Is_young check.). When we need
more reserved space because the user increased the minor heap size, we
use a STW section to change the reservation: each domain in the STW
section first decommits its minor heap, a single domain changes the
reserved area, and then each domain re-commits its minor heap.

If a domain does not participate to STW sections, the boundaries of
its minor heap will change without the domain decommitting the
previous minor heap first. If the same domain structure is used for a
newly spawned domain later on, it will start by decommitting its minor
heap following the new boundaries, which is incorrect as it never
committed this adress range in the first place.

(In practice calling `caml_mem_decommit` incorrectly in this way does
not appear to crash the program. I think this is because `decommit`
has a fairly liberal behavior, it will happily do nothing if the
memory range is not committed. The code remains logically wrong, and
could become a hard failure if other parts of the runtime change in
reasonable ways later on.)

The present commit ensures that we systematically decommit the minor
heap of each domain when it leaves the set of STW participants. This
way, only STW-active domains have their minor heap allocated, and
changing the minor heap address space within STW section works as
intended.

(I tried to remove the new call to `free_minor_heap` in
`domain_terminate`, and checked that the testsuite fails in debug mode
when the `allocate_minor_heap` call in `domain_create` later on
notices an already-committed minor heap.)

Reviewed-by: KC Sivaramakrishnan <kc@kcsrk.info>
The file was modifiedruntime/domain.c (diff)
Commit 94908d2051d08eedc7543cd0a0b0f811e5f7d6c4 by Florian Angeletti
Update parser and adapt to the new Tpoly invariant. Requires bootstrap.

The argument of a Tarrow must now be a [Tpoly] node.
The file was modifiedtestsuite/tests/typing-objects/Exemples.ml (diff)
The file was modifiedtyping/typetexp.mli (diff)
The file was modifiedtyping/typecore.mli (diff)
The file was modifiedtyping/types.mli (diff)
The file was modifiedtyping/errortrace_report.ml (diff)
The file was modifiedtyping/typeopt.ml (diff)
The file was modifiedtyping/typetexp.ml (diff)
The file was modifiedtyping/typeclass.ml (diff)
The file was modifiedtyping/typeclass.mli (diff)
The file was modified.depend (diff)
The file was modifiedboot/menhir/parser.ml (diff)
The file was modifiedtyping/btype.mli (diff)
The file was modifiedparsing/parser.mly (diff)
The file was modifiedtoplevel/topprinters.ml (diff)
The file was modifiedtyping/out_type.ml (diff)
The file was modifiedtyping/ctype.mli (diff)
The file was modifiedtyping/btype.ml (diff)
The file was modifiedtyping/ctype.ml (diff)
The file was modifiedtyping/typedecl.ml (diff)
The file was modifiedtyping/typecore.ml (diff)
The file was modifiedboot/ocamllex (diff)
The file was modifiedboot/ocamlc (diff)
Commit a6645993f8ee41156c4f619c49aa940d814975fa by Florian Angeletti
Add tests for polymorphic parameters
The file was addedtestsuite/tests/typing-poly/poly_params.ml
Commit c39e29dd0f745998e48f4721b27daba04d1759d0 by Florian Angeletti
Promote polymorphic parameters tests failures
The file was modifiedtestsuite/tests/typing-poly/poly_params.ml (diff)
Commit 489e219fb95fa95a48ffa8a70e12995c98ede018 by Florian Angeletti
Refactor: more descriptive return type for [split_function], renaming and comment work
The file was modifiedtyping/typecore.ml (diff)
Commit da0cabe07b8e5ab2bc7c443350da798598888d52 by Florian Angeletti
Introduce new error "opt params cannot be polymorphic"
The file was modifiedtyping/typecore.mli (diff)
The file was modifiedtyping/typecore.ml (diff)
Commit ba14d13c046ebc74b9638a2ce79aef22a92d09bd by Florian Angeletti
Wrap and generalize filter_arrow_mono if principal
The file was modifiedtyping/typecore.ml (diff)
Commit 24b6f4c4a5b05a19ec2aa3fd49d5d4ff69304493 by Florian Angeletti
Handle polymorphic parameters in type_apply_arg
The file was modifiedtestsuite/tests/typing-poly/poly_params.ml (diff)
The file was modifiedtyping/typecore.ml (diff)
Commit 16d8e49c786f0ebf885cebc54dfc288ee9d74ddc by Florian Angeletti
Refactor Pexp_function case and handle poly
The file was modifiedtyping/typecore.ml (diff)
Commit e882d5ae4248f26fba18b6ad9414ef997fd4903b by Florian Angeletti
Add one generalization level in type_class_arg_pattern
The file was modifiedtyping/typecore.ml (diff)
Commit ac9691aca9a94f5a8c2aae37cf5fa9f2810a117f by Florian Angeletti
Handle polymorphic parameters in [type_approx and] [type_pat_aux]
The file was modifiedtestsuite/tests/typing-poly/poly_params.ml (diff)
The file was modifiedtyping/typecore.ml (diff)
The file was modifiedlambda/translcore.ml (diff)
Commit 6e02745744317f7dd869c1d929035870036842c5 by Florian Angeletti
Add changes entry for #15733
The file was modifiedChanges (diff)
Commit d31142a21f9ae99434f9bf1aa4a4ab5beb431f99 by Florian Angeletti
Add test with class argument
The file was modifiedtestsuite/tests/typing-poly/poly_params.ml (diff)
Commit 2ad84dcb3c29293af1bb3d0378daf316022f6506 by Florian Angeletti
Additional tests with labels
The file was modifiedtestsuite/tests/typing-poly/poly_params.ml (diff)
Commit f401ccf8d0d0ad9a10b1cbd939d1bf64cea37f35 by Florian Angeletti
review: reorder functions in btype
The file was modifiedtyping/btype.ml (diff)
The file was modifiedtyping/btype.mli (diff)
The file was modifiedtyping/types.mli (diff)
Commit b6629c6e715c565ca3b8d38fa4d36480342b23ec by Florian Angeletti
review: add a Btype.newgenmono utility symetrical to Ctype.newmono
The file was modifiedtyping/btype.ml (diff)
The file was modifiedtyping/btype.mli (diff)
The file was modifiedtyping/typeclass.ml (diff)
Commit 6fc24f4eefbda7396884a4b76ba288a180ae7972 by Florian Angeletti
review: use label names in error messages
The file was modifiedtyping/typecore.mli (diff)
The file was modifiedtyping/typetexp.mli (diff)
The file was modifiedtestsuite/tests/typing-poly/poly_params.ml (diff)
The file was modifiedtyping/typecore.ml (diff)
The file was modifiedtyping/typetexp.ml (diff)
The file was modifiedtestsuite/tests/typing-poly/poly_params.ml (diff)
Commit 669bd470115fbd04c3dd3b76c588c68a973adc56 by Florian Angeletti
Add test for polymorphic variants in polymorphic parameters
The file was modifiedtestsuite/tests/typing-poly/poly_params.ml (diff)
Commit e93ba211dbd022139cfc36e05e3d4e0185925fcd by Florian Angeletti
Take fixed instances of polys where appropriate

This fixes a bug in the interaction between polymorphic variants and polymorphic
parameters. The actual bug fix is just changing two falses to trues but I also
changed the instance_poly interface to make similar mistakes less likely to
happen.
The file was modifiedtyping/ctype.mli (diff)
The file was modifiedtyping/typecore.ml (diff)
The file was modifiedtyping/ctype.ml (diff)
The file was modifiedtyping/typedecl.ml (diff)
The file was modifiedtestsuite/tests/typing-poly/poly_params.ml (diff)
The file was modifiedtyping/typeclass.ml (diff)
Commit 74b9f1fe58a3d59f22b39b2ea280b3b884218c90 by Florian Angeletti
Show issue with subtyping trace
The file was modifiedtestsuite/tests/typing-misc/typecore_errors.ml (diff)
The file was modifiedtestsuite/tests/typing-objects/Exemples.ml (diff)
The file was modifiedtestsuite/tests/typing-misc/typecore_errors.ml (diff)
The file was modifiedtyping/ctype.ml (diff)
Commit e6d2834a5dcef5ffa9337177182e09ec7f77e6a7 by Florian Angeletti
tests: Promote error messages improvements after rebasing.
The file was modifiedtestsuite/tests/typing-poly/poly_params.ml (diff)
Commit be3016c7e6c5ca9db647b3044f79e3e2fe2b441d by Florian Angeletti
review: more reuse in parser and reloc in [param_type]
The file was modifiedparsing/parser.mly (diff)
The file was modifiedboot/menhir/parser.ml (diff)
Commit a5dc2ad2083e7d08de84ed5144a7703f95588127 by Florian Angeletti
review: move [is_really_poly] utility to Ctype.
The file was modifiedtyping/ctype.ml (diff)
The file was modifiedtyping/ctype.mli (diff)
The file was modifiedtyping/typecore.ml (diff)
The file was modifiedtestsuite/tests/typing-poly/poly_params.ml (diff)
Commit 19c9abe2aa5c097d409c442372bad96cc1f79b3b by Florian Angeletti
Move definition closer to usage
The file was modifiedtyping/typecore.ml (diff)
The file was modifiedtestsuite/tests/typing-poly/poly_params.ml (diff)
Commit c9a85332e881a251666853fd74fc72bc22836ac6 by Florian Angeletti
Document function in comment
The file was modifiedtyping/btype.mli (diff)
The file was modifiedtestsuite/tests/typing-poly/poly_params.ml (diff)
The file was modifiedtyping/typeclass.ml (diff)
The file was modifiedtestsuite/tests/typing-poly/poly_params.ml (diff)
Commit e8eb592e3fa593ce78f73ce9282d96a56a06246f by Florian Angeletti
Rename function and move it to Btype
The file was modifiedtyping/btype.ml (diff)
The file was modifiedtyping/ctype.mli (diff)
The file was modifiedtoplevel/topprinters.ml (diff)
The file was modifiedtyping/btype.mli (diff)
The file was modifiedtyping/ctype.ml (diff)
Commit d01ee5f4d04585414bbe9adf40654a367b970b23 by Florian Angeletti
Inline function and exception used only once
The file was modifiedtyping/typecore.ml (diff)
The file was modifiedtyping/ctype.ml (diff)
The file was modifiedtyping/ctype.mli (diff)
The file was modifiedtyping/ctype.mli (diff)
The file was modifiedtyping/typecore.ml (diff)
The file was modifiedtyping/typecore.ml (diff)
Commit 730e7044b3d77db58cde54614f2557a6e9932cf2 by Florian Angeletti
Clearer argument label and field names
The file was modifiedtyping/typecore.ml (diff)
The file was modifiedtyping/ctype.ml (diff)
The file was modifiedtyping/ctype.mli (diff)
Commit ba7bf4906ff62d18be80de1382847c59b8226e31 by Florian Angeletti
Turn ordinary comment into a documentation comment
The file was modifiedtyping/typecore.ml (diff)
The file was modifiedtyping/typecore.ml (diff)
The file was modifiedtyping/typecore.ml (diff)
Commit 7202cdef2c09882a930eeeffccb8902009d60323 by Florian Angeletti
review: De-duplicate parser rule for let
The file was modifiedboot/menhir/parser.ml (diff)
The file was modifiedparsing/parser.mly (diff)
Commit 6e7a74424008a091e8c17ff187d129f95d5ee980 by Florian Angeletti
review: Add test with syntactic arity mismatch
The file was modifiedtestsuite/tests/typing-poly/poly_params.ml (diff)
The file was modifiedtestsuite/tests/typing-poly/poly_params.ml (diff)
Commit 02746081cc1310daafc67122365e514032de2a54 by david.allsopp
Fix dependency generation when tools are disabled

The OPTIONAL_BYTECODE_TOOLS, OPTIONAL_NATIVE_TOOLS and
OPTIONAL_LIBRARIES should be being used to affect build and
installation, not definitions. If ocamltest et al were disabled, then
the definitions of these programs were omitted, which prevents the
reproducible generation of dependency information.
The file was modifiedMakefile (diff)
The file was modifiedconfigure (diff)
The file was modifiedconfigure.ac (diff)
Commit f627d6356224bd93505964200cd39a0f57451416 by david.allsopp
Fix generation of config.status for dynlink

Running config.status works correctly, but individually requesting links
in otherlibs/dynlink did not because the names were specified using a
shell variable (i.e. at configure-time) instead of a m4sh variable (i.e.
at autoconf-time).
The file was modifiedconfigure (diff)
The file was modifiedconfigure.ac (diff)
Commit 70431af45b0c7f449863eb07d2e7caa38b0c1693 by david.allsopp
Don't generate ocamltest_config.ml when not needed
The file was modifiedMakefile (diff)
The file was modifiedconfigure (diff)
The file was modifiedconfigure.ac (diff)
Commit 921c6a3a6e0dbc4199e87912c96a362a0ab0f74d by david.allsopp
Correct ocamltest-manual
The file was modifiedMakefile (diff)
Commit ffa6197f6a76af4e9378fa323406cbdb8491a86c by noreply
symbol names: revert to using `$` only on macOS and Windows (#14143)

The file was modifiedtestsuite/tests/native-debugger/linux-gdb-riscv.reference (diff)
The file was modifiedtestsuite/tests/native-debugger/linux-lldb-arm64.reference (diff)
The file was modifiedmiddle_end/compilenv.mli (diff)
The file was modifiedtestsuite/tests/native-debugger/linux-gdb-amd64.reference (diff)
The file was modifiedruntime/dynlink_nat.c (diff)
The file was modifiedtestsuite/tests/native-debugger/linux-lldb-amd64.reference (diff)
The file was modifiedtestsuite/tests/native-debugger/linux-gdb-arm64.reference (diff)
The file was modifiedruntime/power.S (diff)
The file was modifiedasmcomp/emitaux.ml (diff)
The file was modifiedtestsuite/tests/asmcomp/func_sections.run (diff)
The file was modifiedtestsuite/tests/atomic-locs/cmm.compilers.reference (diff)
The file was modifiedtestsuite/tests/native-debugger/macos-lldb-amd64.reference (diff)
The file was modifiedruntime/riscv.S (diff)
The file was modifiedruntime/amd64.S (diff)
The file was modifiedruntime/arm64.S (diff)
The file was modifiedmiddle_end/compilenv.ml (diff)
The file was modifiedtestsuite/tests/native-debugger/lldb-script (diff)
The file was modifiedChanges (diff)
The file was modifiedruntime/s390x.S (diff)
The file was modifiedtestsuite/tests/native-debugger/macos-lldb-arm64.reference (diff)
The file was modifiedasmcomp/x86_proc.ml (diff)
Commit 72a9d5adf2693649e460524f52cfa9b22685493a by Florian Angeletti
bookkeeping: update release info
The file was modifiedrelease-info/calendar.md (diff)
Commit 08d94e782ed2215aad075e011afd3efa02585524 by gabriel.scherer
Minor heap reservation: change the terminology

The current codebase use 'caml_minor_heaps_{start,end}' for the
boundaries of a global address space that is reserved,
'dom->caml_minor_heap_area_{start,end}' for a 'minor heap area', a
segment of this address space that is owned by each domain, and then
finally 'dom->young_{start,end}' for the prefix of this segment that
is actually committed and used as the minor heap of each domain. Some
comments refer to the latter as the 'minor heap arena', following
terminology from the Retrofitting Parallelism into OCaml paper.

On a suggestion by KC, I am trying to make the naming scheme more
regular by consistently using 'reservation' for a reserved block of
address space:

- Use 'minor heaps reservation' for the global reservation. Its
  boundaries remain stored in 'caml_minor_heaps_{start,end}' to avoid
  compatibility issues in third-party code.

- Use 'minor heap reservation' for the per-domain segment of the
  global reservation. Its boundaries are stored in
  'dom->minor_heap_reservation_{start,end}'.

- Use 'minor heap' for the prefix of the minor heap reservation
  that is actually committed, whose boundaries remain
  'dom->young_{start,end}'.

This change is purely local to domain.c.

Suggested-by: KC Sivaramakrishnan <kc@kcsrk.info>
The file was modifiedruntime/domain.c (diff)
Commit 0fd3dac310986df22b5f885eba685588752742cb by gabriel.scherer
review: use 'arena' for the (committed) minor heap space

Suggested-by: KC Sivaramakrishnan <kc@kcsrk.info>
The file was modifiedruntime/domain.c (diff)
The file was modifiedruntime/caml/domain.h (diff)
The file was modifiedruntime/minor_gc.c (diff)
Commit 2e0836f328b6431b9055bee58bad924f06c95e35 by gabriel.scherer
self-review: solidify two separate comments on minor heap layout
The file was modifiedruntime/domain.c (diff)
Commit ba7ba19789db4e50aed016b9ad8795b0c5a9420f by gabriel.scherer
runtime/domain.c: add a category of 'parked' stw_domains
The file was modifiedChanges (diff)
The file was modifiedruntime/domain.c (diff)
Commit 46bf83b0be41cd081d544de3b3cb056065d5247d by gabriel.scherer
[minor] domain.c: reorder domain_self and heap-reservation variables
The file was modifiedruntime/domain.c (diff)
Commit ca8b9aa6ed3406f013867f1faf67e601cd901a37 by gabriel.scherer
[minor] domain.c: reorder domain_create
The file was modifiedruntime/domain.c (diff)
Commit 29be98829b078a50103cfb30ce1b71830bc7cb92 by sadiq
use POOL_FIRST_BLOCK
The file was modifiedruntime/shared_heap.c (diff)
Commit 68a4b5649c7516ca311c7d4a8798d2ae90f397eb by gabriel.scherer
domain.c: fix `stw_resize_minor_heaps_reservation`.

My PR #14158 merged today introduced a bug in the logic to resize the
minor heaps reservation. It added the following to the
`free_minor_heap_arena` function:

    domain_state->minor_heap_wsz = 0;

Doing this is correct when we are freeing the minor heap arena of a
domain that is leaving the STW participant set (the focus of #14158);
it is also correct in

    int caml_reallocate_minor_heap_arena(asize_t wsize)
    {
      free_minor_heap_arena();
      return allocate_minor_heap_arena(wsize);
    }

which is called to change the size of the memory area, so zeroing it
in `free` before setting it in `allocate` is fine. However, it
is *not* correct in

    static void
    stw_resize_minor_heaps_reservation(caml_domain_state* domain,
                                      void* minor_wsz_data,
                                      int participating_count,
                                      caml_domain_state** participating) {
      caml_empty_minor_heap_no_major_slice_from_stw(
        domain, NULL, participating_count, participating);

      free_minor_heap_arena();

      Caml_global_barrier_if_final(participating_count) {
        uintnat new_minor_wsz = (uintnat) minor_wsz_data;
        domain_resize_heaps_reservation_from_stw_single(new_minor_wsz);
      }

      if (allocate_minor_heap_arena(Caml_state->minor_heap_wsz) < 0) {
        caml_fatal_error("Fatal error: No memory for minor heap arena");
      }
    }

This function changes the global minor heaps reservation during a STW
event where each domain first deallocates its arena and then
reallocates it in the new reservation. The problem is that
`free_minor_heap_arena` now changes the value of
`Caml_state->minor_heap_wsz` to 0, so the re-allocation that follows
will try to allocate a 0-word (in fact a 512-word due to the
page-alignment normalization logic) arena.

This bug can only be encountered by calling
`caml_update_minor_heap_max`, so it affects few programs.

I see two approaches to fix it:

1. we could remove the zeroing of `minor_heap_wsz`,
   and instead use the previous check
   `young_start == NULL && young_end == NULL`
   to detect uninitialized arenas

2. ... or we do assume that `free_minor_heap_arena` will unset
   the arena size (which is reasonable), and we preserve the desired
   size value within the `stw_resize_minor_heaps_reservation` function.

The present commit implements approach (2). I prefer to avoid a
situation (as with (1)) where the `free` would leave the state only
partially initialized, and it would be important for correctness.
The file was modifiedruntime/domain.c (diff)
Commit e374459de4de9f65c71cb6fe9f56959e15737428 by samuel.aime.vivien
Extend parsetree to distinguish between `(module M : S)` and `(module M) : (module S)` 
The file was modifiedtyping/typetexp.ml (diff)
The file was modifiedparsing/depend.ml (diff)
The file was modifiedparsing/ast_iterator.ml (diff)
The file was modifiedparsing/parsetree.mli (diff)
The file was modifiedtyping/typedtree.mli (diff)
The file was modifiedtyping/typecore.ml (diff)
The file was modifiedtestsuite/tests/parsetree/locations_test.compilers.reference (diff)
The file was modifiedtyping/printpat.ml (diff)
The file was modifiedtyping/untypeast.ml (diff)
The file was modifiedparsing/parser.mly (diff)
The file was modifiedtyping/tast_mapper.ml (diff)
The file was modifiedparsing/ast_helper.mli (diff)
The file was modifiedparsing/ast_helper.ml (diff)
The file was modifiedfile_formats/cmt_format.ml (diff)
The file was modifiedparsing/pprintast.ml (diff)
The file was modifiedboot/menhir/parser.ml (diff)
The file was modifiedtyping/typedtree.ml (diff)
The file was modifiedtestsuite/tests/compiler-libs/test_untypeast.ml (diff)
The file was modifiedtestsuite/tests/typing-implicit_unpack/implicit_unpack.ml (diff)
The file was modifiedtyping/printtyped.ml (diff)
The file was modifiedtyping/tast_iterator.ml (diff)
The file was modifiedparsing/ast_mapper.ml (diff)
The file was modifiedparsing/printast.ml (diff)
The file was modifiedChanges (diff)
Commit 9d44d724ad63ea76e22f5ac4740d7d0a66ec92bd by noreply
add hashtbl remove and replace which return the previous value (#14060)

The file was modifiedstdlib/templates/hashtbl.template.mli (diff)
The file was modifiedtestsuite/tests/lib-hashtbl/htbl.ml (diff)
The file was modifiedstdlib/hashtbl.ml (diff)
The file was modifiedstdlib/hashtbl.mli (diff)
The file was modifiedtestsuite/tests/backtrace/backtrace2.reference (diff)
The file was modifiedstdlib/moreLabels.mli (diff)
The file was modifiedChanges (diff)
Commit bab7aa8a5838830b5bb41a3c4b12dcd058665344 by gabriel.scherer
Memprof.start replaces any existing profile in the domain, Memprof.is_sampling

The change to Memprof.start increases its compositionality while
conforming to the previous behaviour (it simply fails in fewer
situations). This is necessary for us to implement the Memprof
interface on top of the package memprof-limits.

The new function is_sampling is for clients that do want to fail
early, e.g. when detecting that two Memprof clients are interfering.
The file was modifiedstdlib/gc.ml (diff)
The file was modifiedruntime/memprof.c (diff)
The file was modifiedstdlib/gc.mli (diff)
The file was addedtestsuite/tests/statmemprof/restart.ml
The file was modifiedtestsuite/tests/statmemprof/start_stop.reference (diff)
The file was modifiedtestsuite/tests/statmemprof/start_stop.ml (diff)
The file was addedtestsuite/tests/statmemprof/restart.reference
The file was modifiedruntime/memprof.c (diff)
Commit c0e29d9293147a35f9ad6ab827ec67008a8a6317 by gabriel.scherer
[documentation] Clarify a difference between threads and domains
The file was modifiedstdlib/gc.mli (diff)
The file was modifiedChanges (diff)
The file was modifiedtestsuite/tests/statmemprof/start_stop.ml (diff)
The file was modifiedtestsuite/tests/statmemprof/start_stop.reference (diff)
Commit 201ea83e90ade2b6fa31aa3453fd73033a060a6e by gabriel.scherer
Run callbacks before starting a different profile

Simplify code by using caml_memprof_run_callbacks_res
The file was modifiedruntime/memprof.c (diff)
Commit 43f3935e8791fe3455f4fb01c71b9a7cae756b31 by mail
Bump multicoretests to the trunk-compatible 0.9
The file was modified.github/workflows/multicoretests.yml (diff)
Commit 1431910c765dd1744f13cd158eda5bf4c272c2ec by mail
Also bump qcheck to 0.26 while we are at it
The file was modified.github/workflows/multicoretests.yml (diff)
Commit 34a810a42b7aa75423568a14c00a72b0a78fddb8 by noreply
runtime: host aligned fibers inside the fiber cache whenever possible (#14169)

* When growing a fiber, zero the alignment word before computing the next size in order
to make this new size fits inside the fiber cache.
* Add an assertion to check that small fibers are using the cache.
The file was modifiedruntime/fiber.c (diff)
The file was modifiedChanges (diff)
Commit a2eb4b7bbd0575943cf6f020c5eda4f5c91e5579 by noreply
Add expectation to wellfounded11150.ml (#14170)

* Add expectation to wellfounded11150.ml and document that this is a complexity class test
The file was modifiedtestsuite/tests/typing-misc/wellfounded11150.ml (diff)
Commit ae66354144c49572dc7c38e4a7db416fe53a2246 by source
Print row types when they are GADT constructors
The file was modifiedtestsuite/tests/typing-gadts/test.ml (diff)
The file was modifiedtyping/out_type.ml (diff)
The file was modifiedtyping/oprint.ml (diff)
The file was modifiedChanges (diff)
The file was modifiedtyping/outcometree.mli (diff)
Commit 8c57adb3dc00b0ba6dcd3a8dc82f4d0b506fc4b6 by source
Better Btype.is_row_name
The file was modifiedtyping/btype.ml (diff)
Commit 78a9495b72a320c42bdaf648c52f1d32a0660e16 by noreply
Gc.stat: restore stack_size and add live_stacks_words (#14168)

The file was modifiedChanges (diff)
The file was modifiedruntime/caml/fiber.h (diff)
The file was modifiedruntime/gc_ctrl.c (diff)
The file was modifiedstdlib/gc.mli (diff)
The file was modifiedstdlib/gc.ml (diff)
The file was modifiedruntime/fiber.c (diff)
Commit 524fd249c09812d8d3371e00a8e108a4dd9d512b by Florian Angeletti
error message: explain quantification mismatches
The file was modifiedtyping/ctype.mli (diff)
The file was modifiedtyping/ctype.ml (diff)
The file was modifiedtestsuite/tests/typing-gadts/test.ml (diff)
The file was modifiedtestsuite/tests/typing-gadts/pr10907.ml (diff)
The file was modifiedtyping/errortrace.ml (diff)
The file was modifiedtestsuite/tests/typing-poly/poly_params.ml (diff)
The file was modifiedtyping/errortrace_report.ml (diff)
The file was modifiedtyping/typecore.ml (diff)
The file was modifiedtestsuite/tests/typing-poly/poly.ml (diff)
The file was modifiedtyping/errortrace.mli (diff)
Commit 80872a5c74db318834d3a4397d000cc2f7adf9db by Florian Angeletti
deprecation alert: file location
The file was modifiedChanges (diff)
The file was modifiedparsing/location.ml (diff)
The file was modifiedChanges (diff)
The file was addedtestsuite/tests/typing-labels/pr13658.ml
The file was modifiedChanges (diff)
The file was modifiedtyping/out_type.ml (diff)
The file was modifiedtyping/typecore.ml (diff)
Commit 38a962c50b4cee9cafb7d04cdd9de3fa40250c87 by Nick.Barnes
Remove misleading comment, and change call back to the more intuitive function (now that that function can't allocate after the minor GC).
The file was modifiedruntime/minor_gc.c (diff)
Commit 4f2163db2e1f74134ea67421538bc211b30cb713 by timmcgil
Add runtime counters EV_C_MINOR_PROMOTED_WORDS and EV_C_MINOR_ALLOCATED_WORDS.

EV_C_MINOR_PROMOTED_WORDS reports words promoted by minor GC and
EV_C_MINOR_ALLOCATED_WORDS reports words allocated by minor GC. Both
have equivalent bytes counters.

Update the documentation for EV_C_MINOR_PROMOTED and
EV_C_MINOR_ALLOCATED to qualify scope of the values reported.
The file was modifiedotherlibs/runtime_events/runtime_events.ml (diff)
The file was modifiedotherlibs/runtime_events/runtime_events.mli (diff)
The file was modifiedruntime/minor_gc.c (diff)
The file was modifiedruntime/caml/runtime_events.h (diff)
The file was modifiedtestsuite/tests/lib-runtime-events/test_caml_counters.ml (diff)
Commit 2b6d2b03490a4bd01d736c47c7b9edbabe9d89bd by gabriel.scherer
ocamlprof: do not instrument unreachable clauses

fixes #14196
The file was modifiedtools/ocamlprof.ml (diff)
The file was modifiedChanges (diff)
Commit e6231db020fe239ff3a5bed6ea9caadafad32c8f by gabriel.scherer
Changes: 14169 was included in 5.4
The file was modifiedChanges (diff)
The file was modifiedChanges (diff)
Commit 2cbb0075e02bc2046b6724366fbd5b54949cd312 by timmcgil
Highlight known units for runtime_counter.
The file was modifiedotherlibs/runtime_events/runtime_events.mli (diff)