Skip to content
Success

Changes

Summary

  1. Ensure the minor heap is actually empty before reallocating it (details)
  2. check-typo: enforce gawk (details)
  3. Allow values reachable from ephemeron keys to be collected by minor GC (details)
  4. formatting (details)
  5. Bugfix: Hd_val instead of Tag_val (details)
  6. Infix_tag tweak (details)
  7. set scope in expand_abbrev rather than rely on update_scope (details)
  8. use Int.max rather than generic max (details)
  9. add log and comments; small change in instance_parameterized_type (details)
  10. Get rid of the @since attribute for the Uchar.hash function (details)
  11. Add Result.product and Result.Syntax (#13696) (details)
  12. Repr.equal is not an operator (#13914) (details)
  13. Add examples to the `Fun` module (details)
  14. Reword some paragraphs in `Fun` examples (details)
  15. Reword more paragraphs in `Fun` examples (details)
  16. Add more examples to `Fun.id` and `const` (details)
  17. Remove problematic examples and add descriptions (details)
  18. Expand the Fun.id dispatching description (details)
  19. Add "advanced"/"real-world" examples (details)
  20. Make function refs headers (details)
  21. Add `Fun.compose` examples (details)
  22. Deindent and improve formatting (details)
  23. Reword some descriptions (details)
  24. Remove problematic `flip` examples (details)
  25. Replace a `compose` example with more involved one (details)
  26. Typos in the Uchar example (details)
  27. Some rewording (details)
  28. Replace the windows path conversion example (details)
  29. Add a Scanf example to id (details)
  30. Add example to const, remove example from compose (details)
  31. Indent code blocks, reorder, reformat, reword (details)
  32. Remove scanf and floatarray examples from id (details)
  33. Prevent overlong lines in code examples (details)
  34. Add a Changes entry (details)
  35. Harden the cloexec.ml test on Windows (details)
  36. Harden cloexec.ml test against virus scanners! (details)
  37. Enrich ocamltest doc about scripts (#13902) (details)
  38. manual: alerts: add sections, in preparation for following commits (details)
  39. manual: alerts: annotate code section as ocaml code (details)
  40. manual: alerts: document how to put alerts on all structure/signature items (details)
  41. Makefile.dev: work around #13817 (#13818) (details)
  42. [refactor] runtime: auxiliary function for allocated_words update (details)
  43. runtime: "suspended" and "resumed" allocations affect the major GC speed (details)
  44. runtime: simplistic support for [ramp_up], [ramp_down] (details)
  45. runtime: count the work suspended by each ramp-up phase (details)
  46. runtime: support nested ramp-up phases (details)
  47. expose ramp_up, ramp_down as externals in stdlib/Gc (details)
  48. Changes entry (details)
  49. runtime: log ramp-up / ramp-down in SLICESIZE GC logs (details)
  50. Gc.ramp_up: re-raise exceptions, but ramp-down right before (details)
  51. [minor] stray fix in runtime/array.c (details)
  52. runtime/array.c: expose {uniform_,float}array_concat, use it in Float.Array (details)
  53. Rename ccomptype to ccomp_type for consistency (#13927) (details)
  54. Add Result.{get_ok',error_to_failure} (#13720) (details)
  55. Add List.singleton and Seq.singleton (details)
  56. Fix @since 5.0 annotation loss in domain.mli and effect.mli by swapping alert and header (#13934) (details)
  57. mystery reviewer for 13643 (details)
  58. Added tests for abstraction of whole module types during avoidance (details)
  59. Removed abstraction of whole module types when avoiding a field (details)
  60. Fix test weak-ephe-final/ephe_custom.ml (#13940) (details)
  61. [refactoring] move Matching.get_mod_field to Lambda.transl_mod_field (details)
  62. [refactoring] Lambda.transl_mod_field, move 'lazy' to clients (details)
  63. [refactor] Lambda: merge transl_mod_field and transl_prim (details)
  64. update .depend (details)
  65. Fix #13939 (details)
  66. Typeopt: better handling of deeply nested unboxed types (details)
  67. Add test (details)
  68. Changes (details)
  69. runtime: migrate caml_{alloc,update}_dummy from alloc.c to obj.c (details)
  70. caml_update_dummy: the [Infix_tag] case is dead code (details)
  71. [minor] value_rec_compiler: refactor alloc/update calls (details)
  72. recursive values: introduce [caml_update_dummy_lazy] (details)
  73. regression test for lazy shortcutting in recursive values (details)
  74. Changes (details)
  75. lazy + letrec: insert indirections on lazy update to avoid concurrency issues (details)
  76. use a dedicated [caml_alloc_dummy] primitive (details)
  77. Improved changelog message (details)
  78. document [caml_domain_alone] reasoning (details)
  79. spawn: increment [caml_num_domains_running] earlier to ease reasoning (details)
  80. domain_create: release the domain lock on failure (details)
  81. Changes (details)
  82. Pin Cygwin back to 3.6.1 until AppVeyor updates (details)
  83. List.sort_uniq : remove non-first duplicates. (#13862) (details)
  84. Move match_printer_type in order to share it between toplevel and debugger (details)
  85. Move find_printer to Topprinters (to be shared with the degugger) (details)
  86. Move debugger printers fetching logic (details)
  87. Debugger uses Topprinters.find_printer (details)
  88. release-info: update calendar (details)
  89. Use dune.3.18.0 which is compatible with trunk (details)
  90. Bump qcheck and multicoretests to the latest releases (details)
  91. Changed occur_rec in typing/ctype.ml to traverse type as a graph and not a tree (details)
  92. Changes (details)
  93. Renamed some arguments of occur_rec (details)
  94. Add signal definitions for SIGIO and SIGWINCH. (details)
  95. Add signal_to_string function (details)
  96. Add signal type alias and signal_to_string. (details)
  97. Export signal conversion functions as primitives. (details)
  98. Export signal conversion functions as primitives in Sys (details)
  99. Update documentation in Unix module (details)
  100. Check int and signal argument ranges for conversion functions (details)
  101. Add changelog (details)
  102. Allow 'effect' as attribute id (#13957) (details)
  103. ocamltest: fix typos (details)
  104. ocamltest: use C99 booleans (details)
  105. ocamltest: fix path comparison (details)
  106. ocamltest: use O_CLOEXEC on file descriptors (details)
  107. ocamltest: compare wcscmp result with 0 (details)
  108. ocamltest: alarm(3) is always successful (details)
  109. Teach ocamltest about colors (details)
  110. GHA: update to macOS 15 and Xcode 16.3 (details)
  111. tests: native-debugger: build C test code without optimizations (details)
  112. tests: native-debugger: sanitize library path (details)
  113. tests: native-debugger: fix GDB version parsing (details)
  114. tests: native-debugger: disable disabling ASLR (details)
  115. tests: native-debugger: sanitize trailing blanks (details)
  116. tests: native-debugger: simplify shell scripts (details)
  117. Apply suggestions from review (details)
  118. Check separately in configure if DIFF supports --color (details)
  119. Fix hygiene check for generating `configure` (#13935) (details)
  120. Added printing of presence flag in typedtree (#13963) (details)
  121. fix .depend (details)
  122. [minor] value_rec_compiler: move primitive declarations earlier (details)
  123. fix #13931 (details)
  124. Add profiling with perf chapter OCaml manual (details)
  125. Collapse profiling into a single chapter. (details)
  126. add an invariant function to check that loc_ghost is set correctly (details)
  127. parser: partially align use of loc_ghost with what the documentation says (details)
  128. parser: refactor previous commit, by removing error prone functions (details)
  129. parser: regenerate parser.ml (details)
  130. Add test of princiaplity from polymorphic type constraints (details)
  131. Keep generalized structure from patterns when typing let (details)
  132. Add changelog entry (details)
  133. Renamed the flag `transparent_modules` into `no_alias_deps` (details)
  134. Update driver/makedepend.ml (details)
  135. Updated Changelog with pr number (details)
  136. Update changes (details)
  137. ocamlopt: pass -fPIC when compiling C files (details)
  138. Changes (details)
  139. Changes (details)
  140. Uniformize definition of native_cflags, bytecode_cflags (details)
  141. Changes (details)
  142. last commit before branching 5.4 (details)
  143. first commit after branching 5.4 (details)
  144. Update README.adoc badges after branching (details)
  145. Avoid tearing in Array.sub (details)
  146. Move filter_arrow error handling in a function (details)
  147. Refactor: extract loc_rest_of_function (details)
  148. Refactor [type_approx]. (details)
  149. Add a test illustrating a regression in type_approx (details)
  150. Fix the regression in type approx (details)
  151. Remove the loop: we are already in a recursive function (details)
  152. Add a comment about an unreachable case (details)
  153. Add a comment for type_approx_fun_one_param's spato parameter. (details)
  154. Add a changelog entry for #13980 (details)
  155. Propagate file_descr cloexec correctly to channels (details)
  156. Set FLEXDIR when bootstrapping flexlink (details)
  157. Make ocamlmklib fail on an unknown parameter (details)
  158. Collimate the comments (details)
  159. Fix Makefile dependencies for ocamldoc, ocamltest and ocamldebug (details)
  160. Bump magic numbers and version for 5.5.0 (details)
  161. Refactor [is_functor_arg] table of env into [not_aliasable] (details)
  162. Added tests and updated error message with line breaks (details)
  163. genprintval: explain why certain uses of O.obj are not guarded (details)
  164. genprintval: move user-installed printers out of the Make functor (details)
  165. Generic printers in debugger (details)
  166. Test and doc of polymorphic printers in debugger (details)
  167. Use trunk-compatible dune.3.18.2 (details)
  168. Made the "remove_aliases" attribute visible in built-ins attributes (details)
  169. Add Dynarray.unsafe_to_iarray (details)
  170. Reimplement `let open`, `let module` and `let exception` in terms of a single construct (#13839) (details)
  171. webman: add anchors for API items, headings (#14002) (details)
  172. Refine docs for `In_channel` and `Out_channel` (#13982) (details)
  173. Pprintast: use parentheses around Pexp_struct_item in sequences (details)
  174. Move Changes entry to right place, add bugfix PR (details)
  175. Add test (details)
  176. Fix missing version bump to 5.5 in opam file (details)
  177. Update precondition comment to reflect renaming from #12619 (details)
  178. check-symbol-names: ignore extern char **environ re-decl (details)
  179. gha: Document labels triggering/skipping workflows (details)
  180. Dynamic matrix for the others job (details)
  181. Add optional static and mimimal jobs (details)
  182. Merge macOS Dependency steps (details)
  183. Fix test_create_cursor_failures.ml on Cygwin (details)
  184. Update build-msvc.yml to permit Cygwin builds (details)
  185. Add optional Cygwin check to CI (details)
  186. Add bytecode-only Cygwin check (details)
  187. Add a 'CI: Skip testsuite' label (details)
  188. Fix tools/check-symbol-names for i686 mingw-w64 (details)
  189. Windows matrix: arch instead of x86_64 (details)
  190. stale bot: only identify stale issues, don't close them. (#14004) (details)
  191. Fix memory corruption when an exception is raised during demarshaling. (#14015) (details)
  192. Update Changes (details)
  193. update Changes after cherry-picking (details)
  194. [refactor merge] Create a Merge module + white space changes (details)
  195. [refactor merge] Extracted helper functions (details)
  196. [refactor merge] Changed the return logic (details)
  197. [refactor merge] Extracted the recursive functions for deep constr (details)
  198. [refactor merge] Moved code (details)
  199. [refactor merge] Extracted the type-package case (details)
  200. [refactor merge] Extracted the type case (details)
  201. [refactor merge] Extracted the module case (details)
  202. [refactor merge] Extracted the modtype case (details)
  203. [refactor merge] Added comments, minor stylistic changes (details)
  204. [refactor merge] Corrections from Octachron review (details)
  205. [refactor merge] Moved the catching of exception (details)
  206. [refactor merge] Updated comments (details)
  207. [refactor merge] Added Changelog entry (details)
  208. [minor] printcmm: print atomic loads (details)
  209. [testsuite] test the compilation of atomic functions (details)
  210. [refactor] Define [caml_atomic_cas] in terms of [caml_atomic_cas_field]. (details)
  211. [breaking] Change the prototype of [caml_atomic_cas_field]. (details)
  212. runtime: Add atomic primitives [caml_atomic_load_field], [caml_atomic_exchange_field] and [caml_atomic_fetch_add_field]. (details)
  213. lambda: Add support for new atomic primitives. (details)
  214. Add support for atomic record fields. (details)
  215. atomic fields in ocamldoc (details)
  216. Bootstrap. (details)
  217. Add tests for atomic record fields. (details)
  218. [minor] Make test_untypeast.ml more readable. (details)
  219. Add predefined type ['a atomic_loc]. (details)
  220. [refactor] more general type for Env.mark_*_used (details)
  221. Add extension [%atomic.loc record.field]. (details)
  222. Bootstrap. (details)
  223. Add module [Stdlib.Atomic.Loc]. (details)
  224. Add tests for [Atomic.Loc]. (details)
  225. Reimplement [Atomic.t] using [Atomic.Loc.t]. (details)
  226. Forbid atomic fields in patterns. (details)
  227. Changes (details)
  228. testsuite for pattern-matching on atomic reads (details)
  229. allow wildcard patterns under atomic record fields (details)
  230. stdlib/Atomic: move the Loc module below in the .mli (details)
  231. stdlib/Atomic: minimal documentation (details)
  232. describe atomic record fields in the reference manual (details)
  233. Runtime events: dispatch the right event message type (#13970) (details)
  234. Add Unix.unsetenv (details)
  235. Add test (details)
  236. Document [row_more] and [row_fixed]. (details)
  237. Add Option.product and Option.Syntax (#13916) (details)
  238. [minor] More readable output from `gen_sizeclasses` (#13923) (details)
  239. Fix unterminated-string-initialization warning (details)
  240. fix atomic-locs/cmm.compilers.reference (details)
  241. tests: native-debugger: sanitize GDB+musl output (details)
  242. Fix #13427 (details)
  243. Add caml_sys_proc_self_exe primitive (details)
  244. Add Sys.runtime_executable (details)
  245. Cleanups following introduction of `Pexp_struct_item`/`Texp_struct_item` (#14028) (details)
  246. Add row_more invariant (details)
  247. Update flexdll submodule to 0.44 (details)
  248. Reenable lib-dynlink-domains test on Windows, temporarily disabled in #11607 (details)
  249. Comments from review (details)
  250. Changelog (details)
  251. tests: native-debugger: sanitize LLDB+GLIBC output (details)
  252. fix #13941 (details)
  253. update Changes for #13961 (details)
  254. simplifications suggested by reviewer (details)
  255. [minor] use a record in Compenv.process_deferred_actions (details)
  256. Amend docstring (details)
  257. Better error messages on invalid recursive module definitions (details)
  258. Ensure that all Bigarray memory managed by the GC is tracked by Memprof (details)
  259. Format: place hint white spaces after the break hint (details)
  260. Changes (details)
  261. Update changes (details)
  262. Attach infix extension points/attributes on local module/exception/open to structure item instead of enclosing let expression (#14009) (details)
  263. manual: fall back immediately to user-agent-defined fonts (details)
  264. Uniformize parsing rules for structure and signature items (#14039) (details)
  265. Trully share #*_printers machinery between toplevel and debugger (details)
  266. Review changes (details)
  267. update the memprof bigarray test (details)
  268. Move #13675 to 5.4 Changes (details)
  269. Reimplement generational stack scanning a la OCaml 4 (details)
  270. ARM64: explicitly ignore top bits in return addresses (details)
  271. Better API for generational stack scanning (details)
  272. Adapt TSAN to generational stack scanning (details)
  273. Changes for 13594 (details)
  274. document the invariants around pc marking in tsan.c (details)
  275. manual: move the TeX header of each language extension into the extension-specific .etex file (#14041) (details)
  276. Changes (details)
  277. Use BUILD_PATH_PREFIX_MAP to sanitize debug event paths, do not rewrite shebang (details)
  278. Accept native freestanding targets at configure time (details)
  279. Allow `*-ocaml` as target triplets to build freestanding cross compilers (details)
  280. Update changelog (details)
  281. domain_terminate: orphan the shared heap before STW exit (details)
  282. Changes (details)
  283. runtime: caml_finalise_heap should first adopt all orphan pools (details)
  284. review: clarify the invariants in [domain_create], including for the last domain (details)
  285. review: clarify the invariants required to free the shared heap (details)
  286. minor Changes fixes (details)
  287. Changelog: fix ordering for 5.3 (details)
  288. Changes: reuse the improved 5.4 entry order from the 5.4 branch (details)
  289. Unix.kill: On Windows, make process exit code ERROR_PROCESS_ABORTED (#14046) (details)
  290. Revert "Merge pull request #14045 from pirbo/bpp-map-1-2" (details)
  291. re-apply the part of #14045 that disables path rewrites on the shebang (details)
  292. Special constructor for %sys_argv primitive (#10570) (details)
  293. Debugger: Fallback to looking for module_name.ml in the loadpath when seeking source files (#14063) (details)
  294. Improve handling of packages in typing/gprinttyp.ml to put the name of the constraint on the arrow (details)
  295. Add Option.blend (#13995) (details)
  296. error message: point all label mismatches (details)
  297. Add a test showing spurious unused warnign in fonctor argument signatures. (details)
  298. Mark both in [modtypes_with_shape] (details)
  299. Reduce test noise by disabling warning 60 (details)
  300. Add changelog entry for #13956 (details)
  301. dynlink: fix exception name in printer (details)
  302. Changes update (details)
  303. Add changelog entry (details)
  304. fix one more definition of fib in the manual (details)
  305. Add a new type kind `Type_external` (#13712) (details)
  306. For stores on Apple Silicon, emit `stlr` instead of `dmb ishld; str`. (details)
  307. error messages: point mismatched univars (details)
  308. Introduce Sixtyfour memory chunk to handle unaligned accesses (details)
  309. Fix note: the alignment of `_Atomic long long unsigned int` fields changed in GCC 11.1 on i686 (#14035) (details)
  310. Add missing `item-attribute` rule for `let-binding` in documentation of attributes (#14077) (details)
  311. Switch back to ubuntu-latest (details)
  312. update Changes (details)
  313. Address reviewer comments. (details)
  314. Catch invalid aliases at merging rather than subtyping (#14066) (details)
  315. Generalise Compmisc.init_path (details)
  316. Add Dll.search_path (details)
  317. Add Misc.Stdlib.String.to_utf_8_seq (details)
  318. Expose Bytelink.read_runtime_launch_info (details)
  319. Changes bookkeeping: missing reviewer (details)
  320. Add Domain.running_domain_count (details)
  321. Changes (details)
  322. Changes (details)
  323. Add Config.{c_compiler_vendor,shebangscripts} (details)
  324. Add a test for the compiler "in-prefix" (details)
  325. Plumb the in-prefix tests into CI (details)
  326. Changes: 14074 was backported to 5.4 (details)
  327. Avoid an error when a channel is flushed during close (details)
  328. review (details)
  329. Fix flakiness of TSan tests using flushes and synchronization (details)
  330. Skip native-debugger tests. (details)
  331. Use caml_unix_error instead of errno+caml_uerror (details)
  332. Symmetrize caml_sys_rename and caml_unix_rename (details)
  333. Symmetrize caml_sys_chdir and caml_unix_chdir (details)
  334. Symmetrize caml_sys_close and caml_unix_close (details)
  335. Symmetrize caml_sys_system_command and caml_unix_system (details)
  336. Update Changes (details)
  337. stdlib: Option.{for_all, exists} (#13920) (details)
  338. [refactor] dynarray variable naming, consistently use [f] for function arguments (details)
  339. Dynarray.rev_iter, rev_iteri (details)
  340. Changes (details)
  341. Rename Domain.running_domain_count => Domain.count (#14096) (details)
  342. ocamldoc: no paragraph in module table (#14098) (details)
  343. CI: attempt to silence a MSVC warning (details)
  344. Changes bookkeeping: fix 13896 entry (details)
  345. toplevel: test with nongeneric printer (details)
  346. toplevel: printers must have a generic type (details)
  347. refactor Ctype: remove nongen_inst argument (details)
  348. add Changes entry (details)
  349. Explicitly fail-fast (details)
  350. Temporarily disable -Wcast-function-type-mismatch (details)
  351. Temporarily disable warning C5387 on MSVC (details)
  352. Update memprof after leaving the barrier at the end of minor GC, nor before. (details)
  353. Use C99 (u)int64_t instead of MSVC __int64 extension (details)
  354. Use time_t instead of MSVC __time64_t (details)
  355. Use C99 fixed-width integers in bigarray (details)
  356. Fully use C99 stdint.h fixed-width integers (details)
  357. Define intnat/uintnat with C99 intptr_t/uintptr_t (details)
  358. Use C99 inttypes.h fixed-width format macros (details)
  359. Define and use CAML_PRI.NAT and CAML_PRI.SZT (details)
  360. s/alloced/allocated/g (details)
  361. Update Changes (details)
  362. Fix a possible hang in Pprintast (#14105) (details)
  363. toplevel: fix a typo in directive error messages (details)
  364. changes: sync with 5.4 (details)
  365. use No_scan_tag and NOT_MARKABLE to indicate free block (details)
  366. change shared pools heap representation to indicate contiguous free ranges (details)
  367. add prefetching (details)
  368. add Changes (details)
  369. actually prefetch a page ahead (details)
  370. restore split asserts (details)
  371. clarify comment in verify_pool (details)
  372. fix bug in compaction (details)
  373. write Debug_free_major in to newly initialised pools (details)
  374. fix bug in pool_finalise (details)
  375. simplify macro (details)
  376. Update runtime/shared_heap.c (details)
  377. Update runtime/shared_heap.c (details)
  378. restore atomic header read (details)
  379. make note about GC pacing logic (details)
  380. Update runtime/shared_heap.c (details)
  381. wh -> Whsize_hd (details)
  382. always update the pointer in the last free block (details)
  383. revert all_used annotation (details)
  384. Replaced normalize_package_path by Env.normalize_modtype_path (details)
  385. Add -Wno-cast-function-type-mismatch more clangily (details)
  386. Typo in stdlib/Makefile (details)
  387. Reduce tmpheader.exe to 4-5KiB on Windows (details)
  388. Stop using Caml_inline and CAMLnoret in headernt.c (details)
  389. Remove unnecessary guards around unistd.h (details)
  390. Use PATH_MAX instead of MAXPATHLEN (details)
  391. Assume S_ISREG and SEEK_END (details)
  392. Move O_BINARY definition to "header" section (details)
  393. Make caml/exec.h independent (details)
  394. Re-order some header functions (no-op) (details)
  395. Share error path in headernt.c (details)
  396. Unify implementation of read_size (details)
  397. headernt.c: inline run_runtime into main (details)
  398. Check for errors from lseek in header.c (details)
  399. Refactor error display code (details)
  400. header.c: close bytecode image before exec (details)
  401. Use execvp in header.c (as in headernt.c) (details)
  402. headernt: make read_runtime_path more CRTish (details)
  403. Missing error case in headernt.c (details)
  404. Unify the common parts of header.c and headernt.c (details)
  405. Merge stdlib/header{,nt}.c (details)
  406. error messages: typo, missing inline code (details)
  407. #14093 was backported (details)
  408. Fix use of time_t on i686 mingw-w64 (#14114) (details)
  409. Increase the amount of data written to a pipe in a test (#14116) (details)
  410. Add regression test (details)
  411. Fix non-destructive `with type` with type constraints (details)
  412. Add with type constraint testing (details)
  413. Update changelog (details)
  414. Add {Set,Map}.S.is_singleton (#14118) (details)
  415. Make List.{take,drop} total (#14124) (details)
  416. document that char compare uses ASCII order (#14090) (details)
  417. Add the approx flag to merging of module constraints (details)
  418. Add a [merge_type_approx] for approximation of type constraints (details)
  419. Add tests for module and type constraints during approximation (details)
  420. Update Changelog (details)
  421. Add another test for destructive type constraints approximation (details)
  422. Address review comments on #14100 (details)
  423. Update Changelog (details)
  424. Refactor post_process of signature merging (details)
  425. Update comment and Changelog (details)
  426. Address review comments (details)
  427. Missing case in {Stdlib,Float}.frexp documentation (#14128) (details)
  428. Fix `__tsan_func_exit()` signature mismatch (#14065) (#14082) (details)
  429. Update comment (details)
  430. matching: fix some non-deterministic code generation (#14091) (details)
  431. Speedup some Set/Map access by using is_empty instead of cardinal = 0 (#14119) (details)
  432. typechecker: fix an internal error due to wrong exception (details)
  433. cpp support: move basic type definitions to misc (details)
  434. [minor] indentation fix in errortrace_report (details)
  435. error messages: external with non-syntactic arity (details)
  436. release calendar update (details)
  437. Upstream "mark-delay" change from flambda-backend. (details)
  438. 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)
  439. fix finaliser handling bug (details)
  440. Guard call to caml_darken (details)
  441. Fix ephe_custom.ml test for the mark-delay scheme (details)
  442. Don't make finaliser updates dependent on work being available. (details)
  443. Removed unused field in package_type (details)
  444. Changes (details)
  445. Rename cstrs to constraints to distinguish from cstrs = constructors (#14141) (details)
  446. Move the orphaned ephemerons GC colour check inside the barrier. (details)
  447. minor gc: more consistent memprof logging (details)
  448. Fix missing expectations in typing-poly/poly.ml (details)
  449. Additional corrections (details)
  450. Audit unexecuted phrases (details)
  451. Audit (details)
  452. Fix audit (details)
  453. Changes (details)
  454. Update changes (details)
  455. runtime: free the minor heap when leaving STW participants (details)
  456. Update parser and adapt to the new Tpoly invariant. Requires bootstrap. (details)
  457. bootstrap (details)
  458. Add tests for polymorphic parameters (details)
  459. Promote polymorphic parameters tests failures (details)
  460. Refactor: more descriptive return type for [split_function], renaming and comment work (details)
  461. Introduce new error "opt params cannot be polymorphic" (details)
  462. Wrap and generalize filter_arrow_mono if principal (details)
  463. Handle polymorphic parameters in type_apply_arg (details)
  464. Refactor Pexp_function case and handle poly (details)
  465. Add one generalization level in type_class_arg_pattern (details)
  466. Handle polymorphic parameters in [type_approx and] [type_pat_aux] (details)
  467. Add changes entry for #15733 (details)
  468. Add test with class argument (details)
  469. Additional tests with labels (details)
  470. review: reorder functions in btype (details)
  471. review: comment format (details)
  472. review: add a Btype.newgenmono utility symetrical to Ctype.newmono (details)
  473. review: use label names in error messages (details)
  474. review: additional tests (details)
  475. Add test for polymorphic variants in polymorphic parameters (details)
  476. Take fixed instances of polys where appropriate (details)
  477. Show issue with subtyping trace (details)
  478. Fix subtyping error trace (details)
  479. tests: Promote error messages improvements after rebasing. (details)
  480. review: more reuse in parser and reloc in [param_type] (details)
  481. review: move [is_really_poly] utility to Ctype. (details)
  482. Add more test cases (details)
  483. Move definition closer to usage (details)
  484. Additional test cases (details)
  485. Document function in comment (details)
  486. Add test cases (details)
  487. Fix typo in error message (details)
  488. Rename function and move it to Btype (details)
  489. Inline function and exception used only once (details)
  490. Document function (details)
  491. Enforce Tpoly invariant (details)
  492. Clarify conditions (details)
  493. Clearer argument label and field names (details)
  494. Turn ordinary comment into a documentation comment (details)
  495. Clearer variable name (details)
  496. Fix wrong set of univars (details)
  497. review: De-duplicate parser rule for let (details)
  498. review: Add test with syntactic arity mismatch (details)
  499. review: Fix test (details)
  500. Fix dependency generation when tools are disabled (details)
  501. Fix generation of config.status for dynlink (details)
  502. Don't generate ocamltest_config.ml when not needed (details)
  503. Correct ocamltest-manual (details)
  504. symbol names: revert to using `$` only on macOS and Windows (#14143) (details)
  505. bookkeeping: update release info (details)
  506. Minor heap reservation: change the terminology (details)
  507. review: use 'arena' for the (committed) minor heap space (details)
  508. self-review: solidify two separate comments on minor heap layout (details)
  509. runtime/domain.c: add a category of 'parked' stw_domains (details)
  510. [minor] domain.c: reorder domain_self and heap-reservation variables (details)
  511. [minor] domain.c: reorder domain_create (details)
  512. use POOL_FIRST_BLOCK (details)
  513. domain.c: fix `stw_resize_minor_heaps_reservation`. (details)
  514. Extend parsetree to distinguish between `(module M : S)` and `(module M) : (module S)` (details)
  515. Changes (details)
  516. add hashtbl remove and replace which return the previous value (#14060) (details)
  517. Memprof.start replaces any existing profile in the domain, Memprof.is_sampling (details)
  518. Adjust test and add test (details)
  519. [minor] Code clean-up (details)
  520. [documentation] Clarify a difference between threads and domains (details)
  521. Changes (details)
  522. Clarify test (details)
  523. Run callbacks before starting a different profile (details)
  524. Bump multicoretests to the trunk-compatible 0.9 (details)
  525. Also bump qcheck to 0.26 while we are at it (details)
  526. runtime: host aligned fibers inside the fiber cache whenever possible (#14169) (details)
  527. Add expectation to wellfounded11150.ml (#14170) (details)
  528. Print row types when they are GADT constructors (details)
  529. Better Btype.is_row_name (details)
  530. Gc.stat: restore stack_size and add live_stacks_words (#14168) (details)
  531. error message: explain quantification mismatches (details)
  532. deprecation alert: file location (details)
  533. update Changes (details)
  534. Fix #13658 (details)
  535. Remove misleading comment, and change call back to the more intuitive function (now that that function can't allocate after the minor GC). (details)
  536. toplevel: fix printing of qualified labels (details)
  537. Add runtime counters EV_C_MINOR_PROMOTED_WORDS and EV_C_MINOR_ALLOCATED_WORDS. (details)
  538. ocamlprof: do not instrument unreachable clauses (details)
  539. Changes (details)
  540. update Changes (details)
  541. Changes: 14169 was included in 5.4 (details)
  542. Add Changes (details)
  543. Highlight known units for runtime_counter. (details)
  544. Misc.invert_build_path_prefix_map (details)
  545. Apply BUILD_PATH_PREFIX_MAP to pathes found in files by the debugger (details)
  546. Change reverted for now (details)
  547. Changes (details)
  548. Constraints on module unpacking are not ghost (#14198) (details)
  549. Fix pthread_setname_np under NetBSD (details)
  550. Fix #14200 (without breaking pr7321_ok.ml) (#14202) (details)
  551. fix memory model for Weak.set (details)
  552. refactor weak.c/do_set to look more like memory.c/modify (details)
  553. ocamltest: show test name before running the test (details)
  554. Add List.split_map (#14185) (details)
  555. Changes (details)
  556. Fix typos in comment (#14194) (details)
  557. Elide duplicate ephemeron status check (#14175) (details)
  558. Recognize %identity as nonexpansive (#14029) (details)
  559. fix tsan tests to account for #14143 (#14203) (details)
  560. Better error message when a functor is its own unsafe functor (details)
  561. Changes bookkeeping (details)
  562. Actually make example unsafe (see #14217) (details)
  563. Fix INRIA CI job other-configs (details)
  564. After #14209, TSan now correctly reports a data race in (details)
  565. functor error messages: don't forget equality (details)
  566. Fix st_stubs.c compilation with mingw-w64 13.0.0 (details)
  567. document why sprintf still exists despite asprintf (details)
  568. rewrite doc comment (details)
  569. update comment according to @octatron's suggestion (details)
  570. fix local variables in Makefile (details)
  571. Fix C++ name-mangling issue with `caml_state` on Cygwin (#14220) (details)
  572. fixes suggested by reviewer (details)
  573. Update stdlib/format.mli (details)
  574. Disable Tsan on one more deliberately-racy test. (#14232) (details)
  575. Manual attributes page fixes (#14233) (details)
  576. Fix ocamltest criterion for using `-custom` to link test file. (#14230) (details)
  577. manual(etex): trim leading spaces (#14228) (details)
  578. Fix test-in-prefix (#14216) (details)
  579. Integral type hygiene in compaction (and shared_heap.c generally). (details)
  580. Avoid an undefined variable warning from Make (details)
  581. parsetree: map on all locations in toplevel directives (details)
  582. Add native debugger manual section (details)
  583. Fixup name mangling references. (details)
  584. Ensure AppVeyor runs for PRs on these branches (details)
  585. Don't fail-fast (details)
  586. Test the Unix executable header in CI (details)
  587. Hold GNU parallel at 20241222 on AppVeyor (details)
  588. Fix AppVeyor for 32-bit platforms (details)
  589. Fix corrupt caching of GNU parallel (details)
  590. Store parallel in the branch (details)
  591. Fix the CI: Skip testsuite check on AppVeyor (details)
  592. Report mingw-runtime version on x86_64 as well (details)
  593. Add --with-stublibs configure option (details)
  594. Don't add a double-separator when locating ld.conf (details)
  595. ld.conf-relative path interpretation (details)
  596. Generate ld.conf using relative paths (details)
  597. Load ld.conf from all possible places (details)
  598. Remove caml_get_stdlib_location (details)
  599. Harden the parsing of ld.conf w.r.t. load and CRLF (details)
  600. Use caml_parse_ld_conf in ocamlc (details)
  601. Tidy installation of static builds (details)
  602. Fix the detection of Cygwin-like build environments (details)
  603. Preserve backslashes in --prefix (details)
  604. Harden startup of -custom executables (details)
  605. Interpret . in runtime-launch-info (details)
  606. Add caml_runtime_standard_library_default (details)
  607. Add %standard_library_default (details)
  608. Add -set-runtime-default (details)
  609. Bootstrap (details)
  610. Use %standard_library_default in Config (details)
  611. Bootstrap (details)
  612. Allow libdir to be found relative to bindir (details)
  613. Update the installation test for enable-relative (details)
  614. Test --with-relative-libdir in CI (details)
  615. NFPR: fully test --with-relative-libdir in AppVeyor (details)
  616. NFPR: fully test --with-relative-libdir in precheck (details)
  617. Add Config.as_is_cc (details)
  618. Use as directly on Cygwin, as on Linux (details)
  619. Detect but ignore -fdebug-prefix-map on mingw-w64 (details)
  620. Increase reproducibility of relative artefacts (details)
  621. Simplify the computation for the runtime name (details)
  622. Permit single-quotes in prefix (details)
  623. ocamlobjinfo: display the runtime used by an image (details)
  624. Add -launch-method to ocamlc (details)
  625. Test both bytecode header methods (details)
  626. Remove metadata from runtime-launch-info (details)
  627. Factor out the exec code in stdlib/header.c (details)
  628. Add -runtime-search to ocamlc (details)
  629. Test all three bytecode search methods (details)
  630. Determine Runtime ID values in configure (details)
  631. Mangle the bytecode runtime executable names (details)
  632. Build suffixed shared runtimes (details)
  633. Add runtime suffixes to bytecode stub libraries (details)
  634. Bootstrap (details)
  635. Post-bootstrap cleanup (details)
  636. Add --enable-runtime-search[-target] options (details)
  637. Update the installation test for runtime-searching (details)
  638. Make Windows header absolute (as on Unix) (details)
  639. Test --enable-runtime-search in CI (details)
  640. NFPR: fully test --enable-runtime-search in precheck (details)
  641. Exclude the manual from git-archive tarballs (details)
  642. Exclude irrelevant files from git-archive (details)
  643. Exclude tests from git-archive tarballs (details)
  644. Don't explicitly install toplevel/byte/*.cmi (details)
  645. Don't explicitly install main.cmx and optmain.cmx (details)
  646. Remove duplicate installation in installopt (details)
  647. Don't install ocamldoc's .cmi files twice (details)
  648. Use implicit names when installing ocamldoc (details)
  649. Eliminate local for loops in install (details)
  650. Eliminate local if blocks in install (details)
  651. Remove invalid directory in source install (details)
  652. Sprinkle some meta-programming on the install target (details)
  653. Keep the stripped bytecode binaries (details)
  654. Straighten out the INSTALL_* Makefile variables (details)
  655. Remove the recursive invocation in install targets (details)
  656. Add SUBDIR_NAME to principal Makefiles (details)
  657. Use macros to generate installation commands (details)
  658. Add additional modes to make install (details)
  659. Generate an opam .install file and support script (details)
  660. Experimentally, use it (details)
  661. Generate a relocatable cloning script (details)
  662. Got an interpreter, and we're not afraid to use it (details)
  663. Mark winpthreads dependency as Windows-only (details)
  664. Mark input dependencies as build (details)
  665. Test opam in CI (details)
  666. Generator script for ocaml.config in opam (details)
  667. Remove need for shared libraries in ocaml-config (details)
  668. Update ocaml-config for 4.12 scheme (details)
  669. OCaml 3.07 version of gen_ocaml_config.ml.in (details)
  670. Windows fixes to ocaml-config (details)
  671. Update ocaml-config for the new OCaml 5 layout (details)
  672. Fully unify and update gen_ocaml_config.ml (details)
  673. Support relative paths in gen_ocaml_config.ml (details)
  674. Remove the MAX_PATH limit in header.c on Windows (details)
  675. Move caml_search_dll_in_path to dynlink.c (details)
  676. Remove caml_cds_file (details)
  677. header.c: handle parasitic case of argc < 1 (details)
  678. Remove unnecessary Cygwin path workarounds (details)
  679. header.c: malloc the result of searchpath (details)
  680. Move searchpath from header.c into the runtime (details)
  681. Use caml_executable_name in header.c (details)
  682. Don't check for shebang scripts on Windows (details)
  683. Simplify the interface of caml_attempt_open (details)
  684. Preserve argv[0] on Unix in the executable header (details)
  685. Fix STARTUPINFO structure in stdlib/header.c (details)
  686. Share image fd between header.c and startup_byt.c (details)
  687. Add comments on the handling of blank env vars (details)
  688. Ignore empty TMPDIR in the Filename module (details)
  689. Ignore empty TMPDIR in ocamlyacc (details)
  690. Propagate non-empty tmpdir in ocamlyacc (details)
  691. Ignore CAML_DEBUG_FILE if it's "Set But Null" (details)
  692. Ignore OCAMLPROF_DUMP if it's "Set But Null" (details)
  693. Use non-raising Sys.getenv_opt in win32unix (details)
  694. Ignore empty strings in Compmisc.set_from_env (details)
  695. Ignore empty environment variables in ocamltest (details)
  696. Ignore empty MAKE variable in ocamltest (details)
  697. Treat OCAML_BINANNOT_WITHENV as unset when empty (details)
  698. Add some limited information about CAMLSIGPIPE (details)
  699. Ignore empty OCAML_RUNTIME_EVENTS_ variables (details)
  700. Harden processing of SOURCE_DATE_EPOCH in ocamldoc (details)
  701. Ignore blank OCAMLRUNPARAM, OCAMLLIB and CAMLLIB (details)
  702. Ignore empty components in PATH-like things (details)
  703. Add %shared_libraries primitive (details)
  704. Bootstrap (details)
  705. Improve the "dynamic loading not supported" error (details)
  706. Free tables after handing off to Dynlink (details)
  707. Move print_magic and print_config out of caml_params (details)
  708. Preserve option R in caml_runtime_parameters (details)
  709. Swap the V and v in caml_runtime_parameters (details)
  710. Add -set-runtime-default to the compilers (details)
  711. Test -set-runtime-default in test-in-prefix (details)
  712. Re-order initialisations in bytecode (details)
  713. Support c=1 mode in ocamlrun (details)
  714. Fix C library options for win32unix (details)
  715. Build and install threads.cmxs (details)
  716. Fix inclusion of libraries when partial linking (details)
  717. Use entrypoint flexdll branch (details)
  718. Stop installing and documenting config_main, etc. (details)
  719. Use clang-cl for flexdll support objects (details)
  720. Two minor clean-ups in the in-prefix-tests (details)
  721. Add caml_output_value_with_compat primitive (details)
  722. Split Meta into two (details)
  723. Omit CRCS if caml_reify_bytecode isn't used (details)
  724. Eliminate post-processing of bootstrap artefact (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
Commit 2445bd15af6064c99871d4b869b04749299a7388 by gabriel.scherer
check-typo: enforce gawk
The file was modifiedtools/check-typo
Commit 6cd8dc730e6acf17b930656f3cf9aee6a3ae0db1 by stedolan
Allow values reachable from ephemeron keys to be collected by minor GC
The file was modifiedChanges
The file was modifiedruntime/caml/weak.h
The file was modifiedruntime/shared_heap.c
The file was addedtestsuite/tests/weak-ephe-final/weak_array_par.ml
The file was addedtestsuite/tests/weak-ephe-final/weak_array_par.reference
The file was modifiedruntime/caml/runtime_events.h
The file was modifiedruntime/major_gc.c
The file was modifiedruntime/minor_gc.c
The file was modifiedruntime/caml/minor_gc.h
The file was modifiedruntime/weak.c
Commit b079fc94cd31ccbbd32b53071c299ff3d0937e37 by stedolan
formatting
The file was modifiedruntime/minor_gc.c
Commit 0727cd83ae173b43769863eef3c08b5ebb216ca7 by stedolan
Bugfix: Hd_val instead of Tag_val
The file was modifiedruntime/minor_gc.c
Commit dddcbae4fad535fe2413b207950547bfff5ced60 by stedolan
Infix_tag tweak
The file was modifiedruntime/minor_gc.c
Commit 50f133ab2576ca2c788bbc2351e948bec2bd6352 by garrigue
set scope in expand_abbrev rather than rely on update_scope
The file was modifiedtyping/ctype.ml
The file was modifiedtyping/ctype.mli
Commit 34fe58a01791fee65ea1ffb68516205f5a5e2d2a by garrigue
use Int.max rather than generic max
The file was modifiedtyping/ctype.ml
Commit 475fec725540c0f6d087287c96f11ecbaa77550a by garrigue
add log and comments; small change in instance_parameterized_type
The file was modifiedChanges
The file was modifiedtyping/ctype.ml
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 modifiedstdlib/uchar.mli
Commit 60b30b936de1ce47ace2f3d50e91ca680a14dc58 by noreply
Add Result.product and Result.Syntax (#13696)

The file was modifiedstdlib/result.ml
The file was modifiedstdlib/result.mli
The file was modifiedtestsuite/tests/lib-result/test.ml
The file was modifiedChanges
Commit 76ec239015fde345d3444b0094dce66cc20c271b by noreply
Repr.equal is not an operator (#13914)

Co-authored-by: Hazem ElMasry <hazem-work@riseup.net>
The file was modifiedstdlib/stdlib.mli
The file was modifiedstdlib/repr.mli
Commit ce76ff768831969cbf6ccf75464d51af6c05d3b6 by hazem-work
Add examples to the `Fun` module
The file was modifiedstdlib/fun.mli
Commit da21653cd9bf5cf295902a90a821cf9805681917 by hazem-work
Reword some paragraphs in `Fun` examples
The file was modifiedstdlib/fun.mli
Commit df4d7f8a6dbfbcf897cb7d71c730682df5c408e9 by hazem-work
Reword more paragraphs in `Fun` examples
The file was modifiedstdlib/fun.mli
Commit 739c5067e0b564565d39b8a0e3b68b3dfa4bfb07 by hazem-work
Add more examples to `Fun.id` and `const`
The file was modifiedstdlib/fun.mli
Commit f09b6cfb9a8edca1a4cc9eb06f9c9a3e2ff04c62 by hazem-work
Remove problematic examples and add descriptions
The file was modifiedstdlib/fun.mli
Commit 8b2c7e73c172454d404a90cc85599e18f216d0ea by hazem-work
Expand the Fun.id dispatching description

And make the example conform to the description
The file was modifiedstdlib/fun.mli
Commit 0b5e45dac0c5559dc8bc1ff5cc28aeccb183b27b by hazem-work
Add "advanced"/"real-world" examples

These are instead of the problematic examples
The file was modifiedstdlib/fun.mli
Commit d32433755bf6230262e3fa0e5e118c4d5782137b by hazem-work
Make function refs headers
The file was modifiedstdlib/fun.mli
Commit a5cf7b9e7cb49505acae5a59b266632899332d9d by hazem-work
Add `Fun.compose` examples

And warn about too many combinators
The file was modifiedstdlib/fun.mli
Commit de5c9c0b4edeb63cdde9efc0027a5aabfb0edf8d by hazem-work
Deindent and improve formatting
The file was modifiedstdlib/fun.mli
Commit 565437aa1fa36f5c2f149d3a7b486f13140e0ccf by hazem-work
Reword some descriptions
The file was modifiedstdlib/fun.mli
Commit 7475f462587c6bf3eeae93dede4a8c5f080268b6 by hazem-work
Remove problematic `flip` examples
The file was modifiedstdlib/fun.mli
Commit f96cba128e5a2ca2cdfa7ed70e9ac4aff462a20a by hazem-work
Replace a `compose` example with more involved one
The file was modifiedstdlib/fun.mli
Commit ceb03c0cc4cad0ec82c8582f4f8d784aa9dc526a by hazem-work
Typos in the Uchar example
The file was modifiedstdlib/fun.mli
Commit 1426d756bf336ca788bcf63521cff5bd7dc1ee44 by hazem-work
Some rewording
The file was modifiedstdlib/fun.mli
Commit 1208060c3ac6fe99170fb0ddc28e05122f96b3e3 by hazem-work
Replace the windows path conversion example
The file was modifiedstdlib/fun.mli
Commit f53905c9d7202ff002f0937b4329fd6eafcb467d by hazem-work
Add a Scanf example to id
The file was modifiedstdlib/fun.mli
Commit 3fa40af89df95d4a3773daa6707f68bb5bba0bab by hazem-work
Add example to const, remove example from compose
The file was modifiedstdlib/fun.mli
Commit 4818a160dd178cbc2016adb5827dcf7fc2333b0a by hazem-work
Indent code blocks, reorder, reformat, reword
The file was modifiedstdlib/fun.mli
Commit c23d18356099c00422f2e2ff8313ad208a85a7b6 by hazem-work
Remove scanf and floatarray examples from id
The file was modifiedstdlib/fun.mli
Commit 0afb9a2e243fd1dda8677eed1bcd9e016e30325f by hazem-work
Prevent overlong lines in code examples
The file was modifiedstdlib/fun.mli
Commit a2516f982f0b926913399193edbdc6f8e184471d by hazem-work
Add a Changes entry
The file was modifiedChanges
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 modifiedtestsuite/tests/lib-unix/common/cloexec.ml
The file was modifiedtestsuite/tests/lib-unix/common/fdstatus_main.ml
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 modifiedtestsuite/tests/lib-unix/common/fdstatus_main.ml
The file was modifiedtestsuite/tests/lib-unix/common/cloexec.ml
The file was modifiedtestsuite/tests/lib-unix/common/fdstatus_aux.c
Commit bcef9c341ffbedb5de93a8e3f9ea891e5366f24e by noreply
Enrich ocamltest doc about scripts (#13902)

The file was modifiedocamltest/OCAMLTEST.org
Commit 5d7bc092e33918f3aa10e654f79f33e6672ce2ef by valentin.gatienbaron
manual: alerts: add sections, in preparation for following commits
The file was modifiedmanual/src/refman/extensions/alerts.etex
Commit adb56106732f7806c16d21055d83496924bb5077 by valentin.gatienbaron
manual: alerts: annotate code section as ocaml code

For presumably marginally nicer display.
The file was modifiedmanual/src/refman/extensions/alerts.etex
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 modifiedmanual/src/refman/extensions/alerts.etex
The file was modifiedChanges
Commit 04693889d92d531636eec92817cc9258735a1fde by noreply
Makefile.dev: work around #13817 (#13818)

The file was modifiedMakefile.dev
The file was modifiedparsing/HACKING.adoc
Commit 77cf7cd7938242415bb4e7180921aba21cafc96e by gabriel.scherer
[refactor] runtime: auxiliary function for allocated_words update
The file was modifiedruntime/minor_gc.c
The file was modifiedruntime/gc_ctrl.c
The file was modifiedruntime/intern.c
The file was modifiedruntime/caml/major_gc.h
The file was modifiedruntime/memory.c
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 modifiedruntime/caml/domain_state.tbl
The file was modifiedruntime/domain.c
The file was modifiedruntime/major_gc.c
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 modifiedruntime/caml/domain_state.tbl
The file was modifiedruntime/gc_ctrl.c
The file was modifiedruntime/caml/misc.h
The file was modifiedruntime/caml/gc_ctrl.h
The file was modifiedruntime/caml/major_gc.h
Commit 84b15d08f33cec70714f1b0cfd9d4ea872667da9 by gabriel.scherer
runtime: count the work suspended by each ramp-up phase
The file was modifiedruntime/caml/domain_state.tbl
The file was modifiedruntime/gc_ctrl.c
The file was modifiedruntime/major_gc.c
The file was modifiedruntime/caml/gc_ctrl.h
The file was modifiedruntime/domain.c
Commit 612ec1a39c0aa8d6c55a0ed982de28773f54a84e by gabriel.scherer
runtime: support nested ramp-up phases
The file was modifiedruntime/gc_ctrl.c
Commit 5fd9f104aaada9690ffc75f85a0735dda3067c94 by gabriel.scherer
expose ramp_up, ramp_down as externals in stdlib/Gc
The file was modifiedruntime/gc_ctrl.c
The file was modifiedstdlib/gc.ml
The file was modifiedstdlib/gc.mli
The file was modifiedruntime/caml/gc_ctrl.h
Commit 997d76fd08a7aae4d05e36bd5c1a57a0601f00bc by gabriel.scherer
Changes entry
The file was modifiedChanges
Commit b4ef74b6b0cfaf72288178f136d37db50dcc81f7 by gabriel.scherer
runtime: log ramp-up / ramp-down in SLICESIZE GC logs
The file was modifiedruntime/gc_ctrl.c
Commit e02327363c19d8b4f710989106db4836dbe73dc9 by gabriel.scherer
Gc.ramp_up: re-raise exceptions, but ramp-down right before

Suggested-by: Guillaume Munch-Maccagnoni <Guillaume.Munch-Maccagnoni@inria.fr>
The file was modifiedstdlib/gc.mli
The file was modifiedruntime/gc_ctrl.c
Commit 51ac833b3fb05c0c7f36732c5b5c5ac528159e01 by gabriel.scherer
[minor] stray fix in runtime/array.c
The file was modifiedruntime/array.c
Commit 59dcd8daa4cf4093804a4bdbd40f25a58e8ceabd by gabriel.scherer
runtime/array.c: expose {uniform_,float}array_concat, use it in Float.Array
The file was modifiedruntime/array.c
The file was modifiedstdlib/float.ml
The file was modifiedtestsuite/tests/lib-floatarray/floatarray.ml
The file was modifiedChanges
Commit 8800ddc8ee995e8d6d3c778b070bca999aedcd41 by noreply
Rename ccomptype to ccomp_type for consistency (#13927)

The file was modifiedutils/config.generated.ml.in
The file was modifiedocamltest/ocamltest_config.ml.in
The file was modifiedocamltest/builtin_actions.ml
The file was modifiedocamltest/ocamltest_config.mli
The file was modifiedconfigure.ac
The file was modifiedocamltest/ocaml_tests.ml
The file was modifiedMakefile.config.in
The file was modifiedconfigure
The file was modifiedocamltest/ocaml_actions.ml
Commit f36d3c1cc3f71d31a49efeebdf8141602aaabf71 by noreply
Add Result.{get_ok',error_to_failure} (#13720)

* Add Result.get_ok'.

* Result.error_to_failure

* Update changes.
The file was modifiedChanges
The file was modifiedtestsuite/tests/lib-result/test.ml
The file was modifiedstdlib/result.ml
The file was modifiedstdlib/result.mli
Commit 0863a235481bdd160dc74f0820b0fe36262297fd by david.allsopp
Add List.singleton and Seq.singleton

Set.S already has singleton, and dual of {Bytes,String,Array}.make 1
and Option.some
The file was modifiedstdlib/list.ml
The file was modifiedstdlib/listLabels.mli
The file was modifiedstdlib/seq.ml
The file was modifiedtestsuite/tests/backtrace/backtrace_dynlink.reference
The file was modifiedtestsuite/tests/lib-dynlink-initializers/test10_main.byte.reference
The file was modifiedtestsuite/tests/lib-dynlink-initializers/test10_main.native.reference
The file was modifiedtestsuite/tests/translprim/comparison_table.compilers.reference
The file was modifiedstdlib/seq.mli
The file was modifiedstdlib/list.mli
The file was modifiedChanges
The file was modifiedtestsuite/tests/backtrace/backtrace_dynlink.flambda.reference
Commit 12ad8aff8cbbffaf9ee3746f4992b31f28c24e16 by noreply
Fix @since 5.0 annotation loss in domain.mli and effect.mli by swapping alert and header (#13934)

The file was modifiedstdlib/effect.mli
The file was modifiedstdlib/domain.mli
Commit e0bd2767f9c52c93777b8084761cc675c6e40e9b by gabriel.scherer
mystery reviewer for 13643
The file was modifiedChanges
Commit 719260b898d082af0d61d82d79b7ad917fc33f36 by clement.blaudeau
Added tests for abstraction of whole module types during avoidance
The file was modifiedtestsuite/tests/typing-modules/nondep.ml
The file was modifiedtestsuite/tests/shadow_include/shadow_all.ml
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 modifiedtyping/mtype.ml
The file was modifiedtestsuite/tests/typing-modules/nondep.ml
The file was modified.depend
The file was modifiedtestsuite/tests/shadow_include/shadow_all.ml
The file was modifiedChanges
Commit fb3bac9f88a4eb7a48f347ca25005cc4e51828ea by noreply
Fix test weak-ephe-final/ephe_custom.ml (#13940)

The file was modifiedtestsuite/tests/weak-ephe-final/ephe_custom.ml
Commit 5270d8b5afd83e0e1e1fb5f9f5125e64ce3be09b by gabriel.scherer
[refactoring] move Matching.get_mod_field to Lambda.transl_mod_field
The file was modifiedlambda/lambda.ml
The file was modifiedlambda/matching.ml
The file was modifiedlambda/lambda.mli
Commit 1e6da84197d1ca2338722f74398f644cb341fe0b by gabriel.scherer
[refactoring] Lambda.transl_mod_field, move 'lazy' to clients
The file was modifiedlambda/lambda.ml
The file was modifiedlambda/matching.ml
The file was modifiedlambda/lambda.mli
Commit 6edeb97b978fba1fec67aeba4af05e539a15059f by gabriel.scherer
[refactor] Lambda: merge transl_mod_field and transl_prim
The file was modifiedlambda/lambda.ml
The file was modifiedlambda/matching.ml
The file was modifiedlambda/lambda.mli
Commit a9d418a351925bc87d34f22d85e7f6dcc3b65108 by gabriel.scherer
update .depend
The file was modified.depend
Commit e9cf6195015e6de0fcf18cb86e32f4b7e37f0f34 by olivier
Fix #13939
The file was modifiedChanges
The file was modifiedruntime/array.c
Commit 3717bf5ff373fef98902c447808f586503a00a14 by vincent.laviron
Typeopt: better handling of deeply nested unboxed types
The file was modifiedtyping/typeopt.ml
Commit 216497cc21254b36d9d0a800698eba7cd17a6590 by vincent.laviron
Add test
The file was addedtestsuite/tests/typeopt/nested_unboxed.ml
Commit ba64be84de9c9c14cfd13dbf7f4a80abf7b5105d by vincent.laviron
Changes
The file was modifiedChanges
Commit 0827a2998887d2b9915365c96acf36f2421250b3 by gabriel.scherer
runtime: migrate caml_{alloc,update}_dummy from alloc.c to obj.c
The file was modifiedruntime/alloc.c
The file was modifiedruntime/obj.c
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 modifiedruntime/obj.c
Commit 8eb1c98e83f65c9d43a95b0e40b438599b7f7855 by gabriel.scherer
[minor] value_rec_compiler: refactor alloc/update calls
The file was modifiedlambda/value_rec_compiler.ml
Commit 25bc9977863f149fd5ac98231ee27402148d20a0 by gabriel.scherer
recursive values: introduce [caml_update_dummy_lazy]
The file was modifiedlambda/value_rec_compiler.ml
The file was modifiedruntime/obj.c
Commit 7e1fdd20d5f981ce98520feb1fd0c4e320506ad6 by gabriel.scherer
regression test for lazy shortcutting in recursive values
The file was modifiedtestsuite/tests/letrec-compilation/lazy_.reference
The file was modifiedtestsuite/tests/letrec-compilation/lazy_.ml
Commit c3d4fbd47ac1fb40dfe29a534ad587ceff40b10b by gabriel.scherer
Changes
The file was modifiedChanges
Commit f3ead54439c8043a95248ff1d09ff0c0cef6d648 by gabriel.scherer
lazy + letrec: insert indirections on lazy update to avoid concurrency issues
The file was modifiedstdlib/camlinternalLazy.ml
The file was modifiedlambda/value_rec_compiler.ml
The file was modifiedstdlib/camlinternalLazy.mli
Commit 06e29c039dceb172249e773534ed3123bfc53cca by gabriel.scherer
use a dedicated [caml_alloc_dummy] primitive

Suggested-by: Vincent Laviron <vincent.laviron@gmail.com>
The file was modifiedlambda/value_rec_compiler.ml
The file was modifiedruntime/obj.c
Commit d7d85ddb647e09f1f4d9c1ccb7a57e881c9fe8d1 by clement.blaudeau
Improved changelog message
The file was modifiedChanges
Commit 44bd8e000f18ec0ddf8543c64c62ed3f61dc16c1 by gabriel.scherer
document [caml_domain_alone] reasoning
The file was modifiedruntime/caml/domain.h
The file was modifiedruntime/domain.c
Commit e6be17f63413a5042da86c4a1a4a60be13d51564 by gabriel.scherer
spawn: increment [caml_num_domains_running] earlier to ease reasoning
The file was modifiedruntime/domain.c
Commit 1d24e2f2d0639f0c84a3b1b540d2bee0f4f4ba97 by gabriel.scherer
domain_create: release the domain lock on failure
The file was modifiedruntime/domain.c
Commit a4ae69f1e425dd28dfc14899a6aacdcb313f7e01 by gabriel.scherer
Changes
The file was modifiedChanges
Commit 7ec190d939dfc0c200055f8531a46730f8f58e36 by david.allsopp
Pin Cygwin back to 3.6.1 until AppVeyor updates

Avoids broken 3.5.5 version in the runner image.
The file was modifiedtools/ci/appveyor/appveyor_build.cmd
Commit b444a23ffd64f3ebab9f83d66d1252ca2184f143 by noreply
List.sort_uniq : remove non-first duplicates. (#13862)

The file was modifiedstdlib/list.ml
The file was modifiedtestsuite/tests/lib-list/test.ml
The file was modifiedChanges
The file was modifiedstdlib/listLabels.mli
The file was modifiedstdlib/list.mli
Commit 554f30d6287106eafc616b322497a1c6d9ce7a5b by pierre.boutillier
Move match_printer_type in order to share it between toplevel and debugger
The file was modifiedtoplevel/topprinters.mli
The file was modifiedtoplevel/topdirs.ml
The file was modified.depend
The file was modifiedtoplevel/topprinters.ml
Commit a7fedb27eaa47975752772de8b15c8d25f448a5f by pierre.boutillier
Move find_printer to Topprinters (to be shared with the degugger)
The file was modified.depend
The file was modifiedtoplevel/topprinters.ml
The file was modifiedtoplevel/topdirs.ml
The file was modifiedtoplevel/topprinters.mli
Commit 2369b8c641e88d745759bb155aab9f81c2c87826 by pierre.boutillier
Move debugger printers fetching logic
The file was modifieddebugger/printval.mli
The file was modifieddebugger/printval.ml
The file was modified.depend
The file was modifieddebugger/command_line.ml
The file was modifieddebugger/loadprinter.mli
The file was modifieddebugger/loadprinter.ml
Commit 985d3e5ac08cefa8e9089d26dfa582f8da1a9b2d by pierre.boutillier
Debugger uses Topprinters.find_printer

The behavior is purely identical.
The file was modifieddebugger/loadprinter.mli
The file was modifiedtoplevel/topprinters.ml
The file was modified.depend
The file was modifiedtoplevel/topprinters.mli
The file was modifieddebugger/loadprinter.ml
Commit 077920a58406fad184b19f191d3c756e100b3c51 by Florian Angeletti
release-info: update calendar
The file was modifiedrelease-info/calendar.md
The file was modifiedrelease-info/introduction.md
Commit 568fe6549bbdd4cc2166bda9eaa100d564ff3a83 by mail
Use dune.3.18.0 which is compatible with trunk
The file was modified.github/workflows/multicoretests.yml
Commit ad8fe360f022291ddd3dddd044c0fd88ae5b1f98 by mail
Bump qcheck and multicoretests to the latest releases
The file was modified.github/workflows/multicoretests.yml
Commit 3368b4d41b74d68304d9f59b0cce7fa9ee7a3d9a by samuel.aime.vivien
Changed occur_rec in typing/ctype.ml to traverse type as a graph and not a tree
The file was modifiedtyping/ctype.ml
Commit 38dad96b946ecdb18bc5fcc77d1f3ad146206926 by samuel.aime.vivien
Changes
The file was modifiedChanges
Commit db203413c80c5d090f6fa8f37127aed2c9f240f4 by samuel.aime.vivien
Renamed some arguments of occur_rec
The file was modifiedtyping/ctype.ml
Commit ab1e69cbbba27d5f2954629927c555e47965205f by timmcgil
Add signal definitions for SIGIO and SIGWINCH.
The file was modifiedstdlib/sys.ml.in
The file was modifiedruntime/signals.c
The file was modifiedstdlib/sys.mli
Commit bfd9a2ef66ca338091e3be04b06540cabb033bf8 by timmcgil
Add signal_to_string function
The file was modifiedstdlib/sys.ml.in
The file was modifiedstdlib/sys.mli
Commit 0f79b0260fc009bab9fac1fa155d368cfd673e97 by timmcgil
Add signal type alias and signal_to_string.
The file was addedtestsuite/tests/lib-sys/signal.ml
The file was modifiedstdlib/sys.ml.in
The file was modifiedstdlib/sys.mli
The file was addedtestsuite/tests/lib-sys/signal.reference
Commit 042c4bed5695fabf0888a97afcfcf9926aa14606 by timmcgil
Export signal conversion functions as primitives.
The file was modifiedruntime/signals.c
Commit 357b1e1fb5b468ab401c2465a71bd2b7c8b15f8a by timmcgil
Export signal conversion functions as primitives in Sys
The file was modifiedstdlib/sys.mli
The file was modifiedtestsuite/tests/lib-sys/signal.reference
The file was modifiedstdlib/sys.ml.in
The file was modifiedtestsuite/tests/lib-sys/signal.ml
Commit fed618a2351ff6aef8a5d675c522e06ee0b6be87 by timmcgil
Update documentation in Unix module
The file was modifiedtools/sync_stdlib_docs
The file was modifiedotherlibs/unix/unix.mli
The file was modifiedstdlib/sys.mli
The file was modifiedotherlibs/unix/unixLabels.mli
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 modifiedstdlib/sys.mli
The file was modifiedstdlib/sys.ml.in
The file was modifiedtestsuite/tests/lib-sys/signal.ml
Commit c0395d42e10b013eb105305d9f173edb736cdc61 by timmcgil
Add changelog
The file was modifiedChanges
Commit 1dad8e57c51e83973785b242406e313ee5a1144f by noreply
Allow 'effect' as attribute id (#13957)

The file was modifiedparsing/parser.mly
The file was modifiedboot/menhir/parser.ml
The file was modifiedChanges
Commit 9a679e9a020c57d7d589199655c94135ce6f5a0e by gabriel.scherer
ocamltest: fix typos

(cherry picked from commit 62672b75a315e52e39275dce10d87f22df73e254)
The file was modifiedocamltest/main.ml
The file was modifiedocamltest/environments.ml
The file was modifiedocamltest/builtin_actions.ml
The file was modifiedocamltest/options.ml
Commit eac5234d70dc60d96dba8f6c93d2142dd50b16ad by antonin
ocamltest: use C99 booleans
The file was modifiedocamltest/run_win32.c
The file was modifiedocamltest/run_unix.c
Commit 286786e3b9d9164f86e7fdde644216f7f82e8167 by antonin
ocamltest: fix path comparison

NULL could be passed to strcmp in the error path. All libc now support
`realpath(..., NULL);`.
The file was modifiedocamltest/run_unix.c
Commit ca7008f70a7b2828df2cf506e67309787979b5b3 by antonin
ocamltest: use O_CLOEXEC on file descriptors

The execvp'ed image will still inherit the standard fd files as they
have been dup2'ed. Prevent leaks of file descriptors in tests.
The file was modifiedocamltest/run_unix.c
Commit 4b8ad7058f1312aecc8d1e77b3f90931d6ddccc5 by antonin
ocamltest: compare wcscmp result with 0
The file was modifiedocamltest/run_win32.c
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 modifiedocamltest/run_unix.c
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 modifiedocamltest/options.ml
The file was modifiedutils/misc.mli
The file was modifiedocamltest/filecompare.ml
The file was modifiedconfigure
The file was modifieddriver/main_args.ml
The file was modifieddriver/main_args.mli
The file was modifiedconfigure.ac
The file was modifiedutils/misc.ml
Commit b18a3becc7c535aa3cc645f850a3fa6df1e33bfd by antonin
GHA: update to macOS 15 and Xcode 16.3
The file was modified.github/workflows/build.yml
Commit 1b2a887a8092fa240883f9354ab050b0c5e789f8 by antonin
tests: native-debugger: build C test code without optimizations

Fixes warnings and spurious failures in the CI.
The file was modifiedtestsuite/tests/native-debugger/linux-gdb-arm64.ml
The file was modifiedtestsuite/tests/native-debugger/linux-lldb-amd64.reference
The file was modifiedtestsuite/tests/native-debugger/macos-lldb-arm64.ml
The file was modifiedtestsuite/tests/native-debugger/linux-gdb-amd64.ml
The file was modifiedtestsuite/tests/native-debugger/linux-gdb-amd64.reference
The file was modifiedtestsuite/tests/native-debugger/linux-gdb-riscv.ml
The file was modifiedtestsuite/tests/native-debugger/linux-lldb-amd64.ml
The file was modifiedtestsuite/tests/native-debugger/linux-lldb-arm64.ml
The file was modifiedtestsuite/tests/native-debugger/macos-lldb-amd64.reference
The file was modifiedtestsuite/tests/native-debugger/macos-lldb-amd64.ml
The file was modifiedtestsuite/tests/native-debugger/macos-lldb-arm64.reference
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 modifiedtestsuite/tests/native-debugger/linux-gdb-riscv.reference
The file was modifiedtestsuite/tests/native-debugger/sanitize.awk
The file was modifiedtestsuite/tests/native-debugger/linux-gdb-arm64.reference
The file was modifiedtestsuite/tests/native-debugger/linux-gdb-amd64.reference
Commit d2b9a889af057b1488633acdaa3cb2bb5203feae by antonin
tests: native-debugger: fix GDB version parsing
The file was modifiedtestsuite/tests/native-debugger/has_gdb.sh
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 modifiedtestsuite/tests/native-debugger/gdb-script
The file was modifiedtestsuite/tests/native-debugger/macos-lldb-amd64.reference
The file was modifiedtestsuite/tests/native-debugger/macos-lldb-arm64.reference
The file was modifiedtestsuite/tests/native-debugger/linux-lldb-amd64.reference
The file was modifiedtestsuite/tests/native-debugger/linux-lldb-arm64.reference
The file was modifiedtestsuite/tests/native-debugger/lldb-script
Commit f24468b21c2b8912eff5194dbdf31d992ed2fe03 by antonin
tests: native-debugger: sanitize trailing blanks
The file was modifiedtestsuite/tests/native-debugger/linux-lldb-amd64.reference
The file was modifiedtestsuite/tests/native-debugger/macos-lldb-arm64.reference
The file was modifiedtestsuite/tests/native-debugger/sanitize.awk
The file was modifiedtestsuite/tests/native-debugger/linux-lldb-arm64.reference
Commit d7e5842658155be96658c641ef56e39ac380efcb by antonin
tests: native-debugger: simplify shell scripts

Don't redeclare variables that ocamltest always provides in scripts.
The file was modifiedtestsuite/tests/native-debugger/macos-lldb-amd64.ml
The file was modifiedtestsuite/tests/native-debugger/linux-gdb-amd64.ml
The file was modifiedtestsuite/tests/native-debugger/linux-lldb-arm64.ml
The file was modifiedtestsuite/tests/native-debugger/linux-lldb-amd64.ml
The file was modifiedtestsuite/tests/native-debugger/linux-gdb-arm64.ml
The file was modifiedtestsuite/tests/native-debugger/linux-gdb-riscv.ml
The file was modifiedtestsuite/tests/native-debugger/macos-lldb-arm64.ml
The file was modifiedtestsuite/tests/native-debugger/sanitize.sh
Commit 916a4bc8deaf0d009d67b0d575178566f7d42eb5 by antonin
Apply suggestions from review
The file was modifiedocamltest/options.ml
The file was modifieddriver/main_args.mli
The file was modifieddriver/main_args.ml
The file was modifiedocamltest/filecompare.ml
Commit 92bb95f604245b4ea5d133a648901cb205ff6cd8 by antonin
Check separately in configure if DIFF supports --color
The file was modifiedocamltest/ocamltest_config.mli
The file was modifiedocamltest/filecompare.ml
The file was modifiedconfigure
The file was modifiedconfigure.ac
The file was modifiedocamltest/ocamltest_config.ml.in
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 modifiedtools/ci/actions/check-configure.sh
Commit 95e9f437d9f2c380b818816f0f6bbe6429e14ca5 by noreply
Added printing of presence flag in typedtree (#13963)

The file was modifiedtyping/printtyped.ml
The file was addedtestsuite/tests/typedtree/module_presence.ml
Commit 1c1ca1f0714d3bdc91620523fb83aca1182ecb17 by gabriel.scherer
fix .depend
The file was modified.depend
Commit baefa7b666fcf642abe1e11672f1cdcaa4f7b63c by gabriel.scherer
[minor] value_rec_compiler: move primitive declarations earlier
The file was modifiedlambda/value_rec_compiler.ml
Commit 730b257a397e5c46d473c5fd186c7d96fdbaf206 by gabriel.scherer
fix #13931
The file was modifiedChanges
The file was modifiedlambda/value_rec_compiler.ml
The file was addedtestsuite/tests/letrec-compilation/nested2.ml
Commit 59de1b63416f24a66d7a6366ef63d40cd9d588c1 by timmcgil
Add profiling with perf chapter OCaml manual

This covers the use of Linux perf to profile OCaml native code
including the overlap with frame pointers and DWARF CFI information
The file was modifiedChanges
The file was modifiedmanual/src/allfiles.etex
The file was modifiedmanual/src/cmds/profil.etex
The file was modifiedmanual/src/cmds/Makefile
The file was addedmanual/src/cmds/profile-perf.etex
The file was modifiedmanual/README.md
Commit a4bc947b602f5a9dbf24b67e2a6ca7b0e8e3a0ad by timmcgil
Collapse profiling into a single chapter.
The file was modifiedmanual/src/cmds/Makefile
The file was modifiedmanual/src/cmds/profil.etex
The file was modifiedmanual/README.md
The file was modifiedmanual/src/allfiles.etex
The file was removedmanual/src/cmds/profile-perf.etex
Commit 99f4308c1f174da6fc93cd2ace5a04c7f3d3cd18 by valentin.gatienbaron
add an invariant function to check that loc_ghost is set correctly

spoiler alert: it isn't
The file was modifieddriver/main_args.ml
The file was modifiedutils/clflags.mli
The file was modifieddriver/main_args.mli
The file was modifiedparsing/ast_invariants.mli
The file was modifiedtestsuite/tests/parsing/shortcut_ext_attr.compilers.reference
The file was modifiedtestsuite/tests/parsing/shortcut_ext_attr.ml
The file was modifieddriver/pparse.ml
The file was modified.depend
The file was modifiedparsing/ast_invariants.ml
The file was modifiedutils/clflags.ml
Commit 1f9bad504e594a1a02b05af72075fffe304962a2 by valentin.gatienbaron
parser: partially align use of loc_ghost with what the documentation says

Mostly in:
- the productions for keyword%extension syntaxes
- the implied 'self in `object ('self) end`
The file was modifiedparsing/ast_invariants.ml
The file was modifiedtestsuite/tests/parsing/shortcut_ext_attr.compilers.reference
The file was modifiedChanges
The file was modifiedparsing/parser.mly
The file was modifiedtestsuite/tests/parsetree/locations_test.compilers.reference
Commit 002a3566d2223de6ccbb599d2dcee806a528818f by valentin.gatienbaron
parser: refactor previous commit, by removing error prone functions
The file was modifiedparsing/parser.mly
Commit 59b3990f403ada5169ae60f660dc9686ffa8d950 by valentin.gatienbaron
parser: regenerate parser.ml
The file was modifiedboot/menhir/parser.ml
Commit ee205eca7ded1ff821bfd0a2b067355044b32be0 by thevoodoos
Add test of princiaplity from polymorphic type constraints
The file was addedtestsuite/tests/typing-poly/pr11544.ml
Commit c38e6d786635913353b1205e057d8c218c50d58b by thevoodoos
Keep generalized structure from patterns when typing let
The file was modifiedtyping/typecore.ml
The file was modifiedtestsuite/tests/typing-fstclassmod/scope_escape.ml
The file was modifiedtestsuite/tests/effect-syntax/error_messages.ml
The file was modifiedtestsuite/tests/typing-poly/pr11544.ml
Commit 50a137138591643d7f52c8650f674c884efd96cf by thevoodoos
Add changelog entry
The file was modifiedChanges
Commit 2e0d1e80cb2ed2e0ea10401d919a033400fbbd3b by clement.blaudeau
Renamed the flag `transparent_modules` into `no_alias_deps`
The file was modifiedparsing/depend.ml
The file was modifieddriver/compenv.ml
The file was modifiedtyping/env.ml
The file was modifiedtestsuite/tests/ppx-contexts/myppx.ml
The file was modifieddriver/makedepend.ml
The file was modifieddriver/main_args.ml
The file was modifiedtestsuite/tests/ppx-contexts/test.compilers.reference
The file was modifiedutils/clflags.mli
The file was modifiedparsing/ast_mapper.ml
The file was modifiedutils/clflags.ml
The file was modifiedChanges
Commit 4df884cb9185923d9a2cf23719927880d66e4b9a by clement.blaudeau
Update driver/makedepend.ml

Co-authored-by: Kate <kit-ty-kate@outlook.com>
The file was modifieddriver/makedepend.ml
Commit 5a5039e89a4d326a35c531ba8bb82bd53bfa50eb by clement.blaudeau
Updated Changelog with pr number
The file was modifiedChanges
Commit a557f4385eaa54a4baa52511a103c3eb297f01ba by antonin
Update changes
The file was modifiedChanges
Commit 3133c8303c4d5aafef2a4f8225e4b0dc36262f15 by n.oje.bar
ocamlopt: pass -fPIC when compiling C files
The file was modifiedconfigure.ac
The file was modifiedconfigure
Commit 0facda32c8036cd7c3efac43a94788d070f6e1b8 by n.oje.bar
Changes
The file was modifiedChanges
Commit ce4fa52379219dc5f7d6c6624d7f12fdfac96056 by n.oje.bar
Changes
The file was modifiedChanges
Commit f3c8791af983ab221c5807f88ff4643b62cce7c7 by n.oje.bar
Uniformize definition of native_cflags, bytecode_cflags
The file was modifiedconfigure.ac
The file was modifiedconfigure
Commit e74c6cac3e1191ce2f0394ed3f3ffcc099d77f4c by n.oje.bar
Changes
The file was modifiedChanges
Commit bec870ad15a89acb898327e2d5ca5c105e67b9b0 by Florian Angeletti
last commit before branching 5.4
The file was modifiedChanges
The file was modifiedbuild-aux/ocaml_version.m4
The file was modifiedconfigure
The file was modifiedVERSION
Commit 2a4ee8d4321897ea997a84602502729aed57ecb9 by Florian Angeletti
first commit after branching 5.4
The file was modifiedChanges
The file was modifiedrelease-info/calendar.md
Commit 5f6ccc30738102af5b6906861ac769ec9f0c7279 by Florian Angeletti
Update README.adoc badges after branching
The file was modifiedREADME.adoc
Commit 37ea3258245cfb387607bbb9b0d942648b2964e6 by olivier
Avoid tearing in Array.sub

Co-authored-by: Gabriel Scherer <gabriel.scherer@gmail.com>
The file was modifiedChanges
The file was modifiedruntime/array.c
Commit 9c3111d37bd250612f99ff6c71b8b8887e9567a7 by thevoodoos
Move filter_arrow error handling in a function
The file was modifiedtyping/typecore.ml
Commit d0c66e68483a91d92f46274578e360abc3b5d5f0 by thevoodoos
Refactor: extract loc_rest_of_function
The file was modifiedtyping/typecore.ml
Commit 4a08f1d4e348d620005e880b0a5f119f82bfdd6b by thevoodoos
Refactor [type_approx].

Take an additional parameter for the expected type to unify with.

Co-authored-by: Thomas Refis <thomas.refis@gmail.com>
The file was modifiedtyping/typeclass.ml
The file was modifiedtyping/typecore.ml
The file was modifiedtestsuite/tests/typing-misc/typecore_errors.ml
The file was modifiedtyping/typecore.mli
Commit 63bd7a6561cd77f5b5dfdea29739d890a327c87b by thevoodoos
Add a test illustrating a regression in type_approx
The file was modifiedtestsuite/tests/typing-misc/let_rec_approx.ml
Commit 363f64774b4c331b4956587c1dcd6dfd0afe3502 by thevoodoos
Fix the regression in type approx
The file was modifiedtestsuite/tests/typing-misc/let_rec_approx.ml
The file was modifiedtyping/typecore.ml
Commit 1527dda8d2f326edc7318055a4a44e4dd44d6cec by thevoodoos
Remove the loop: we are already in a recursive function
The file was modifiedtyping/typecore.ml
Commit dd14dd03e3cc7b75d980d34e61b416c40d9ed4c8 by thevoodoos
Add a comment about an unreachable case
The file was modifiedtyping/typecore.ml
Commit a75638202fa40681debf83f1d03a9736a68fd9e5 by thevoodoos
Add a comment for type_approx_fun_one_param's spato parameter.
The file was modifiedtyping/typecore.ml
Commit dc1e77060e32febd254db9266a9d14ad93250d8a by thevoodoos
Add a changelog entry for #13980
The file was modifiedChanges
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 modifiedotherlibs/unix/channels_win32.c
The file was modifiedChanges
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 modifiedMakefile.cross
The file was modifiedMakefile.common
The file was modifiedMakefile.build_config.in
The file was modifiedMakefile
Commit 99bf62e438feb51d7b5b954ff4e8d0230b0e0172 by david.allsopp
Make ocamlmklib fail on an unknown parameter

This reverts commit 31cbd26c16f81c8a273ad3ba988c49db6b0dbe38.
The file was modifiedtools/ocamlmklib.ml
The file was modifiedChanges
Commit c681cd75440c3403ef442c6f9cf0c4c52d85af8a by thevoodoos
Collimate the comments
The file was modifiedtyping/typecore.ml
Commit e26ce76ecbbc66627e3234ba3c49dd89b7801e2e by vincent.laviron
Fix Makefile dependencies for ocamldoc, ocamltest and ocamldebug
The file was modifiedMakefile
Commit 60494e239ab043d72c1b1869ca790f7320f849fa by Florian Angeletti
Bump magic numbers and version for 5.5.0
The file was modifiedocaml-variants.opam
The file was modifiedVERSION
The file was modifiedbuild-aux/ocaml_version.m4
The file was modifiedconfigure
The file was modifiedboot/ocamlc
The file was modifiedboot/ocamllex
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 modifiedtyping/envaux.ml
The file was modifiedtyping/includemod.ml
The file was modifiedtestsuite/tests/typing-sigsubst/sigsubst.ml
The file was modifiedtyping/env.ml
The file was modifiedtyping/typemod.ml
The file was modifiedtestsuite/tests/typing-modules/pr13185.ml
The file was modifiedtyping/out_type.ml
The file was modifiedtyping/env.mli
The file was modifiedtyping/mtype.ml
Commit 9b9a8d1d5842edeacc234e2344c42f5f642e01e3 by clement.blaudeau
Added tests and updated error message with line breaks
The file was modifiedtestsuite/tests/typing-modules/pr13185.ml
The file was modifiedtyping/typemod.ml
The file was modifiedtestsuite/tests/typing-modules/aliases.ml
The file was modifiedtestsuite/tests/typing-sigsubst/sigsubst.ml
Commit 60f8298cc6875f822be2e5aacad6521f7cacaa32 by gabriel.scherer
genprintval: explain why certain uses of O.obj are not guarded

Co-authored-by: Pierre Boutillier <pierre.boutillier@laposte.net>
The file was modifiedtoplevel/genprintval.ml
The file was modifiedtoplevel/genprintval.mli
The file was modifieddebugger/eval.ml
The file was modifieddebugger/debugcom.ml
The file was modifiedtoplevel/topcommon.ml
The file was modifieddebugger/debugcom.mli
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 modifiedtoplevel/genprintval.ml
The file was modifieddebugger/printval.mli
The file was modifiedtoplevel/genprintval.mli
The file was modifieddebugger/printval.ml
The file was modifieddebugger/debugcom.mli
The file was modifieddebugger/debugcom.ml
The file was modifieddebugger/loadprinter.ml
The file was modified.depend
The file was modifiedtoplevel/topcommon.ml
Commit 7e4485d8770b5b088f022e43e0a353e5c59eeeed by gabriel.scherer
Generic printers in debugger
The file was modified.depend
The file was modifieddebugger/printval.ml
The file was modifieddebugger/loadprinter.ml
The file was modifieddebugger/printval.mli
Commit 9a8bc46842ceb79494c31e0d42e31170fb28b739 by gabriel.scherer
Test and doc of polymorphic printers in debugger
The file was modifiedtestsuite/tests/tool-debugger/printer/debuggee.ml
The file was modifiedChanges
The file was modifiedtestsuite/tests/tool-debugger/printer/debuggee.reference
The file was modifiedtestsuite/tests/tool-debugger/printer/printer.ml
The file was modifiedtestsuite/tests/tool-debugger/printer/input_script
Commit 1533cbcf9880a34bf9432c6690407c23f7578f40 by mail
Use trunk-compatible dune.3.18.2
The file was modified.github/workflows/multicoretests.yml
Commit f854e28ac8840d50cf35e3430bbc02d049b4c542 by clement.blaudeau
Made the "remove_aliases" attribute visible in built-ins attributes

- Updated the manual to document [remove_aliases]
- Created a proper [has_remove_aliases] function in Builtin_attributes
The file was modifiedChanges
The file was modifiedmanual/src/refman/extensions/attributes.etex
The file was modifiedtyping/typemod.ml
The file was modified.depend
The file was modifiedparsing/builtin_attributes.ml
The file was modifiedparsing/builtin_attributes.mli
Commit eb383047f6bd6f3b247ffbe3e3c1e3738a5743a1 by olivier
Add Dynarray.unsafe_to_iarray

Fixes #13793.
The file was modifiedstdlib/dynarray.mli
The file was modifiedstdlib/dynarray.ml
The file was modifiedtestsuite/tests/lib-dynarray/test.ml
The file was modifiedChanges
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 modifiedtyping/untypeast.ml
The file was modifiedparsing/parsetree.mli
The file was modifiedparsing/ast_invariants.ml
The file was modifiedtestsuite/tests/parsetree/locations_test.compilers.reference
The file was modifiedparsing/pprintast.ml
The file was modifiedparsing/ast_iterator.ml
The file was modifiedparsing/ast_helper.ml
The file was modifiedtyping/printtyped.ml
The file was modifiedparsing/depend.ml
The file was modifiedtools/ocamlprof.ml
The file was modifiedChanges
The file was modifiedtyping/typemod.ml
The file was modifiedparsing/ast_helper.mli
The file was modifiedtestsuite/tests/parsing/shortcut_ext_attr.compilers.reference
The file was modifiedtyping/typedtree.ml
The file was modifiedtyping/value_rec_check.ml
The file was modifiedparsing/parser.mly
The file was modifiedtyping/tast_iterator.ml
The file was modified.depend
The file was modifiedtyping/tast_mapper.ml
The file was modifiedparsing/ast_mapper.ml
The file was modifiedboot/menhir/parser.ml
The file was modifiedtestsuite/tests/shape-index/index_modules.reference
The file was modifiedtyping/cmt2annot.ml
The file was modifiedtyping/typecore.ml
The file was modifiedtyping/typecore.mli
The file was modifiedlambda/translcore.mli
The file was modifiedlambda/translmod.ml
The file was modifiedtyping/typedtree.mli
The file was modifiedfile_formats/cmt_format.ml
The file was modifiedlambda/translcore.ml
The file was modifiedparsing/printast.ml
Commit f1025ceaeace6a6ca4496194847bc2749021bf1d by noreply
webman: add anchors for API items, headings (#14002)

* webman: add anchors for API items, headings

* Changes
The file was modifiedmanual/src/html_processing/src/process_api.ml
The file was modifiedmanual/src/html_processing/scss/style.scss
The file was modifiedChanges
Commit 58db57d565aece80208b0e987b6e712a796c2fcf by noreply
Refine docs for `In_channel` and `Out_channel` (#13982)

The file was modifiedstdlib/out_channel.mli
The file was modifiedstdlib/in_channel.mli
Commit afa4dfad49d8b194365978776878be78e616e1f0 by n.oje.bar
Pprintast: use parentheses around Pexp_struct_item in sequences
The file was modifiedparsing/pprintast.ml
Commit 1d85917436da1a94c64bc7bffcd00edec1f3a847 by n.oje.bar
Move Changes entry to right place, add bugfix PR
The file was modifiedChanges
Commit 97699b5a88bdffc50d78d2c78c3e61793c33cd4e by n.oje.bar
Add test
The file was modifiedtestsuite/tests/parsetree/source.ml
Commit 3fdb4baf81fb17d22974fabd2469427183c66005 by mail
Fix missing version bump to 5.5 in opam file
The file was modifiedocaml-variants.opam
Commit a8a80630c621dd92cd0a5ca8c7f28e9ee341e7fc by mail
Update precondition comment to reflect renaming from #12619
The file was modifiedruntime/shared_heap.c
Commit e291d788b8db28f0b336e8eeaa94a42ae7da42e2 by david.allsopp
check-symbol-names: ignore extern char **environ re-decl

It is needed on Cygwin.
The file was modifiedtools/check-symbol-names
Commit 0faee008245c47abf945a6bd35c092329eff9e69 by david.allsopp
gha: Document labels triggering/skipping workflows
The file was modifiedHACKING.adoc
Commit 14806d040a9d85a7a3c0b0d675dde9033d51017e by david.allsopp
Dynamic matrix for the others job

Define the matrix for the others job using an actions/github-script
step, which allows the possibility of the matrix being dynamic.
The file was modified.github/workflows/build.yml
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 modifiedHACKING.adoc
The file was modified.github/workflows/build.yml
Commit 7bd48c16828a03216f2725b1772e037c4b6840db by david.allsopp
Merge macOS Dependency steps
The file was modified.github/workflows/build.yml
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 modifiedocamltest/run_command.ml
The file was modifiedocamltest/run_stubs.c
Commit ed51193947bb53d8fa376742aad12d23e106c26d by david.allsopp
Update build-msvc.yml to permit Cygwin builds

Yes, yes, the filename -msvc.yml has become a bit out of date...
The file was modified.github/workflows/build-msvc.yml
Commit 722ac3597f693d2adeeeff9a03b22b1eee96df7a by david.allsopp
Add optional Cygwin check to CI
The file was modified.github/workflows/build-msvc.yml
Commit 419fe5878cc14e8ca158e65ef37dc4e131d6266b by david.allsopp
Add bytecode-only Cygwin check
The file was modified.github/workflows/build-msvc.yml
Commit ab284d36c7066883b86baf77db4716197adef52d by david.allsopp
Add a 'CI: Skip testsuite' label

Applying this label _before_ the testsuite has started in either GitHub
Actions or AppVeyor will cause the execution of the testsuite to be
skipped.
The file was modifiedtools/ci/appveyor/appveyor_build.sh
The file was modified.github/workflows/build.yml
The file was modified.github/workflows/build-msvc.yml
The file was modifiedHACKING.adoc
Commit 749465de5d23f9ac16cf8c56599e2e3cb96077a2 by david.allsopp
Fix tools/check-symbol-names for i686 mingw-w64
The file was modifiedtools/check-symbol-names
Commit a9449fa8369548f9ace43a56655fe4a3c15bfc7c by david.allsopp
Windows matrix: arch instead of x86_64
The file was modified.github/workflows/build-msvc.yml
Commit 82aab74e3863fd6abce1d600ed83a11d0b54b8eb by noreply
stale bot: only identify stale issues, don't close them. (#14004)

* stale bot: only identify stale issues.
The file was modified.github/workflows/stale.yml
Commit e6321cf1e3f3bfb0795108ab4d6c66c559ea9b63 by noreply
Fix memory corruption when an exception is raised during demarshaling. (#14015)

The file was modifiedruntime/intern.c
The file was modifiedChanges
Commit b0d66948012ff46eca0817bcff119a7cbd2c1a82 by david.allsopp
Update Changes
The file was modifiedChanges
Commit 7f6999848c19890ecf9c9722cd9318ffcb0138da by Florian Angeletti
update Changes after cherry-picking
The file was modifiedChanges
Commit 1863943fd1cc5f278b8787124be3a7be0263bb4c by clement.blaudeau
[refactor merge] Create a Merge module + white space changes
The file was modifiedtyping/typemod.ml
Commit a0bc3880546569f5763a64992222192e872a1c0a by clement.blaudeau
[refactor merge] Extracted helper functions

- [split_row_ids] and [unsafe_signature_subst]
The file was modifiedtyping/typemod.ml
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 modifiedtyping/typemod.ml
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 modifiedtyping/typemod.ml
Commit 2dfe7eb470d79b460fae273c7956b97889be164e by clement.blaudeau
[refactor merge] Moved code
The file was modifiedtyping/typemod.ml
Commit 35afca5a2955c566f906c5706d16f032c5110e17 by clement.blaudeau
[refactor merge] Extracted the type-package case

- Move the patching logic from [patch_all] to a specialized patch function in
[merge_package_constraint]

- Removed the (now) useless lid argument for [patch_all]
The file was modifiedtyping/typemod.ml
Commit 0fb1f1997f8f01b2fbb28bea69f3fbd67f29942f by clement.blaudeau
[refactor merge] Extracted the type case

- Moved the patching logic from [patch_all] to specialized patch function in
[merge_type]

- Removed the (now) useless [initial_env] argument for [patch_all]
The file was modifiedtyping/typemod.ml
Commit aeef23033f20749f3f422b7727c7d2214872e169 by clement.blaudeau
[refactor merge] Extracted the module case

- Moved the patching logic from [patch_all] to a specialized patch function in
[merge_module]. Merged the common parts of the destructive and non-destructive
cases
The file was modifiedtyping/typemod.ml
Commit 5e2e65e997843651cb54dd736a570551426eb82f by clement.blaudeau
[refactor merge] Extracted the modtype case

- Moved the patching logic from [patch_all] to a specialized patch function in
[merge_modtype]

- Removed the (now) useless [patch_all]
The file was modifiedtyping/typemod.ml
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 modifiedtyping/typemod.ml
Commit 4354a58ca3d6ded0863cc51c2369ec5a67259c51 by clement.blaudeau
[refactor merge] Corrections from Octachron review
The file was modifiedtyping/typemod.ml
Commit 27929219b1472958d654b71d9525921efb29d9da by clement.blaudeau
[refactor merge] Moved the catching of exception
The file was modifiedtyping/typemod.ml
Commit d38e5e615b9a22eff7cb0762101a1f8abbb8588a by clement.blaudeau
[refactor merge] Updated comments
The file was modifiedtyping/typemod.ml
Commit 330c1ad58f54ae5dd6d22ba37365287d87d93fb1 by clement.blaudeau
[refactor merge] Added Changelog entry
The file was modifiedChanges
Commit 9c47876b8b3714a2bfa687994999e02006e37efd by gabriel.scherer
[minor] printcmm: print atomic loads
The file was modifiedasmcomp/printcmm.ml
Commit 49063310c747aebcabb8f6b23362c869c008ca2e by gabriel.scherer
[testsuite] test the compilation of atomic functions
The file was addedtestsuite/tests/atomic-locs/cmm.compilers.reference
The file was addedtestsuite/tests/atomic-locs/cmm.ml
Commit 101ed6f1b03c257e58e7291967b756696ed66865 by gabriel.scherer
[refactor] Define [caml_atomic_cas] in terms of [caml_atomic_cas_field].
The file was modifiedruntime/memory.c
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 modifiedruntime/caml/memory.h
The file was modifiedruntime/memory.c
The file was modifiedruntime/obj.c
Commit 234cb15281ecf859291badaee64390ac12314931 by gabriel.scherer
runtime: Add atomic primitives [caml_atomic_load_field], [caml_atomic_exchange_field] and [caml_atomic_fetch_add_field].
The file was modifiedruntime/memory.c
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 modifiedasmcomp/cmmgen.ml
The file was modifiedbytecomp/bytegen.ml
The file was modifiedlambda/translprim.ml
The file was modifiedasmcomp/cmm_helpers.ml
The file was modifiedruntime/memory.c
The file was modifiedasmcomp/cmm_helpers.mli
The file was modifiedtestsuite/tests/atomic-locs/cmm.compilers.reference
Commit d5b3ddbe2ca1daa23303f8c4426bb5311b009037 by gabriel.scherer
Add support for atomic record fields.

Requires a bootstrap.

Co-authored-by: Gabriel Scherer <gabriel.scherer@gmail.com>
The file was modifiedtyping/typedecl.mli
The file was modifiedtyping/types.ml
The file was modifiedtyping/oprint.ml
The file was modifiedtyping/ctype.ml
The file was modifiedtyping/data_types.mli
The file was modifiedtyping/printtyped.ml
The file was modifiedparsing/asttypes.mli
The file was modifiedtyping/types.mli
The file was modifiedparsing/asttypes.ml
The file was modifiedocamldoc/odoc_sig.ml
The file was modifiedtyping/typedtree.mli
The file was modifiedtyping/includecore.ml
The file was modifiedtyping/subst.ml
The file was modifiedtyping/datarepr.ml
The file was modifiedtyping/typedtree.ml
The file was modifiedlambda/translcore.ml
The file was modifiedtyping/typedecl.ml
The file was modifiedparsing/builtin_attributes.ml
The file was modifiedtyping/data_types.ml
The file was modifiedtyping/out_type.ml
The file was modifiedtyping/outcometree.mli
The file was modifiedtyping/includecore.mli
The file was modifiedparsing/builtin_attributes.mli
Commit e409b552b7d61121a340b91f9195687fc589e8a2 by gabriel.scherer
atomic fields in ocamldoc
The file was modifiedocamldoc/odoc_info.mli
The file was modifiedocamldoc/odoc_man.ml
The file was modifiedocamldoc/odoc_latex.ml
The file was modifiedocamldoc/odoc_sig.ml
The file was modifiedocamldoc/odoc_html.ml
The file was modifiedocamldoc/odoc_type.ml
The file was modifiedocamldoc/odoc_str.ml
The file was modifiedocamldoc/odoc_type.mli
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 modifiedboot/ocamlc
The file was modifiedboot/ocamllex
Commit 9fb1b31abcd751a7c6d34215903f89784de5353d by gabriel.scherer
Add tests for atomic record fields.
The file was modifiedtestsuite/tests/atomic-locs/cmm.ml
The file was addedtestsuite/tests/atomic-locs/record_fields.ml
The file was modifiedtestsuite/tests/atomic-locs/cmm.compilers.reference
Commit 2e8ca54741e0ff7550a9cc1a6a8b36c8b9b8359f by gabriel.scherer
[minor] Make test_untypeast.ml more readable.
The file was modifiedtestsuite/tests/compiler-libs/test_untypeast.ml
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 modifiedtyping/typeopt.ml
The file was modifiedtyping/predef.ml
The file was modifiedtyping/predef.mli
Commit 8866157eca491911d82e920d475823e281dfc3b6 by gabriel.scherer
[refactor] more general type for Env.mark_*_used

We want to use [mark_label_used] in a context where we cannot easily
find the label declaration, only the label description (from the
environment).
The file was modifiedtyping/env.mli
The file was modifiedtyping/includecore.ml
The file was modifiedtyping/env.ml
Commit 2acb346a8bcb92f1f82c2cee32aa001a0e641dcb by gabriel.scherer
Add extension [%atomic.loc record.field].
The file was modifiedtyping/tast_mapper.ml
The file was modifiedtestsuite/tests/compiler-libs/test_untypeast.ml
The file was modifiedtyping/typedtree.mli
The file was modifiedlambda/translcore.ml
The file was modifiedtyping/typedtree.ml
The file was modifiedtyping/tast_iterator.ml
The file was modifiedtyping/typecore.mli
The file was modifiedtyping/untypeast.ml
The file was modifiedtyping/typecore.ml
The file was modifiedfile_formats/cmt_format.ml
The file was modifiedtyping/value_rec_check.ml
The file was modifiedtyping/printtyped.ml
Commit c139dade56f094a4e82bc1b22fa4982c0ce03acc by gabriel.scherer
Bootstrap.

This bootstrap is not required by a compiler change, but it enables
the use of the predefined type `'a atomic_loc` and the
expression-former [%atomic.loc ...] in the standard library.
The file was modifiedboot/ocamlc
Commit 5441c97e24b74e9dfb503d09a80fb6e0f6241f43 by gabriel.scherer
Add module [Stdlib.Atomic.Loc].
The file was modifiedstdlib/atomic.ml
The file was modifiedstdlib/atomic.mli
Commit 2cf2fed2a348344afe0941a0e8c6ac60de7be577 by gabriel.scherer
Add tests for [Atomic.Loc].
The file was modifiedtestsuite/tests/atomic-locs/cmm.compilers.reference
The file was modifiedtestsuite/tests/atomic-locs/cmm.ml
The file was modifiedtestsuite/tests/atomic-locs/record_fields.ml
Commit 8138d72f7bcb634453ee59a15e50454fad6dacab by gabriel.scherer
Reimplement [Atomic.t] using [Atomic.Loc.t].
The file was modifiedstdlib/atomic.ml
Commit 929479284895eadf07942a4869a4413930c1a3f7 by gabriel.scherer
Forbid atomic fields in patterns.
The file was modifiedtyping/typecore.ml
The file was modifiedtyping/typecore.mli
Commit 75d5419637513f5ee2e20f065d6d2de1cf03f379 by gabriel.scherer
Changes
The file was modifiedChanges
Commit 26a5bdee619338cee22cf243bb3b14a528c1b47f by gabriel.scherer
testsuite for pattern-matching on atomic reads
The file was modifiedtestsuite/tests/atomic-locs/record_fields.ml
The file was modifiedtyping/typecore.ml
Commit 9ce811fa30d942c86abacef44b02d23a60c1f7d1 by gabriel.scherer
allow wildcard patterns under atomic record fields

Suggested-by: Olivier Nicole <olivier@chnik.fr>
The file was modifiedtyping/typecore.ml
The file was modifiedtestsuite/tests/atomic-locs/record_fields.ml
Commit 27b62e17b7f3799cdf71c032d8f3e4ec73c9e2b2 by gabriel.scherer
stdlib/Atomic: move the Loc module below in the .mli
The file was modifiedstdlib/atomic.mli
Commit 2816e615b81d823c54b16478a83df1008c800556 by gabriel.scherer
stdlib/Atomic: minimal documentation
The file was modifiedstdlib/atomic.mli
Commit 465e615a111eb6b0bfabec938032aa94a5030762 by gabriel.scherer
describe atomic record fields in the reference manual
The file was modifiedmanual/src/refman/extensions/attributes.etex
The file was modifiedmanual/src/tutorials/parallelism.etex
The file was modifiedmanual/src/refman/extensions/extensionnodes.etex
The file was modifiedmanual/src/refman/typedecl.etex
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 modifiedruntime/runtime_events.c
Commit 279be419a8152fd4ae8310563d47e3d07d6d6f9d by n.oje.bar
Add Unix.unsetenv
The file was modifiedotherlibs/unix/unix_unix.ml
The file was modifiedChanges
The file was modifiedotherlibs/unix/putenv.c
The file was modifiedotherlibs/unix/unix.mli
The file was modifiedotherlibs/unix/unixLabels.mli
The file was modifiedotherlibs/unix/unix_win32.ml
Commit a4f7328fa3de68093c016029cf8a6fe5c19987fb by n.oje.bar
Add test
The file was modifiedtestsuite/tests/lib-unix/win-env/test_env.reference
The file was modifiedtestsuite/tests/lib-unix/win-env/test_env.ml
Commit 8cadc919cc864f85d2f09596ef7a76c867de315f by reisenberg
Document [row_more] and [row_fixed].
The file was modifiedtyping/types.mli
Commit 90d454692dabf1b95c4583d2b0cfa02bd98d43bb by noreply
Add Option.product and Option.Syntax (#13916)

The file was modifiedtestsuite/tests/lib-option/test.ml
The file was modifiedstdlib/option.mli
The file was modifiedChanges
The file was modifiedstdlib/option.ml
The file was modifiedstdlib/result.mli
Commit e23e32b7a3a4fad515784452bfce29c3e75ba8de by noreply
[minor] More readable output from `gen_sizeclasses` (#13923)

* more readable output for tools/gen_sizeclasses

* gen_sizeclasses: document the less obvious definitions
The file was modifiedruntime/caml/sizeclasses.h
The file was modifiedtools/gen_sizeclasses.ml
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 modifiedChanges
The file was modifiedyacc/reader.c
Commit f252da5314f3eda4967da5caf6eafedcdcabef2c by gabriel.scherer
fix atomic-locs/cmm.compilers.reference
The file was modifiedtestsuite/tests/atomic-locs/cmm.compilers.reference
Commit 6c2e7cf22f25b4ec9685b28b5b991346ae842591 by antonin
tests: native-debugger: sanitize GDB+musl output
The file was modifiedtestsuite/tests/native-debugger/linux-gdb-riscv.reference
The file was modifiedtestsuite/tests/native-debugger/linux-gdb-amd64.reference
The file was modifiedtestsuite/tests/native-debugger/linux-gdb-arm64.reference
The file was modifiedtestsuite/tests/native-debugger/sanitize.awk
Commit ce595a5286f1b6868311c30226003f0d8be9d780 by olivier
Fix #13427
The file was modifiedChanges
The file was modifiedruntime/major_gc.c
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 modifiedruntime/caml/startup_aux.h
The file was modifiedruntime/startup_byt.c
The file was modifiedruntime/sys.c
The file was modifiedruntime/caml/sys.h
The file was modifiedruntime/startup_nat.c
The file was modifiedruntime/startup_aux.c
Commit 842ae77deebcc506adebc529e325bdaecbdd149d by david.allsopp
Add Sys.runtime_executable

In native mode, same as Sys.executable_name, in bytecode, the path to
the interpreter executing Sys.executable_name, which may not be the same
from the same file.
The file was modifiedstdlib/sys.ml.in
The file was modifiedstdlib/sys.mli
The file was modifiedChanges
Commit a086c20a381fa6fb847aea0f8b6c1748e38203e0 by noreply
Cleanups following introduction of `Pexp_struct_item`/`Texp_struct_item` (#14028)

* Remove stale comments

* Remove dead constructor: Scoping_let_module

* Remove eqparsetree.ml
The file was modifiedtyping/typecore.ml
The file was modified.depend
The file was modifiedtyping/typecore.mli
The file was removedtools/eqparsetree.ml
The file was modifiedtyping/typemod.ml
Commit f33fae757e037b681baa635a75067286e44168a4 by noreply
Add row_more invariant
The file was modifiedtyping/types.mli
Commit d5e48252c891b8f00a2a5a9507000cbdacda03e2 by mail
Update flexdll submodule to 0.44
The file was modifiedflexdll
Commit ddb6343042095231d5836e168f72b4d736413e89 by mail
Reenable lib-dynlink-domains test on Windows, temporarily disabled in #11607
The file was modifiedtestsuite/tests/lib-dynlink-domains/main.ml
Commit 83b3342551bed6d8c25705df0ca8a704583280a1 by reisenberg
Comments from review
The file was modifiedtyping/types.mli
Commit d829d2bf4065142def9713813e14c8281f4be63f by reisenberg
Changelog
The file was modifiedChanges
Commit bf40de4309e80162303ca006204f0a7797f2dc71 by antonin
tests: native-debugger: sanitize LLDB+GLIBC output
The file was modifiedtestsuite/tests/native-debugger/linux-lldb-amd64.reference
The file was modifiedtestsuite/tests/native-debugger/sanitize.awk
The file was modifiedtestsuite/tests/native-debugger/linux-lldb-arm64.reference
Commit 3a3db2ab6e4850042fa07f16826f7f9b67c650fb by damien.doligez
fix #13941
The file was modifiedocamltest/variables.mli
The file was modifiedocamltest/variables.ml
The file was modifiedocamltest/tsl_semantics.ml
Commit 4df3c8be060c01f9c671663201f37d14ba7c191a by damien.doligez
update Changes for #13961
The file was modifiedChanges
Commit 1d3252f7737e38bcf1a7995a61ceb3c8b2321ca6 by damien.doligez
simplifications suggested by reviewer
The file was modifiedocamltest/tsl_semantics.ml
The file was modifiedChanges
The file was modifiedocamltest/variables.ml
The file was modifiedocamltest/variables.mli
Commit e83af502d10c75e842ebf60bb16c3c19bae917b1 by gabriel.scherer
[minor] use a record in Compenv.process_deferred_actions

Reviewed-by: Nicolรกs Ojeda Bรคr <n.oje.bar@gmail.com>
The file was modifieddriver/compenv.ml
The file was modifieddriver/maindriver.ml
The file was modifieddriver/optmaindriver.ml
The file was modifieddriver/compenv.mli
Commit 43f56ad5543f69ef796d9960096457ff27c8b9da by n.oje.bar
Amend docstring
The file was modifieddriver/compile_common.mli
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.depend
The file was modifiedChanges
The file was modifiedtestsuite/tests/basic-modules/recursive_module_evaluation_errors.ml
The file was modifiedlambda/translmod.ml
The file was modifiedlambda/translmod.mli
Commit cc335579c51ffbc3493c90128f0866c5ebcdda80 by gabriel.scherer
Ensure that all Bigarray memory managed by the GC is tracked by Memprof

Specifically, this adds Gc.Memprof calls to Unix.map_file, and adds some
tests (but does not otherwise change behaviour)
The file was modifiedChanges
The file was addedtestsuite/tests/statmemprof/bigarray.ml
The file was modifiedotherlibs/unix/mmap_ba.c
The file was addedtestsuite/tests/statmemprof/bigarray.reference
The file was addedtestsuite/tests/statmemprof/bigarray_stubs.c
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 modifiedstdlib/format.ml
The file was addedtestsuite/tests/lib-format/breaks.ml
Commit eef17fede315de3ae59521a8b9b24dd0bfec76a3 by gabriel.scherer
Changes
The file was modifiedChanges
Commit d1764f8e0e0fa28ba406ba5a0ceee03d51bcef12 by antonin
Update changes
The file was modifiedChanges
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 modifiedparsing/parser.mly
The file was modifiedtestsuite/tests/warnings/w60.compilers.reference
The file was modifiedboot/menhir/parser.ml
The file was modifiedparsing/ast_invariants.ml
The file was modifiedChanges
The file was modifiedtestsuite/tests/parsing/shortcut_ext_attr.compilers.reference
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 modifiedChanges
The file was modifiedmanual/src/html_processing/scss/_common.scss
Commit d3bc22fec04227546633300951b5c8f6b498024f by noreply
Uniformize parsing rules for structure and signature items (#14039)

The file was modifiedparsing/parser.mly
The file was modifiedboot/menhir/parser.ml
Commit 5dffcba0bb3b75dea5e505f8caff54b1c3242e3a by pierre.boutillier
Trully share #*_printers machinery between toplevel and debugger
The file was modifieddebugger/loadprinter.ml
The file was modifieddebugger/printval.mli
The file was modifiedtoplevel/topprinters.ml
The file was modifieddebugger/printval.ml
The file was modifiedtoplevel/topdirs.ml
The file was modifiedtoplevel/toploop.mli
The file was modifiedtoplevel/topcommon.mli
The file was modifiedtoplevel/topprinters.mli
The file was modifiedtoplevel/topcommon.ml
The file was modified.depend
Commit 56500d04302b951e907674d89e5577cce8973bf7 by david.allsopp
Review changes
The file was modifiedstdlib/gc.mli
The file was modifiedruntime/memprof.c
The file was modifiedstdlib/gc.ml
The file was modifiedotherlibs/unix/mmap_ba.c
The file was modifiedruntime/caml/memprof.h
Commit ef052805f1871d7c54716b493812bef30a9423d5 by david.allsopp
update the memprof bigarray test
The file was modifiedtestsuite/tests/statmemprof/bigarray.reference
The file was modifiedtestsuite/tests/statmemprof/bigarray.ml
Commit 27d26c9fdd885db8e1f34889207df3d1aa7db4bf by david.allsopp
Move #13675 to 5.4 Changes
The file was modifiedChanges
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 modifiedruntime/caml/roots.h
The file was modifiedruntime/caml/stack.h
The file was modifiedruntime/fiber.c
The file was modifiedruntime/backtrace_nat.c
The file was modifiedruntime/minor_gc.c
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 modifiedasmcomp/arm64/arch.ml
The file was modifiedasmcomp/arm64/emit.mlp
The file was modifiedruntime/arm64.S
The file was modifiedasmcomp/arm64/arch.mli
The file was modifiedruntime/caml/stack.h
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 modifiedruntime/fiber.c
The file was modifiedruntime/backtrace_nat.c
The file was modifiedruntime/caml/stack.h
Commit de2a82ef52b0b9f26c0d0cefce51b1ffa6de12c4 by gabriel.scherer
Adapt TSAN to generational stack scanning

Co-authored-by: Miod Vallat <miod@tarides.com>
The file was modifiedruntime/tsan.c
Commit e00fbe9fbeb621b738e34a356d842a3cedb15095 by gabriel.scherer
Changes for 13594
The file was modifiedChanges
Commit 4b389bce1db889124fa0fe5d94cfab64cefed1a4 by gabriel.scherer
document the invariants around pc marking in tsan.c

Suggested-by: Olivier Nicole <olivier@chnik.fr>
The file was modifiedruntime/tsan.c
Commit 0728f6af2aae32a97c2a7a1214c25736a26a479b by noreply
manual: move the TeX header of each language extension into the extension-specific .etex file (#14041)

The file was modifiedmanual/src/refman/extensions/arrayliterals.etex
The file was modifiedmanual/src/refman/extensions/signaturesubstitution.etex
The file was modifiedmanual/src/refman/extensions/alerts.etex
The file was modifiedmanual/src/refman/extensions/indexops.etex
The file was modifiedmanual/src/refman/extensions/locallyabstract.etex
The file was modifiedmanual/src/refman/extensions/inlinerecords.etex
The file was modifiedmanual/src/refman/extensions/privatetypes.etex
The file was modifiedmanual/src/refman/extensions/bindingops.etex
The file was modifiedmanual/src/refman/extensions/recursivemodules.etex
The file was modifiedmanual/src/refman/extensions/extensionsyntax.etex
The file was modifiedmanual/src/refman/extensions/labeledtuples.etex
The file was modifiedmanual/src/refman/exten.etex
The file was modifiedmanual/src/refman/extensions/generativefunctors.etex
The file was modifiedmanual/src/refman/extensions/extensionnodes.etex
The file was modifiedmanual/src/refman/extensions/modulealias.etex
The file was modifiedmanual/src/refman/extensions/effects.etex
The file was modifiedmanual/src/refman/extensions/extensiblevariants.etex
The file was modifiedmanual/src/refman/extensions/bigarray.etex
The file was modifiedmanual/src/refman/extensions/gadts.etex
The file was modifiedmanual/src/refman/extensions/attributes.etex
The file was modifiedmanual/src/refman/extensions/emptyvariants.etex
The file was modifiedmanual/src/refman/extensions/generalizedopens.etex
The file was modifiedmanual/src/refman/extensions/doccomments.etex
The file was modifiedmanual/src/refman/extensions/firstclassmodules.etex
The file was modifiedmanual/src/refman/extensions/moduletypeof.etex
The file was modifiedmanual/src/refman/extensions/overridingopen.etex
The file was modifiedmanual/src/refman/extensions/letrecvalues.etex
Commit bdc5187a8a430a39244505e63de7ed7f7e9af91c by gabriel.scherer
Changes
The file was modifiedChanges
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 modifiedbytecomp/emitcode.ml
The file was modifiedbytecomp/bytelink.ml
The file was modifiedChanges
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 modifiedconfigure.ac
The file was modifiedconfigure
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 modifiedconfigure.ac
The file was modifiedconfigure
Commit e1f84de6f3ae864936ef207126e0e19cecdd5d38 by samuel
Update changelog
The file was modifiedChanges
Commit f93b4ba4d2be167b27fea802e8d3c6ecf837baec by gabriel.scherer
domain_terminate: orphan the shared heap before STW exit

See https://github.com/ocaml/ocaml/issues/13739#issuecomment-2869607732
The file was modifiedruntime/domain.c
The file was modifiedruntime/caml/shared_heap.h
The file was modifiedruntime/shared_heap.c
Commit 11ca16d2fa868bec97057fb80d12dd32cc5e2f5d by gabriel.scherer
Changes
The file was modifiedChanges
Commit c6f552107c1b34c63f8049915c9417cb92b366d8 by gabriel.scherer
runtime: caml_finalise_heap should first adopt all orphan pools
The file was modifiedruntime/shared_heap.c
Commit fdd28b4529609f9b092e0125e20009d99fd4bcdd by gabriel.scherer
review: clarify the invariants in [domain_create], including for the last domain
The file was modifiedruntime/caml/shared_heap.h
The file was modifiedruntime/domain.c
The file was modifiedruntime/shared_heap.c
Commit afbd801a6342476d8cf10b8a4a575fc66e3fe891 by gabriel.scherer
review: clarify the invariants required to free the shared heap
The file was modifiedruntime/caml/shared_heap.h
The file was modifiedruntime/domain.c
The file was modifiedruntime/shared_heap.c
Commit fec0fcd2d77f0ecdf306a6d3b5ec4769210df0c3 by gabriel.scherer
minor Changes fixes

- move 12139 to trunk
- move 13962 to trunk
- move 13781 to trunk
- move 13980 to trunk
- move 13941 to 5.4
- move 13987 to trunk
The file was modifiedChanges
Commit 561199ec592fe1c9fefe902105002e864de145fe by gabriel.scherer
Changelog: fix ordering for 5.3
The file was modifiedChanges
Commit 109d09eedc3f72cac6719c2f827ad774c5cce9e9 by gabriel.scherer
Changes: reuse the improved 5.4 entry order from the 5.4 branch
The file was modifiedChanges
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 modifiedChanges
The file was modifiedotherlibs/unix/unixLabels.mli
The file was modifiedotherlibs/unix/unix.mli
The file was modifiedotherlibs/unix/createprocess.c
Commit 5268d4003035f0cfdd91d2c43ec8a6b8f804114e by gabriel.scherer
Revert "Merge pull request #14045 from pirbo/bpp-map-1-2"

This reverts commit afa12c6ef4a9014813b2182e40d19afc237c46ca, reversing
changes made to d6ac4a1930ae47ab2c631f7aa2af7dc4bfc3ec1c.
The file was modifiedbytecomp/bytelink.ml
The file was modifiedbytecomp/emitcode.ml
Commit 8ff76fd68b14a12701ca857da43eba56b27a0dd4 by gabriel.scherer
re-apply the part of #14045 that disables path rewrites on the shebang
The file was modifiedbytecomp/bytelink.ml
Commit 64ef2d0ce1eb7d5f09ac6cde1a78f74b62804cc6 by noreply
Special constructor for %sys_argv primitive (#10570)

The file was modifiedlambda/translprim.ml
The file was modifiedChanges
Commit 8b1a07c0081cf02a53aa6ad17782761d9ed2f043 by noreply
Debugger: Fallback to looking for module_name.ml in the loadpath when seeking source files (#14063)

The file was modifiedChanges
The file was modifieddebugger/source.ml
Commit aeb980bcaff52ab831a8e1e7e40b75857dd84167 by samuel.aime.vivien
Improve handling of packages in typing/gprinttyp.ml to put the name of the constraint on the arrow
The file was modifiedtyping/gprinttyp.ml
Commit ec88aacdab329e70418287b425eb1dd710cc4973 by noreply
Add Option.blend (#13995)

The file was modifiedChanges
The file was modifiedstdlib/option.mli
The file was modifiedstdlib/option.ml
Commit 318e988e8ad96dc7475d5638e35c61e450fab687 by Florian Angeletti
error message: point all label mismatches
The file was modifiedtyping/errortrace.ml
The file was modifiedtestsuite/tests/typing-labeled-tuples/labeled_tuple_patterns.ml
The file was modifiedtyping/ctype.ml
The file was modifiedtyping/errortrace.mli
The file was modifiedtyping/errortrace_report.ml
The file was modifiedtestsuite/tests/typing-labeled-tuples/labeled_tuples.ml
The file was modifiedtestsuite/tests/typing-labeled-tuples/labeled_tuples_and_constructors.ml
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 modifiedtestsuite/tests/warnings/w32.compilers.reference
The file was modifiedtestsuite/tests/warnings/w32.ml
Commit e2ad83342dbcbfb1846aba637bf3ca7d32d30d56 by thevoodoos
Mark both in [modtypes_with_shape]

Fixes ocaml/ocaml#13955

Co-authored-by: Florian Angeletti <florian.angeletti@inria.fr>
The file was modifiedtyping/includemod.mli
The file was modifiedtyping/typemod.ml
The file was modifiedtyping/includemod.ml
The file was modifiedtestsuite/tests/warnings/w32.compilers.reference
The file was modifiedtestsuite/tests/warnings/w32.ml
Commit 2d8bb555e2cf34a05b4a9ffbd5a1d2ef2e9d2329 by thevoodoos
Reduce test noise by disabling warning 60
The file was modifiedtestsuite/tests/warnings/w32.compilers.reference
The file was modifiedtestsuite/tests/warnings/w32.ml
Commit 8f55b4bf03cbc02c4fd59a552677c66bd3aa8450 by thevoodoos
Add changelog entry for #13956
The file was modifiedChanges
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 modifiedotherlibs/dynlink/dynlink_types.ml
Commit b6797f7bb5382385e0479c48064d75b3227e7cb3 by Florian Angeletti
Changes update
The file was modifiedChanges
Commit d946a6df253c1772b8858ea2bff533b74f15471c by me
Add changelog entry
The file was modifiedChanges
Commit 834f73ec5c7d36ddecb5210d169c348d4b705f29 by damien.doligez
fix one more definition of fib in the manual
The file was modifiedmanual/src/cmds/intf-c.etex
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 modifiedocamldoc/odoc_sig.ml
The file was modifiedtestsuite/tests/typing-objects/Tests.ml
The file was modifiedtyping/includecore.ml
The file was modifiedtestsuite/tests/parsing/rawidents.ml
The file was modifiedocamldoc/odoc_cross.ml
The file was modifiedtyping/types.mli
The file was modifiedtyping/typedecl.ml
The file was addedtestsuite/tests/typing-misc/type_external.ml
The file was modifiedtyping/subst.ml
The file was modifiedocamldoc/odoc_texi.ml
The file was modified.depend
The file was modifiedparsing/pprintast.ml
The file was modifiedtestsuite/tests/typing-safe-linking/a.ml
The file was modifiedtyping/out_type.ml
The file was modifiedtyping/parmatch.ml
The file was modifiedtyping/printtyped.ml
The file was modifiedtyping/ctype.ml
The file was modifiedtyping/env.ml
The file was modifiedocamldoc/odoc_html.ml
The file was modifiedtyping/btype.ml
The file was modifiedtyping/tast_mapper.ml
The file was modifiedparsing/ast_iterator.ml
The file was modifiedtyping/datarepr.ml
The file was modifiedtestsuite/tests/typing-misc/records.ml
The file was modifiedtestsuite/tests/tool-toplevel/multi_phrase_line.compilers.reference
The file was modifiedocamldoc/odoc_dep.ml
The file was modifiedocamldoc/odoc_scan.ml
The file was modifiedocamldoc/odoc_type.mli
The file was modifiedtestsuite/tests/typing-extension-constructor/test.ocaml.reference
The file was modifiedtestsuite/tests/typing-poly/poly.ml
The file was modifiedocamldoc/odoc_search.ml
The file was modifiedtyping/outcometree.mli
The file was modifiedtyping/typeopt.ml
The file was modifiedtyping/types.ml
The file was modifiedparsing/parser.mly
The file was modifiedparsing/depend.ml
The file was modifiedtyping/typedtree.mli
The file was modifiedtestsuite/tests/typing-misc/exp_denom.ml
The file was modifiedboot/menhir/parser.ml
The file was modifiedtestsuite/tests/typing-gadts/or_patterns.ml
The file was modifiedocamldoc/odoc_man.ml
The file was modifiedtyping/untypeast.ml
The file was modifiedtyping/typedecl_variance.ml
The file was modifiedtoplevel/genprintval.ml
The file was modifiedocamldoc/odoc_str.ml
The file was modifiedparsing/ast_mapper.ml
The file was modifiedtestsuite/tests/typing-gadts/test.ml
The file was modifiedChanges
The file was modifiedtyping/includecore.mli
The file was modifiedparsing/printast.ml
The file was modifiedtestsuite/tests/tool-ocamlc-locations/marshalled.compilers.reference
The file was modifiedocamldoc/odoc_info.mli
The file was modifiedtyping/predef.ml
The file was modifiedtyping/typedecl_separability.ml
The file was modifiedtyping/tast_iterator.ml
The file was modifiedocamldoc/odoc_latex.ml
The file was modifiedocamldoc/odoc_type.ml
The file was modifiedparsing/parsetree.mli
The file was modifiedtyping/oprint.ml
The file was modifiedtyping/typedtree.ml
Commit 48b9b736ee719a5645de0a30db86710edb87751a by kc
For stores on Apple Silicon, emit `stlr` instead of `dmb ishld; str`.
The file was modifiedasmcomp/arm64/emit.mlp
Commit 511e95be095aa0d45f0d8f2c29cab6f59a17a948 by Florian Angeletti
error messages: point mismatched univars
The file was modifiedtyping/errortrace.ml
The file was modifiedtyping/errortrace_report.ml
The file was modifiedtyping/errortrace.mli
The file was modifiedtestsuite/tests/typing-poly/poly.ml
The file was modifiedtyping/ctype.ml
Commit 5f2b948a56124aa0864e202e0270475fbf97e21c by kc
Introduce Sixtyfour memory chunk to handle unaligned accesses
The file was modifiedasmcomp/power/emit.mlp
The file was modifiedasmcomp/s390x/emit.mlp
The file was modifiedasmcomp/amd64/emit.mlp
The file was modifiedasmcomp/cmm_helpers.ml
The file was modifiedasmcomp/arm64/emit.mlp
The file was modifiedasmcomp/thread_sanitizer.ml
The file was modifiedasmcomp/cmm.ml
The file was modifiedasmcomp/arm64/selection.ml
The file was modifiedasmcomp/riscv/emit.mlp
The file was modifiedasmcomp/printcmm.ml
The file was modifiedasmcomp/cmm.mli
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 modifiedruntime/caml/runtime_events.h
The file was modifiedChanges
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 modifiedmanual/src/refman/extensions/attributes.etex
The file was modifiedChanges
Commit 342a6431356af904dff5d06b940249a9429fc081 by david.allsopp
Switch back to ubuntu-latest
The file was modified.github/workflows/build.yml
Commit b5a884aa37705884efbcc048c8e8e732c63fd573 by Florian Angeletti
update Changes
The file was modifiedChanges
Commit a2e25d6d9aae00fb6762e0c3a890f4ad23b73be6 by kc
Address reviewer comments.
The file was modifiedasmcomp/arm64/emit.mlp
The file was modifiedChanges
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 modifiedtyping/includemod_errorprinter.ml
The file was modifiedtyping/includemod.ml
The file was modifiedtestsuite/tests/typing-modules/aliases.ml
The file was modifiedChanges
The file was modifiedtestsuite/tests/typing-modules/merge_constraint.ml
The file was modifiedtestsuite/tests/typing-modules/pr7818.ml
The file was modifiedtyping/typemod.mli
The file was modifiedtyping/typemod.ml
The file was modifiedtyping/includemod.mli
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 modifieddriver/compmisc.ml
The file was modifieddriver/compmisc.mli
Commit 79071c4ddd659a33b917101a6d451e888063e8ef by david.allsopp
Add Dll.search_path

Provides a copy of the DLL search path for the test harness.
The file was modifiedbytecomp/dll.ml
The file was modifiedbytecomp/dll.mli
Commit b48ba73a22dbf499133dcb1dbd8464be41f5e8a8 by david.allsopp
Add Misc.Stdlib.String.to_utf_8_seq
The file was modifiedutils/misc.ml
The file was modifiedutils/misc.mli
Commit 88d803f5dedffd883d7addee4a0261a2feaa089e by david.allsopp
Expose Bytelink.read_runtime_launch_info
The file was modifiedbytecomp/bytelink.mli
Commit 12ea618e22add7047ac3e09d2fa5a07ea42d52d9 by Florian Angeletti
Changes bookkeeping: missing reviewer
The file was modifiedChanges
Commit f1c31807fd9d56880bef5e64c8b2aec175dcbc10 by n.oje.bar
Add Domain.running_domain_count
The file was modifiedstdlib/domain.mli
The file was modifiedstdlib/domain.ml
The file was modifiedruntime/domain.c
Commit 8df4bf0e7bf83ce964ee3dcb9dd6a4f8b5c497be by n.oje.bar
Changes
The file was modifiedChanges
Commit 13a4ecc7187415683e9bda77222a00df69115a39 by n.oje.bar
Changes
The file was modifiedChanges
Commit a1d28e1cc3da0e17d3bd64f14baf9d716d94b351 by david.allsopp
Add Config.{c_compiler_vendor,shebangscripts}

Expose the ocaml_cc_vendor and shebangscripts variables computed in
aclocal.m4
The file was modifiedutils/config.mli
The file was modifiedutils/config.fixed.ml
The file was modifiedconfigure
The file was modifiedutils/config.generated.ml.in
The file was modifiedconfigure.ac
The file was modifiedaclocal.m4
Commit a28e47bd42ad6a1f8ca3c26345aa27e7809bb66a by david.allsopp
Add a test for the compiler "in-prefix"
The file was addedtestsuite/tools/test_in_prefix.ml
The file was addedtestsuite/tools/test_ld_conf.mli
The file was addedtestsuite/tools/testDynlink.mli
The file was addedtestsuite/tools/testRelocation.mli
The file was addedtestsuite/tools/testToplevel.mli
The file was addedtestsuite/tools/testLinkModes.mli
The file was addedtestsuite/tools/harness.mli
The file was addedtestsuite/tools/testToplevel.ml
The file was addedtestsuite/tools/cmdline.mli
The file was addedtestsuite/tools/testLinkModes.ml
The file was addedtestsuite/tools/main_in_c.c
The file was addedtestsuite/tools/test_ld_conf.ml
The file was addedtestsuite/in_prefix/README.md
The file was addedtestsuite/tools/environment.ml
The file was addedtestsuite/tools/environment.mli
The file was modifiedMakefile
The file was addedtestsuite/tools/cmdline.ml
The file was modifiedconfigure
The file was addedtestsuite/tools/testDynlink.ml
The file was modifiedMakefile.build_config.in
The file was addedtestsuite/tools/harness.ml
The file was modified.depend
The file was addedtestsuite/tools/toolchain.mli
The file was addedtestsuite/tools/toolchain.ml
The file was addedtestsuite/tools/testBytecodeBinaries.ml
The file was addedtestsuite/tools/testBytecodeBinaries.mli
The file was modified.gitignore
The file was modifiedconfigure.ac
The file was addedtestsuite/tools/testRelocation.ml
The file was addedtestsuite/tools/test_in_prefix.mli
The file was addedtestsuite/in_prefix/Makefile.test
Commit 9585ef98182f0159a6ceb00e0824ff11cf3237c0 by david.allsopp
Plumb the in-prefix tests into CI
The file was modified.github/workflows/build.yml
The file was modifiedtools/ci/actions/runner.sh
The file was modifiedtools/ci/inria/main
The file was modified.github/workflows/build-msvc.yml
The file was modifiedtools/ci/appveyor/appveyor_build.sh
Commit 89e4b157b3487085beaeca29aea78875b18c64fe by gabriel.scherer
Changes: 14074 was backported to 5.4
The file was modifiedChanges
Commit fe89cb9ace6789a09dde59153185929442db658c by sdolan
Avoid an error when a channel is flushed during close
The file was modifiedruntime/io.c
The file was addedtestsuite/tests/lib-channels/close_during_flush.ml
The file was modifiedChanges
The file was addedtestsuite/tests/lib-channels/close_during_flush.reference
Commit 2a78eb437647a1a8d9dcd6639121f6db0313b481 by sdolan
review
The file was modifiedruntime/io.c
The file was modifiedChanges
The file was modifiedtestsuite/tests/lib-channels/close_during_flush.ml
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 modifiedtestsuite/tests/tsan/exn_from_c.ml
The file was modifiedChanges
The file was modifiedtestsuite/tests/tsan/exn_in_callback.reference
The file was modifiedtestsuite/tests/tsan/exn_from_c.reference
The file was modifiedtestsuite/tests/tsan/exn_in_callback.ml
The file was modifiedtestsuite/tests/tsan/exn_reraise.ml
The file was modifiedtestsuite/tests/tsan/exn_reraise.reference
Commit e745631c138b7847fb7262dbeb579c25618f4f58 by timmcgil
Skip native-debugger tests.
The file was modifiedtools/ci/inria/sanitizers/script
Commit 6837826754f012cf57e8c74f882061ceadd8c9f3 by n.oje.bar
Use caml_unix_error instead of errno+caml_uerror
The file was modifiedotherlibs/unix/readlink_win32.c
The file was modifiedotherlibs/unix/lockf_win32.c
The file was modifiedotherlibs/unix/link_win32.c
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 modifiedruntime/sys.c
The file was removedotherlibs/unix/rename_win32.c
The file was modifiedruntime/caml/osdeps.h
The file was removedotherlibs/unix/rename_unix.c
The file was modifiedotherlibs/unix/Makefile
The file was addedotherlibs/unix/rename.c
Commit 37ca0324a4478fc639772bc6ec4ebbfda1265e7f by n.oje.bar
Symmetrize caml_sys_chdir and caml_unix_chdir
The file was modifiedruntime/sys.c
The file was modifiedotherlibs/unix/chdir.c
Commit ae867fc85ec0a77f29f57c9ef31dc5c05466073b by n.oje.bar
Symmetrize caml_sys_close and caml_unix_close

`caml_sys_close` was missing an exception raise in case of an error,
needed in `Filename.temp_file`.
The file was modifiedruntime/sys.c
The file was modifiedotherlibs/unix/close_unix.c
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 modifiedotherlibs/unix/system.c
The file was modifiedruntime/sys.c
Commit a3d1e380c42ce1cbad9cb85cd57eb1041a19f5c7 by n.oje.bar
Update Changes
The file was modifiedChanges
Commit 7ac77a4b698a4ac978998cef7a25ed5979b5c231 by noreply
stdlib: Option.{for_all, exists} (#13920)

* Option.{for_all, exists}

* Changes
The file was modifiedstdlib/option.ml
The file was modifiedChanges
The file was modifiedstdlib/option.mli
Commit a2e5fef1ee6d9741418749d4b4d3597129d17ae1 by n.oje.bar
[refactor] dynarray variable naming, consistently use [f] for function arguments
The file was modifiedstdlib/dynarray.ml
Commit d82258d173ed8c2c3e5594cb799f083f96e8f694 by n.oje.bar
Dynarray.rev_iter, rev_iteri
The file was modifiedstdlib/dynarray.ml
The file was modifiedstdlib/dynarray.mli
The file was modifiedtestsuite/tests/lib-dynarray/test.ml
Commit 457c088a4c3df970143427d260e61f976e9d46a1 by n.oje.bar
Changes
The file was modifiedChanges
Commit 38897ff547b2f115d61c21a0a22c57d859a049b2 by noreply
Rename Domain.running_domain_count => Domain.count (#14096)

* Rename Domain.{running_domain_count => count}

* Doc

* Changes
The file was modifiedruntime/domain.c
The file was modifiedChanges
The file was modifiedstdlib/domain.ml
The file was modifiedstdlib/domain.mli
Commit 19040f8f6f64f82bcb2036acd15de4271e591747 by noreply
ocamldoc: no paragraph in module table (#14098)

Fix #13896: do not wrap short descriptions of modules in a <p> tag when inside a table.
The file was modifiedocamldoc/odoc_html.mli
The file was modifiedocamldoc/odoc_html.ml
The file was modifiedChanges
The file was modifiedtestsuite/tests/tool-ocamldoc/Paragraph.html.reference
Commit 53b230526f438b58df16322274cabdda53738e13 by gabriel.scherer
CI: attempt to silence a MSVC warning

Reviewd-by: Antonin Dรฉcimo <antonin@tarides.com>
The file was modifiedtestsuite/tests/lib-bigarray-2/bigarrcstub.c
The file was modifiedtestsuite/tests/lib-bigarray-2/bigarrfstub.c
The file was modifiedtestsuite/tests/statmemprof/bigarray_stubs.c
Commit 5307849b3b4d876cd23e32b3585176b782871579 by Florian Angeletti
Changes bookkeeping: fix 13896 entry
The file was modifiedChanges
Commit 3c357eac444cab2fb06723b5312d77ebd2b300be by Florian Angeletti
toplevel: test with nongeneric printer
The file was modifiedtestsuite/tests/tool-toplevel/install_printer.compilers.reference
The file was modifiedtestsuite/tests/tool-toplevel/install_printer.ml
Commit 53ba0c848b9e8baf50654055a5019ea463a2723a by Florian Angeletti
toplevel: printers must have a generic type

This commit adds an explicit test for checking that the type scheme of
a value printers does not contain any non-generic type variables before
being used to print a value.
The file was modifiedtyping/ctype.ml
The file was modifiedtyping/ctype.mli
The file was modifiedtoplevel/genprintval.ml
Commit a9a97df9a5da1a5fe49a56872b675f90c48ac7a3 by Florian Angeletti
refactor Ctype: remove nongen_inst argument
The file was modifiedtyping/includecore.ml
The file was modifiedtyping/ctype.mli
The file was modifiedtyping/ctype.ml
The file was modifiedtoplevel/genprintval.ml
Commit 0513968b9752c09862744fc85286d5c2c9063d9f by Florian Angeletti
add Changes entry
The file was modifiedChanges
Commit 33ac3453e9ad82c6d00d13361449b4d47c7c6b75 by david.allsopp
Explicitly fail-fast
The file was modified.github/workflows/build.yml
The file was modified.github/workflows/build-msvc.yml
Commit 3aa9ebca5a3895a0f18840918999572011b732ab by david.allsopp
Temporarily disable -Wcast-function-type-mismatch

clang-cl is triggering this warning when it possibly shouldn't be -
temporarily disable it.
The file was modifiedconfigure
The file was modifiedconfigure.ac
Commit c8745658446e06bd79e0a68e181faeb186c8f62b by david.allsopp
Temporarily disable warning C5387 on MSVC
The file was modifiedtestsuite/tests/lib-bigarray-2/bigarrfstub.c
The file was modifiedtestsuite/tests/statmemprof/bigarray_stubs.c
The file was modifiedtestsuite/tests/lib-bigarray-2/bigarrcstub.c
Commit ee44effce6729d3543e20829a09b5d417bd90d43 by Nick.Barnes
Update memprof after leaving the barrier at the end of minor GC, nor before.
The file was modifiedChanges
The file was modifiedruntime/minor_gc.c
Commit 501875bc10151a00ca880daee158a4d1c8e7781c by antonin
Use C99 (u)int64_t instead of MSVC __int64 extension
The file was modifiedotherlibs/unix/mmap_win32.c
The file was modifiedotherlibs/unix/stat_win32.c
The file was modifiedruntime/caml/io.h
The file was modifiedotherlibs/unix/truncate_win32.c
The file was modifiedruntime/caml/config.h
The file was modifiedtestsuite/tests/lib-unix/win-stat/fakeclock.c
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 modifiedotherlibs/unix/stat_win32.c
Commit 7c93d2483b5fb1a3dab79c5c3fb3d34954aa3c4b by antonin
Use C99 fixed-width integers in bigarray
The file was modifiedruntime/bigarray.c
The file was modifiedruntime/caml/bigarray.h
Commit a4a0259ce6b97dd7467d0be4e31f9d5bf679119d by antonin
Fully use C99 stdint.h fixed-width integers
The file was modifiedruntime/caml/config.h
Commit c2255f1439b4e1751ccc6d300a50aaddae467b5c by antonin
Define intnat/uintnat with C99 intptr_t/uintptr_t
The file was modifiedruntime/caml/config.h
Commit cb7791b5804e0904165bd14a563b6007a09b2410 by antonin
Use C99 inttypes.h fixed-width format macros
The file was modifiedruntime/caml/config.h
The file was modifiedruntime/clambda_checks.c
Commit 295dd45852688c7c8b5df5e974c460588cdd9696 by antonin
Define and use CAML_PRI.NAT and CAML_PRI.SZT

For consistency with C99 inttypes.h format specifiers.
The file was modifiedtestsuite/tests/asmgen/mainimmed.c
The file was modifiedruntime/domain.c
The file was modifiedruntime/platform.c
The file was modifiedruntime/instrtrace.c
The file was modifiedruntime/interp.c
The file was modifiedruntime/gc_ctrl.c
The file was modifiedruntime/major_gc.c
The file was modifiedruntime/shared_heap.c
The file was modifiedruntime/meta.c
The file was modifiedtestsuite/tests/asmgen/mainarith.c
The file was modifiedruntime/fiber.c
The file was modifiedruntime/printexc.c
The file was modifiedruntime/sys.c
The file was modifiedruntime/minor_gc.c
The file was modifiedruntime/caml/config.h
The file was modifiedtestsuite/tests/lf_skiplist/stubs.c
The file was modifiedruntime/parsing.c
Commit be56900a97e120647e62bdac1dfb86e4b4e582f8 by antonin
s/alloced/allocated/g
The file was modifiedruntime/shared_heap.c
Commit 1bf678285170e6c6fc35c692036d0a13b10dd2f8 by antonin
Update Changes
The file was modifiedChanges
Commit 62b7f45d3a7f7a8ff2570e5e40775459503a337e by noreply
Fix a possible hang in Pprintast (#14105)

This impacted Merlin.

See https://github.com/ocaml/merlin/pull/1944
The file was modifiedparsing/pprintast.ml
The file was modifiedChanges
The file was modifiedtestsuite/tests/compiler-libs/test_untypeast.ml
Commit 7928a26a5e0ddcdfcfafab260f2702487d125961 by Florian Angeletti
toplevel: fix a typo in directive error messages
The file was modifiedtoplevel/topcommon.ml
Commit 989c61f1baea93129c2157ea28270ba7212f6c9d by Florian Angeletti
changes: sync with 5.4
The file was modifiedChanges
Commit 4b7b06d940e89c14ba12ba935134c8202bf8c0be by sadiq
use No_scan_tag and NOT_MARKABLE to indicate free block
The file was modifiedruntime/shared_heap.c
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
The file was modifiedruntime/shared_heap.c
Commit 634f0fa19cd6398df6f8ff9b80613a61f0f1b05f by sadiq
add prefetching
The file was modifiedruntime/shared_heap.c
Commit d443e61a41b26f1e92d86b845d1b6b8bb9831395 by sadiq
add Changes
The file was modifiedChanges
Commit 85436a95e692b0c58f7bd9d31ebdffcc1caaad65 by sadiq
actually prefetch a page ahead
The file was modifiedruntime/shared_heap.c
Commit 066cf23736bd006590c6262bb7ef3467e69691a0 by sadiq
restore split asserts
The file was modifiedruntime/major_gc.c
The file was modifiedruntime/shared_heap.c
Commit 395cc3311c1fe6f7f0775264054baa5a5aba3dc4 by sadiq
clarify comment in verify_pool
The file was modifiedruntime/shared_heap.c
Commit 868adceb0630e6e94a941d4cd85407a1bf378f99 by sadiq
fix bug in compaction
The file was modifiedruntime/shared_heap.c
Commit 32fec020f8f47ce737a7def9f3dd07daa076488c by sadiq
write Debug_free_major in to newly initialised pools
The file was modifiedruntime/shared_heap.c
Commit aa2a6e991cc6174cb3512fe45ffc17d78c51d1c4 by sadiq
fix bug in pool_finalise
The file was modifiedruntime/shared_heap.c
Commit 6f4c921029c246b07f734e85d3025b115216fac4 by sadiq
simplify macro
The file was modifiedruntime/shared_heap.c
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
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
Commit 0beada7047b1ba547a5cafdd2f8a82f5a2486fef by sadiq
restore atomic header read
The file was modifiedruntime/shared_heap.c
Commit a968da8280c5a684663069ebca3763f219b00b5b by sadiq
make note about GC pacing logic
The file was modifiedruntime/shared_heap.c
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
Commit 0de6b327f43e3eecd0c6d3580c1f7cca0c9bd4e0 by sadiq
wh -> Whsize_hd
The file was modifiedruntime/shared_heap.c
Commit 8954ebc5bc8931dc7d571eefbbb2c4990a15d2f6 by sadiq
always update the pointer in the last free block
The file was modifiedruntime/shared_heap.c
Commit 9ee312af447a65295414381edc08c6c4dba56815 by sadiq
revert all_used annotation
The file was modifiedruntime/shared_heap.c
Commit 2accc32526d778906d4c372ae270fb0cabea6de4 by samuel.aime.vivien
Replaced normalize_package_path by Env.normalize_modtype_path
The file was modifiedtyping/ctype.ml
Commit 7020994917be1c0b1e80abd9bfd94492227b0429 by david.allsopp
Add -Wno-cast-function-type-mismatch more clangily
The file was modifiedconfigure
The file was modifiedconfigure.ac
Commit 8fe6f7addd78da00cf979f415f6b13f548e1ff2a by david.allsopp
Typo in stdlib/Makefile

Affects forced recompilation of runtime-launch-info
The file was modifiedstdlib/Makefile
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 modifiedstdlib/Makefile
The file was modifiedstdlib/headernt.c
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 modifiedstdlib/headernt.c
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 modifiedstdlib/header.c
Commit 8769fb2ec80c96fa39b0da4abc504d8cfd91f7f5 by david.allsopp
Use PATH_MAX instead of MAXPATHLEN
The file was modifiedstdlib/header.c
Commit a9be17f2dfd1c38c2dfa1921e363a501090a04e3 by david.allsopp
Assume S_ISREG and SEEK_END

Defined in sys/stat.h and unistd.h respectively by the Single Unix
Specification.
The file was modifiedstdlib/header.c
Commit 832ccfbc3fb9233262c7f6c1824c0ac508cd802c by david.allsopp
Move O_BINARY definition to "header" section

O_BINARY is added for maximum Cygwin compatibility, but it's not a Posix
flag.
The file was modifiedstdlib/header.c
Commit 619036af5a1280a347441f586ac8de617b83c977 by david.allsopp
Make caml/exec.h independent

Have exec.h include <stdint.h> itself. The bytecode executable header
now only depends on exec.h.
The file was modifiedstdlib/header.c
The file was modifiedruntime/caml/exec.h.in
The file was modifiedstdlib/headernt.c
Commit a42453ab2d8797c1148633cedd48b9a78f3cf6fd by david.allsopp
Re-order some header functions (no-op)
The file was modifiedstdlib/header.c
The file was modifiedstdlib/headernt.c
Commit b07835920b4af4d8800c3bcbc18ffbb7f797f2fe by david.allsopp
Share error path in headernt.c
The file was modifiedstdlib/headernt.c
Commit 1aa27b63c7ed125fd2bda1e6e09d73eef838cb08 by david.allsopp
Unify implementation of read_size

Modernisations applied in headernt.c but not applied to header.c - use
uint32_t rather than unsigned long
The file was modifiedstdlib/headernt.c
The file was modifiedstdlib/header.c
Commit 9dbf642346df24f14d8cd6eaa192b9e84c1c78f7 by david.allsopp
headernt.c: inline run_runtime into main
The file was modifiedstdlib/headernt.c
Commit 2f8e23f2443f90b60b7b2d49fdd90a7dad6e7f07 by david.allsopp
Check for errors from lseek in header.c
The file was modifiedstdlib/header.c
Commit dc12795c9945a2599e86ad9da2da846a0890fbc8 by david.allsopp
Refactor error display code
The file was modifiedstdlib/header.c
The file was modifiedstdlib/headernt.c
Commit c25d75cf42a21a8a0a385d6e7b94da4c2c545d2e by david.allsopp
header.c: close bytecode image before exec

Leaking fd
The file was modifiedstdlib/header.c
Commit 9996acb4b0551f9758b9ac939aa4f74666a4ea3a by david.allsopp
Use execvp in header.c (as in headernt.c)

Brings the behaviour of the two headers into line with each other - if
RNTM is ocamlrun on Unix, ocamlrun will now be sought in PATH.
The file was modifiedstdlib/header.c
Commit 8fb3bc35de96ddd1f22b7f58c7276046688510d8 by david.allsopp
headernt: make read_runtime_path more CRTish
The file was modifiedstdlib/headernt.c
Commit 725c900b81d9e8feb787ab481f4958d5337e179e by david.allsopp
Missing error case in headernt.c
The file was modifiedstdlib/headernt.c
Commit 9b35c8d9069a861f81d2817adbc48cb95a741f9c by david.allsopp
Unify the common parts of header.c and headernt.c
The file was modifiedstdlib/header.c
The file was modifiedstdlib/headernt.c
Commit 93b7ff9a158300c306c680a47930726b065467c0 by david.allsopp
Merge stdlib/header{,nt}.c
The file was modifiedstdlib/Makefile
The file was modifiedtestsuite/in_prefix/README.md
The file was modifiedstdlib/header.c
The file was removedstdlib/headernt.c
The file was modifiedtestsuite/tools/testLinkModes.ml
Commit bb465f5e7065330098e6b2c17cb775350840ac37 by Florian Angeletti
error messages: typo, missing inline code
The file was modifiedtestsuite/tests/typing-misc/apply_non_function.ml
The file was modifiedtyping/typecore.ml
Commit c2370a9f58a3e48f1c4604cacdde743ae9b218bb by gabriel.scherer
#14093 was backported
The file was modifiedChanges
Commit 1f472554ef302780065885e0b7f221c867c8be11 by noreply
Fix use of time_t on i686 mingw-w64 (#14114)

mingw-w64 32-bit requires an extra define to adopt the "modern" Visual
Studio 2005 switch to 64-bit time.
The file was modifiedconfigure.ac
The file was modifiedconfigure
The file was modifiedChanges
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 modifiedtestsuite/tests/lib-channels/close_during_flush.ml
Commit 9936c99820f4d4aa53a7eb3ee1e99bfdd4f0d340 by rtjoa
Add regression test
The file was modifiedtestsuite/tests/typing-modules/merge_constraint.ml
Commit fd56f1f4c7f850a25b3606e588b2579b9ec234a0 by rtjoa
Fix non-destructive `with type` with type constraints
The file was modifiedtestsuite/tests/typing-modules/merge_constraint.ml
The file was modifiedtyping/typemod.ml
Commit 2204b3dd03ebd6612be9fc1e4bc4b2c0623d32e0 by rtjoa
Add with type constraint testing
The file was modifiedtestsuite/tests/typing-modules/merge_constraint.ml
Commit 0f0233ee12656203ae405d4100ea8a09857c3bc3 by rtjoa
Update changelog
The file was modifiedChanges
Commit 01ebbbd3d1b99cacf368345a8989136f8b38f0b2 by noreply
Add {Set,Map}.S.is_singleton (#14118)

The file was modifiedstdlib/map.mli
The file was modifiedstdlib/templates/map.template.mli
The file was modifiedstdlib/templates/set.template.mli
The file was modifiedtestsuite/tests/typing-implicit_unpack/implicit_unpack.ml
The file was modifiedtestsuite/tests/typing-short-paths/short-paths.compilers.reference
The file was modifiedChanges
The file was modifiedstdlib/set.mli
The file was modifiedtestsuite/tests/generalized-open/accepted_expect.ml
The file was modifiedtestsuite/tests/typing-modules/aliases.ml
The file was modifiedtestsuite/tests/typing-modules/pr7818.ml
The file was modifiedtestsuite/tests/shapes/comp_units.ml
The file was modifiedstdlib/moreLabels.mli
The file was modifiedstdlib/set.ml
The file was modifiedstdlib/map.ml
Commit 6b59d66182bc54d24bef3ec6b901cb512fdea6b6 by noreply
Make List.{take,drop} total (#14124)

The file was modifiedtestsuite/tests/lib-list/test.ml
The file was modifiedChanges
The file was modifiedstdlib/list.ml
The file was modifiedstdlib/list.mli
The file was modifiedstdlib/listLabels.mli
Commit c061359af8c249a4a5b3242cdc5524004492749c by noreply
document that char compare uses ASCII order (#14090)

Co-authored-by: Nicolรกs Ojeda Bรคr <n.oje.bar@gmail.com>
The file was modifiedstdlib/char.mli
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 addedtestsuite/tests/typing-recmod/regression_destructive_subst.ml
The file was modifiedtyping/typemod.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 modifiedtyping/typemod.ml
Commit 9f6407a56d0c5c837b7b502107b937b54554981b by clement.blaudeau
Add tests for module and type constraints during approximation
The file was modifiedtestsuite/tests/typing-modules/merge_constraint.ml
Commit dac4d3401da1b0020fff64d932a2995343201967 by clement.blaudeau
Update Changelog
The file was modifiedChanges
Commit 74d169331120a74c9e2a76eb80d7c9a42a293201 by clement.blaudeau
Add another test for destructive type constraints approximation
The file was modifiedtestsuite/tests/typing-modules/merge_constraint.ml
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 modifiedChanges
The file was modifiedtestsuite/tests/typing-modules/merge_constraint.ml
The file was modifiedtyping/typemod.ml
Commit 511b6a45bb95d147603765eb65ae04f7807dffce by clement.blaudeau
Update Changelog
The file was modifiedChanges
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 modifiedtyping/typemod.ml
Commit 706823f870d9efa6038e1d182553ae20345d7448 by clement.blaudeau
Update comment and Changelog
The file was modifiedChanges
The file was modifiedtyping/typemod.ml
Commit b7a020fb50e677e793ddf50c74bf8e98611dbfae by clement.blaudeau
Address review comments

- Invert destructive and non-destructive cases
- Move the error inside the computation of the replace function
The file was modifiedtyping/typemod.ml
Commit dc7baf3cd1e821a8a10be7ccb12346f18ee764df by noreply
Missing case in {Stdlib,Float}.frexp documentation (#14128)

The file was modifiedstdlib/stdlib.mli
The file was modifiedstdlib/float.mli
The file was modifiedstdlib/templates/float.template.mli
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 modifiedruntime/s390x.S
The file was modifiedruntime/tsan.c
The file was modifiedconfigure.ac
The file was modifiedconfigure
The file was modifiedruntime/caml/tsan.h
The file was modifiedasmcomp/thread_sanitizer.ml
The file was modifiedruntime/amd64.S
The file was modifiedruntime/power.S
The file was modifiedChanges
The file was modifiedruntime/riscv.S
The file was modifiedruntime/arm64.S
The file was modifiedruntime/caml/s.h.in
The file was modifiedruntime/memory.c
Commit a4a7be5ce4387cc91d9d30335c14d2be4d6921e8 by clement.blaudeau
Update comment
The file was modifiedtyping/typemod.ml
Commit dce8e77e7d90a33ae975b62cce20013b81d7c4f5 by noreply
matching: fix some non-deterministic code generation (#14091)

fixes #14088
The file was modifiedChanges
The file was modifiedlambda/matching.ml
Commit c064ea2694b661065a7388174431ee3dcc3c0c0d by noreply
Speedup some Set/Map access by using is_empty instead of cardinal = 0 (#14119)

The file was modifiedmiddle_end/flambda/flambda_to_clambda.ml
The file was modifiedmiddle_end/flambda/augment_specialised_args.ml
The file was modifiedmiddle_end/flambda/ref_to_variables.ml
The file was modifiedmiddle_end/flambda/flambda_utils.ml
The file was modifiedmiddle_end/flambda/freshening.ml
The file was modifiedmiddle_end/flambda/inline_and_simplify.ml
Commit fa858d9d631782d95d7d5a9c5abe595e8ea506a6 by Florian Angeletti
typechecker: fix an internal error due to wrong exception

`Ctype.mcomp` was raising an errortrace when two types were incompatible
in two rare cases, whereas the function was specified to raise the
`Incompatible` exception. This was fine for internal uses of `mcomp`
within `Ctype`, because call to `mcomp` went through `mcomp_for` that
transformed the `Incompatible` exception into an errortrace. However,
this leads to internal errors for others use of `Ctype.mcomp` that were
only expecting an `Incompatible` exception and not an errortrace.

This simple fix replaces the two raises of errortrace by a raise of
`Incompatible`.
The file was modifiedChanges
The file was modifiedtestsuite/tests/typing-gadts/pr10189.ml
The file was modifiedtyping/ctype.ml
Commit 2105aac83f498e73e365c8e813a41ac54b232789 by Florian Angeletti
cpp support: move basic type definitions to misc
The file was modifiedruntime/caml/camlatomic.h
The file was modifiedruntime/caml/misc.h
The file was modifiedChanges
Commit b2aa0faf744c1beca4a9b2b9e873a651296cf935 by gabriel.scherer
[minor] indentation fix in errortrace_report
The file was modifiedtyping/errortrace_report.ml
Commit 36ddb173e8749d726bc3d9581bc61596d3530048 by Florian Angeletti
error messages: external with non-syntactic arity
The file was modifiedChanges
The file was modifiedtyping/typedecl.ml
The file was addedtestsuite/tests/typing-external/non_syntactic_arity.ml
The file was modifiedtyping/typedecl.mli
Commit 53699e27d39f2ef678eceadb25021193da988569 by Florian Angeletti
release calendar update
The file was modifiedrelease-info/calendar.md
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.ml
The file was modifiedruntime/caml/minor_gc.h
The file was modifiedruntime/caml/shared_heap.h
The file was modifiedruntime/shared_heap.c
The file was modifiedruntime/signals.c
The file was addedtestsuite/tests/parallel/churn.reference
The file was modifiedruntime/array.c
The file was modifiedruntime/major_gc.c
The file was modifiedChanges
The file was modifiedruntime/caml/major_gc.h
The file was modifiedruntime/weak.c
The file was modifiedruntime/intern.c
The file was modifiedruntime/domain.c
The file was modifiedruntime/caml/domain.h
The file was modifiedruntime/memory.c
The file was modifiedruntime/fiber.c
The file was modifiedruntime/minor_gc.c
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
Commit d5545a34e72810b51768c68427951afc233f556f by Nick.Barnes
fix finaliser handling bug
The file was modifiedruntime/major_gc.c
Commit ce14eedd7bf220d58fea01025712a6a909383cdc by Nick.Barnes
Guard call to caml_darken
The file was modifiedruntime/weak.c
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
Commit 1e4b55cb4aab4a65c1b52a5fd06bb041bffa2463 by Nick.Barnes
Don't make finaliser updates dependent on work being available.
The file was modifiedruntime/major_gc.c
Commit 1aeb967946849b83fb909912e6ac939a3fa00582 by samuel.aime.vivien
Removed unused field in package_type
The file was modifiedtyping/typetexp.ml
The file was modifiedtyping/typetexp.mli
The file was modifiedtyping/typemod.ml
The file was modifiedtyping/typedtree.ml
The file was modifiedtyping/typedtree.mli
Commit ac43baad5a4fcb1c0c90b8a6f413d862439957fc by samuel.aime.vivien
Changes
The file was modifiedChanges
Commit 5e89966f8fee3e4d4829e29d0abe1ac02c757aad by noreply
Rename cstrs to constraints to distinguish from cstrs = constructors (#14141)

The file was modifiedtyping/ctype.ml
The file was modifiedtyping/rawprinttyp.ml
The file was modifiedtyping/typedtree.ml
The file was modifiedtyping/typemod.ml
The file was modifiedtyping/typeclass.ml
The file was modifiedtyping/out_type.ml
The file was modifiedtyping/tast_iterator.ml
The file was modifiedparsing/ast_invariants.ml
The file was modifiedtestsuite/tests/parsetree/locations_test.compilers.reference
The file was modifiedChanges
The file was modifiedparsing/printast.ml
The file was modifiedtyping/printtyped.ml
The file was modifiedtyping/typedecl_variance.ml
The file was modifiedparsing/parsetree.mli
The file was modifiedtyping/untypeast.ml
The file was modifiedparsing/ast_mapper.ml
The file was modifiedparsing/depend.ml
The file was modifiedparsing/parser.mly
The file was modifiedtestsuite/tests/parsing/shortcut_ext_attr.compilers.reference
The file was modifiedtyping/types.mli
The file was modifiedparsing/pprintast.ml
The file was modifiedtyping/btype.ml
The file was modifiedboot/menhir/parser.ml
The file was modifiedtyping/types.ml
The file was modifiedtyping/gprinttyp.ml
The file was modifiedtyping/typedecl.ml
The file was modifiedparsing/ast_helper.ml
The file was modifiedtestsuite/tests/parsing/extensions.compilers.reference
The file was modifiedtyping/tast_mapper.ml
The file was modifiedparsing/ast_helper.mli
The file was modifiedtyping/typedecl_separability.ml
The file was modifiedtestsuite/tests/parsing/attributes.compilers.reference
The file was modifiedtyping/outcometree.mli
The file was modifiedocamldoc/odoc_env.ml
The file was modifiedtyping/typetexp.ml
The file was modifiedtyping/subst.ml
The file was modifiedparsing/ast_iterator.ml
The file was modifiedtyping/oprint.ml
The file was modifiedtyping/typedtree.mli
The file was modifiedtestsuite/tests/parsing/hash_ambiguity.compilers.reference
Commit 2c2d2cda5c8be18912e59c4171ece83b86e4bd87 by kc
Move the orphaned ephemerons GC colour check inside the barrier.
The file was modifiedruntime/domain.c
The file was modifiedruntime/major_gc.c
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
Commit ca3d055ae4984319da49fefc05b3b813b5edb1c1 by source
Fix missing expectations in typing-poly/poly.ml
The file was modifiedtestsuite/tests/typing-poly/poly.ml
Commit cc99be18afe97fe7c28e6d6a3d3a6cc1256b06bf by source
Additional corrections
The file was modifiedtestsuite/tests/typing-poly/poly.ml
Commit 0df7dea905dae52c0de7df81437cc3b313cf5c88 by source
Audit unexecuted phrases
The file was modifiedtestsuite/tools/expect.ml
Commit bcc66700c247f5307a0ca629ba3265642bb22e10 by source
Audit
The file was modifiedtestsuite/tests/typing-poly/poly.ml
The file was modifiedtestsuite/tests/typing-misc/polyvars.ml
The file was modifiedtestsuite/tests/typing-gadts/gadthead.ml
The file was modifiedtestsuite/tests/typing-modules/pr7851.ml
The file was modifiedtestsuite/tests/typing-immediate/immediate.ml
The file was modifiedtestsuite/tests/lib-array/test_array.ml
The file was modifiedtestsuite/tests/typing-modules/pr7818.ml
The file was modifiedtestsuite/tests/typing-modules/firstclass.ml
The file was modifiedtestsuite/tests/typing-gadts/yallop_bugs.ml
The file was modifiedtestsuite/tests/typing-unboxed-types/test.ml
The file was modifiedtestsuite/tests/typing-misc/variance.ml
The file was modifiedtestsuite/tests/typing-recmod/pr6491.ml
The file was modifiedtestsuite/tests/typing-gadts/pr13579.ml
The file was modifiedtestsuite/tests/letrec-check/float_unboxing.ml
The file was modifiedtestsuite/tests/typing-gadts/ambiguity.ml
The file was modifiedtestsuite/tests/typing-gadts/pr7374.ml
The file was modifiedtestsuite/tests/letrec-check/records.ml
The file was modifiedtestsuite/tests/typing-gadts/pr6158.ml
The file was modifiedtestsuite/tests/typing-misc/injectivity.ml
The file was modifiedtestsuite/tests/typing-gadts/pr5985.ml
The file was modifiedtestsuite/tests/typing-modules/aliases.ml
Commit 7edc3e9ca9bb27d90dd841513ca22b2f5125b351 by source
Fix audit
The file was modifiedtestsuite/tests/typing-unboxed-types/test.ml
The file was modifiedtestsuite/tests/letrec-check/float_unboxing.ml
The file was modifiedtestsuite/tests/typing-gadts/gadthead.ml
The file was modifiedtestsuite/tests/letrec-check/records.ml
The file was modifiedtestsuite/tests/typing-gadts/pr5985.ml
The file was modifiedtestsuite/tests/typing-gadts/ambiguity.ml
The file was modifiedtestsuite/tests/typing-gadts/pr13579.ml
The file was modifiedtestsuite/tests/typing-gadts/yallop_bugs.ml
The file was modifiedtestsuite/tests/lib-array/test_array.ml
The file was modifiedtestsuite/tests/typing-gadts/pr6158.ml
The file was modifiedtestsuite/tests/typing-modules/aliases.ml
The file was modifiedtestsuite/tests/typing-modules/pr7818.ml
The file was modifiedtestsuite/tests/typing-immediate/immediate.ml
The file was modifiedtestsuite/tests/typing-misc/variance.ml
The file was modifiedtestsuite/tests/typing-modules/pr7851.ml
The file was modifiedtestsuite/tests/typing-gadts/pr7374.ml
The file was modifiedtestsuite/tests/typing-misc/injectivity.ml
The file was modifiedtestsuite/tests/typing-misc/polyvars.ml
The file was modifiedtestsuite/tests/typing-poly/poly.ml
The file was modifiedtestsuite/tests/typing-modules/firstclass.ml
The file was modifiedtestsuite/tests/typing-recmod/pr6491.ml
Commit 0fc202c2d1356bd4f38fda70b6bb39bf61856a9c by source
Changes
The file was modifiedChanges
Commit 3ca69c1675457ff6c372751edfa728fde7aee157 by source
Update changes
The file was modifiedChanges
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
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 modifiedtyping/typeclass.ml
The file was modifiedtyping/typecore.ml
The file was modifiedtyping/ctype.ml
The file was modifiedtyping/types.mli
The file was modifiedtyping/typeopt.ml
The file was modifiedtyping/btype.mli
The file was modifiedtyping/ctype.mli
The file was modifiedparsing/parser.mly
The file was modifiedtyping/errortrace_report.ml
The file was modifiedtyping/typetexp.mli
The file was modifiedtoplevel/topprinters.ml
The file was modifiedtyping/out_type.ml
The file was modifiedtestsuite/tests/typing-objects/Exemples.ml
The file was modifiedtyping/typecore.mli
The file was modifiedtyping/typetexp.ml
The file was modifiedtyping/btype.ml
The file was modified.depend
The file was modifiedtyping/typeclass.mli
The file was modifiedtyping/typedecl.ml
The file was modifiedboot/menhir/parser.ml
Commit fbca0ab4f2da8fd7fa9be0456fbe362300aee671 by Florian Angeletti
bootstrap
The file was modifiedboot/ocamllex
The file was modifiedboot/ocamlc
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
Commit 489e219fb95fa95a48ffa8a70e12995c98ede018 by Florian Angeletti
Refactor: more descriptive return type for [split_function], renaming and comment work
The file was modifiedtyping/typecore.ml
Commit da0cabe07b8e5ab2bc7c443350da798598888d52 by Florian Angeletti
Introduce new error "opt params cannot be polymorphic"
The file was modifiedtyping/typecore.ml
The file was modifiedtyping/typecore.mli
Commit ba14d13c046ebc74b9638a2ce79aef22a92d09bd by Florian Angeletti
Wrap and generalize filter_arrow_mono if principal
The file was modifiedtyping/typecore.ml
Commit 24b6f4c4a5b05a19ec2aa3fd49d5d4ff69304493 by Florian Angeletti
Handle polymorphic parameters in type_apply_arg
The file was modifiedtyping/typecore.ml
The file was modifiedtestsuite/tests/typing-poly/poly_params.ml
Commit 16d8e49c786f0ebf885cebc54dfc288ee9d74ddc by Florian Angeletti
Refactor Pexp_function case and handle poly
The file was modifiedtyping/typecore.ml
Commit e882d5ae4248f26fba18b6ad9414ef997fd4903b by Florian Angeletti
Add one generalization level in type_class_arg_pattern
The file was modifiedtyping/typecore.ml
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
The file was modifiedlambda/translcore.ml
The file was modifiedtyping/typecore.ml
Commit 6e02745744317f7dd869c1d929035870036842c5 by Florian Angeletti
Add changes entry for #15733
The file was modifiedChanges
Commit d31142a21f9ae99434f9bf1aa4a4ab5beb431f99 by Florian Angeletti
Add test with class argument
The file was modifiedtestsuite/tests/typing-poly/poly_params.ml
Commit 2ad84dcb3c29293af1bb3d0378daf316022f6506 by Florian Angeletti
Additional tests with labels
The file was modifiedtestsuite/tests/typing-poly/poly_params.ml
Commit f401ccf8d0d0ad9a10b1cbd939d1bf64cea37f35 by Florian Angeletti
review: reorder functions in btype
The file was modifiedtyping/btype.ml
The file was modifiedtyping/btype.mli
Commit ced4529378fea71285c6c613bef8cbd0e0560157 by Florian Angeletti
review: comment format
The file was modifiedtyping/types.mli
Commit b6629c6e715c565ca3b8d38fa4d36480342b23ec by Florian Angeletti
review: add a Btype.newgenmono utility symetrical to Ctype.newmono
The file was modifiedtyping/btype.mli
The file was modifiedtyping/btype.ml
The file was modifiedtyping/typeclass.ml
Commit 6fc24f4eefbda7396884a4b76ba288a180ae7972 by Florian Angeletti
review: use label names in error messages
The file was modifiedtyping/typecore.ml
The file was modifiedtyping/typetexp.ml
The file was modifiedtestsuite/tests/typing-poly/poly_params.ml
The file was modifiedtyping/typecore.mli
The file was modifiedtyping/typetexp.mli
Commit 2dd9b7dce997d2611f339ec44bb3698c53e11b5a by Florian Angeletti
review: additional tests
The file was modifiedtestsuite/tests/typing-poly/poly_params.ml
Commit 669bd470115fbd04c3dd3b76c588c68a973adc56 by Florian Angeletti
Add test for polymorphic variants in polymorphic parameters
The file was modifiedtestsuite/tests/typing-poly/poly_params.ml
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
The file was modifiedtyping/ctype.ml
The file was modifiedtestsuite/tests/typing-poly/poly_params.ml
The file was modifiedtyping/typecore.ml
The file was modifiedtyping/typedecl.ml
The file was modifiedtyping/typeclass.ml
Commit 74b9f1fe58a3d59f22b39b2ea280b3b884218c90 by Florian Angeletti
Show issue with subtyping trace
The file was modifiedtestsuite/tests/typing-misc/typecore_errors.ml
Commit 4e597e9f37bb2a4e84a6557d4035bf1849493fb8 by Florian Angeletti
Fix subtyping error trace
The file was modifiedtestsuite/tests/typing-objects/Exemples.ml
The file was modifiedtyping/ctype.ml
The file was modifiedtestsuite/tests/typing-misc/typecore_errors.ml
Commit e6d2834a5dcef5ffa9337177182e09ec7f77e6a7 by Florian Angeletti
tests: Promote error messages improvements after rebasing.
The file was modifiedtestsuite/tests/typing-poly/poly_params.ml
Commit be3016c7e6c5ca9db647b3044f79e3e2fe2b441d by Florian Angeletti
review: more reuse in parser and reloc in [param_type]
The file was modifiedparsing/parser.mly
The file was modifiedboot/menhir/parser.ml
Commit a5dc2ad2083e7d08de84ed5144a7703f95588127 by Florian Angeletti
review: move [is_really_poly] utility to Ctype.
The file was modifiedtyping/ctype.mli
The file was modifiedtyping/typecore.ml
The file was modifiedtyping/ctype.ml
Commit 47350a7499406c640701c06cca4635879a0bbffe by Florian Angeletti
Add more test cases
The file was modifiedtestsuite/tests/typing-poly/poly_params.ml
Commit 19c9abe2aa5c097d409c442372bad96cc1f79b3b by Florian Angeletti
Move definition closer to usage
The file was modifiedtyping/typecore.ml
Commit c5587a4266836e6b9a7b477a1a36866607f1c368 by Florian Angeletti
Additional test cases
The file was modifiedtestsuite/tests/typing-poly/poly_params.ml
Commit c9a85332e881a251666853fd74fc72bc22836ac6 by Florian Angeletti
Document function in comment
The file was modifiedtyping/btype.mli
Commit 21b3641311e40a2d54445dc5973632f47ab68cae by Florian Angeletti
Add test cases
The file was modifiedtestsuite/tests/typing-poly/poly_params.ml
Commit 7cde513a5fd78e16627afcb4f729eb86ff96f109 by Florian Angeletti
Fix typo in error message
The file was modifiedtestsuite/tests/typing-poly/poly_params.ml
The file was modifiedtyping/typeclass.ml
Commit e8eb592e3fa593ce78f73ce9282d96a56a06246f by Florian Angeletti
Rename function and move it to Btype
The file was modifiedtyping/btype.ml
The file was modifiedtyping/ctype.ml
The file was modifiedtoplevel/topprinters.ml
The file was modifiedtyping/ctype.mli
The file was modifiedtyping/btype.mli
Commit d01ee5f4d04585414bbe9adf40654a367b970b23 by Florian Angeletti
Inline function and exception used only once
The file was modifiedtyping/ctype.mli
The file was modifiedtyping/ctype.ml
The file was modifiedtyping/typecore.ml
Commit 1dcf98623f07dc18fd9e1e513b078c48340aa904 by Florian Angeletti
Document function
The file was modifiedtyping/ctype.mli
Commit 7d2f41278e4086d0e4b5ea099a35bb0247344f0d by Florian Angeletti
Enforce Tpoly invariant
The file was modifiedtyping/typecore.ml
Commit ad0db6146c053e8101bd105061fb62852a85cfc7 by Florian Angeletti
Clarify conditions
The file was modifiedtyping/typecore.ml
Commit 730e7044b3d77db58cde54614f2557a6e9932cf2 by Florian Angeletti
Clearer argument label and field names
The file was modifiedtyping/ctype.mli
The file was modifiedtyping/ctype.ml
The file was modifiedtyping/typecore.ml
Commit ba7bf4906ff62d18be80de1382847c59b8226e31 by Florian Angeletti
Turn ordinary comment into a documentation comment
The file was modifiedtyping/typecore.ml
Commit 1e1c51ed930a0a2b83f17eb3682c558506d3d945 by Florian Angeletti
Clearer variable name
The file was modifiedtyping/typecore.ml
Commit 73934de2340c3b0cf43f9f682e4bad7b2942639d by Florian Angeletti
Fix wrong set of univars
The file was modifiedtyping/typecore.ml
Commit 7202cdef2c09882a930eeeffccb8902009d60323 by Florian Angeletti
review: De-duplicate parser rule for let
The file was modifiedparsing/parser.mly
The file was modifiedboot/menhir/parser.ml
Commit 6e7a74424008a091e8c17ff187d129f95d5ee980 by Florian Angeletti
review: Add test with syntactic arity mismatch
The file was modifiedtestsuite/tests/typing-poly/poly_params.ml
Commit f3d08a26da96bad6c9c929c3cc786908b455733d by Florian Angeletti
review: Fix test
The file was modifiedtestsuite/tests/typing-poly/poly_params.ml
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 modifiedconfigure.ac
The file was modifiedconfigure
The file was modifiedMakefile
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
The file was modifiedconfigure.ac
Commit 70431af45b0c7f449863eb07d2e7caa38b0c1693 by david.allsopp
Don't generate ocamltest_config.ml when not needed
The file was modifiedconfigure.ac
The file was modifiedMakefile
The file was modifiedconfigure
Commit 921c6a3a6e0dbc4199e87912c96a362a0ab0f74d by david.allsopp
Correct ocamltest-manual
The file was modifiedMakefile
Commit ffa6197f6a76af4e9378fa323406cbdb8491a86c by noreply
symbol names: revert to using `$` only on macOS and Windows (#14143)

The file was modifiedtestsuite/tests/native-debugger/macos-lldb-amd64.reference
The file was modifiedtestsuite/tests/native-debugger/lldb-script
The file was modifiedasmcomp/emitaux.ml
The file was modifiedruntime/power.S
The file was modifiedtestsuite/tests/native-debugger/linux-gdb-riscv.reference
The file was modifiedruntime/amd64.S
The file was modifiedtestsuite/tests/atomic-locs/cmm.compilers.reference
The file was modifiedtestsuite/tests/native-debugger/linux-lldb-amd64.reference
The file was modifiedtestsuite/tests/native-debugger/macos-lldb-arm64.reference
The file was modifiedtestsuite/tests/native-debugger/linux-gdb-amd64.reference
The file was modifiedasmcomp/x86_proc.ml
The file was modifiedruntime/arm64.S
The file was modifiedChanges
The file was modifiedmiddle_end/compilenv.mli
The file was modifiedruntime/dynlink_nat.c
The file was modifiedruntime/s390x.S
The file was modifiedruntime/riscv.S
The file was modifiedtestsuite/tests/native-debugger/linux-gdb-arm64.reference
The file was modifiedmiddle_end/compilenv.ml
The file was modifiedtestsuite/tests/asmcomp/func_sections.run
The file was modifiedtestsuite/tests/native-debugger/linux-lldb-arm64.reference
Commit 72a9d5adf2693649e460524f52cfa9b22685493a by Florian Angeletti
bookkeeping: update release info
The file was modifiedrelease-info/calendar.md
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
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/caml/domain.h
The file was modifiedruntime/domain.c
The file was modifiedruntime/minor_gc.c
Commit 2e0836f328b6431b9055bee58bad924f06c95e35 by gabriel.scherer
self-review: solidify two separate comments on minor heap layout
The file was modifiedruntime/domain.c
Commit ba7ba19789db4e50aed016b9ad8795b0c5a9420f by gabriel.scherer
runtime/domain.c: add a category of 'parked' stw_domains
The file was modifiedChanges
The file was modifiedruntime/domain.c
Commit 46bf83b0be41cd081d544de3b3cb056065d5247d by gabriel.scherer
[minor] domain.c: reorder domain_self and heap-reservation variables
The file was modifiedruntime/domain.c
Commit ca8b9aa6ed3406f013867f1faf67e601cd901a37 by gabriel.scherer
[minor] domain.c: reorder domain_create
The file was modifiedruntime/domain.c
Commit 29be98829b078a50103cfb30ce1b71830bc7cb92 by sadiq
use POOL_FIRST_BLOCK
The file was modifiedruntime/shared_heap.c
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
Commit e374459de4de9f65c71cb6fe9f56959e15737428 by samuel.aime.vivien
Extend parsetree to distinguish between `(module M : S)` and `(module M) : (module S)` 
The file was modifiedparsing/printast.ml
The file was modifiedparsing/pprintast.ml
The file was modifiedtestsuite/tests/compiler-libs/test_untypeast.ml
The file was modifiedparsing/ast_mapper.ml
The file was modifiedparsing/parsetree.mli
The file was modifiedtyping/typedtree.ml
The file was modifiedtyping/untypeast.ml
The file was modifiedparsing/depend.ml
The file was modifiedparsing/ast_helper.mli
The file was modifiedtyping/printtyped.ml
The file was modifiedtestsuite/tests/typing-implicit_unpack/implicit_unpack.ml
The file was modifiedparsing/ast_iterator.ml
The file was modifiedparsing/parser.mly
The file was modifiedtestsuite/tests/parsetree/locations_test.compilers.reference
The file was modifiedtyping/typetexp.ml
The file was modifiedtyping/tast_mapper.ml
The file was modifiedboot/menhir/parser.ml
The file was modifiedfile_formats/cmt_format.ml
The file was modifiedtyping/printpat.ml
The file was modifiedtyping/typecore.ml
The file was modifiedparsing/ast_helper.ml
The file was modifiedtyping/tast_iterator.ml
The file was modifiedtyping/typedtree.mli
Commit 8c6300142b7753121395b08c5e558767c6578e7c by samuel.aime.vivien
Changes
The file was modifiedChanges
Commit 9d44d724ad63ea76e22f5ac4740d7d0a66ec92bd by noreply
add hashtbl remove and replace which return the previous value (#14060)

The file was modifiedChanges
The file was modifiedtestsuite/tests/backtrace/backtrace2.reference
The file was modifiedstdlib/hashtbl.ml
The file was modifiedstdlib/hashtbl.mli
The file was modifiedtestsuite/tests/lib-hashtbl/htbl.ml
The file was modifiedstdlib/moreLabels.mli
The file was modifiedstdlib/templates/hashtbl.template.mli
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
The file was modifiedruntime/memprof.c
The file was modifiedstdlib/gc.mli
Commit 532fb2a80ea4667b7a339a9e50465d66a0e1abc4 by gabriel.scherer
Adjust test and add test
The file was modifiedtestsuite/tests/statmemprof/start_stop.ml
The file was modifiedtestsuite/tests/statmemprof/start_stop.reference
The file was addedtestsuite/tests/statmemprof/restart.reference
The file was addedtestsuite/tests/statmemprof/restart.ml
Commit 18e01627beb8e9188f1586abfba4c1809650ced4 by gabriel.scherer
[minor] Code clean-up
The file was modifiedruntime/memprof.c
Commit c0e29d9293147a35f9ad6ab827ec67008a8a6317 by gabriel.scherer
[documentation] Clarify a difference between threads and domains
The file was modifiedstdlib/gc.mli
Commit c12e33c280b79464ea42d570b995f6deb21346aa by gabriel.scherer
Changes
The file was modifiedChanges
Commit 632b901f995fa8eaf4d291bb1a0b7058e2c42689 by gabriel.scherer
Clarify test
The file was modifiedtestsuite/tests/statmemprof/start_stop.reference
The file was modifiedtestsuite/tests/statmemprof/start_stop.ml
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
Commit 43f3935e8791fe3455f4fb01c71b9a7cae756b31 by mail
Bump multicoretests to the trunk-compatible 0.9
The file was modified.github/workflows/multicoretests.yml
Commit 1431910c765dd1744f13cd158eda5bf4c272c2ec by mail
Also bump qcheck to 0.26 while we are at it
The file was modified.github/workflows/multicoretests.yml
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 modifiedChanges
The file was modifiedruntime/fiber.c
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
Commit ae66354144c49572dc7c38e4a7db416fe53a2246 by source
Print row types when they are GADT constructors
The file was modifiedtyping/out_type.ml
The file was modifiedtyping/outcometree.mli
The file was modifiedtestsuite/tests/typing-gadts/test.ml
The file was modifiedtyping/oprint.ml
The file was modifiedChanges
Commit 8c57adb3dc00b0ba6dcd3a8dc82f4d0b506fc4b6 by source
Better Btype.is_row_name
The file was modifiedtyping/btype.ml
Commit 78a9495b72a320c42bdaf648c52f1d32a0660e16 by noreply
Gc.stat: restore stack_size and add live_stacks_words (#14168)

The file was modifiedruntime/caml/fiber.h
The file was modifiedruntime/fiber.c
The file was modifiedChanges
The file was modifiedstdlib/gc.ml
The file was modifiedstdlib/gc.mli
The file was modifiedruntime/gc_ctrl.c
Commit 524fd249c09812d8d3371e00a8e108a4dd9d512b by Florian Angeletti
error message: explain quantification mismatches
The file was modifiedtestsuite/tests/typing-gadts/test.ml
The file was modifiedtestsuite/tests/typing-poly/poly.ml
The file was modifiedtyping/typecore.ml
The file was modifiedtestsuite/tests/typing-gadts/pr10907.ml
The file was modifiedtyping/errortrace.ml
The file was modifiedtyping/errortrace.mli
The file was modifiedtyping/ctype.ml
The file was modifiedtyping/ctype.mli
The file was modifiedtestsuite/tests/typing-poly/poly_params.ml
The file was modifiedtyping/errortrace_report.ml
Commit 80872a5c74db318834d3a4397d000cc2f7adf9db by Florian Angeletti
deprecation alert: file location
The file was modifiedChanges
The file was modifiedparsing/location.ml
Commit 00666f616a881ea664f0b0eb7bed74da60296ccd by Florian Angeletti
update Changes
The file was modifiedChanges
Commit 8e07de861d4ea0a77dcb1fe61a95e1289e462b35 by source
Fix #13658
The file was addedtestsuite/tests/typing-labels/pr13658.ml
The file was modifiedtyping/typecore.ml
The file was modifiedtyping/out_type.ml
The file was modifiedChanges
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
Commit d5be817f104721b4a41ecf7729f16f72b51cb407 by Florian Angeletti
toplevel: fix printing of qualified labels
The file was modifiedtestsuite/tests/tool-toplevel/constructor_printing.ml
The file was modifiedtoplevel/genprintval.ml
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.mli
The file was modifiedruntime/minor_gc.c
The file was modifiedtestsuite/tests/lib-runtime-events/test_caml_counters.ml
The file was modifiedruntime/caml/runtime_events.h
The file was modifiedotherlibs/runtime_events/runtime_events.ml
Commit 2b6d2b03490a4bd01d736c47c7b9edbabe9d89bd by gabriel.scherer
ocamlprof: do not instrument unreachable clauses

fixes #14196
The file was modifiedtools/ocamlprof.ml
Commit b65a90c0463b60be67d234ec0ae5c72c615cdcec by gabriel.scherer
Changes
The file was modifiedChanges
Commit 1a233f5bf2b3da3079634a1f29fb5a7bf64c363f by Florian Angeletti
update Changes
The file was modifiedChanges
Commit e6231db020fe239ff3a5bed6ea9caadafad32c8f by gabriel.scherer
Changes: 14169 was included in 5.4
The file was modifiedChanges
Commit 150be346abde5afc76d6a07d01d37651e42fc15f by timmcgil
Add Changes
The file was modifiedChanges
Commit 2cbb0075e02bc2046b6724366fbd5b54949cd312 by timmcgil
Highlight known units for runtime_counter.
The file was modifiedotherlibs/runtime_events/runtime_events.mli
Commit 6b21d6a625650b45d20008da2fa6660ffdceaa89 by pierre.boutillier
Misc.invert_build_path_prefix_map
The file was modifiedutils/misc.ml
The file was modifiedutils/build_path_prefix_map.mli
The file was modifiedutils/misc.mli
The file was modifiedutils/build_path_prefix_map.ml
Commit 427e1a6d69e614702e62af985609753832c31d12 by pierre.boutillier
Apply BUILD_PATH_PREFIX_MAP to pathes found in files by the debugger
The file was modifieddebugger/symbols.ml
Commit ed4d3bbc51a858732a995043e9432dde9c760fc0 by pierre.boutillier
Change reverted for now
The file was modifiedChanges
Commit ab592af00cfcce5be52ccd5beb8d65c0129dc51e by pierre.boutillier
Changes
The file was modifiedChanges
Commit 4e27e80af8653a2a5f3ea0cd16aeca841807206c by noreply
Constraints on module unpacking are not ghost (#14198)

* Constraints on module unpack are not ghost

* Remove spurious inlining in parser.mly

* Changes
The file was modifiedparsing/parser.mly
The file was modifiedboot/menhir/parser.ml
The file was modifiedChanges
Commit 2db2b9282e568f580e9fcf1a752606065f151914 by antonin
Fix pthread_setname_np under NetBSD
The file was modifiedotherlibs/systhreads/st_stubs.c
Commit 30c570fe817777c86182ee8f743b94b6295d58d4 by noreply
Fix #14200 (without breaking pr7321_ok.ml) (#14202)

The file was modifiedtyping/includecore.ml
The file was modifiedChanges
The file was modifiedtestsuite/tests/typing-misc/variance.ml
Commit 0f6fbaea61b55a8c81c2ad299e093138b34dc8ea by damien.doligez
fix memory model for Weak.set
The file was modifiedruntime/weak.c
Commit 0b00bf94a224c5902a67ac18967c44d9d836e97b by damien.doligez
refactor weak.c/do_set to look more like memory.c/modify
The file was modifiedruntime/weak.c
Commit 64a5cdf9c64e2ec2d46b27c4a299abc1a514ba07 by damien.doligez
ocamltest: show test name before running the test
The file was modifiedocamltest/main.ml
Commit 3c36ad0446dd1649444d16dfa64320cf92caf923 by noreply
Add List.split_map (#14185)

The file was modifiedstdlib/list.mli
The file was modifiedChanges
The file was modifiedstdlib/listLabels.mli
The file was modifiedstdlib/list.ml
Commit 72e8a482152f0fb70f7ab690ac1f4eeae61040eb by gabriel.scherer
Changes
The file was modifiedChanges
Commit 144463d346054ad202e72ca4dcd59ded2d0d17ea by noreply
Fix typos in comment (#14194)

The file was modifiedstdlib/format.ml
Commit 333a5398ffe5292b45bbcae64fe3acbe1a22ecbe by noreply
Elide duplicate ephemeron status check (#14175)

The file was modifiedruntime/major_gc.c
Commit 57fcefed333210bf441bba0f1eaf592c623ca61f by noreply
Recognize %identity as nonexpansive (#14029)

Co-authored-by: Stephen Dolan <sdolan@janestreet.com>
The file was modifiedtyping/typecore.ml
The file was modifiedChanges
The file was modifiedstdlib/fun.mli
The file was modifiedstdlib/fun.ml
The file was addedtestsuite/tests/typing-misc/magic_is_a_value.ml
Commit 2c69da8e39c400890959b0b1642086ffffcf73a2 by noreply
fix tsan tests to account for #14143 (#14203)

The file was modifiedtestsuite/tests/tsan/filter-locations.sh
Commit 1ac6152ec7becb7a29ef69b9b42ff78effb19c3e by source
Better error message when a functor is its own unsafe functor
The file was modifiedlambda/translmod.ml
The file was modifiedtestsuite/tests/basic-modules/recursive_module_evaluation_errors.ml
Commit 5f7ee1e5e282e6f9e53f543108a5299de09cde5d by Florian Angeletti
Changes bookkeeping

move 13580 entry to the right version
The file was modifiedChanges
Commit a69f472484d5aa771a791c741fd07167c40cbde7 by source
Actually make example unsafe (see #14217)
The file was modifiedtestsuite/tests/basic-modules/recursive_module_evaluation_errors.ml
Commit cb0f2beca7e3b2530f5d3fde2d31e57f44d79a17 by damien.doligez
Fix INRIA CI job other-configs
The file was modifiedtools/ci/inria/other-configs/script
The file was modifiedtools/ci/inria/main
Commit 6a6f8f62253f70bd60090889e3f06a6c9127b072 by damien.doligez
After #14209, TSan now correctly reports a data race in
tests/weak-ephe-final/weak_array_par.ml.

Since the data race is an essential part of the test, we have to
disable TSan on this file.
The file was modifiedtestsuite/tests/weak-ephe-final/weak_array_par.ml
Commit 8b1e26db2d9067c62680a0607e9f2f1255f93bde by Florian Angeletti
functor error messages: don't forget equality

Higher-level error messages for functors recompute inclusion checks when
trying to discover more macro-level error messages. For this
reconstruction to be accurate, those computations must use the same
environment than the one used when detecting the original problem.

In particular, this environment must include equalities added during the
pairing of types and modules during the signature inclusion test. For
instance, in

    module M: sig
       type t
       module F(X:sig val f:t val g:int end): sig end
    end = struct
      type t
      module F(X:sig val f:t val g:float end)= struct end
    end

we must remember that the interface-side `t` is equal to the
implementation-side `t`.

This part of the inclusion checking environment was ignored before this
commit leading to non-sensical error messages complaining that `t` is
not compatible with `t`.

This commit extends the captured environment for errors in signature to
include the substitution recording the equalities between items on both
side of the check.
The file was modifiedtestsuite/tests/typing-modules/functors.ml
The file was modifiedtyping/includemod.ml
The file was modifiedtyping/includemod_errorprinter.ml
The file was modifiedChanges
The file was modifiedtyping/includemod.mli
The file was modified.depend
Commit 8f1ba17f68f6f317f1ebfa9792c6f6793cbc92b9 by david.allsopp
Fix st_stubs.c compilation with mingw-w64 13.0.0

In mingw-w64 13.0.0, time.h now causes pthread_compat.h to be included
which as a side-effect sets up the macros for declspec(dllimport). Since
caml/osdeps.h uses time.h, this means that the macro changes designed to
ensure the API functions are properly decorated doesn't get applied, and
and RELOC_REL32 errors abound.

The fix for now is to ensure that the macros are setup to control
pthread_compat.h at the very beginning of the file.
The file was modifiedChanges
The file was modifiedotherlibs/systhreads/st_stubs.c
Commit 8111f3ecc16664ed399681b1ef4b8f5d6c8b2ed2 by emile.trotignon
document why sprintf still exists despite asprintf
The file was modifiedstdlib/format.mli
Commit 4b2555ce8bc94f8445f3a9b4bb01a26a70dc036d by emile.trotignon
rewrite doc comment
The file was modifiedstdlib/format.mli
Commit 86a5432a8f3664b2b7fa921bc2c8d7affd2802e9 by emile.trotignon
update comment according to @octatron's suggestion
The file was modifiedstdlib/format.mli
Commit e98da56cd31863fc4d5e1de906209c3603ec7256 by damien.doligez
fix local variables in Makefile
The file was modifiedMakefile
Commit 7e00974029993e160f053cf6df9bd6398836af32 by noreply
Fix C++ name-mangling issue with `caml_state` on Cygwin (#14220)

Fix Cygwin problems linking with caml_state from C++

---------

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

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

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

* Change quotes to display attributes names as inline code blocks

* Fix typos

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

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

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

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

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

Co-authored-by: David Allsopp <david.allsopp@metastack.com>
The file was modifiedMakefile.common
Commit ba67146c64f9abd8928d19b2e19b42f4b2ba1195 by Florian Angeletti
parsetree: map on all locations in toplevel directives
The file was modifiedChanges
The file was modifiedparsing/ast_mapper.ml
The file was modifiedparsing/ast_iterator.ml
Commit 3c12e951106c94cf7e233b74a6b7004861c533e9 by timmcgil
Add native debugger manual section
The file was addedmanual/src/cmds/native-debugger.etex
The file was modifiedChanges
The file was modifiedmanual/src/allfiles.etex
The file was modifiedmanual/src/cmds/Makefile
Commit 059f62c9362161e35334dcd1152457d705acb2e5 by timmcgil
Fixup name mangling references.
The file was modifiedmanual/src/cmds/profil.etex
Commit 664661694eafa78bb47c61384e307ad773df3d72 by david.allsopp
Ensure AppVeyor runs for PRs on these branches
The file was modifiedappveyor.yml
Commit f7e9902d9b4bf43b337829e636d28120c362cfea by david.allsopp
Don't fail-fast
The file was modifiedappveyor.yml
The file was modified.github/workflows/build.yml
The file was modified.github/workflows/build-msvc.yml
Commit 1ca1099828f1558faa976e6d81d6ac140ee13c9a by david.allsopp
Test the Unix executable header in CI
The file was modified.github/workflows/build.yml
The file was modified.github/workflows/build-msvc.yml
Commit 82db1e70b9391ac9c43b93de34db2c2d4670ff0f by david.allsopp
Hold GNU parallel at 20241222 on AppVeyor

Avoids the irritating addition of PWD to the sanitisation checks.
The file was modifiedtools/ci/appveyor/appveyor_build.sh
Commit d55148d53d8b8ef8a4ddb3ad0b0a4e5d8f0970d1 by david.allsopp
Fix AppVeyor for 32-bit platforms
The file was modifiedtools/ci/appveyor/appveyor_build.sh
Commit 0166cdeafe4b5cc8b8418b5ed28a8a981b2a3d5d by david.allsopp
Fix corrupt caching of GNU parallel
The file was modifiedtools/ci/appveyor/appveyor_build.sh
Commit 73445ca00f4db9ffa3de67e3a4dc91d4214d3b91 by david.allsopp
Store parallel in the branch
The file was modifiedtools/ci/appveyor/appveyor_build.sh
The file was modified.gitattributes
The file was addedtools/ci/appveyor/parallel
Commit a09f88a26048e0107963bf8dbab71943a87160da by david.allsopp
Fix the CI: Skip testsuite check on AppVeyor
The file was modifiedtools/ci/appveyor/appveyor_build.sh
Commit 218c4397f951bf498a53dd34a19768fb6173f95c by david.allsopp
Report mingw-runtime version on x86_64 as well

AppVeyor reports the version of the mingw-i686-runtime package, but that
wasn't copied over when the other ports were added on AppVeyor.
The file was modifiedtools/ci/appveyor/appveyor_build.cmd
Commit 54e89452f62ffbb39a3f890f7845640c45fc1376 by david.allsopp
Add --with-stublibs configure option

--with-stublibs is intended for use in opam and allows an additional
directory to be added at the top of $(ocamlc -where)/ld.conf.
The file was modifiedMakefile
The file was modifiedconfigure
The file was modifiedChanges
The file was modifiedocaml-variants.opam
The file was modifiedconfigure.ac
Commit 597255978e92279f168588dd793d9ebf83652ed1 by david.allsopp
Don't add a double-separator when locating ld.conf

When calculating the full path for ld.conf, the runtime unconditionally
concatenated "/ld.conf". This is harmless when the separators appear in
the middle of a path ("/usr/local/lib/ocaml//ld.conf" is equivalent to
the version with only single slashes), but it is technically incorrect
for two corners cases with OCAMLLIB and CAMLLIB:

- if either is explicitly set to "/" then "//ld.conf" is _not_ the same
  file as "/ld.conf". This is mildly relevant on Windows and Cygwin
  where the two initial slashes (including as "\/" for native Windows)
  will be interpreted as a UNC path
- if either is explicitly blank, then "ld.conf" (i.e. ld.conf in the
  current directory) is a less illogical file to open than "/ld.conf"
The file was modifiedruntime/dynlink.c
The file was modifiedruntime/caml/osdeps.h
Commit 3498814188cb38d435a229a7f758c75b5bff6248 by david.allsopp
ld.conf-relative path interpretation

Explicit relative paths in ld.conf are now interpreted relative to the
directory containing ld.conf.
The file was modifiedruntime/caml/osdeps.h
The file was modifiedtestsuite/tools/test_ld_conf.ml
The file was modifiedruntime/dynlink.c
The file was modifiedChanges
The file was modifiedbytecomp/dll.ml
Commit cfc889c90c949cc49ce3ed1aa0d4574dbe668cc4 by david.allsopp
Generate ld.conf using relative paths
The file was modifiedtestsuite/tools/testToplevel.ml
The file was modifiedocaml-variants.opam
The file was modifiedChanges
The file was modifiedtestsuite/in_prefix/README.md
The file was modifiedconfigure
The file was modifiedconfigure.ac
The file was modifiedtestsuite/tools/testRelocation.ml
The file was modifiedtestsuite/tools/testLinkModes.ml
Commit 036faaa2b02116621f41c7b64e1765039d3f175a by david.allsopp
Load ld.conf from all possible places

Before, the first ld.conf found from $OCAMLLIB, $CAMLLIB or the
preconfigured standard library location was loaded. Now all of these
are loaded.
The file was modifiedbytecomp/dll.ml
The file was modifiedmanual/src/cmds/runtime.etex
The file was modifiedtestsuite/tools/test_ld_conf.ml
The file was modifiedruntime/dynlink.c
The file was modifiedruntime/caml/dynlink.h
The file was modifiedutils/config.mli
The file was modifiedChanges
Commit bba973cf1a6c48ddbcd5b4b61a60d3b4a076f09a by david.allsopp
Remove caml_get_stdlib_location

The function was only ever added to share the logic between dynlink.c
and startup_byt.c - now that dynlink.c doesn't require it, move the
function to startup_byt.c and make it internal again.
The file was modifiedruntime/startup_byt.c
The file was modifiedruntime/dynlink.c
The file was modifiedruntime/caml/dynlink.h
Commit 6824f670dc3a2b8134bd8c3b0f73847b53b479cb by david.allsopp
Harden the parsing of ld.conf w.r.t. load and CRLF
The file was modifiedtestsuite/tools/test_ld_conf.ml
The file was modifiedChanges
The file was modifiedbytecomp/dll.ml
The file was modifiedruntime/dynlink.c
Commit a64ab59378ec28d781cc8543e195953605bcd4fe by david.allsopp
Use caml_parse_ld_conf in ocamlc

Eliminate the need for two implementations of the parsing logic for
ld.conf by sharing the C implementation (which must exist, since it's
part of bytecode startup) with the bytecode compiler, replacing
Dll.ld_conf_contents
The file was modifiedruntime/caml/dynlink.h
The file was modifiedbytecomp/dll.ml
The file was modifiedruntime/dynlink.c
The file was modifiedChanges
The file was modifiedruntime/startup_byt.c
The file was modifiedtestsuite/tools/test_ld_conf.ml
Commit 972dce4ba123bd160901d8fe8adb510782618320 by david.allsopp
Tidy installation of static builds

- $libdir/stublibs is no longer created for a --disable-shared build
- When $libdir/stublibs is not created, it is also not added to ld.conf
The file was modifiedMakefile
The file was modifiedotherlibs/Makefile.otherlibs.common
The file was modifiedChanges
The file was modifiedotherlibs/systhreads/Makefile
The file was modifiedconfigure.ac
The file was modifiedconfigure
Commit eba662975bb30f8cd1245401bc03f5f1a3ee053f by david.allsopp
Fix the detection of Cygwin-like build environments

Both Cygwin and MSYS2 are now consistently detected on MSYS2. In
particular, this means that ./configure --prefix $PWD/install and
similar will cause the prefix to be correctly translated to a Windows
path, as already happens on Cygwin.
The file was modifiedChanges
The file was modifiedconfigure
The file was modifiedconfigure.ac
Commit ddcdbf92f49d8837d3ee213ff108d6953624cc98 by david.allsopp
Preserve backslashes in --prefix

Previously, the --prefix argument was always normalised with cygpath -m
which meant that regardless of the argument, the paths used in the
compiler would always use slashes.

This behaviour is preserved if a slash is detected in the argument, i.e.
the caller explicitly uses mixed notation (e.g. `--prefix=C:/Prefix` or
`--prefix $PWD/install`). In particular, it means that a Cygwin-style
path will be correctly converted to a Windows-style path.

If the path uses backslashes, then it is still converted to use forward
slashes for the installation commands, but the backslashes are otherwise
preserved and used within the build itself.
The file was modified.github/workflows/build-msvc.yml
The file was modifiedconfigure
The file was modifiedChanges
The file was modifiedconfigure.ac
The file was modifiedtools/ci/appveyor/appveyor_build.sh
Commit fd4b73c7604dbceeb5b24f0cd5ed080c59089482 by david.allsopp
Harden startup of -custom executables

By default, ocamlrun first tries to resolve argv[0] to determine where
the bytecode image is and then tries opening the executable image
itself. This is obviously correct for ocamlrun, when being called using
a shebang or executable header, but it's not correct for -custom
executables where we _know_ that the bytecode image should be with the
executable. To achieve this, a new mode is added to
caml_byte_program_mode (and the existing ones renamed) such that
caml_byte_program_mode is now STANDARD (for ocamlrun - the existing
behaviour), APPENDED (for -custom executables - the new behaviour) and
EMBEDDED (for -output-complete-exe/-output-obj - the original use of
it).

The mode is also set directly by the linker, rather than having a
default in libcamlrun which is then overridden by the startup code for
-output-complete-exe.

In the new APPENDED mode, if caml_executable_name is implemented (i.e.
it returns a string) then this file _must_ contain the bytecode image
and no other mechanisms are used. On platforms where
caml_executable_name is not implemented, APPENDED falls back to STANDARD
for compatibility.

Technically, this stops an argv[0] injection attack on setuid/setgid
-custom bytecode executables, although setuid should be used with
-output-complete-exe, if at all.
The file was modifiedChanges
The file was modifiedruntime/startup_byt.c
The file was modifiedbytecomp/bytelink.ml
The file was modifiedruntime/backtrace_byt.c
The file was modifiedtestsuite/tools/testLinkModes.ml
The file was modifiedruntime/caml/startup.h
The file was modifiedruntime/gen_primsc.sh
Commit 12419deb0c08de9b4a72d80b1cdd674e6498c15b by david.allsopp
Interpret . in runtime-launch-info

The runtime-launch-info file includes the location of the binary
directory. The compiler is extended so that . refers to the directory of
the compiler binary.
The file was modifiedbytecomp/bytelink.ml
Commit 6b8f6fb9c10e5a9525d18d616b1f66ca10b6c816 by david.allsopp
Add caml_runtime_standard_library_default

Previously, the bytecode runtime just used OCAML_STDLIB_DIR from
build_config.h. This value is now stored once in dynlink.o as
caml_runtime_standard_library_default.
The file was modifiedruntime/caml/dynlink.h
The file was modifiedruntime/startup_byt.c
The file was modifiedruntime/dynlink.c
Commit 1009f7fd8b0bd93c166cac5d5ffb29824fc37bbd by david.allsopp
Add %standard_library_default

%standard_library_default allows Config.standard_library_default to be
converted to a compile-time derived value, as with existing compile-time
constants such as %backend_type, etc. This paves the way for allowing
Config.standard_library_default to be changed at link-time, rather than
fixed when the Config module itself is compiled.
The file was modified.depend
The file was modifiedmiddle_end/compilenv.ml
The file was modifiedmiddle_end/compilenv.mli
The file was modifiedruntime/caml/dynlink.h
The file was modifiedlambda/lambda.ml
The file was modifiedmiddle_end/flambda/closure_conversion.ml
The file was modifiedasmcomp/asmpackager.ml
The file was modifiedbytecomp/bytelink.ml
The file was modifiedruntime/caml/startup.h
The file was modifiedtestsuite/tools/testRelocation.ml
The file was modifiedMakefile
The file was modifiedasmcomp/asmlink.ml
The file was modifiedlambda/translprim.ml
The file was modifiedbytecomp/bytegen.ml
The file was modifiedlambda/lambda.mli
The file was modifiedruntime/caml/sys.h
The file was modifiedruntime/dynlink.c
The file was modifiedlambda/printlambda.ml
The file was modifiedasmcomp/cmm_helpers.ml
The file was modifiedutils/config.mli
The file was modifiedbytecomp/bytesections.ml
The file was modifiedbytecomp/bytesections.mli
The file was modifiedfile_formats/cmx_format.mli
The file was modifiedutils/config.common.ml.in
The file was modifiedruntime/sys.c
The file was modifiedruntime/gen_primsc.sh
The file was modifiedmiddle_end/closure/closure.ml
The file was modifiedruntime/startup_byt.c
The file was modifiedtools/objinfo.ml
The file was modifiedasmcomp/cmm_helpers.mli
Commit 5fbb58b7ba6b366acdda3fafbcc1e0beef061bf1 by david.allsopp
Add -set-runtime-default

Allows the default location used by the bytecode runtime for the
Standard Library to be overridden when creating bytecode executables.
The file was modifiedbytecomp/bytelink.ml
The file was modifieddriver/main_args.ml
The file was modifieddriver/compenv.mli
The file was modifieddriver/optmaindriver.ml
The file was modifieddriver/main_args.mli
The file was modifiedutils/clflags.mli
The file was modifiedasmcomp/asmlink.ml
The file was modifiedutils/clflags.ml
The file was modifieddriver/maindriver.ml
The file was modifieddriver/compenv.ml
The file was modifiedMakefile
The file was modifiedChanges
Commit 69fef641766d2d955f5acea28fc7863a38f22002 by david.allsopp
Bootstrap
The file was modifiedboot/ocamlc
The file was modifiedboot/ocamllex
Commit 54e518173e8be26b212875d85b5b38b2d9004786 by david.allsopp
Use %standard_library_default in Config

Config.standard_library_default is now implemented using the
%standard_library_default primitive. This allows a convenient test which
can be added for `-set-runtime-default`.

The change also makes the host-like nature of of
Config.standard_library_default clearer, as the build of the
cross-compiler must now (correctly) specify the location of its (target)
Standard Library.
The file was modifiedMakefile.cross
The file was modifiedutils/config.generated.ml.in
The file was modifiedtestsuite/tools/testDynlink.ml
The file was modifiedutils/config.fixed.ml
The file was modifiedMakefile.common
The file was modifiedutils/config.common.ml.in
The file was modifiedtestsuite/tools/testLinkModes.ml
Commit 4976b07c5d2fe1ca89e1784a43375cfb76c05b53 by david.allsopp
Bootstrap
The file was modifiedboot/ocamlc
Commit 415a2881b38ee0afafbed036130cd49870f22688 by david.allsopp
Allow libdir to be found relative to bindir

When configured with --with-relative-libdir, the runtime uses the
directory of the executable to determine the location of the Standard
Library. Thus, ocamlrun and the compilers look for ../lib/ocaml by
default.

This is implemented by changing caml_standard_library_default to be a
relative path, and then computing the actual value at startup (for
bytecode) and when queried (for native).

Executables (and objects) produced by the compiler always have an
absolute value of caml_standard_library_default. ocamlc.opt and
ocamlopt.opt are built using -set-runtime-default to force
caml_standard_library_default to be a relative value.
The file was modifiedbytecomp/bytelink.ml
The file was modifiedruntime/win32.c
The file was modifiedMakefile.build_config.in
The file was modifiedconfigure
The file was modifiedruntime/caml/startup.h
The file was modifiedconfigure.ac
The file was modifiedocamltest/ocaml_tests.ml
The file was modifiedruntime/dynlink.c
The file was modifiedChanges
The file was modifiedruntime/caml/s.h.in
The file was modifiedMakefile
The file was modifiedMakefile.cross
The file was modifiedruntime/sys.c
The file was modifiedruntime/caml/osdeps.h
The file was modifiedbytecomp/dll.ml
The file was modifiedruntime/startup_byt.c
The file was modifiedtools/ocamlmklib.ml
The file was modifiedutils/config.common.ml.in
The file was modifiedMakefile.common
The file was modifiedutils/config.mli
The file was modifiedasmcomp/asmlink.ml
The file was modifiedocamltest/ocamltest_config.mli
The file was modifiedocamltest/ocamltest_config.ml.in
The file was modifiedruntime/unix.c
Commit ab7080237388da367beb2554228188a0e24b58f7 by david.allsopp
Update the installation test for enable-relative
The file was modifiedtestsuite/tools/test_ld_conf.ml
The file was modifiedtestsuite/tools/harness.mli
The file was modifiedtestsuite/tools/testLinkModes.ml
The file was modifiedtestsuite/tools/testDynlink.ml
The file was modifiedtestsuite/tools/testRelocation.ml
The file was modifiedtestsuite/in_prefix/Makefile.test
The file was modified.depend
The file was modifiedtestsuite/tools/cmdline.ml
The file was modifiedtestsuite/tools/testBytecodeBinaries.ml
The file was modifiedtestsuite/tools/testToplevel.ml
The file was modifiedtestsuite/in_prefix/README.md
Commit 5b06cf238c85f0f3fe21930b1abbc41abd8c92f2 by david.allsopp
Test --with-relative-libdir in CI
The file was modifiedtools/ci/actions/runner.sh
The file was modified.github/workflows/build.yml
The file was modified.github/workflows/build-msvc.yml
The file was modifiedMakefile
The file was modifiedappveyor.yml
The file was modifiedtools/ci/appveyor/appveyor_build.sh
Commit 1fd50e95d738607ae581ba17436c690691ca3a7c by david.allsopp
NFPR: fully test --with-relative-libdir in AppVeyor
The file was modifiedappveyor.yml
Commit de9632a35d8bba43c78ab16f8601da17eeb8aa66 by david.allsopp
NFPR: fully test --with-relative-libdir in precheck
The file was modifiedtools/ci/inria/main
Commit 631d92ef25105ff7dad490f611d86da61bf0557e by david.allsopp
Add Config.as_is_cc

Indication as to whether ocamlopt assembles files via the C compiler or
by calling the assembler directly.
The file was modifiedutils/config.fixed.ml
The file was modifiedutils/config.generated.ml.in
The file was modifiedconfigure
The file was modifiedconfigure.ac
The file was modifiedutils/config.mli
Commit 96fa486e260b4e1dd7cf2eb121aa9e8edf9e54fc by david.allsopp
Use as directly on Cygwin, as on Linux
The file was modifiedconfigure
The file was modifiedconfigure.ac
Commit 141563c2a29a98bd7e025d1029bb292d44413a36 by david.allsopp
Detect but ignore -fdebug-prefix-map on mingw-w64

mingw-w64 is based on GCC, so supports -fdebug-prefix-map, but the test
for it is skipped in configure. The test is no longer skipped (which
means that Config.c_has_debug_prefix_map returns true) but the flag is
still explicitly not used by the compilers (as before).
The file was modifiedconfigure
The file was modifiedconfigure.ac
The file was modifiedutils/ccomp.ml
Commit 538cfa8e3b45d55e7245a3f5fa246bb9b0373082 by david.allsopp
Increase reproducibility of relative artefacts
The file was modifiedtestsuite/tests/native-debugger/linux-lldb-amd64.ml
The file was modifiedconfigure
The file was modifiedtestsuite/tools/testRelocation.ml
The file was modifiedtestsuite/tests/tool-debugger/find-artifacts/debuggee.ml
The file was modifiedconfigure.ac
The file was modifiedtestsuite/tests/native-debugger/linux-lldb-arm64.ml
The file was modifiedMakefile.common
Commit 891e88ac2842473bb5f4a86ce170b42933dda301 by david.allsopp
Simplify the computation for the runtime name
The file was modifiedbytecomp/bytelink.ml
Commit a00b98f7e4768633cd68f7a9b11b46ef542d9b5e by david.allsopp
Permit single-quotes in prefix

Minor tweaks needed to allow configuring, say, for "$PWD/install'd here"
The file was modifiedman/Makefile
The file was modifiedMakefile
Commit b31c0583d2e65642a56533228e8fa18c4248c44a by david.allsopp
ocamlobjinfo: display the runtime used by an image

ocamlobjinfo now parses both RNTM and shebang lines in order to display
the runtime being used by a bytecode executable.
The file was modifiedtools/objinfo.ml
The file was modified.gitignore
The file was modifiedMakefile
The file was modifiedtestsuite/tools/environment.ml
The file was modified.depend
The file was addedbytecomp/byterntm.mll
The file was modifiedChanges
The file was addedbytecomp/byterntm.mli
The file was modifiedtools/ocamlsize
Commit a7f618a9ac8a010c0b60940d508e2cc1b31d2662 by david.allsopp
Add -launch-method to ocamlc

When linking a normal bytecode executable, allows an explicit selection
of either the executable or shebang header, regardless of the value in
runtime-launch-info.
The file was modifieddriver/main_args.mli
The file was modifiedutils/config.common.ml.in
The file was modifieddriver/main_args.ml
The file was modified.depend
The file was modifiedutils/clflags.mli
The file was modifiedbytecomp/bytelink.ml
The file was modifiedChanges
The file was modifiedutils/clflags.ml
The file was modifiedutils/config.mli
Commit 12dbaa381177388218de1999d58135b578cebd64 by david.allsopp
Test both bytecode header methods
The file was modifiedtestsuite/tools/testLinkModes.ml
Commit 8d721dee1ccb87e52dc29c6a17031c92acbda0ef by david.allsopp
Remove metadata from runtime-launch-info

-launch-method encapsulates the first line of runtime-launch-info. The
argument to -launch-method is extended slightly to encompass the second
line, thus `-launch-method 'sh /usr/local/bin'` represents the default
runtime-launch-info file on Unix. Additional fields are added to Config
so that the installed compiler simply uses default values, rather than
reading the two lines from runtime-launch-info. The build of the
compiler itself explicitly uses `-launch-method`, which leaves only the
executable launcher compiled from stdlib/header.c in
runtime-launch-info.
The file was modifiedMakefile.common
The file was modifiedconfigure
The file was modifiedutils/config.fixed.ml
The file was modifiedbytecomp/bytelink.ml
The file was modifiedutils/clflags.ml
The file was modifiedbytecomp/bytelink.mli
The file was modifiedutils/clflags.mli
The file was modifiedutils/config.mli
The file was modifiedtestsuite/tools/test_in_prefix.ml
The file was modifiedstdlib/Makefile
The file was modifiedutils/config.common.ml.in
The file was modifiedMakefile.build_config.in
The file was modifieddriver/main_args.ml
The file was modifiedutils/config.generated.ml.in
The file was modifiedconfigure.ac
The file was modified.depend
The file was modifiedMakefile
The file was modifiedtestsuite/tools/testRelocation.ml
Commit ab855c274bac5c3299450427811ff34455846f5c by david.allsopp
Factor out the exec code in stdlib/header.c
The file was modifiedstdlib/header.c
Commit 3e80494def1180ecae5bd23422ca5b516638633b by david.allsopp
Add -runtime-search to ocamlc

-runtime-search {disable|enable|always} adds new features to the
launcher used for bytecode executables which do not embed their own
runtime. By default, the header continues to behave as before - the
launcher will attempt to start the runtime using the absolute path which
the compiler was configured with.

The new search mode will then search for the runtime first in the
directory containing the running executable and then in PATH.
The file was modifiedutils/config.mli
The file was modifiedtestsuite/tools/harness.ml
The file was modifiedMakefile.common
The file was modifiedbytecomp/bytelink.ml
The file was modified.depend
The file was modifiedutils/clflags.ml
The file was modifiedconfigure
The file was modifieddriver/main_args.ml
The file was modifiedconfigure.ac
The file was modifieddriver/main_args.mli
The file was modifiedtestsuite/tools/harness.mli
The file was modifiedtools/ocamlsize
The file was modifiedtestsuite/tools/environment.ml
The file was modifiedstdlib/header.c
The file was modifiedChanges
The file was modifiedutils/config.common.ml.in
The file was modifiedtools/objinfo.ml
The file was modifiedbytecomp/byterntm.mli
The file was modifiedutils/clflags.mli
The file was modifiedbytecomp/byterntm.mll
The file was modifiedruntime/caml/s.h.in
The file was modifiedtestsuite/tools/testBytecodeBinaries.ml
Commit 6ba6001a3ef61a3c06ebc7fb6be462a7570041d6 by david.allsopp
Test all three bytecode search methods
The file was modifiedtestsuite/tools/harness.mli
The file was modifiedtestsuite/tools/environment.ml
The file was modifiedtestsuite/in_prefix/Makefile.test
The file was modifiedtestsuite/tools/environment.mli
The file was modified.gitignore
The file was addedtestsuite/tools/dummy.c
The file was modifiedtestsuite/tools/test_in_prefix.ml
The file was modifiedtestsuite/tools/testLinkModes.ml
The file was modifiedtestsuite/tools/harness.ml
The file was modifiedMakefile
Commit b2125b5ffeb7a1d7734cf463669ba5d1c09ac9e4 by david.allsopp
Determine Runtime ID values in configure
The file was addedruntime/Mangling.md
The file was modifiedutils/config.generated.ml.in
The file was modifiedutils/misc.mli
The file was modifiedChanges
The file was modifiedutils/config.fixed.ml
The file was modifiedutils/config.mli
The file was modifiedMakefile.config.in
The file was modifiedconfigure.ac
The file was modifiedutils/misc.ml
The file was modifiedruntime/caml/version.h.in
The file was modifiedMakefile.build_config.in
The file was modifiedbuild-aux/ocaml_version.m4
The file was modifiedutils/config.common.ml.in
The file was modifiedconfigure
Commit d2af92f2168239b35ca991b6edd52a3d76e30410 by david.allsopp
Mangle the bytecode runtime executable names

New option --disable-suffixing controls whether the build should use any
of the computed values for mangling its own files.
The file was modified.depend
The file was modifiedruntime/startup_byt.c
The file was modifiedMakefile
The file was modifiedtestsuite/tools/testRelocation.ml
The file was modifiedtestsuite/tools/test_in_prefix.ml
The file was modifiedstdlib/Makefile
The file was modifiedtestsuite/tools/cmdline.ml
The file was modifiedutils/misc.ml
The file was modifiedbytecomp/byterntm.mll
The file was modifiedtestsuite/tools/harness.mli
The file was modifiedtestsuite/tools/environment.ml
The file was modifiedtestsuite/tools/testBytecodeBinaries.ml
The file was modifiedtestsuite/in_prefix/Makefile.test
The file was modifiedMakefile.build_config.in
The file was modifiedutils/misc.mli
The file was modifiedbytecomp/byterntm.mli
The file was modifiedMakefile.common
The file was modifiedtools/objinfo.ml
The file was modifiedChanges
The file was modifiedconfigure
The file was modifiedtestsuite/tools/harness.ml
The file was modifiedbytecomp/bytelink.ml
The file was modifiedconfigure.ac
Commit 416a4c50cb588894f70ca64858c38c864ef7b31e by david.allsopp
Build suffixed shared runtimes

New names for libcamlrun_shared.so and libasmrun_shared.so without the
_shared suffix and using the target triplet and runtime ID. Both ocamlc
and ocamlopt explicitly recognise `-runtime-variant _shared` and select
the correct name.

Symbolic links for libcamlrun_shared.so and libasmrun_shared.so to allow
any C programs which linked against the the output of `-output-obj` to
continue to work.
The file was modifiedChanges
The file was modifiedasmcomp/asmlink.ml
The file was modifiedutils/misc.mli
The file was modifiedutils/config.mli
The file was modifiedutils/misc.ml
The file was modifiedMakefile
The file was modifiedtestsuite/tools/testLinkModes.ml
The file was modifiedutils/config.generated.ml.in
The file was modifiedbytecomp/bytelink.ml
The file was modifiedutils/config.fixed.ml
Commit 59f845c6d1af41979df8e4ceea856863b21a130b by david.allsopp
Add runtime suffixes to bytecode stub libraries

ocamlc -dllib-suffixed appends the runtime's host triplet and bytecode
runtime ID to the supplied name when searching for the DLL, and records
the base name only in .cma / executable files.

ocamlmklib -suffixed instructs ocamlmklib to use -dllib-suffixed when
generating .cma files instead of -dllib.

The effect is that stub libraries built this way have names which will
be unique for a given configuration of OCaml and so will be ignored by
other runtimes.
The file was modifiedocamltest/ocaml_actions.ml
The file was modifiedocamltest/ocamltest_config.ml.in
The file was modifiedbytecomp/dll.ml
The file was modifiedChanges
The file was modifieddriver/compenv.ml
The file was modifiedotherlibs/systhreads/Makefile
The file was modifiedruntime/dynlink.c
The file was modifiedotherlibs/dynlink/dynlink_config.mli
The file was modifiedfile_formats/cmo_format.mli
The file was modifieddriver/main_args.ml
The file was modifiedocamltest/ocamltest_config.mli
The file was modifiedotherlibs/Makefile.otherlibs.common
The file was modifieddriver/compenv.mli
The file was modifiedbytecomp/bytelink.ml
The file was modifiedutils/misc.mli
The file was modifiedbytecomp/dll.mli
The file was modifieddriver/main_args.mli
The file was modifiedutils/clflags.mli
The file was modifiedotherlibs/dynlink/byte/dynlink_symtable.ml
The file was modifiedotherlibs/dynlink/byte/dynlink_symtable.mli
The file was modifiedtools/objinfo.ml
The file was modifiedtools/ocamlmklib.ml
The file was modifiedutils/misc.ml
The file was modifiedutils/config.mli
The file was modifiedotherlibs/dynlink/dynlink_config.ml.in
The file was modifiedutils/clflags.ml
Commit 298f5a5d4601f7fffe8d00418263cf117cd03f3e by david.allsopp
Bootstrap
The file was modifiedboot/ocamlc
The file was modifiedboot/ocamllex
Commit 45922113494c2ed69ac3bb7dcd71317f3fa141da by david.allsopp
Post-bootstrap cleanup

boot/ocamlc now supports everything that the main compiler supports.
The file was modifiedMakefile.common
The file was modifiedtestsuite/tools/cmdline.ml
The file was modifiedstdlib/Makefile
The file was modified.gitignore
The file was modifiedconfigure
The file was modifiedstdlib/header.c
The file was modifiedtestsuite/tools/test_in_prefix.ml
The file was modifiedconfigure.ac
The file was modifiedMakefile
The file was modifiedtestsuite/tools/harness.ml
The file was modifiedbytecomp/bytelink.ml
The file was modifiedtestsuite/tools/harness.mli
Commit ed990f2ae3e844b364233eb03c0e4db9b5455168 by david.allsopp
Add --enable-runtime-search[-target] options

--enable-runtime-search controls the -runtime-search setting used to
build the compiler's own bytecode executables;
--enable-runtime-search-target controls the default value of
-runtime-search that ocamlc itself uses.
The file was modifiedChanges
The file was modifiedconfigure.ac
The file was modifiedconfigure
The file was modifiedutils/config.common.ml.in
The file was modifiedMakefile.common
The file was modifiedutils/clflags.ml
The file was modifiedutils/config.fixed.ml
The file was modifiedutils/config.mli
The file was modifiedMakefile.build_config.in
The file was modifiedutils/config.generated.ml.in
Commit f123080a956a04389e13a7ef4acfbd346ad91b8a by david.allsopp
Update the installation test for runtime-searching
The file was modified.depend
The file was modifiedtestsuite/tools/testLinkModes.ml
The file was modifiedtestsuite/in_prefix/Makefile.test
The file was modifiedtestsuite/tools/test_in_prefix.ml
The file was modifiedtestsuite/tools/testBytecodeBinaries.ml
The file was modifiedtestsuite/in_prefix/README.md
The file was modifiedtestsuite/tools/cmdline.ml
The file was modifiedtestsuite/tools/harness.ml
The file was modifiedtestsuite/tools/testRelocation.ml
The file was modifiedtestsuite/tools/harness.mli
Commit 178557bdcdf766c057594ce7d7a0d60fe366ba27 by david.allsopp
Make Windows header absolute (as on Unix)
The file was modifiedconfigure
The file was modifiedtestsuite/tools/harness.mli
The file was modifiedconfigure.ac
Commit fa731e889044d847c4a1054f1a6bf713876237a1 by david.allsopp
Test --enable-runtime-search in CI
The file was modified.github/workflows/build.yml
The file was modified.github/workflows/build-msvc.yml
The file was modifiedtools/ci/actions/runner.sh
The file was modifiedtools/ci/appveyor/appveyor_build.sh
Commit dfeb98a96d4a080988aff6435ccee4c5a36ea8ae by david.allsopp
NFPR: fully test --enable-runtime-search in precheck
The file was modifiedtools/ci/inria/main
Commit 87dfe43b039e8c074179b1934a96932f9ad1f3e9 by david.allsopp
Exclude the manual from git-archive tarballs
The file was modifiedconfigure.ac
The file was modifiedconfigure
The file was modifiedMakefile
The file was modified.gitattributes
Commit 6ab7bd2eb5f46954f5bf3f37844abc9018567c7e by david.allsopp
Exclude irrelevant files from git-archive

CI scripts and Git configuration aren't required on end-user machines.
The file was modified.gitattributes
Commit 2a170f949be5885d563d1d8e650510f4623ab948 by david.allsopp
Exclude tests from git-archive tarballs

All the programs and infrastructure remain, but the tests are removed.
The file was modifiedtestsuite/Makefile
The file was modified.gitattributes
Commit 21c5bc97c3ec6fca81e9aac52191a2e013184790 by david.allsopp
Don't explicitly install toplevel/byte/*.cmi

All of the .mli files in toplevel/byte are "common", so they're already
installed by the patterns in toplevel.
The file was modifiedMakefile
Commit df579803b7505620ee05eba251abe27c686ca4cd by david.allsopp
Don't explicitly install main.cmx and optmain.cmx

It's necessary to install main.o and optmain.o because the two modules
are not part of ocamlbytecomp.cmxa and ocamloptcomp.cmxa, but the .cmx
files are already installed as part of wildcard patterns on driver/
The file was modifiedMakefile
Commit 4f3f30e6ab873c4aa26a2a3c7d5bb0576502e3a1 by david.allsopp
Remove duplicate installation in installopt

The ocamldoc installation commands in installopt duplicate a series of
commands which already happen in install.
The file was modifiedMakefile
Commit b8dc76289df44cead789cb65cc527fcb37136d9a by david.allsopp
Don't install ocamldoc's .cmi files twice
The file was modifiedMakefile
Commit c3a033fdefcf04a44cc084c9da132c7b92506df3 by david.allsopp
Use implicit names when installing ocamldoc

The ocamldoc binaries were installed using a relative path. They're the
only binaries installed that way - switch them to use an implicit path,
as it's easier to make an implicit path subsequently relative if needed
than vice versa.
The file was modifiedMakefile
Commit 5f22c8e9486bb43fba65100702e454e70e2112a5 by david.allsopp
Eliminate local for loops in install

Continue to use for when invoking recursive make calls, but use
$(foreach ..) to generate command sequences so that macros can be used
in them.
The file was modifiedMakefile
Commit a99560006eb2430421dc4e0c06c0c591c5856e04 by david.allsopp
Eliminate local if blocks in install
The file was modifiedapi_docgen/ocamldoc/Makefile
The file was modifiedotherlibs/Makefile.otherlibs.common
The file was modifiedMakefile
The file was modifiedapi_docgen/odoc/Makefile
Commit 912e42d3b0f59591689cbf1e5fe335951f5897e1 by david.allsopp
Remove invalid directory in source install

Line was added (with typo) in PR#8925 (4.09) and should have been
removed as part of PR#10355 (4.13)
The file was modifiedMakefile
Commit 6a09882c7f4668daa1eb5aa6d5e0be70c22e39ff by david.allsopp
Sprinkle some meta-programming on the install target
The file was modifiedMakefile
Commit d821830c7810cc8623f09fef14930db3a9c1acef by david.allsopp
Keep the stripped bytecode binaries

No need to remove things during install when it will be done later by a
package manager. Also prepares for the possibility of letting something
else install the binary subsequently.
The file was modified.gitignore
The file was modifiedMakefile.common
The file was modifiedMakefile
Commit 9f7b7d0f58fb61d6686f775ee37c58dfe8a33427 by david.allsopp
Straighten out the INSTALL_* Makefile variables

Move various definitions around such that merged Makefile variables are
all in Makefile.common. Sanitise the names to be closer to
INSTALL_LIBDIR_subdirname.
The file was modifiedstdlib/Makefile
The file was modifiedMakefile.common
The file was modifiedMakefile
The file was modifiedotherlibs/Makefile.otherlibs.common
The file was modifiedapi_docgen/odoc/Makefile
The file was modifiedman/Makefile
The file was modifiedapi_docgen/ocamldoc/Makefile
The file was modifiedotherlibs/systhreads/Makefile
Commit 1c9a5c6dc07e24b50e04cc779974494b3211d970 by david.allsopp
Remove the recursive invocation in install targets
The file was modifiedMakefile
Commit 31f5dba2cee0a2d8214db89060ade781175b13e6 by david.allsopp
Add SUBDIR_NAME to principal Makefiles

SUBDIR_NAME goes along with ROOTDIR - where ROOTDIR is the relative path
from Makefile back to the root directory, SUBDIR_NAME is the implicit
path from the root directory to Makefile.
The file was modifiedapi_docgen/ocamldoc/Makefile
The file was modifiedapi_docgen/odoc/Makefile
The file was modifiedman/Makefile
The file was modifiedstdlib/Makefile
The file was modifiedotherlibs/Makefile
The file was modifiedMakefile
The file was modifiedapi_docgen/Makefile
The file was modifiedotherlibs/Makefile.otherlibs.common
The file was modifiedotherlibs/systhreads/Makefile
Commit fb71f2e967d1549b5e8c05907172e7cf9dc99bf7 by david.allsopp
Use macros to generate installation commands

make install works as it did before. All the commands in the install
targets now go through a macro call which allows the semantic intent of
each command to be more clearly specified.
The file was modifiedotherlibs/systhreads/Makefile
The file was modifiedMakefile.common
The file was modifiedman/Makefile
The file was modifiedMakefile
The file was modifiedapi_docgen/odoc/Makefile
The file was modifiedapi_docgen/ocamldoc/Makefile
The file was modifiedstdlib/Makefile
The file was modifiedotherlibs/Makefile.otherlibs.common
Commit d613b3e2af7fd2cc6b01a5645f525f9f0ea92339 by david.allsopp
Add additional modes to make install

make [INSTALL_MODE=install] install
  - installs the compiler, as normal
make INSTALL_MODE=display install
  - displays the operations needed for
make INSTALL_MODE=list install
  - lists the files and symbolic links which are installed
The file was modifiedMakefile.common
Commit 5b616b037a01ca1549fc013c444eafff8c0d6271 by david.allsopp
Generate an opam .install file and support script

make INSTALL_MODE=opam install generates $OPAM_PACKAGE_NAME.install and
$OPAM_PACKAGE_NAME-fixup.sh ($OPAM_PACKAGE_NAME defaults to
ocaml-compiler). Nothing is installed by this mode. The fixup.sh script
is intentionally not made executable (it should be invoked explicitly
with sh) and creates symbolic links, if required, and also manually
copies the files to the doc dir, as the .install file format doesn't
allow the correct location to be specified.
The file was addedtools/opam/generate-install.sh
The file was modifiedMakefile.common
Commit f79c4c1959381436123f161ef6a12807adfe3e4e by david.allsopp
Experimentally, use it
The file was modifiedocaml-variants.opam
Commit 4268b46cf287623f03cb9057b7f42dde49d72110 by david.allsopp
Generate a relocatable cloning script
The file was modifiedMakefile.common
The file was addedtools/opam/generate-clone.sh
The file was addedtools/opam/process.sh
The file was modified.gitattributes
Commit 7f95be45e4edef32bec9e90bdb4c87d747e276d0 by david.allsopp
Got an interpreter, and we're not afraid to use it
The file was addedtools/opam/generate.ml
The file was removedtools/opam/generate-install.sh
The file was modifiedMakefile.common
The file was removedtools/opam/generate-clone.sh
Commit 3eaa0b2634e1abc6ada0cf1667c3d96b32b89211 by david.allsopp
Mark winpthreads dependency as Windows-only

Redundant filter, but mitigates an issue with --assume-built in opam
The file was modifiedocaml-variants.opam
Commit 8f9c476ce7eec69583b43fbdc88c61d60e3e952c by david.allsopp
Mark input dependencies as build

Mitigates an issue with opam install --assume-built since build
dependencies are ignored. The semantics should remain consistent: in
particular, as there is only a single version of each of these packages,
the key issue is that removing the package will still trigger the
correct behaviour as the dependency graph will change.
The file was modifiedocaml-variants.opam
Commit 494949df811720fa6465822adb70eac52e12b311 by david.allsopp
Test opam in CI
The file was modified.github/workflows/build-msvc.yml
The file was modified.github/workflows/build.yml
The file was modifiedtools/ci/appveyor/appveyor_build.sh
The file was modifiedtools/ci/appveyor/appveyor_build.cmd
The file was modifiedtools/ci/actions/runner.sh
Commit 114dfa468aaa3c37296ab599ce6634a2443b847e by david.allsopp
Generator script for ocaml.config in opam

This script is installed in opam by the ocaml-config package and then
used by its ocaml virtual packages to probe the compiler installation
and record various pieces of information about it by generating
ocaml.config
The file was modified.gitattributes
The file was addedtools/opam/gen_ocaml_config.ml.in
The file was addedtools/opam/ocaml-config.install
Commit ac2e3a6d6148c837186ac7b78c93f391973aacd7 by david.allsopp
Remove need for shared libraries in ocaml-config
The file was modifiedtools/opam/gen_ocaml_config.ml.in
The file was modified.gitattributes
Commit 1cd1dfba52bab56aff20dc0ece387ba71fe3b19b by david.allsopp
Update ocaml-config for 4.12 scheme

- Versioning numbering used for pre-releases now uses ~ instead of +
- Support the new ocaml-option- package layout
The file was modifiedtools/opam/gen_ocaml_config.ml.in
The file was modified.gitattributes
Commit 006e0f52a2af34f8ae3923cef63f574aa616fa61 by david.allsopp
OCaml 3.07 version of gen_ocaml_config.ml.in
The file was modified.gitattributes
The file was modifiedtools/opam/gen_ocaml_config.ml.in
Commit dc5542ac4be9aa0187fbed32f7ddf085372d54e8 by david.allsopp
Windows fixes to ocaml-config

- Wrong separator used for generating CAML_LD_LIBRARY_PATH on Windows
- Fixed detection for the native-tools variable on Windows
- Support dkml-base-compiler
The file was modifiedtools/opam/gen_ocaml_config.ml.in
The file was modified.gitattributes
Commit 2b149eb8a23ea73eb265bcf5ffc9a5d0e72f9aa1 by david.allsopp
Update ocaml-config for the new OCaml 5 layout
The file was modifiedtools/opam/gen_ocaml_config.ml.in
Commit c1198562f419b3935a5c33abf511d72769fbac09 by david.allsopp
Fully unify and update gen_ocaml_config.ml

There was technically a slightly tailored version of gen_ocaml_config.ml
sitting in the history to support the OCaml 3.07 package (which is the
oldest compiler archived in opam-repository).

The ocaml-config package originally stored this script in the files/
subdirectory, but policy changes in 2025 mean it was being referenced
from an archive repository. This script can now be referenced directly
by opam's ocaml package, removing the need for an additional package in
the dependency cone and also meaning that the script no longer has to be
installed in the switch.

The substs mechanism has been replaced in favour of passing the required
arguments on the command line. The previous mechanism was an artefact of
the way this script was previously generated, rather than necessarily a
clear way of writing it. It means this script is now simply an OCaml
script and has the added benefit of allowing each ocaml package to
specify the appropriate additional version components (e.g. spacetime,
nnp, etc.) rather than having each script confusingly containing all of
them.
The file was removedtools/opam/gen_ocaml_config.ml.in
The file was removedtools/opam/ocaml-config.install
The file was modified.gitattributes
The file was addedtools/opam/gen_ocaml_config.ml
Commit c673ca06270229b5ef67c49353c291988f0f2375 by david.allsopp
Support relative paths in gen_ocaml_config.ml
The file was modifiedtools/opam/gen_ocaml_config.ml
Commit e9390dce2f0f9ff20634cba8ed1306f566863d05 by david.allsopp
Remove the MAX_PATH limit in header.c on Windows
The file was modifiedstdlib/header.c
The file was modifiedChanges
Commit 54c3c22d1cda7c10b501918e91bac96c1798289e by david.allsopp
Move caml_search_dll_in_path to dynlink.c

Eliminates code duplication between unix.c and win32.c
The file was modifiedruntime/caml/osdeps.h
The file was modifiedruntime/unix.c
The file was modifiedruntime/dynlink.c
The file was modifiedruntime/win32.c
Commit e1ef338e458a25c8fe0a821fd7bdffcf69e9dd6c by david.allsopp
Remove caml_cds_file

OCaml 4.x global which should have been removed with OCaml 5.0
The file was modifiedruntime/backtrace_byt.c
The file was modifiedruntime/caml/backtrace.h
Commit 5ec29a71d2b73c996b54645c497bfae4a4e3a279 by david.allsopp
header.c: handle parasitic case of argc < 1
The file was modifiedstdlib/header.c
Commit eab002fce0c9cb1ed1bd3b7bba5d3cfc2d36ed81 by david.allsopp
Remove unnecessary Cygwin path workarounds

This is no longer required (nor does it work). Cygwin 1.5.20 (July 2006)
added the transparent_exe option to the CYGWIN environment variable which
made open behave in the same way as stat. Cygwin 1.7.1 (December 2009 and,
despite the version number, the first release of Cygwin 1.7) made this
behaviour default (and removed the ability to turn it off).
The file was modifiedruntime/unix.c
The file was modifiedstdlib/header.c
Commit e81227dbeb86dfe24c4e18dc6cc16f30619e8e65 by david.allsopp
header.c: malloc the result of searchpath
The file was modifiedstdlib/header.c
Commit a897736624b6ca741c464ff2816a8490cc5670e2 by david.allsopp
Move searchpath from header.c into the runtime

Merge the path-searching code from stdlib/header.c with the runtime's
version.
The file was modifiedruntime/unix.c
The file was addedruntime/unix_executable.c
The file was modifiedMakefile.cross
The file was modifiedruntime/caml/osdeps.h
The file was modifiedstdlib/Makefile
The file was modifiedMakefile
The file was modifiedstdlib/header.c
Commit 80305db78bd94a4f899ab3e1a13b6ac8f3d113e5 by david.allsopp
Use caml_executable_name in header.c
The file was modifiedruntime/unix_executable.c
The file was modifiedruntime/unix.c
The file was modifiedtestsuite/tools/testLinkModes.ml
The file was modifiedstdlib/header.c
Commit 6e8d75d8f48cc06d18abc2a13c7c4f2870f27eee by david.allsopp
Don't check for shebang scripts on Windows

Bytecode startup includes a check which has no place on Windows.
The file was modifiedruntime/startup_byt.c
Commit 2fe328bcf21000e4c0a31402945bea70ba073777 by david.allsopp
Simplify the interface of caml_attempt_open

Previously, caml_attempt_open received a pointer to the string and
passed this string to caml_search_exe_in_path. This function allocates a
fresh string which was then assigned to that pointer.

This interface was a little cryptic to follow - in particular, there
were several scenarios in which the result was not being freed. It's
also not entirely clear that caml_attempt_open involved a PATH-search,
which appears to have been applied in error when CAML_DEBUG_FILE was
added.
The file was modifiedruntime/backtrace_byt.c
The file was modifiedruntime/startup_aux.c
The file was modifiedruntime/startup_byt.c
The file was modifiedChanges
The file was modifiedruntime/caml/startup.h
Commit 1d2e46c1bf9776b5c077ee76aafafea3492466c6 by david.allsopp
Preserve argv[0] on Unix in the executable header

Makes the behaviour of the Unix and Windows versions of the header
equivalent, in particular it means that if argv[0] doesn't describe the
executable, more things fail for Cygwin.
The file was modifiedtestsuite/tools/testLinkModes.ml
The file was modifiedstdlib/header.c
Commit 86caf8eeca595d658fcd93cc9c31bfad499da844 by david.allsopp
Fix STARTUPINFO structure in stdlib/header.c

If a CRT application (including, therefore, another OCaml program),
exec's a bytecode program which uses the executable header, the
cbReserved2 and lpReserved2 fields of the STARTUPINFO structure are
quietly used by the CRT to pass handle information about open fds.

The status checker in the cloexec.ml test has C stubs, which causes
ocamltest to compile the bytecode version with -custom. The test is
split to have an additional intermediate pure OCaml program which simply
repeats either the Unix.execv or Unix.create_process call with the
Sys.argv it was applied. In bytecode, ocamltest compiles this program
just with -use-runtime, which means it uses the executable header on
Windows.

Without the change to header.c in this commit, that test begins to fail
in bytecode on Windows, because the CRT information about inherited
handles is not passed on to the status checker (the HANDLE values will
have been inherited, as that's a kernel function, but the CRT structures
regarding the fds are not initialised, which is what the checker than
looks at).

The fix here simplifies the code considerably - rather than initialising
a fresh STARTUPINFO structure, we simply use GetStartupInfo to retrieve
the one which was used to create the process itself and pass that to
CreateProcess - cbReserved2 and lpReserved2 are therefore passed on, and
the cloexec.ml test passes again.
The file was modifiedtestsuite/tests/lib-unix/common/fdstatus_main.ml
The file was modifiedstdlib/header.c
The file was addedtestsuite/tests/lib-unix/common/cloexec_leap.ml
The file was modifiedtestsuite/tests/lib-unix/common/cloexec.ml
Commit e7ffd7c05d1a92a651a654e7a8e7a9ad9cc83b15 by david.allsopp
Share image fd between header.c and startup_byt.c

The bytecode executable launcher (stdlib/header.c) can _only_ invoke
ocamlrun after it has opened itself in order to find out the name of the
runtime to execute. However, once ocamlrun is exec'd, the knowledge of
this file was previously lost and if it could not be recovered from
argv[0], then execution fails.

This new approach, for both Windows and Unix, instead keeps the fd for
the bytecode image open and passes its number to ocamlrun as
__OCAML_EXEC_FD in the environment. ocamlrun detects this environment
variable and uses that fd to load the bytecode image. If this fails, the
runtime does _not_ fallback to any other mechanisms.

On Windows, it is possible to recover the filename from a HANDLE. It is
not portably possible to do this on Unix, so the filename which was
opened by the stdlib/header.c is instead appended to the environment
variable.
The file was modifiedruntime/startup_byt.c
The file was modifiedChanges
The file was modifiedtestsuite/tools/testLinkModes.ml
The file was modifiedstdlib/header.c
The file was modifiedtestsuite/tools/testBytecodeBinaries.ml
Commit b76df17b33ec076ea32629dc744b9f4c9b8c3ec5 by david.allsopp
Add comments on the handling of blank env vars

Clarify in various places the behaviour of reading an environment
variable which is "Set But Null" (i.e. equal to the empty string as
opposed to unset)
The file was modifieddebugger/unix_tools.ml
The file was modifiedbytecomp/dll.ml
The file was modifiedruntime/unix.c
The file was modifiedtoplevel/topcommon.ml
Commit 3895332e02a15c1ad0d95f410c3115e16be80a47 by david.allsopp
Ignore empty TMPDIR in the Filename module

For Unix, the Filename module now treats TMPDIR being set to the
empty string, as if it were not set at all (which causes it to use /tmp
instead).
The file was modifiedstdlib/filename.ml
The file was modifiedChanges
Commit 9851fc70bdc061d4b94fd25d71c1f9d1ac322296 by david.allsopp
Ignore empty TMPDIR in ocamlyacc

If TMPDIR is set to the empty string, the Unix build of ocamlyacc now
defaults to /tmp (as it would if TMPDIR were not set at all).

The Windows default for when TMPDIR is not set is alredy the current
directory, so no change is required.
The file was modifiedyacc/main.c
The file was modifiedChanges
Commit 2c40b1b129389d0b3aa08fe9edbd02460ea35f99 by david.allsopp
Propagate non-empty tmpdir in ocamlyacc

By making tmpdir explicitly "." in the rare corner-case of TMPDIR being
set to the empty string on Windows, it becomes unnecessary to keep
checking whether tmpdir is zero-length.
The file was modifiedyacc/main.c
Commit 6a8b3851cb63e10abc91d6b9cd25311cf0e6de73 by david.allsopp
Ignore CAML_DEBUG_FILE if it's "Set But Null"
The file was modifiedChanges
The file was modifiedruntime/startup_aux.c
Commit f2d4a98236ca7fdaffbfb0be35b8317015387a04 by david.allsopp
Ignore OCAMLPROF_DUMP if it's "Set But Null"
The file was modifiedtools/profiling.ml
Commit 6444211b4f735c77aa9a1f24009187477ac4a018 by david.allsopp
Use non-raising Sys.getenv_opt in win32unix

Use the non-raising Sys.getenv_opt internally in the Windows
implementation of the Unix module. In passing, treat the highly unlikely
corner case of COMSPEC being "Set But Null" as if COMSPEC were not set.
The file was modifiedotherlibs/unix/unix_win32.ml
Commit 5ea225bc30136076fa4a9f8ea01f3f73c2301fa7 by david.allsopp
Ignore empty strings in Compmisc.set_from_env

Previously, invocations such as

OCAML_COLOR= ocamlopt

emitted warning 46 (bad-env-variable) which is not particularly helpful.
At present, Compmisc.set_from_env is used to implement OCAML_COLOR and
OCAML_ERROR_STYLE, neither of which attached significance to the empty
string. Compmisc.set_from_env is there changed to explictly ignore the
environment variable value if it is "".
The file was modifieddriver/compmisc.ml
The file was modifieddriver/compmisc.mli
Commit db7f15f9f11b73bd721d3d1056e8abed9dec2362 by david.allsopp
Ignore empty environment variables in ocamltest

Most uses in ocamltest were via its safe_getenv function which already
made unset and empty equivalent. This generalises the underlying
getenv_with_default_value function always to return the default value if
the variable is _either_ unset or set to the empty string.
The file was modifiedocamltest/ocamltest_stdlib.ml
Commit 8dea8a812e600c0ca927d4a1818b4eedf2ab7609 by david.allsopp
Ignore empty MAKE variable in ocamltest
The file was modifiedocamltest/main.ml
Commit aea17690ac74a44770d634809d16fd5887bbef80 by david.allsopp
Treat OCAML_BINANNOT_WITHENV as unset when empty

This environment is intended to be used in the context of
OCAML_BINANNOT_WITHENV=1 to enable it, so treat OCAML_BINANNOT_WITHENV=
as if it weren't set at all.
The file was modifiedfile_formats/cmt_format.ml
Commit f0e5a481af6d6add5337968dd8a5747ef06574a3 by david.allsopp
Add some limited information about CAMLSIGPIPE
The file was modifiedruntime/win32.c
The file was modifiedruntime/startup_byt.c
Commit a69fbd2890de42657fb70a05c5c50212877d10f3 by david.allsopp
Ignore empty OCAML_RUNTIME_EVENTS_ variables

The handling of OCAML_RUNTIME_EVENTS_DIR was incorrect if the value as
"Set But Null" and the intention in the manual for
OCAML_RUNTIME_EVENTS_START and OCAML_RUNTIME_EVENTS_PRESERVE is clearly
that they should be set to non-empty values in order to trigger the
required effect.

All three variables are now ignored if they are set, but to an empty
string.
The file was modifiedruntime/runtime_events.c
The file was modifiedotherlibs/runtime_events/runtime_events.mli
Commit 1f6d830848d24e77a3529284acb13e37858a602d by david.allsopp
Harden processing of SOURCE_DATE_EPOCH in ocamldoc

Previously, running:

SOURCE_DATE_EPOCH= ocamldoc

resulted in an uncaught Failure "float_of_string" exception. The
processing of SOURCE_DATE_EPOCH is firstly hardened to cope with parsing
errors and then a one-time warning is displayed the first time it's
actually used (at present it's only required in Odoc_man).
The file was modifiedocamldoc/odoc_man.ml
The file was modified.depend
The file was modifiedocamldoc/odoc_misc.ml
The file was modifiedocamldoc/odoc_misc.mli
Commit 01c197f549775cb88b4353423f6949cf41a22abc by david.allsopp
Ignore blank OCAMLRUNPARAM, OCAMLLIB and CAMLLIB

Previously, if OCAMLRUNPARAM was "Set But Null", CAMLRUNPARAM was
completely ignored. Similarly, a "Set But Null" value for OCAMLLIB
caused CAMLLIB and subsequently the default location of the Standard
Library to be ignored. Especially for OCAMLLIB/CAMLLIB, this behaviour
is counter-intuitive, as it's highly unlikely to be useful.

Now, if OCAMLLIB is set, but to the empty string, then CAMLLIB is
checked and, more importantly, if it is either not set or also set to
the empty string then the default location of the Standard Library is
still used. For consistency, if OCAMLRUNPARAM is set, but to the empty string,
then CAMLRUNPARAM is read.
The file was modifiedChanges
The file was modifiedstdlib/.depend
The file was modifiedtestsuite/tests/backtrace/backtrace2.reference
The file was modifiedruntime/startup_aux.c
The file was modifiedstdlib/hashtbl.ml
The file was modifiedutils/config.common.ml.in
Commit 3f37ec5d9cd7792a47d3c92b8e4eba5e6a8fb302 by david.allsopp
Ignore empty components in PATH-like things

POSIX recognises empty components in a PATH-like variable as meaning "."
(the current directory). This is reflected in the processing of
OCAMLTOP_INCLUDE_PATH, CAML_LD_LIBRARY_PATH and ld.conf where either a
blank component or a blank line is interpreted as "."

Somewhat confusingly, this processing is applied inconsistently between
Unix and Windows (it's confusing given that Windows more readily
includes the current working directory by default in PATH searches).

It also has the side-effect that a "Set But Null" environment variable
is interpreted as "." which counter-intuitively makes
CAML_LD_LIBRARY_PATH= ocamlrun add the current working directory to the
search path.

Blank lines and empty components of both OCAMLTOP_INCLUDE_PATH and
CAML_LD_LIBRARY_PATH are now ignored. The current working directory can
still be explicitly included, of course, by adding a "." entry/line
where required.
The file was modifiedruntime/win32.c
The file was modifiedruntime/unix.c
The file was modifiedruntime/dynlink.c
The file was modifiedChanges
The file was modifiedutils/misc.ml
The file was modifiedtestsuite/tools/test_ld_conf.ml
The file was modifiedutils/misc.mli
The file was modifiedruntime/startup_byt.c
Commit b0551d4af12e6a842e10ff277dbc76780b05275d by david.allsopp
Add %shared_libraries primitive

Exposes the value of SUPPORT_DYNAMIC_LINKING.
The file was modifiedlambda/lambda.ml
The file was modifiedlambda/printlambda.ml
The file was modifiedmiddle_end/closure/closure.ml
The file was modifiedmiddle_end/flambda/closure_conversion.ml
The file was modifiedruntime/unix.c
The file was modifiedlambda/lambda.mli
The file was modifiedlambda/translprim.ml
The file was modifiedruntime/win32.c
The file was modifiedbytecomp/bytegen.ml
Commit ae85f9bb2f9c33653366b72e5e9240b0e459769a by david.allsopp
Bootstrap
The file was modifiedboot/ocamllex
The file was modifiedboot/ocamlc
Commit d0e76ff91aefb76422a1d88f92b971a8ff36ee1a by david.allsopp
Improve the "dynamic loading not supported" error

It is possible, especially when using Dynlink, to end up in the
situation where a bytecode runtime which doesn't support dynamic loading
is asked to load support DLLs (e.g. a bytecode image with a DLLS
section, or a cma archive passed to the toplevel/Dynlink which has a
non-empty lib_dllibs list).

Previously, the error message would refer to the name of the first DLL
being loaded and simply state that dynamic loading is not supported. The
confusing part is that typically this would refer to a DLL which is not
on the system.

Now, the bytecode linker only writes DLLS and DLPT when there are
entries to write in them, and the runtime, toplevel and Dynlink provide
a direct explanation that dynamic loading is needed, but is not
available. In particular, the error now refers to the file which is
being loaded (i.e. the bytecode executable or the .cma file) rather than
a .so file which doesn't exist.
The file was modifiedChanges
The file was modifiedotherlibs/dynlink/byte/dynlink.ml
The file was modifiedtoplevel/byte/topeval.ml
The file was modifiedruntime/startup_byt.c
Commit 2eda1aec16d0dc7379420a18f82c9f7110eb1d6c by david.allsopp
Free tables after handing off to Dynlink

In the debug runtime, caml_prim_name_table remains for the lifetime of
the program, as it's used by instrtrace.c, but in normal operation, once
the list of primitives has been handed over to Dynlink, it's no longer
required. In the normal runtime, it's now freed after this handover.

In passing, strings themselves are no longer duplicated, as the code
path is a good deal simpler than it used to be, and the bytecode section
itself can reliably be used as the underlying buffer for
caml_prim_name_table.

caml_shared_libs_path is only kept at all to be handed over to Dynlink.
It, along with the two underlying buffers for CAML_LD_LIBRARY_PATH and
ld.conf are freed after the call.
The file was modifiedruntime/startup_byt.c
The file was modifiedruntime/dynlink.c
Commit 3a934adc486a6000b37d0d33b57d167c8f6fc622 by david.allsopp
Move print_magic and print_config out of caml_params

They are only used by the bytecode runtime and can be made static to
startup_byt.
The file was modifiedruntime/startup_byt.c
The file was modifiedruntime/startup_aux.c
The file was modifiedruntime/caml/startup_aux.h
Commit 8cb96287d83bff483219a007e9eafc09b4dc5139 by david.allsopp
Preserve option R in caml_runtime_parameters

The setting for R was previous omitted in Sys.runtime_parameters, since
it was only processed directly by the Hashtbl module and not stored in
the runtime. Option R is now processed in caml_parase_ocamlrunparam and
stored to be accessed and updated via new primitives for the Hashtbl
module.

Co-authored-by: David Allsopp <david.allsopp@metastack.com>
The file was modifiedstdlib/hashtbl.ml
The file was modifiedstdlib/.depend
The file was modifiedruntime/caml/gc_ctrl.h
The file was modifiedruntime/startup_aux.c
The file was modifiedtestsuite/tests/backtrace/backtrace2.reference
The file was modifiedruntime/gc_ctrl.c
Commit 1a866031dd5f826482fdb3ce88e8556962fa5bce by david.allsopp
Swap the V and v in caml_runtime_parameters

Consistency - options displayed in alphabetical order with the uppercase
letter appearing before the lowercase letter
The file was modifiedruntime/gc_ctrl.c
Commit 57412ce0a9cf977e5e92059eabb7a9aecc22cbed by david.allsopp
Add -set-runtime-default to the compilers

When linking an executable, allows to set default to OCAMLRUNPARAM
values. This new OCAMLRUNPARAM string is accessible using the
"caml_executable_ocamlrunparam" symbol or is embedded in a bytecode
section.

Co-authored-by: David Allsopp <david.allsopp@metastack.com>
The file was modifiedasmcomp/cmm_helpers.mli
The file was modifiedutils/clflags.mli
The file was modifiedasmcomp/cmm_helpers.ml
The file was modifiedbytecomp/bytelink.ml
The file was modifieddriver/compenv.ml
The file was modifiedruntime/startup_byt.c
The file was modifieddriver/maindriver.ml
The file was modifiedasmcomp/asmlink.ml
The file was modifiedman/ocamlrun.1
The file was modifiedutils/clflags.ml
The file was modifiedruntime/gc_ctrl.c
The file was modifieddriver/compenv.mli
The file was modifiedtools/objinfo.ml
The file was modifiedruntime/gen_primsc.sh
The file was modifiedruntime/startup_aux.c
The file was modifiedruntime/caml/startup_aux.h
The file was modified.depend
The file was modifiedbytecomp/bytesections.ml
The file was modifiedmanual/src/cmds/runtime.etex
The file was modifiedChanges
The file was modifiedbytecomp/bytesections.mli
Commit 064aa0f456a2f269c3e6b1397440031df67f7cfb by david.allsopp
Test -set-runtime-default in test-in-prefix

The test programs in the run after the prefix has been renamed are
compiled with `-set-runtime-default R`, and the test program verifies
that Hashtbl.is_randomized returns the expected value.
The file was modifiedtestsuite/tools/testLinkModes.ml
Commit f50156ff39279516c783ae0f1042f542b9d07458 by david.allsopp
Re-order initialisations in bytecode

In bytecode startup, defer allocating memory until after the bytecode
image has been loaded as far as possible.
The file was modifiedruntime/startup_byt.c
Commit a5a53c9aec61969c02aeef4748e3a7293c1840ff by david.allsopp
Support c=1 mode in ocamlrun

The runtime's pooling mode has a slight Catch-22 problem for ocamlrun
when enabled using -set-runtime-default. Opening the bytecode file and
reading the ORUN section requires the memory subsystem.

In this revised version, caml_main in bytecode is particularly careful
to track exactly what will have been allocated prior to reading the ORUN
section and if ORUN requires the system to start pooling mode, the
runtime now takes temporary malloc'd copies of everything which has been
made so far so that it can be safely copied with a caml_stat_alloc
_after_ pooling mode has been enabled.
The file was modifiedruntime/caml/misc.h
The file was modifiedruntime/startup_byt.c
The file was modifieddriver/maindriver.ml
Commit c3c37e34913a943b071da4bedbc8c503b2afe0b1 by david.allsopp
Fix C library options for win32unix

-lws2_32 and -ladvapi32 are already supplied by default, so they don't
need to be in unix.cma/unix.cmxa. However, they do need to be passed
when building unix.cmxs, and they were previously acquired via
unix.cmxa. Tweak the way LDOPTS is used in Makefile.otherlibs.common
(which now is only used for the unix library) so that it's correctly
passed to both ocamlopt and ocamlmklib.
The file was modifiedtestsuite/tools/testLinkModes.ml
The file was modifiedChanges
The file was modifiedotherlibs/Makefile.otherlibs.common
The file was modifiedotherlibs/unix/Makefile
Commit c76d9b49b3c934945832e5e126aad1139f8011ca by david.allsopp
Build and install threads.cmxs

Crucially, the corrects the flags used for creating a DLL on Windows,
allowing threads.cmxs to be loaded in ocamlnat.
The file was modifiedChanges
The file was modifiedotherlibs/systhreads/st_stubs.c
The file was modifiedtestsuite/tools/testToplevel.ml
The file was modifiedtestsuite/tools/testDynlink.ml
The file was modifiedotherlibs/systhreads/Makefile
Commit 7ef74f3abfe2d18272a71e8127cd82f53290b4e4 by david.allsopp
Fix inclusion of libraries when partial linking

ld -r (certainly in GNU binutils) has an empty search path - co-opt the
MSVC search code and always resolve libraries when partial linking,
except this time _ignore_ the ones which are missing. This seems to fit
the rest of -output-complete-obj, given that the _standard_ C libraries
are also omitted (-lm, -lpthread, etc.)
The file was modifiedtestsuite/tools/testLinkModes.ml
The file was modifiedChanges
The file was modifiedutils/ccomp.ml
Commit 6c89d07cb133baec113005f641e0c24922cc55b6 by david.allsopp
Use entrypoint flexdll branch

Fixes loading unix.cmxs in Cygwin64
The file was modifiedtestsuite/tools/testToplevel.ml
The file was modifiedflexdll
The file was modifiedtools/ci/inria/main
The file was modifiedtestsuite/tools/testDynlink.ml
Commit 2d22275db15d0edb871bd4fccffee272aff63e40 by david.allsopp
Stop installing and documenting config_main, etc.

Config_main and Config_boot are built to ensure in the build that
utils/config.generated.ml.in and utils/config.fixed.ml are kept in sync
(so that the next bootstrap doesn't unexpectedly break). However,
because these files were generated in the utils directory, they were
picked up both by the install recipe and also when generating API
documentation.

It's slightly hairy to remove the wildcards and use filter, because we
can easily end up with command lines which are too long (even on Unix),
so instead these two modules are now generated in utils/config/
The file was modifiedMakefile
The file was modified.gitignore
The file was modified.depend
The file was modifiedtestsuite/tools/testRelocation.ml
Commit aea51cf30dfe8ccdf1c8eec6f12bc3e7623a21cb by david.allsopp
Use clang-cl for flexdll support objects
The file was modifiedtestsuite/tools/toolchain.ml
The file was modifiedMakefile
Commit 012541cad9b12409e12bbd42464d7cc045348580 by david.allsopp
Two minor clean-ups in the in-prefix-tests

Dead code in the Makefile and the less-trodden path in
Test_ld_conf.ensure_dir contained an obvious incorrect function call...
The file was modifiedtestsuite/in_prefix/Makefile.test
The file was modifiedtestsuite/tools/test_ld_conf.ml
Commit 6df2306446fb9bb94c2d5ff76cfc3e4c5e2a361e by david.allsopp
Add caml_output_value_with_compat primitive

Alternate version of caml_output_value which returns a boolean
indicating if the result was 32-bit compatible and would have succeeded
if Compat_32 had been included in the flags.
The file was modifiedruntime/extern.c
Commit 7994198c4f172b37250a8b732c29405b061d8738 by david.allsopp
Split Meta into two

All the functions in Meta are now only required by the toplevel, however
two of them are still quite tangled up with Symtable. Begin the process
of disentanglement by moving those two functions to Symtable and the
remaining ones directly to the bytecode toplevel (Dynlink already has
its own implementations).
The file was modifiedtoplevel/byte/trace.ml
The file was modifiedbytecomp/symtable.ml
The file was removedbytecomp/meta.mli
The file was modifiedtoplevel/byte/topeval.ml
The file was modifiedtestsuite/tests/tool-toplevel/pr9701.compilers.reference
The file was modifiedotherlibs/dynlink/byte/dynlink_symtable.ml
The file was modifiedMakefile
The file was removedbytecomp/meta.ml
The file was modifiedtestsuite/tests/tool-toplevel/pr6468.compilers.reference
The file was modified.depend
The file was modifiedruntime/meta.c
Commit 9a38dc4ebca613e28187744c6d1b05b5870a5523 by david.allsopp
Omit CRCS if caml_reify_bytecode isn't used

Bytecode images (including for -output-obj) now only include the CRCS
section if the image actually needs dynamic loading (which is identified
by the use of the caml_reify_bytecode primitive which is only used by
the toplevel and dynlink).
The file was modifiedbytecomp/bytelink.ml
Commit 508027d42ae2222aa0d543aca9b2a0ccd88ae688 by david.allsopp
Eliminate post-processing of bootstrap artefact

In order to be repeatable, the coreboot cycle routinely has to relink
both boot artefacts with a fixed configuration. It's not therefore much
more of a stretch to link those artefacts with the required flags to
suppress both the header (and RNTM section, if applicable) and debugging
information.

Combined with the previous change to suppress CRCS when the image
doesn't use dynamic loading, the coreboot cycle can be accomplished
without having to post-process the artefacts with stripdebug.
The file was modifiedboot/ocamlc
The file was modifiedboot/ocamllex
The file was modifiedMakefile