Skip to content
Success

Changes

Summary

  1. [refactor] ocamltest: refactor run_test_tree (details)
  2. [refactor] ocamltest: refactor run_test_tree (details)
  3. ocamltest_stdlib.ml: concatmap => List.concat_map (details)
  4. Revert "Merge pull request #13457 from MisterDA/caml_stat-annotations" (details)
  5. Changelog, small improvements (details)
  6. fix 13501 by reverting 766bd76 (details)
  7. Fix #13501 (details)
  8. ocamltest: only report 'passed' when a full path passed (details)
  9. release howto: update to godbolt Compiler Explorer (details)
  10. Name the explicit constants used with caml_verb_gc (details)
  11. Allow configure --enable-frame-pointers for ARM64 Linux and macOS (details)
  12. Store sp in temporary register x19 during Iextcall (details)
  13. Add frame pointers support for ARM64 Linux and macOS. (details)
  14. Work around clang/gcc not inlining C functions in the runtime (details)
  15. Add forty_two test from PR#11031 as exceptions.ml (details)
  16. Add changelog entry (details)
  17. Rename. (details)
  18. Split line. (details)
  19. predef: add a variant type of all predefined type constructors (details)
  20. Changes (details)
  21. typing/predef.ml: refactor decl_of_type_constr (details)
  22. Update otherlibs/systhreads/st_stubs.c (details)
  23. Use AC_CHECK_DECL (details)
  24. Review (details)
  25. Simplify the checking on caml_global_data (details)
  26. docs(release-info/howto.md): improve typo (#13506) (details)
  27. docs(release-info/howto.md): change formatting (#13523) (details)
  28. Do not divide by zero in gc debug output. (details)
  29. [refactor] Genprintval.tree_of_{variant, record} (details)
  30. [refactor] Genprintval.tree_of_{list, array} (details)
  31. [refactor] Genprintval.tree_of_lazy (details)
  32. update Genprintval.tree_of_lazy for OCaml 5 (details)
  33. [refactor] Genprintval.tree_of_polyvariant (details)
  34. [refactor] Genprintval: clarify exception flow (details)
  35. Do not write to ring after going out of stw participant set. (#13529) (details)
  36. Confirm runtime events ring is still active after callback. (#13522) (details)
  37. Rework backup thread termination. (details)
  38. Add infrastructure to force all domain threads to exit. (details)
  39. Bring back "memory cleanup at exit" mode, step 1. (details)
  40. Bring back "memory cleanup at exit" mode, step 2. (details)
  41. Fix memory leak on unlikely error. (details)
  42. Skip freeing some memory during cleanup if TSan is enabled. (details)
  43. Correctly account for mutex locks after forks. (details)
  44. Document the return of memory cleanup mode. (details)
  45. [refactor] lambda/matching: make low/high interval bounds optional (details)
  46. [refactor] lambda/matching: split combine_constructor in two functions (details)
  47. Types in 'coerce' are principally known (details)
  48. Add test; add more calls to generic_instance (details)
  49. Changelog (details)
  50. Fix riscv64 oracle. (details)
  51. Use C99 flexible array member syntax (#13354) (details)
  52. Annotate alloc/free open/close functions with compiler attributes (details)
  53. explicit local substitution (#13388) (details)
  54. Detect support for compiler attributes (details)
  55. review: names (details)
  56. update Changes (details)
  57. Add a note about what is needed to start lldb from a remote terminal on MacOS. (details)
  58. Update explanatory comments on CAMLno_asan and CAMLno_tsan (details)
  59. refactorization: remove a copy of String.starts_with (details)
  60. Code documentation comments on Translclass (#13314) (details)
  61. Use both methods. (details)
  62. noop (details)
  63. Conditionally print stderr (details)
  64. Update otherlibs/systhreads/st_stubs.c (details)
  65. Buffer.add_bytes, Buffer.add_subbytes don't convert bytes to string (details)
  66. String.escaped returns its argument if there is nothing to escape (details)
  67. simplify Digest.udpate (details)
  68. Digest no longer convert bytes to string before hashing (details)
  69. Changes (details)
  70. Revert "Use that instead" (details)
  71. Remove references to safe-string in the stdlib (details)
  72. Remove two useless string-bytes conversions from the testsuite (details)
  73. review: isolate all unsafe substitutions (details)
  74. self-review: document assert false (details)
  75. review: rename (details)
  76. Add Runtime_events.EV_EMPTY_MINOR (details)
  77. fix escaping of true/false in printing functions (#13263) (details)
  78. Discuss CAMLnoreturn in memory.h (details)
  79. review: test record error messages with raw identifiers (details)
  80. update Changes (details)
  81. add permission to the parsetree-change workflow (details)
  82. Add explanation to the doc of Hashtbl.create (details)
  83. Add reviewers. (details)
  84. Better. (details)
  85. manual: minor editorial fixes in tutorials/parallelism.etex (#13373) (details)
  86. Add changelog entry for parsetree-change action (details)
  87. Add missing @since documentation to Sys.poll_actions (details)
  88. Sync magic number definition with utils/config.common.ml.in (details)
  89. interp.c: more general API for the bytecode API (details)
  90. Reimplement bytecode callbacks without per-thread bytecode fragments (details)
  91. Bytecode callbacks: make sure there is enough stack space (details)
  92. Test callbacks with many arguments (details)
  93. Changes entry for #13553 (details)
  94. Use nanosleep instead of usleep, if available (details)
  95. Fix compilation of native code systhreads (#13520) (details)
  96. Changes: fix misplaced entry (details)
  97. Add PR review comments. (details)
  98. Silence ld warning with libasmrun_shared.so (details)
  99. Use OBJECT..ENDOBJECT (details)
  100. Apply OBJECT..ENDOBJECT pattern to s390x (details)
  101. [refactor] cmm_helpers: move around the *_caml functions (details)
  102. cmm_helper: less tagging on switches (details)
  103. Changes (details)
  104. Update the "stale" Github action (details)
  105. cleanup ocamldoc{,.opt}{,.exe} in partialclean (details)
  106. Dynlink.loadfile_private: don't hide loaded units until all have been loaded (#13376) (details)
  107. Use <> instead of != for ints (details)
  108. Honour --disable-cfi option for riscv runtime (details)
  109. Add a `-keywords <version?+list>` flag (#13471) (details)
  110. Fix caml_stat_wcsdup_noexc raising in out-of-memory (#13567) (details)
  111. -dsource: fix raw literal escape (#13391) (details)
  112. Fix #11865 by detecting deletion of a root during root scanning. (#13584) (details)
  113. Fix #13579 by removing equations_generation (#13583) (details)
  114. error messages: disable text-based inline code styling (#13563) (details)
  115. Perform a shallow clone of git submodules by default (details)
  116. Makefile.config: restore the {OCAMLC,OCAMLOPT}_{CFLAGS,CPPFLAGS} variables (details)
  117. Unify separate atomic counter functions in runtime. (details)
  118. add simpler example for #13501 (details)
  119. Always use atomic counter functions to access atomic counters. (details)
  120. Conditional windows compilation. (details)
  121. move generalization to Typedecl.update_type (details)
  122. Fix #13495: typechecker crash while typing objects  (#13514) (details)
  123. Better. (details)
  124. Rename (details)
  125. Split. (details)
  126. Update otherlibs/systhreads/st_stubs.c (details)
  127. Update configure.ac (details)
  128. Regenerate (details)
  129. Better (details)
  130. Update configure.ac (details)
  131. Regenerate. (details)
  132. Match GNU/Hurd last (details)
  133. adds data_types to dune configuration (details)
  134. Use '$' instead of '.' to separate module names in symbol names. (details)
  135. -dsource: \#mod is not an operator in type context (details)
  136. Minor header inclusion fixes (details)
  137. Audit the installed headers for C++ compatibility (details)
  138. Test whether C++ stubs can be compiled and linked (details)
  139. Fix CFI annotation when invoking noalloc C code. (details)
  140. Fix Numbers.Int_base.compare (#13606) (details)
  141. Refactor `Typecore.type_application` (details)
  142. Do not include <runtime/caml/config.h> unless truly necessary. (details)
  143. Fatal error if allocations fail inside lf_skiplist.c (details)
  144. Fatal error if OOM inside skiplist.c (details)
  145. [minor] Fix comments (details)
  146. Hold lock around ephemeron debugging code. (details)
  147. Enable native backend on x86_64 GNU/Hurd (details)
  148. Match GNU/Hurd last (details)
  149. Enable natdynlink on x86_64 GNU/Hurd (details)
  150. Remove unused runtime due to recursive value compilation changes. (details)
  151. bootstrap (details)
  152. review: extended longident explanation (details)
  153. update Changes (details)
  154. error messages: enable formatting for warnings (details)
  155. error messages: doc for partial match warning (details)
  156. review: names for error report formatting (details)
  157. self-review: add missing spaces (details)
  158. warnings: fine-tune principality warnings (details)
  159. warnings: tweak break hints for flambda warning (59) (details)
  160. update Changes (details)
  161. Update format.ml to avoid Queue.empty (#13572) (details)
  162. Various fixes to set thread name (details)
  163. Refactor: use std function to filter a list in odoc_ast (details)
  164. Add changelog entry for #13612 (details)
  165. gprinttyp: pretty printing for levels (#13621) (details)
  166. configure: use $warn_error_flag instead of -Werror (details)
  167. configure: stop checking for math.h (details)
  168. configure: assume presence of unistd.h on POSIX systems (details)
  169. Add a short path for String.concat and String.split_on_char (#13620) (details)
  170. Pure re-ordering of major_gc.c, to gather related functions together. (details)
  171. Banner comments for each section of major_gc.c. (details)
  172. lexer: lowercase-only delimiters for quoted strings (#13628) (details)
  173. Added a few location while parsing (#13624) (details)
  174. Suggest regenerating configure by running tools/autogen directly (details)
  175. Suggest a Docker image to regenerate the configure script (details)
  176. Changes: add myself as a reviewer for PR #13601 (details)
  177. Changes (details)
  178. Update tsan oracles after 7f5719c2651292ccd20c6e2644d44cf6dd360105 (details)
  179. Fix #13598 by protecting partial_pred (details)
  180. properly protect wrap_trace_gadt_instances (details)
  181. follow Florian's suggestion (details)
  182. add counterexample for #13599 (details)
  183. Update tsan and frame-pointer oracles after 703ba8eac4da669f793d84452a6137f333254db2 (details)
  184. Use correct CFA register on MacOS. Improve linker version detection. (details)
  185. use backtracking in Ctype.unify_gadt (details)
  186. add new failure example (details)
  187. optimize unify_gadt to only check for free variables in the expected type (details)
  188. add comment in unify_pat_types_refine (details)
  189. update comment in ctype.mli (details)
  190. update result of examples (details)
  191. Fix mangling of caml_system$frametable (details)
  192. Changes bookkeeping (details)
  193. Put G into FUNCTION, END_FUNCTION and OBJECT (details)
  194. Fix broken frame pointer tests from #13050 (details)
  195. Fix a pattern in configure (details)
  196. Fix syntax details in HACKING.adoc (details)
  197. Update to libtool 2.5.4 (details)
  198. Update to Automake 1.17 (details)
  199. Update GNU config (details)
  200. Changes bookkeeping (details)
  201. Remove unneeded Automake files (details)
  202. Add the missing `$(EXE)` for `stripdebug` invocations (details)
  203. typecore.ml: documentation comments for untyped_apply_arg (details)
  204. typecore.ml: documentation comments for type_application (details)
  205. type_args: move [expand_head] to match trunk evaluation order (details)
  206. fix a comment (details)
  207. typecore.ml: small location improvement in an type_application error message (details)
  208. minor renaming for consistency (details)
  209. typecore.ml: an [instance] was possibly missing compared to the trunk version (details)
  210. typecore.ml: minor tweak (details)
  211. runtime: help gcc static analyzer by widening a test (details)
  212. Avoid traversing C parts of frame pointer chain when reallocating stack (details)
  213. Include the `runtime` directory only for ocamltest (details)
  214. Use `target` instead of `host` to detect the C toolchain (details)
  215. Use `target` instead of `host` when relevant in configuration (details)
  216. Detect a _build_ C toolchain to build `sak` (details)
  217. Check that the OCaml versions are compatible for a cross compiler (details)
  218. Improve documentation of Map.S.add_to_list (details)
  219. Improve the error message when GADT parameter variance cannot be checked (#13663) (details)
  220. Better errors for illegal recursive modules (#13646) (details)
  221. release-info: update the prospective calendar (details)
  222. Use a `TARGET_BINDIR` configure variable instead of `--with-target-bindir` (details)
  223. Add a configurable library directory on target (details)
  224. Detect `flexlink` only on relevant targets (details)
  225. Add a `Config` entry for the compression libraries (details)
  226. Add a `Config` entry for the target OS type (details)
  227. Bootstrap (details)
  228. Add a Makefile.cross with rules to build a cross compiler (details)
  229. Enable bootstrapping flexdll in the cross-compiler setting (details)
  230. Add cross-compilation cases to `sak` (details)
  231. Document cross compilers in INSTALL.adoc (details)
  232. Add a changelog entry for cross compilers (details)
  233. Add a CI workflow to test cross compilers (details)
  234. Improve `regular_nested` example for “polymorphism” chapter (details)
  235. Changes bookkeeping (details)
  236. Remove redundant ~refine argument in Typecore, and clarify use of unify_gadt. (#13660) (details)
  237. Only call Cygwin setup once (details)
  238. Fix logic error in configure.ac (details)
  239. Avoid register stall on conversion operations (details)
  240. driver: use compilation unit name in dependency in native linker (details)
  241. Changes (details)
  242. review: testsuite explanation (details)
  243. update Changes (details)
  244. [refactor] genprintval: abstract away the use of Out_name (details)
  245. a testsuite for toplevel printing of constructors (details)
  246. genprintval: printer shorter paths for constructors (details)
  247. genprintval constructor printing: extra test case (details)
  248. testsuite example from Florian (details)
  249. Changes (details)
  250. runtime: remove backup_thread_running (details)
  251. Update GitHub CI Ubuntu from 22.04 to 24.04. (#13665) (details)
  252. Add eager bool functions: Bool.(logand, logor, logxor). (#13662) (details)
  253. Refactor in typing/typetexp (details)
  254. Lifted code out for tree_of_typexp (details)
  255. Refactor in parsing/pprintast (details)
  256. Refactor in typing/typemod (details)
  257. improved style (details)
  258. Teach debugger scripts about variable number of domains. (details)
  259. Fix #13688 by moving before_generalize call inside with_new_pool (details)
  260. update comment (details)
  261. domain.c: simplify caml_domain_is_multicore (details)
  262. Changes (details)
  263. manual: switch pdf renderer to lualatex (details)
  264. manual: don't escape non-ascii unicode character in grammars (details)
  265. manual: document the switch to basic unicode support (details)
  266. Changes placeholder (details)
  267. review: changes (details)
  268. review: Unicode capitalization (details)
  269. manual: transf.mll better escaping (details)
  270. review: use Unicode vocabulary (details)
  271. review: stronger encoding wording (details)
  272. review: rewording and expand Latin-1 block (details)
  273. github workflow: add texlive-luatex for the manual (details)
  274. Introduce `Typedtree.map_apply_arg` (details)
  275. Make matching exhaustive (details)
  276. Reword some comments. (details)
  277. Rename `type_omitted_parameters` (details)
  278. Update reviewers list in changelog (details)
  279. Changes bookkeeping (details)
  280. Rewrite mutable globals for GC control to be atomic (details)
  281. Revert "Include the `runtime` directory only for ocamltest" (details)
  282. Fix static builds of the compiler (details)
  283. manual: fix name of caml_hash_variant in the C interface (details)
  284. faster caml_continuation_use_and_update_handler_noexc (details)
  285. Changes (details)
  286. Support unicode identifiers in comments (details)
  287. typos in ephemeron-related comments (details)
  288. typemod: labeled argument [strengthen:bool] for type_{module,application} (details)
  289. typemod: labeled argument [funct_body:bool] for type_{module,application,open_decl} (details)
  290. Add test for unicode identifier in comment (details)
  291. Add `Char.Ascii` module (#13695) (details)
  292. [minor] Document locking behaviour of C channels (details)
  293. Fix deadlock in runtime events (details)
  294. Avert potential deadlock in caml_iterate_named_values (details)
  295. Use caml_plat_lock_non_blocking in signals.c, clarify signal installation (details)
  296. Replace caml_plat_locking with caml_plat_non_blocking in io.c (details)
  297. Document remaining uses of caml_plat_lock (details)
  298. Changes (details)
  299. Changes (details)
  300. Revert "Replace caml_plat_locking with caml_plat_non_blocking in io.c" (details)
  301. Document use of caml_plat_lock_blocking (details)
  302. Correctly fix the runtime events deadlock (details)
  303. Changes (details)
  304. Use a more explicit name for [remaining_function_type] (details)
  305. Pin Cygwin back to 3.5.4 (details)
  306. Correct OOM semantics of caml_stat_strdup_to_os (details)
  307. fix subtyping error message for some polymorphic variants (details)
  308. Create symlinks on Windows when available (details)
  309. Set MSYS and CYGWIN permanently (details)
  310. Test installations on the MSVC workflow (details)
  311. Add Result.retract. (details)
  312. Update changes. (details)
  313. Promote failing test. (details)
  314. Add a dummy `caml_debugger_saved_instruction` when `HAS_SOCKETS` is false (details)
  315. Fix Dynarray.for_all's docstring (details)
  316. Bump multicoretests to version 0.6 (details)
  317. Fix minor typo in Ephemeron documentation (#13730) (details)
  318. Add a Changes entry (details)
  319. Add `filteri` to `Seq` (#13729) (details)
  320. Add Either.retract (#13731) (details)
  321. instr_size fixes for arm64 (details)
  322. Add enable-codegen-invariants flag for instr_size debugging (details)
  323. Improve performance of Weak.add (#13737) (details)
  324. Correct name of coccinelle test (details)
  325. Fix coccinelle linking regression test on Cygwin (details)
  326. Simplify test script slightly (details)
  327. Add enable-codegen-invariants flag to CI testing (details)
  328. Optimize Weak.find_aux (#13740) (details)
  329. String starts_with/ends_with tests should run unconditionally (#13741) (details)
  330. Add caml_stat_char_array_{to,of}_os (details)
  331. Annotate more caml_stat_* functions (details)
  332. Add Linux ARM64 build (details)
  333. Update build.yml (details)
  334. Add a .editorconfig file (details)
  335. Document that custom finalizers must not access the OCaml heap, etc. (details)
  336. Explicit units in time management (details)
  337. Prevent erroneously waiting for an unbounded time in Unix.select (details)
  338. fix wrong PR number in Changes (details)
  339. changes bookkeeping (details)
  340. Fix a documentation typo in `seq.mli` (details)
  341. Refactor of previous_arg_loc (details)
  342. Lift may_warn out of match in collect_apply_args (details)
  343. Major refactor in collect_apply_args to prepare for a new function kind (details)
  344. Corrected tabulation level typo (details)
  345. Moved proper_exp_loc and unify_exp to the top of the file for future uses in collect_apply_args (details)
  346. Corrected typo in comment that came from an argument renamed in a previous change (details)
  347. Updated Changes (details)
  348. Simplified a match (based on reviewers feedback) to remove an assert false (details)
  349. Inlined `eliminate_optional_arg` and `use_arg` (details)
  350. Add machtype on Cmm function parameters (details)
  351. Correct memory_chunk annotation on loads of integers (details)
  352. Add missing kind annotation on Cmm catch arguments (details)
  353. Update comment [get_field_gen] (details)
  354. Update Changes (details)
  355. Allow unboxing of static catch parameters with flambda (#13758) (details)
  356. Update release calendar (details)
  357. Skip emit blank lines in the native-debugger tests (details)
  358. dynlink: cannot open dll error: always escape error message (details)
  359. Describe the termination behaviour in `seq.mli` (details)
  360. Fix for inaccurate live blocks/words stats in compaction (#13774) (details)
  361. Ensure that pool owners are correctly set on pool adoption (#13773) (details)
  362. Reset the major GC's pacing clock after any synchronous GC work. (#13736) (details)
  363. Fix ocamltest line numbers after multiline comments, strings (details)
  364. Use nanosleep when available for the tick thread (details)
  365. Include `asm.h` at the beginning of assembler sources (details)
  366. Detect the need for the GNU note for non-executable stack (details)
  367. Add a `Config` variable for the need of the GNU non-executable stack note (details)
  368. #13764 ocamldep: keywords flag mirroring the ocaml{c,opt} one (#13779) (details)
  369. Immutable arrays (details)
  370. Remove unnecessary iarray primitives (details)
  371. Bootstrap (details)
  372. Add Stdlib.Iarray module (details)
  373. Immutable array tests (details)
  374. Remove .:() indexing operator (details)
  375. Update changelog (details)
  376. Remove IarrayLabels (details)
  377. Output the `.note.GNU-stack` section based on `configure` (details)
  378. Detect support for `.size` and `.type` assembler directives (details)
  379. Add a `Config` variable for the `.size` and `.type` assembler directives (details)
  380. Output the `.size` and `.type` directives based on `configure` result (details)
  381. Add a Changes entry (details)
  382. Use [%extension_constructor] instead of Obj.Extension_constructor.of_val in Type.Id (#13782) (details)
  383. add `Stdlib.phys_equal` (#13753) (details)
  384. Unicode chars in error messages: respect the Unicode notation. (details)
  385. Expose IO_BUFFER_SIZE as Sys.io_buffer_size, merge IO_BUFFER_SIZE and UNIX_BUFFER_SIZE (#13589) (details)
  386. Fix indentation (whitespace change only) (details)
  387. Display the configure command on AppVeyor (details)
  388. Restore AppVeyor configure-caching (details)
  389. Fix under-estimated Lcondbranch instruction size (details)
  390. -d(no-)canonical-ids flag (unset by default): boilerplate, no implementation (details)
  391. implement Ident canonicalization (details)
  392. Changes (details)
  393. -dcanonical-ids: un-hide /0 stamps (details)
  394. format: add a out_width function to Format device (details)
  395. review: add a use of "pp_string_as" (details)
  396. format: install utf8_scalar_width by default (details)
  397. Fix windows test (details)
  398. review: before_width computation and documentation (details)
  399. review: clarify when [out_width] is called (details)
  400. Update Changes (details)
  401. review: documentation typo and desync (details)
  402. Be consistent with the Windows triplets (details)
  403. Consolidate and document the Windows triplets (details)
  404. Fix backslashes in runtime/build_config.h (details)
  405. Move TARGET_LIBDIR to Makefile.build_config (details)
  406. Use C.UTF-8 for the test locale in check-typo (details)
  407. Require all text files to be valid UTF-8 (details)
  408. Stop using non-ascii attribute (details)
  409. Add check-typo to 5.x release branches! (details)
  410. Test check-typo PRs properly (details)
  411. Use non-ascii name rather than utf8 (details)
  412. Labeled tuples (details)
  413. bootstrap (details)
  414. Implement `get_left` & `get_right` in `Either` (#13768) (details)
  415. Missing flexlink bootstrap dependencies (details)
  416. Rename Format.utf8_scalar_width to utf_8_scalar_width (#13794) (details)
  417. array.ml: remove dependency on String module. (details)
  418. Add String.edit_distance with a classic implementation. (details)
  419. String.edit_distance: use a ring buffer of rows instead of a full matrix. (details)
  420. String.edit_distance: add [limit] to bound distance computation. (details)
  421. Add String.spellcheck. (details)
  422. Address review comment from wikku. (details)
  423. String.spellcheck: better default max_dist. (details)
  424. String.edit_distance: add an obvious shortcut for limit <= 1. (details)
  425. Address doc review from Gabriel. (details)
  426. String.spellcheck: compute the word's uchars only once. (details)
  427. Add forgotten run of tools/sync_stdlib_docs. (details)
  428. Address review from Nicolás. (details)
  429. Short path: improve bound check. (details)
  430. String.spellcheck: represent dictionaries by their iteration. (details)
  431. String.edit_distance: reduce window size and add comment about rogue read. (details)
  432. String.edit_distance: jmax computation: guard against reasonable overflows. (details)
  433. Update changes. (details)
  434. Add prefetch support for ARM64, PPC64, RiscV and s390x (details)
  435. Track type of variables bound by `as` (#13763) (details)
  436. OCaml Language Committe: description and link (details)
  437. Tweak comment. (details)
  438. Revert changes to .gitattributes. (details)
  439. Add non-ascii to .gitattributes apparently #13724 was not a revolution. (details)
  440. Fix conflict resolution bug in Changes. (details)
  441. .gitattributes: thinking too much about types. (details)
  442. stdlib: new module Pqueue (details)
  443. a more versatile API (details)
  444. update Changes (details)
  445. give module Make a signature constraint (details)
  446. too late for 5.2 (details)
  447. add Pqueue to stdlib documentation (details)
  448. use Dynarray.is_empty (details)
  449. stdlib: better interface for priority queues (details)
  450. stdlib: yet another interface for priority queues (details)
  451. stdlib: a fourth API for priority queues (details)
  452. various small changes in Pqueue interface (details)
  453. adding a suffix _unordered to iter and fold (details)
  454. priority queues: no more Empty exception (details)
  455. priority queues: remove_min does nothing if the queue is empty (details)
  456. make alldepend (details)
  457. Changes: move Pqueue entry from 5.3 to working version. (details)
  458. Add Uchar.{utf_8_decode_length_of_byte,max_utf_8_decode_length}. (details)
  459. Fix typo (details)
  460. Don't trash the backtraces in `Sys.getenv_opt` (#13727) (details)
  461. Changes: missing parentheses (details)
  462. Added an error detection when generating typing constraints (details)
  463. Added test with class type (details)
  464. testsuite: promote a no-flat-float-array test (details)
  465. PDF manual: add section titles to page right-facing page headers (#13802) (details)
  466. Fix LaTeX formatting of table of operators and their precedences (details)
  467. types: fix a small bug in the scope+marks bitmasking code (details)
  468. Prefer Autoconf EXEEXT to our exeext (details)
  469. Reformat an AS_IF (details)
  470. Update AX_PROG_CC_FOR_BUILD to rev 26 (details)
  471. configure: define outputobj and outputexe flags together (details)
  472. Fix sak build not using the proper build compiler invocation (details)
  473. Add support for unaligned accesses on arm64 (details)
  474. Expose a way to get current timestamp in runtime events (#13785) (details)
  475. Fix forgotten check on validity of a type variable name (details)
  476. Refactored validity check (details)
  477. Updated PR number in Changes (details)
  478. Refactored packed modules types into a record containing a location (details)
  479. Modified parsetree to store type constraints directly with a module packing. (details)
  480. Defactored code in typing/typecore to improve readability (details)
  481. Added tests to ensure this new pattern is in the testsuite (details)
  482. Changes (details)
  483. fix #13778: module S with type t = int uses type t (details)
  484. fix #13788: spellchecking hint, keep module context (details)
  485. check-typo: enforce gawk (details)
  486. Attach new locs to `Ldot` and `Lapply` nodes (details)
  487. Remove polymorphic comparisons of longidents (details)
  488. Stop using longidents in Types.Tpackage (details)
  489. Update dependency info (details)
  490. Add changelog entry for #13302 (details)
  491. Promote changes in test: errors have finer lid locations (details)
  492. bootstrap (details)
  493. Less verbose longident test output (details)
  494. stdlib: add a format_text function for text-like format strings (details)
  495. review: paragraph, tmc implementation and documentation (details)
  496. review: remove blank line coalescing, update description (details)
  497. add Changes entry (details)
  498. review: typo in documentation (details)
  499. review: simpler format_text breaks computation (details)
  500. update Changes (details)
  501. Ensure depth-first search in iterators (details)
  502. Light refactor of caml_unix_random_seed (details)
  503. Use the Windows CSPRNG to get a random seed for Stdlib.Random (details)
  504. Added unused warning on type definitions comming from an `_ as _` (details)
  505. Changes (details)
  506. Moved location of error message to match location and warning settings (details)
  507. Store only potential unused warnings (details)
  508. Made a distinction in the warnings between types and type variables (details)
  509. Print warning when set thread name fails. (#13823) (details)
  510. Fix field initialisation bug in runtime_events.c. (details)
  511. Avoid re-marking ephemerons with trivial data (#13827) (details)
  512. Allow values reachable from ephemeron keys to be collected by minor GC (details)
  513. formatting (details)
  514. Bugfix: Hd_val instead of Tag_val (details)
  515. Infix_tag tweak (details)
  516. Skip running native debugger tests when TSan is enabled. (#13816) (details)
  517. Translmod.type_structure: remove unnecessary plumbing for module block size (#13832) (details)
  518. fix pexp_function documentation (details)
  519. error messages: align spellchecking hints (details)
  520. error messages: spellcheck hints are no longer lazily computed (details)
  521. format_doc: preprocessing function for ralign (details)
  522. Misc.with_aligned_hint: fmt variant (details)
  523. Ensure apt is updated before installing packages (details)
  524. format_doc: fix bug in align functions (details)
  525. review: split `with_aligned_hint` function (details)
  526. update Changes (details)
  527. review: Misc.aligned_hint, better documentation (details)
  528. Add test showing untypeast issue (details)
  529. Fix untypeast handling of pvb_constraint (details)
  530. expose Printast.pattern for debugging (details)
  531. dune support: iarray placeholder (details)
  532. Address review feedback (details)
  533. changes entry (details)
  534. -dtypedtree: print locations for 'extra' nodes (details)
  535. manual: clarify documentation of C macros on integers (details)
  536. document what Location.loc_ghost is (details)
  537. Fewer details (details)
  538. Fix Weak.get_copy not darkening custom blocks (details)
  539. Add note about Val_int truncation (details)
  540. Ensure root safety in caml_register_named_value. (details)
  541. Float.Array.fill: add [@@noalloc] attribute (details)
  542. Float.Array.fill: add [@inline] attribute to expose float-unboxing opportunity (details)
  543. Index all paths components (#13848) (details)
  544. Add `[Float.]Array.{equal.compare}` (#13836) (details)
  545. Fix Changes entry for PR13782 (details)
  546. Add a Repr module to the standard library (details)
  547. Add reviewer to Changes (details)
  548. Add Stephen Dolan's test (details)
  549. Add pointer to ocamltest docs from testsuite/HACKING.md (#13869) (details)
  550. add -i-variance (details)
  551. add the syntax for bivariance (details)
  552. enable -i-variance in tests for variance and constraints (details)
  553. shape printer: less box drifting (details)
  554. shape printer: reduce white spaces (details)
  555. ocamldoc: add option to turn off _ escaping (details)
  556. manual: remove special handling of In_channel and Out_channel (details)
  557. Remove special-casing for socketpair (details)
  558. Re-enable the cloexec.ml test on Windows (details)
  559. Add not-target-windows ocamltest action (details)
  560. Test Unix.create_process as well (details)
  561. Switch from not-windows to not-target-windows (details)
  562. Switch uses of libunix to not-target-windows (details)
  563. Add target-windows ocamltest action (details)
  564. error messsages: convert most hints to submessage (#13838) (details)
  565. Remove out-of-date comment from cloexec.ml test (details)
  566. update Changes (details)
  567. Add Cvar_mut in Cmm to access mutable variables (details)
  568. Enforce proper use of mutability in codegen tests (details)
  569. Add invariant checks for Cmm mutability of variables (details)
  570. Remove Cmm_helpers.bind_nonvar, as bind now has the right semantics (details)
  571. Add tests (details)
  572. Make object stat counters atomic (#13880) (details)
  573. Use a dedicated primitive for Lazy blocks (#13867) (details)
  574. Implement `Dynarray.{exists2, for_all2}` (#13885) (details)
  575. Fix my author name in the contributions (details)
  576. Renamed unify_package into compare_package (details)
  577. Added an inlined record for Tpackage (details)
  578. Lift inlined record out of Tpackage as a new type (details)
  579. BOOTSTRAP (details)
  580. Changed interface of compare_package to take packages as argument (details)
  581. Factor subtype_package out of subtype_rec (details)
  582. Changed interface of package_subtype to take packages as arguments (details)
  583. Factor unify_package out of unify3 (details)
  584. Factor moregen_package out of moregen (details)
  585. Factor eqtype_package out of eqtype (details)
  586. Changed interface of type_package to take a package as argument and return a package (details)
  587. Small improvement of presentation (details)
  588. Changed interface of modtype_of_package to take a package as argument (details)
  589. Introduce a new record for package types in outcometree (details)
  590. Changes (details)
  591. Renamed pack_fields to pack_cstrs in package_type for coherence (details)
  592. Renamed fileds of Typedtree.package_type for less ambiguity with Types.package (details)
  593. Refactor complete_type_list to take a package as argument (details)
  594. #13702 error messages: specialized error messages for non-functors (#13865) (details)
  595. Add reviewers to Changes entry for #13407 (details)
  596. gitignore: ignore macOS executable debug symbols directory (details)
  597. set scope in expand_abbrev rather than rely on update_scope (details)
  598. use Int.max rather than generic max (details)
  599. add log and comments; small change in instance_parameterized_type (details)
  600. Add a test showing unexpected approximated shapes (details)
  601. Use `Pextra_ty` for specific shape paths and correctly index modules in these. (details)
  602. Add changelog entry (details)
  603. Fix C _Atomic in header incompatibility with C++ (details)
  604. Correct regression with `unused-type-declaration` warning (details)
  605. Merge pull request #13829 from clementblaudeau/recsig-substitution-cyclic-check (details)
  606. Remove quotes around \var{...} in intfc manual (details)
  607. Fix documentation of Array.compare regarding the ordering. (#13908) (details)
  608. Enforce evaluation order for generic applications in Closure (#13882) (details)
  609. Mark tests that actually require multicore (#13906) (details)
  610. Fix definition of Fibonacci numbers in the manual (#13912) (details)
  611. Apply BUILD_PATH_PREFIX_MAP to Sys.argv.(0) in cmt (details)
  612. GHA: remove PRISTINE_PATH (details)
  613. GHA: bash is part of Cygwin base (details)
  614. GHA: tell Cygwin's bash to ignore CR line endings (details)
  615. GHA: revisit limits on concurrent Make jobs (details)
  616. GHA: store the Autoconf cache key in the step output (details)
  617. GHA: don't set CC as an env variable (details)
  618. GHA: refactor configure calls in runner.sh (details)
  619. GHA: typo (details)
  620. GHA: split configuration and build (details)
  621. GHA: use a fold for config.log in GHA (details)
  622. Get rid of the @since attribute for the Uchar.hash function (details)
  623. Add Result.product and Result.Syntax (#13696) (details)
  624. Repr.equal is not an operator (#13914) (details)
  625. Add examples to the `Fun` module (details)
  626. Reword some paragraphs in `Fun` examples (details)
  627. Reword more paragraphs in `Fun` examples (details)
  628. Add more examples to `Fun.id` and `const` (details)
  629. Remove problematic examples and add descriptions (details)
  630. Expand the Fun.id dispatching description (details)
  631. Add "advanced"/"real-world" examples (details)
  632. Make function refs headers (details)
  633. Add `Fun.compose` examples (details)
  634. Deindent and improve formatting (details)
  635. Reword some descriptions (details)
  636. Remove problematic `flip` examples (details)
  637. Replace a `compose` example with more involved one (details)
  638. Typos in the Uchar example (details)
  639. Some rewording (details)
  640. Replace the windows path conversion example (details)
  641. Add a Scanf example to id (details)
  642. Add example to const, remove example from compose (details)
  643. Indent code blocks, reorder, reformat, reword (details)
  644. Remove scanf and floatarray examples from id (details)
  645. Prevent overlong lines in code examples (details)
  646. Add a Changes entry (details)
  647. Harden the cloexec.ml test on Windows (details)
  648. Harden cloexec.ml test against virus scanners! (details)
  649. Enrich ocamltest doc about scripts (#13902) (details)
  650. manual: alerts: add sections, in preparation for following commits (details)
  651. manual: alerts: annotate code section as ocaml code (details)
  652. manual: alerts: document how to put alerts on all structure/signature items (details)
  653. Makefile.dev: work around #13817 (#13818) (details)
  654. [refactor] runtime: auxiliary function for allocated_words update (details)
  655. runtime: "suspended" and "resumed" allocations affect the major GC speed (details)
  656. runtime: simplistic support for [ramp_up], [ramp_down] (details)
  657. runtime: count the work suspended by each ramp-up phase (details)
  658. runtime: support nested ramp-up phases (details)
  659. expose ramp_up, ramp_down as externals in stdlib/Gc (details)
  660. Changes entry (details)
  661. runtime: log ramp-up / ramp-down in SLICESIZE GC logs (details)
  662. Gc.ramp_up: re-raise exceptions, but ramp-down right before (details)
  663. [minor] stray fix in runtime/array.c (details)
  664. runtime/array.c: expose {uniform_,float}array_concat, use it in Float.Array (details)
  665. Rename ccomptype to ccomp_type for consistency (#13927) (details)
  666. Add Result.{get_ok',error_to_failure} (#13720) (details)
  667. Add List.singleton and Seq.singleton (details)
  668. Fix @since 5.0 annotation loss in domain.mli and effect.mli by swapping alert and header (#13934) (details)
  669. mystery reviewer for 13643 (details)
  670. Added tests for abstraction of whole module types during avoidance (details)
  671. Removed abstraction of whole module types when avoiding a field (details)
  672. Fix test weak-ephe-final/ephe_custom.ml (#13940) (details)
  673. [refactoring] move Matching.get_mod_field to Lambda.transl_mod_field (details)
  674. [refactoring] Lambda.transl_mod_field, move 'lazy' to clients (details)
  675. [refactor] Lambda: merge transl_mod_field and transl_prim (details)
  676. update .depend (details)
  677. Fix #13939 (details)
  678. Typeopt: better handling of deeply nested unboxed types (details)
  679. Add test (details)
  680. Changes (details)
  681. runtime: migrate caml_{alloc,update}_dummy from alloc.c to obj.c (details)
  682. caml_update_dummy: the [Infix_tag] case is dead code (details)
  683. [minor] value_rec_compiler: refactor alloc/update calls (details)
  684. recursive values: introduce [caml_update_dummy_lazy] (details)
  685. regression test for lazy shortcutting in recursive values (details)
  686. Changes (details)
  687. lazy + letrec: insert indirections on lazy update to avoid concurrency issues (details)
  688. use a dedicated [caml_alloc_dummy] primitive (details)
  689. Improved changelog message (details)
  690. document [caml_domain_alone] reasoning (details)
  691. spawn: increment [caml_num_domains_running] earlier to ease reasoning (details)
  692. domain_create: release the domain lock on failure (details)
  693. Changes (details)
  694. Pin Cygwin back to 3.6.1 until AppVeyor updates (details)
  695. List.sort_uniq : remove non-first duplicates. (#13862) (details)
  696. Move match_printer_type in order to share it between toplevel and debugger (details)
  697. Move find_printer to Topprinters (to be shared with the degugger) (details)
  698. Move debugger printers fetching logic (details)
  699. Debugger uses Topprinters.find_printer (details)
  700. release-info: update calendar (details)
  701. Use dune.3.18.0 which is compatible with trunk (details)
  702. Bump qcheck and multicoretests to the latest releases (details)
  703. Changed occur_rec in typing/ctype.ml to traverse type as a graph and not a tree (details)
  704. Changes (details)
  705. Renamed some arguments of occur_rec (details)
  706. Add signal definitions for SIGIO and SIGWINCH. (details)
  707. Add signal_to_string function (details)
  708. Add signal type alias and signal_to_string. (details)
  709. Export signal conversion functions as primitives. (details)
  710. Export signal conversion functions as primitives in Sys (details)
  711. Update documentation in Unix module (details)
  712. Check int and signal argument ranges for conversion functions (details)
  713. Add changelog (details)
  714. Allow 'effect' as attribute id (#13957) (details)
  715. ocamltest: fix typos (details)
  716. ocamltest: use C99 booleans (details)
  717. ocamltest: fix path comparison (details)
  718. ocamltest: use O_CLOEXEC on file descriptors (details)
  719. ocamltest: compare wcscmp result with 0 (details)
  720. ocamltest: alarm(3) is always successful (details)
  721. Teach ocamltest about colors (details)
  722. GHA: update to macOS 15 and Xcode 16.3 (details)
  723. tests: native-debugger: build C test code without optimizations (details)
  724. tests: native-debugger: sanitize library path (details)
  725. tests: native-debugger: fix GDB version parsing (details)
  726. tests: native-debugger: disable disabling ASLR (details)
  727. tests: native-debugger: sanitize trailing blanks (details)
  728. tests: native-debugger: simplify shell scripts (details)
  729. Apply suggestions from review (details)
  730. Check separately in configure if DIFF supports --color (details)
  731. Fix hygiene check for generating `configure` (#13935) (details)
  732. Added printing of presence flag in typedtree (#13963) (details)
  733. fix .depend (details)
  734. [minor] value_rec_compiler: move primitive declarations earlier (details)
  735. fix #13931 (details)
  736. Add profiling with perf chapter OCaml manual (details)
  737. Collapse profiling into a single chapter. (details)
  738. add an invariant function to check that loc_ghost is set correctly (details)
  739. parser: partially align use of loc_ghost with what the documentation says (details)
  740. parser: refactor previous commit, by removing error prone functions (details)
  741. parser: regenerate parser.ml (details)
  742. Add test of princiaplity from polymorphic type constraints (details)
  743. Keep generalized structure from patterns when typing let (details)
  744. Add changelog entry (details)
  745. Renamed the flag `transparent_modules` into `no_alias_deps` (details)
  746. Update driver/makedepend.ml (details)
  747. Updated Changelog with pr number (details)
  748. Update changes (details)
  749. ocamlopt: pass -fPIC when compiling C files (details)
  750. Changes (details)
  751. Changes (details)
  752. Uniformize definition of native_cflags, bytecode_cflags (details)
  753. Changes (details)
  754. last commit before branching 5.4 (details)
  755. first commit after branching 5.4 (details)
  756. Update README.adoc badges after branching (details)
  757. Avoid tearing in Array.sub (details)
  758. Move filter_arrow error handling in a function (details)
  759. Refactor: extract loc_rest_of_function (details)
  760. Refactor [type_approx]. (details)
  761. Add a test illustrating a regression in type_approx (details)
  762. Fix the regression in type approx (details)
  763. Remove the loop: we are already in a recursive function (details)
  764. Add a comment about an unreachable case (details)
  765. Add a comment for type_approx_fun_one_param's spato parameter. (details)
  766. Add a changelog entry for #13980 (details)
  767. Propagate file_descr cloexec correctly to channels (details)
  768. Set FLEXDIR when bootstrapping flexlink (details)
  769. Make ocamlmklib fail on an unknown parameter (details)
  770. Collimate the comments (details)
  771. Fix Makefile dependencies for ocamldoc, ocamltest and ocamldebug (details)
  772. Bump magic numbers and version for 5.5.0 (details)
  773. Refactor [is_functor_arg] table of env into [not_aliasable] (details)
  774. Added tests and updated error message with line breaks (details)
  775. genprintval: explain why certain uses of O.obj are not guarded (details)
  776. genprintval: move user-installed printers out of the Make functor (details)
  777. Generic printers in debugger (details)
  778. Test and doc of polymorphic printers in debugger (details)
  779. Use trunk-compatible dune.3.18.2 (details)
  780. Made the "remove_aliases" attribute visible in built-ins attributes (details)
  781. Add Dynarray.unsafe_to_iarray (details)
  782. Reimplement `let open`, `let module` and `let exception` in terms of a single construct (#13839) (details)
  783. webman: add anchors for API items, headings (#14002) (details)
  784. Refine docs for `In_channel` and `Out_channel` (#13982) (details)
  785. Pprintast: use parentheses around Pexp_struct_item in sequences (details)
  786. Move Changes entry to right place, add bugfix PR (details)
  787. Add test (details)
  788. Fix missing version bump to 5.5 in opam file (details)
  789. Update precondition comment to reflect renaming from #12619 (details)
  790. check-symbol-names: ignore extern char **environ re-decl (details)
  791. gha: Document labels triggering/skipping workflows (details)
  792. Dynamic matrix for the others job (details)
  793. Add optional static and mimimal jobs (details)
  794. Merge macOS Dependency steps (details)
  795. Fix test_create_cursor_failures.ml on Cygwin (details)
  796. Update build-msvc.yml to permit Cygwin builds (details)
  797. Add optional Cygwin check to CI (details)
  798. Add bytecode-only Cygwin check (details)
  799. Add a 'CI: Skip testsuite' label (details)
  800. Fix tools/check-symbol-names for i686 mingw-w64 (details)
  801. Windows matrix: arch instead of x86_64 (details)
  802. stale bot: only identify stale issues, don't close them. (#14004) (details)
  803. Fix memory corruption when an exception is raised during demarshaling. (#14015) (details)
  804. Update Changes (details)
  805. update Changes after cherry-picking (details)
  806. [refactor merge] Create a Merge module + white space changes (details)
  807. [refactor merge] Extracted helper functions (details)
  808. [refactor merge] Changed the return logic (details)
  809. [refactor merge] Extracted the recursive functions for deep constr (details)
  810. [refactor merge] Moved code (details)
  811. [refactor merge] Extracted the type-package case (details)
  812. [refactor merge] Extracted the type case (details)
  813. [refactor merge] Extracted the module case (details)
  814. [refactor merge] Extracted the modtype case (details)
  815. [refactor merge] Added comments, minor stylistic changes (details)
  816. [refactor merge] Corrections from Octachron review (details)
  817. [refactor merge] Moved the catching of exception (details)
  818. [refactor merge] Updated comments (details)
  819. [refactor merge] Added Changelog entry (details)
  820. [minor] printcmm: print atomic loads (details)
  821. [testsuite] test the compilation of atomic functions (details)
  822. [refactor] Define [caml_atomic_cas] in terms of [caml_atomic_cas_field]. (details)
  823. [breaking] Change the prototype of [caml_atomic_cas_field]. (details)
  824. runtime: Add atomic primitives [caml_atomic_load_field], [caml_atomic_exchange_field] and [caml_atomic_fetch_add_field]. (details)
  825. lambda: Add support for new atomic primitives. (details)
  826. Add support for atomic record fields. (details)
  827. atomic fields in ocamldoc (details)
  828. Bootstrap. (details)
  829. Add tests for atomic record fields. (details)
  830. [minor] Make test_untypeast.ml more readable. (details)
  831. Add predefined type ['a atomic_loc]. (details)
  832. [refactor] more general type for Env.mark_*_used (details)
  833. Add extension [%atomic.loc record.field]. (details)
  834. Bootstrap. (details)
  835. Add module [Stdlib.Atomic.Loc]. (details)
  836. Add tests for [Atomic.Loc]. (details)
  837. Reimplement [Atomic.t] using [Atomic.Loc.t]. (details)
  838. Forbid atomic fields in patterns. (details)
  839. Changes (details)
  840. testsuite for pattern-matching on atomic reads (details)
  841. allow wildcard patterns under atomic record fields (details)
  842. stdlib/Atomic: move the Loc module below in the .mli (details)
  843. stdlib/Atomic: minimal documentation (details)
  844. describe atomic record fields in the reference manual (details)
  845. Runtime events: dispatch the right event message type (#13970) (details)
  846. Add Unix.unsetenv (details)
  847. Add test (details)
  848. Document [row_more] and [row_fixed]. (details)
  849. Add Option.product and Option.Syntax (#13916) (details)
  850. [minor] More readable output from `gen_sizeclasses` (#13923) (details)
  851. Fix unterminated-string-initialization warning (details)
  852. fix atomic-locs/cmm.compilers.reference (details)
  853. tests: native-debugger: sanitize GDB+musl output (details)
  854. Fix #13427 (details)
  855. Add caml_sys_proc_self_exe primitive (details)
  856. Add Sys.runtime_executable (details)
  857. Cleanups following introduction of `Pexp_struct_item`/`Texp_struct_item` (#14028) (details)
  858. Add row_more invariant (details)
  859. Update flexdll submodule to 0.44 (details)
  860. Reenable lib-dynlink-domains test on Windows, temporarily disabled in #11607 (details)
  861. Comments from review (details)
  862. Changelog (details)
  863. tests: native-debugger: sanitize LLDB+GLIBC output (details)
  864. fix #13941 (details)
  865. update Changes for #13961 (details)
  866. simplifications suggested by reviewer (details)
  867. [minor] use a record in Compenv.process_deferred_actions (details)
  868. Amend docstring (details)
  869. Better error messages on invalid recursive module definitions (details)
  870. Ensure that all Bigarray memory managed by the GC is tracked by Memprof (details)
  871. Format: place hint white spaces after the break hint (details)
  872. Changes (details)
  873. Update changes (details)
  874. Attach infix extension points/attributes on local module/exception/open to structure item instead of enclosing let expression (#14009) (details)
  875. manual: fall back immediately to user-agent-defined fonts (details)
  876. Uniformize parsing rules for structure and signature items (#14039) (details)
  877. Trully share #*_printers machinery between toplevel and debugger (details)
  878. Review changes (details)
  879. update the memprof bigarray test (details)
  880. Move #13675 to 5.4 Changes (details)
  881. Reimplement generational stack scanning a la OCaml 4 (details)
  882. ARM64: explicitly ignore top bits in return addresses (details)
  883. Better API for generational stack scanning (details)
  884. Adapt TSAN to generational stack scanning (details)
  885. Changes for 13594 (details)
  886. document the invariants around pc marking in tsan.c (details)
  887. manual: move the TeX header of each language extension into the extension-specific .etex file (#14041) (details)
  888. Changes (details)
  889. Use BUILD_PATH_PREFIX_MAP to sanitize debug event paths, do not rewrite shebang (details)
  890. Accept native freestanding targets at configure time (details)
  891. Allow `*-ocaml` as target triplets to build freestanding cross compilers (details)
  892. Update changelog (details)
  893. domain_terminate: orphan the shared heap before STW exit (details)
  894. Changes (details)
  895. runtime: caml_finalise_heap should first adopt all orphan pools (details)
  896. review: clarify the invariants in [domain_create], including for the last domain (details)
  897. review: clarify the invariants required to free the shared heap (details)
  898. minor Changes fixes (details)
  899. Changelog: fix ordering for 5.3 (details)
  900. Changes: reuse the improved 5.4 entry order from the 5.4 branch (details)
  901. Unix.kill: On Windows, make process exit code ERROR_PROCESS_ABORTED (#14046) (details)
  902. Revert "Merge pull request #14045 from pirbo/bpp-map-1-2" (details)
  903. re-apply the part of #14045 that disables path rewrites on the shebang (details)
  904. Special constructor for %sys_argv primitive (#10570) (details)
  905. Debugger: Fallback to looking for module_name.ml in the loadpath when seeking source files (#14063) (details)
  906. Improve handling of packages in typing/gprinttyp.ml to put the name of the constraint on the arrow (details)
  907. Add Option.blend (#13995) (details)
  908. error message: point all label mismatches (details)
  909. Add a test showing spurious unused warnign in fonctor argument signatures. (details)
  910. Mark both in [modtypes_with_shape] (details)
  911. Reduce test noise by disabling warning 60 (details)
  912. Add changelog entry for #13956 (details)
  913. dynlink: fix exception name in printer (details)
  914. Changes update (details)
  915. Add changelog entry (details)
  916. fix one more definition of fib in the manual (details)
  917. Add a new type kind `Type_external` (#13712) (details)
  918. For stores on Apple Silicon, emit `stlr` instead of `dmb ishld; str`. (details)
  919. error messages: point mismatched univars (details)
  920. Introduce Sixtyfour memory chunk to handle unaligned accesses (details)
  921. Fix note: the alignment of `_Atomic long long unsigned int` fields changed in GCC 11.1 on i686 (#14035) (details)
  922. Add missing `item-attribute` rule for `let-binding` in documentation of attributes (#14077) (details)
  923. Switch back to ubuntu-latest (details)
  924. update Changes (details)
  925. Address reviewer comments. (details)
  926. Catch invalid aliases at merging rather than subtyping (#14066) (details)
  927. Generalise Compmisc.init_path (details)
  928. Add Dll.search_path (details)
  929. Add Misc.Stdlib.String.to_utf_8_seq (details)
  930. Expose Bytelink.read_runtime_launch_info (details)
  931. Changes bookkeeping: missing reviewer (details)
  932. Add Domain.running_domain_count (details)
  933. Changes (details)
  934. Changes (details)
  935. Add Config.{c_compiler_vendor,shebangscripts} (details)
  936. Add a test for the compiler "in-prefix" (details)
  937. Plumb the in-prefix tests into CI (details)
  938. Changes: 14074 was backported to 5.4 (details)
  939. Avoid an error when a channel is flushed during close (details)
  940. review (details)
  941. Fix flakiness of TSan tests using flushes and synchronization (details)
  942. Skip native-debugger tests. (details)
  943. Use caml_unix_error instead of errno+caml_uerror (details)
  944. Symmetrize caml_sys_rename and caml_unix_rename (details)
  945. Symmetrize caml_sys_chdir and caml_unix_chdir (details)
  946. Symmetrize caml_sys_close and caml_unix_close (details)
  947. Symmetrize caml_sys_system_command and caml_unix_system (details)
  948. Update Changes (details)
  949. stdlib: Option.{for_all, exists} (#13920) (details)
  950. [refactor] dynarray variable naming, consistently use [f] for function arguments (details)
  951. Dynarray.rev_iter, rev_iteri (details)
  952. Changes (details)
  953. Rename Domain.running_domain_count => Domain.count (#14096) (details)
  954. ocamldoc: no paragraph in module table (#14098) (details)
  955. CI: attempt to silence a MSVC warning (details)
  956. Changes bookkeeping: fix 13896 entry (details)
  957. toplevel: test with nongeneric printer (details)
  958. toplevel: printers must have a generic type (details)
  959. refactor Ctype: remove nongen_inst argument (details)
  960. add Changes entry (details)
  961. Explicitly fail-fast (details)
  962. Temporarily disable -Wcast-function-type-mismatch (details)
  963. Temporarily disable warning C5387 on MSVC (details)
  964. Update memprof after leaving the barrier at the end of minor GC, nor before. (details)
  965. Use C99 (u)int64_t instead of MSVC __int64 extension (details)
  966. Use time_t instead of MSVC __time64_t (details)
  967. Use C99 fixed-width integers in bigarray (details)
  968. Fully use C99 stdint.h fixed-width integers (details)
  969. Define intnat/uintnat with C99 intptr_t/uintptr_t (details)
  970. Use C99 inttypes.h fixed-width format macros (details)
  971. Define and use CAML_PRI.NAT and CAML_PRI.SZT (details)
  972. s/alloced/allocated/g (details)
  973. Update Changes (details)
  974. Fix a possible hang in Pprintast (#14105) (details)
  975. toplevel: fix a typo in directive error messages (details)
  976. changes: sync with 5.4 (details)
  977. Replaced normalize_package_path by Env.normalize_modtype_path (details)
  978. Add -Wno-cast-function-type-mismatch more clangily (details)
  979. Typo in stdlib/Makefile (details)
  980. Reduce tmpheader.exe to 4-5KiB on Windows (details)
  981. Stop using Caml_inline and CAMLnoret in headernt.c (details)
  982. Remove unnecessary guards around unistd.h (details)
  983. Use PATH_MAX instead of MAXPATHLEN (details)
  984. Assume S_ISREG and SEEK_END (details)
  985. Move O_BINARY definition to "header" section (details)
  986. Make caml/exec.h independent (details)
  987. Re-order some header functions (no-op) (details)
  988. Share error path in headernt.c (details)
  989. Unify implementation of read_size (details)
  990. headernt.c: inline run_runtime into main (details)
  991. Check for errors from lseek in header.c (details)
  992. Refactor error display code (details)
  993. header.c: close bytecode image before exec (details)
  994. Use execvp in header.c (as in headernt.c) (details)
  995. headernt: make read_runtime_path more CRTish (details)
  996. Missing error case in headernt.c (details)
  997. Unify the common parts of header.c and headernt.c (details)
  998. Merge stdlib/header{,nt}.c (details)
  999. error messages: typo, missing inline code (details)
  1000. #14093 was backported (details)
  1001. Fix use of time_t on i686 mingw-w64 (#14114) (details)
  1002. Increase the amount of data written to a pipe in a test (#14116) (details)
  1003. Add regression test (details)
  1004. Fix non-destructive `with type` with type constraints (details)
  1005. Add with type constraint testing (details)
  1006. Update changelog (details)
  1007. Add {Set,Map}.S.is_singleton (#14118) (details)
  1008. Make List.{take,drop} total (#14124) (details)
  1009. document that char compare uses ASCII order (#14090) (details)
  1010. Add the approx flag to merging of module constraints (details)
  1011. Add a [merge_type_approx] for approximation of type constraints (details)
  1012. Add tests for module and type constraints during approximation (details)
  1013. Update Changelog (details)
  1014. Add another test for destructive type constraints approximation (details)
  1015. Address review comments on #14100 (details)
  1016. Update Changelog (details)
  1017. Refactor post_process of signature merging (details)
  1018. Update comment and Changelog (details)
  1019. Address review comments (details)
  1020. Missing case in {Stdlib,Float}.frexp documentation (#14128) (details)
  1021. Fix `__tsan_func_exit()` signature mismatch (#14065) (#14082) (details)
  1022. Update comment (details)
  1023. matching: fix some non-deterministic code generation (#14091) (details)
  1024. Speedup some Set/Map access by using is_empty instead of cardinal = 0 (#14119) (details)
Commit 8ca6d79817ecb162d30554809e0e10bc8ccea2d2 by gabriel.scherer
[refactor] ocamltest: refactor run_test_tree
The file was modifiedocamltest/main.ml (diff)
Commit 18950d4db4ee5d43c65904614957cb53125d1881 by gabriel.scherer
[refactor] ocamltest: refactor run_test_tree
The file was modifiedocamltest/ocamltest_stdlib.mli (diff)
The file was modifiedocamltest/ocamltest_stdlib.ml (diff)
The file was modifiedocamltest/main.ml (diff)
Commit 8b9c066d7055f58cb2a920eb25791115c8307c8e by gabriel.scherer
ocamltest_stdlib.ml: concatmap => List.concat_map

Suggested-by: Antonin Décimo <antonin@tarides.com>
The file was modifiedocamltest/ocamltest_stdlib.mli (diff)
The file was modifiedocamltest/ocamltest_stdlib.ml (diff)
The file was modifiedocamltest/ocaml_actions.ml (diff)
Commit bce3bb7927bae3a120ebcd8e3a6b872309613ee7 by Florian Angeletti
Revert "Merge pull request #13457 from MisterDA/caml_stat-annotations"

This reverts commit 2f5e828f842e04a00711bc9b115a0fa94aade011, reversing
changes made to 51a1781be2730f99ca33e4351d0cc5557b4c43cb.
The file was modifiedruntime/caml/io.h (diff)
The file was modifiedruntime/caml/osdeps.h (diff)
The file was modifiedruntime/caml/memory.h (diff)
The file was modifiedruntime/caml/misc.h (diff)
The file was modifiedChanges (diff)
Commit 3a03c6dceeb830dabbe197e153f4463cbf4d843b by reisenberg
Changelog, small improvements
The file was modifiedtyping/ctype.ml (diff)
The file was modifiedChanges (diff)
Commit 1c291a69d656104ce63a797d07a8e9fc8b698cb7 by tscompor
fix 13501 by reverting 766bd76
The file was modifiedtyping/typedecl.ml (diff)
The file was modifiedtestsuite/tests/typing-misc/constraints.ml (diff)
The file was addedtestsuite/tests/typing-modules/mixmod5.ml
The file was modifiedChanges (diff)
The file was modifiedtyping/typedecl.ml (diff)
Commit 96b13b400bab3cc706ef90c9bd3fe463130af279 by gabriel.scherer
ocamltest: only report 'passed' when a full path passed

see https://github.com/ocaml/ocaml/issues/13481#issuecomment-2380117430
and https://github.com/ocaml/ocaml/pull/13488
The file was modifiedocamltest/main.ml (diff)
Commit 5df152fdff661f00b18ed53ecd517745a3e8305d by Florian Angeletti
release howto: update to godbolt Compiler Explorer
The file was modifiedrelease-info/howto.md (diff)
Commit 7be6ea1a074270d76e44e72e33de627305a40a64 by nick
Name the explicit constants used with caml_verb_gc
The file was modifiedruntime/minor_gc.c (diff)
The file was modifiedruntime/startup_aux.c (diff)
The file was modifiedruntime/sys.c (diff)
The file was modifiedruntime/win32.c (diff)
The file was modifiedruntime/dynlink.c (diff)
The file was modifiedruntime/meta.c (diff)
The file was modifiedstdlib/gc.mli (diff)
The file was modifiedruntime/intern.c (diff)
The file was modifiedruntime/misc.c (diff)
The file was modifiedruntime/extern.c (diff)
The file was modifiedruntime/finalise.c (diff)
The file was modifiedruntime/compare.c (diff)
The file was modifiedruntime/gc_ctrl.c (diff)
The file was modifiedruntime/caml/misc.h (diff)
The file was modifiedruntime/startup_byt.c (diff)
The file was modifiedruntime/major_gc.c (diff)
The file was modifiedruntime/platform.c (diff)
Commit 6ba7ff8dae9bfb20db9bee0ab08a334b3fd33a5b by timmcgil
Allow configure --enable-frame-pointers for ARM64 Linux and macOS
The file was modifiedconfigure.ac (diff)
The file was modifiedconfigure (diff)
Commit 9f4d52ba714b27a9c962e8004f87e508f459ad55 by timmcgil
Store sp in temporary register x19 during Iextcall
The file was modifiedasmcomp/arm64/emit.mlp (diff)
The file was modifiedasmcomp/arm64/proc.ml (diff)
Commit e3c166df6a454b3cc6dab0389c4df1f871cdb5cc by timmcgil
Add frame pointers support for ARM64 Linux and macOS.
The file was modifiedtestsuite/tests/frame-pointers/exception_handler.ml (diff)
The file was modifiedruntime/arm64.S (diff)
The file was modifiedasmcomp/arm64/emit.mlp (diff)
The file was modifiedtestsuite/tests/frame-pointers/stack_realloc.ml (diff)
The file was modifiedtestsuite/tests/frame-pointers/stack_realloc2.ml (diff)
The file was modifiedtestsuite/tests/frame-pointers/fp_backtrace.c (diff)
Commit 9f94f9ab89fef98ee8f949c75c3f5f82d9b76b5f by timmcgil
Work around clang/gcc not inlining C functions in the runtime
The file was addedtestsuite/tests/frame-pointers/stack_realloc.arm64.reference
The file was modifiedtestsuite/tests/frame-pointers/stack_realloc2.ml (diff)
The file was modifiedtestsuite/tests/frame-pointers/stack_realloc.ml (diff)
The file was addedtestsuite/tests/frame-pointers/stack_realloc2.arm64.reference
Commit 12b078d86a82f6caafc7ce2f6a32902d81d0c736 by timmcgil
Add forty_two test from PR#11031 as exceptions.ml

With frame-pointers, exception handlers should restore RBP #11031
The file was addedtestsuite/tests/frame-pointers/exceptions.reference
The file was addedtestsuite/tests/frame-pointers/exceptions.ml
The file was modifiedChanges (diff)
The file was modifiedotherlibs/systhreads/thread.ml (diff)
The file was modifiedotherlibs/systhreads/st_stubs.c (diff)
The file was modifiedChanges (diff)
The file was modifiedotherlibs/systhreads/thread.mli (diff)
The file was modifiedotherlibs/systhreads/thread.ml (diff)
Commit a5426e17148642bd57c55979c266375c3fe6c26d by gabriel.scherer
predef: add a variant type of all predefined type constructors

It is useful for some type-directed analyses to special case
predefined type constructors -- see for example
{!Typeopt.classify}. Currently the only way to do it is to list all
special cases by hand, with an explicit path check. If we add more
predefined types, we typically forget to update those lists of cases,
and the new types are not properly taken into account by the analyses.

In this PR we introduce a variant type of all predefined types, so that
analyses can be defined by pattern-matching on this variant type, and will
get an exhaustivity warning if a new case is added.

(We make sure to also use the variant type internally -- in the module
itself -- so that people don't forget to extend it when they add a new
predefined type.)
The file was modifiedtyping/predef.mli (diff)
The file was modifiedtyping/typeopt.ml (diff)
The file was modifiedtyping/predef.ml (diff)
The file was modifiedChanges (diff)
Commit 08cf5d8ea4271bfabcbf0a85037dac2ab207c087 by gabriel.scherer
typing/predef.ml: refactor decl_of_type_constr

Suggested-by: Florian Angeletti <florian.angeletti@inria.fr>
The file was modifiedtyping/predef.ml (diff)
Commit 791f2b524cb140ef1b13c395bf9e5299fa581bba by noreply
Update otherlibs/systhreads/st_stubs.c

Co-authored-by: Antonin Décimo <antonin.decimo@gmail.com>
The file was modifiedotherlibs/systhreads/st_stubs.c (diff)
The file was modifiedconfigure (diff)
The file was modifiedconfigure.ac (diff)
The file was modifiedtyping/ctype.ml (diff)
The file was modifiedChanges (diff)
Commit fc33fcd31a83d01dcdd9880ffd9d486e8ae0d4c5 by david.allsopp
Simplify the checking on caml_global_data

Partly owing to an old multicore API removed prior to merging,
caml_global_data was initialised to NULL in fiber.c and changed to
Val_unit when starting up the interpreter prior to being registered as a
root. That required checks for both NULL and Val_unit to determine if
the global data had been loaded when raising exceptions during
initialisation.

Code updated to be more as the 4.14 version with caml_global_data set to
Val_unit statically.
The file was modifiedruntime/caml/fiber.h (diff)
The file was modifiedruntime/interp.c (diff)
The file was modifiedruntime/fail_byt.c (diff)
The file was modifiedruntime/fiber.c (diff)
Commit 102cf65145cae7c777026700986820cd7831daa8 by noreply
docs(release-info/howto.md): improve typo (#13506)

* docs: change : to . for numbering
* docs: add syntactic coloration to sh scripts
* add links to template files
The file was modifiedrelease-info/howto.md (diff)
Commit 8683b294c2f95b57cc3adfa45c64d0f38fdd5cec by noreply
docs(release-info/howto.md): change formatting (#13523)

The file was modifiedrelease-info/howto.md (diff)
Commit 0d1449a45665eb2ffb55c13e998ab0446c8d417a by miod
Do not divide by zero in gc debug output.
The file was modifiedruntime/minor_gc.c (diff)
Commit 9d81acc051a741a9d9287c4e14584b970ee31beb by gabriel.scherer
[refactor] Genprintval.tree_of_{variant, record}
The file was modifiedtoplevel/genprintval.ml (diff)
Commit 7293596c05c76cdc2b2cdc4ae3abae646e2f7df0 by gabriel.scherer
[refactor] Genprintval.tree_of_{list, array}
The file was modifiedtoplevel/genprintval.ml (diff)
Commit f38f3738b5d382354bb49f64b9cf0bb5377fd2c1 by gabriel.scherer
[refactor] Genprintval.tree_of_lazy
The file was modifiedtoplevel/genprintval.ml (diff)
Commit cb3cd9e23449b0d9be73a2b9bb8421f517cafdaa by gabriel.scherer
update Genprintval.tree_of_lazy for OCaml 5
The file was modifiedtoplevel/genprintval.ml (diff)
Commit f99ba503d8122eee7a11a3bedd15f5e70cafc7fb by gabriel.scherer
[refactor] Genprintval.tree_of_polyvariant
The file was modifiedtoplevel/genprintval.ml (diff)
Commit cbdcbae42c4cf95a1cfd0b49b279a3c0bef514c5 by gabriel.scherer
[refactor] Genprintval: clarify exception flow
The file was modifiedtoplevel/genprintval.ml (diff)
Commit 27c82c430ac27873e073ff7eab93a812d8fe67c8 by noreply
Do not write to ring after going out of stw participant set. (#13529)

When the runtime events ring is destroyed, only the domains that are
part of the stop-the-world (stw) participant list are stopped. So it is
unsafe to write to ring when the domain is not part of the stw
participant set.

This fixes the data race in `lib-runtime-events/test_dropped_events`.
The file was modifiedruntime/major_gc.c (diff)
The file was modifiedChanges (diff)
Commit bf63f888ccd49e8fc93685b677a576d4c89437d4 by noreply
Confirm runtime events ring is still active after callback. (#13522)

Need to check whether the ring is still active after a callback. It may
be possible that ring has been destroyed during the execution of the
callback.
The file was modifiedChanges (diff)
The file was modifiedruntime/runtime_events.c (diff)
Commit fd3ff8455cfc0545a2e77d982f0cd2e2ba9a8259 by miod
Rework backup thread termination.

Make the value of the backup_thread_running per-domain field reliable.
The file was modifiedruntime/domain.c (diff)
Commit 14486e9881e544e8d5c5fb3caf1a719b505bbcdc by miod
Add infrastructure to force all domain threads to exit.
The file was modifiedruntime/domain.c (diff)
The file was modifiedruntime/caml/domain.h (diff)
Commit 292442034b8748d00611ff06df57c62f3d102181 by miod
Bring back "memory cleanup at exit" mode, step 1.

Upon shutdown, if memory cleanup is requested, make sure all domain and
backup threads are terminated, and invoke the domain termination function
for the last running domain if it was alone at shutdown time.
The file was modifiedruntime/major_gc.c (diff)
The file was modifiedruntime/caml/domain.h (diff)
The file was modifiedruntime/startup_aux.c (diff)
The file was modifiedruntime/domain.c (diff)
Commit 0ac93bf74b1940ee211bd6103e1900b13ebe5a3b by miod
Bring back "memory cleanup at exit" mode, step 2.

Upon shutdown, if memory cleanup is requested, release shared heap
memory.
The file was modifiedruntime/caml/major_gc.h (diff)
The file was modifiedruntime/gc_stats.c (diff)
The file was modifiedruntime/startup_aux.c (diff)
The file was modifiedruntime/caml/gc_stats.h (diff)
The file was modifiedruntime/major_gc.c (diff)
The file was modifiedruntime/shared_heap.c (diff)
The file was modifiedruntime/caml/shared_heap.h (diff)
Commit d1e4b1b8e791aa4efa04e824c5ba7005930070ea by miod
Fix memory leak on unlikely error.
The file was modifiedotherlibs/systhreads/st_stubs.c (diff)
Commit fc81bd11a7af57edee4f472493a4feb5d63db787 by miod
Skip freeing some memory during cleanup if TSan is enabled.
The file was modifiedruntime/domain.c (diff)
Commit e97d4ac3045eee3f3d2b5710457c164dc53b81b8 by miod
Correctly account for mutex locks after forks.
The file was modifiedotherlibs/systhreads/st_stubs.c (diff)
The file was modifiedruntime/domain.c (diff)
The file was modifiedruntime/platform.c (diff)
The file was modifiedruntime/caml/platform.h (diff)
Commit f50205e3cdd92f140929bb3d1eacc22ee56b763e by miod
Document the return of memory cleanup mode.
The file was modifiedChanges (diff)
Commit b6751544497c6a3b2c47f878557d9b91a73df10a by gabriel.scherer
[refactor] lambda/matching: make low/high interval bounds optional

The benefit is not really convenience, but rather to make the prototype
of `call_switcher` approachable.
The file was modifiedlambda/matching.ml (diff)
Commit 5c8233707dbea2b23f5e863bc8f72c0abad49668 by gabriel.scherer
[refactor] lambda/matching: split combine_constructor in two functions
The file was modifiedlambda/matching.ml (diff)
Commit 6cdee5934fad4517f186fb73c709a04d4220fed9 by reisenberg
Types in 'coerce' are principally known
The file was modifiedtyping/typecore.ml (diff)
Commit 27e556d22e51bf44f49e81c999ade49b4b3e0798 by reisenberg
Add test; add more calls to generic_instance
The file was modifiedtestsuite/tests/typing-objects/Tests.ml (diff)
The file was modifiedtyping/typecore.ml (diff)
The file was addedtestsuite/tests/typing-misc/coerce_principal.ml
The file was modifiedChanges (diff)
Commit 0f6f333c09af5ea86b97064d92d125cde84823e9 by miod
Fix riscv64 oracle.

While there, use a better filename for the alternate reference output and
explain better in the test comments, why there are two reference output
files.
The file was addedtestsuite/tests/asmcomp/func_sections.no_jump_tables_in_rodata.reference
The file was removedtestsuite/tests/asmcomp/func_sections.arm.reference
The file was modifiedtestsuite/tests/asmcomp/func_sections.ml (diff)
Commit 1ecb8f7327dd0837d899bef60cd9e9a87219ffb6 by noreply
Use C99 flexible array member syntax (#13354)

The file was modifiedruntime/caml/skiplist.h (diff)
The file was modifiedyacc/lr0.c (diff)
The file was modifiedyacc/defs.h (diff)
The file was modifiedruntime/caml/bigarray.h (diff)
The file was modifiedruntime/caml/frame_descriptors.h (diff)
The file was modifiedChanges (diff)
The file was modifiedruntime/callback.c (diff)
The file was modifiedruntime/caml/finalise.h (diff)
The file was modifiedruntime/backtrace_nat.c (diff)
Commit 48264c3a3b3e1a9b5a982c4f35e7adb0c06ff8bf by antonin
Annotate alloc/free open/close functions with compiler attributes

This helps the compiler optimize code, and static analysis by
detecting potential mismatches in alloc/free pairs.

- malloc

> The malloc attribute indicates that the function acts like a system
> memory allocation function, returning a pointer to allocated storage
> disjoint from the storage for any other object accessible to the
> caller.

https://clang.llvm.org/docs/AttributeReference.html#malloc

> Associating a function with a deallocator helps detect calls to
> mismatched allocation and deallocation functions and diagnose them
> under the control of options such as -Wmismatched-dealloc. It also
> makes it possible to diagnose attempts to deallocate objects that
> were not allocated dynamically, by -Wfree-nonheap-object. To
> indicate that an allocation function both satisifies the nonaliasing
> property and has a deallocator associated with it, both the plain
> form of the attribute and the one with the deallocator argument must
> be used.

> The warnings guarded by -fanalyzer respect allocation and
> deallocation pairs marked with the malloc.

https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-malloc-function-attribute

Note that the malloc attribute can only be applied to functions
returning pointers. The OCaml value type is a typedef to an integer
type, and the C compiler will refuse applying the attribute to a
function returning an OCaml value.

- nodiscard / warn_unused_result

Prevent memory leaks by warning if the result of an allocation is
ignored.

https://clang.llvm.org/docs/AttributeReference.html#nodiscard-warn-unused-result

- alloc_align

> GCC uses this information to improve pointer alignment analysis.

https://clang.llvm.org/docs/AttributeReference.html#alloc-align
https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-alloc_005falign-function-attribute

- alloc_size

> GCC uses this information to improve the results of
> __builtin_object_size.

https://clang.llvm.org/docs/AttributeReference.html#alloc-size
https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-alloc_005fsize-function-attribute

- returns_nonnull

> lets the compiler optimize callers based on the knowledge that the
> return value will never be null.

> The analyzer considers the possibility that an allocation function
> could fail and return null. […] If the allocator always returns
> non-null, use __attribute__ ((returns_nonnull)) to suppress these
> warnings.

https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-returns_005fnonnull-function-attribute

With GCC, restrict the attributes usage to GCC >= 14, as GCC 13
reports false positives on the runtime code.
The file was modifiedruntime/caml/io.h (diff)
The file was modifiedruntime/caml/memory.h (diff)
The file was modifiedruntime/caml/misc.h (diff)
The file was modifiedChanges (diff)
The file was modifiedruntime/caml/osdeps.h (diff)
Commit c1cd73fe2bc1a42e01adc133622f96e1e40ed291 by Florian Angeletti
explicit local substitution (#13388)

Local substitutions for module types

```
module type t := sig end
```

or

```
s with module type t := sig end
```

may fail when trying to substitute the module type path inside the type
of first class module.

Before this commit, the `Typemod` logic was duplicating part of the
substitution composition logic to detect those failing substitutions in
advance but failed to detect many cases.

This commit introduces an alternative (and easier to maintain) approach
which splits substitutions in two types belonging to the same type
family:

- standard substitutions that are guaranteed to succeed
- local substitutions that may fail

With this change, `Typemod` can use local substitution without
affecting the rest of the typechecker.
The file was modifiedtyping/btype.ml (diff)
The file was modifiedtyping/typemod.mli (diff)
The file was modifiedtyping/subst.ml (diff)
The file was modifiedtyping/typemod.ml (diff)
The file was modifiedtyping/env.ml (diff)
The file was modifiedtestsuite/tests/typing-modules/module_type_substitution.ml (diff)
The file was modifiedtyping/includemod.ml (diff)
The file was modifiedtyping/subst.mli (diff)
Commit c88f96de3eee83d173ffcc31057d31aa4d9ee098 by antonin
Detect support for compiler attributes

Useful for clang-cl which doesn't define __GNUC__. Follow-up of #13280.
The file was modifiedruntime/caml/misc.h (diff)
The file was modifiedruntime/caml/domain_state.h (diff)
The file was modifiedruntime/caml/alloc.h (diff)
The file was modifiedtyping/includemod.ml (diff)
The file was modifiedtyping/subst.mli (diff)
The file was modifiedtyping/subst.ml (diff)
The file was modifiedtyping/typemod.ml (diff)
The file was modifiedtyping/env.ml (diff)
The file was modifiedChanges (diff)
Commit c1aba984a44f175e6c17f5548cb8669d2cd39a20 by damien.doligez
Add a note about what is needed to start lldb from a remote terminal on MacOS.
The file was modified.github/workflows/build.yml (diff)
Commit 0aa77b790fbd0bc38f6b8e3f1ad553e55ad11ca3 by olivier
Update explanatory comments on CAMLno_asan and CAMLno_tsan
The file was modifiedruntime/caml/misc.h (diff)
The file was modifiedruntime/caml/tsan.h (diff)
Commit 4581aa94fd03a5100c2fa7327b4801c2a934633e by Florian Angeletti
refactorization: remove a copy of String.starts_with
The file was modifiedtyping/untypeast.ml (diff)
Commit 9aac4c89e6f71929d701e99d3f8239adbae0f3dc by noreply
Code documentation comments on Translclass (#13314)

The file was modifiedlambda/translclass.ml (diff)
The file was modifiedChanges (diff)
The file was modifiedotherlibs/systhreads/st_stubs.c (diff)
The file was modifiedotherlibs/systhreads/st_stubs.c (diff)
The file was modifiedotherlibs/systhreads/thread.mli (diff)
Commit a8237428e9830dad7ec00e9a0015954aa5b436d1 by toots
Conditionally print stderr
The file was modifiedotherlibs/systhreads/st_stubs.c (diff)
Commit 0c4f42921bb123f4fc05fc39c72c98468d9c557e by noreply
Update otherlibs/systhreads/st_stubs.c
The file was modifiedotherlibs/systhreads/st_stubs.c (diff)
Commit 2b521fbed7bc8eba80784982f93091e011008c44 by hugo.heuzard
Buffer.add_bytes, Buffer.add_subbytes don't convert bytes to string
The file was modifiedstdlib/buffer.ml (diff)
Commit a65a16a9a41ce593cf3204282c67fc19498c3613 by hugo.heuzard
String.escaped returns its argument if there is nothing to escape
The file was modifiedstdlib/string.ml (diff)
The file was modifiedstdlib/digest.ml (diff)
Commit 818229b8546df1a65b65f7ad78257f88f6fc9004 by hugo.heuzard
Digest no longer convert bytes to string before hashing
The file was modifiedruntime/md5.c (diff)
The file was modifiedstdlib/digest.ml (diff)
The file was modifiedruntime/blake2.c (diff)
The file was modifiedChanges (diff)
Commit f12d29f732f8e76dbfbd9754fcc7ec1cf73c26d9 by david.allsopp
Revert "Use that instead"

This reverts commit fdca381ee3f351e2cd08152d670c8a54018716cc.
The file was modifiedtestsuite/tests/lib-runtime-events/test_dropped_events.ml (diff)
Commit 946de5af5683e259747790e1821ab76e384ddfe6 by hugo.heuzard
Remove references to safe-string in the stdlib
The file was modifiedstdlib/bytesLabels.mli (diff)
The file was modifiedstdlib/string.mli (diff)
The file was modifiedstdlib/.depend (diff)
The file was modifiedstdlib/bytes.mli (diff)
The file was modifiedstdlib/stringLabels.mli (diff)
The file was modifiedstdlib/lexing.ml (diff)
Commit 7663b920a0376b39a8f77cfb5aa5451c6cb580a4 by hugo.heuzard
Remove two useless string-bytes conversions from the testsuite
The file was modifiedtestsuite/tests/lib-unix/common/append.ml (diff)
The file was modifiedtestsuite/tests/statmemprof/moved_while_blocking.ml (diff)
Commit e0d7cfcc24d6cc1371d4fefe7a0a015e852d1b87 by Florian Angeletti
review: isolate all unsafe substitutions
The file was modifiedtyping/subst.mli (diff)
The file was modifiedtyping/subst.ml (diff)
The file was modifiedtyping/typedecl.ml (diff)
The file was modifiedtyping/typemod.ml (diff)
The file was modifiedChanges (diff)
Commit eb1f6d5b7de2b0f785634b746679b9640bf8e9b0 by Florian Angeletti
self-review: document assert false
The file was modifiedtyping/typedecl.ml (diff)
The file was modifiedtyping/subst.ml (diff)
The file was modifiedtyping/subst.mli (diff)
The file was modifiedtyping/typemod.ml (diff)
Commit 301e8d4c63add8daa72f137905d18f77098fb265 by talex5
Add Runtime_events.EV_EMPTY_MINOR

EV_EMPTY_MINOR shows when a domain is trying to empty its minor heap. It
may be a long time between starting this process and actually performing
a minor GC if, for example, another domain is holding the platform lock.
Without this event, profiling tools tend to under-report the amount of
time spent on GC.
The file was modifiedruntime/minor_gc.c (diff)
The file was modifiedotherlibs/runtime_events/runtime_events.mli (diff)
The file was modifiedruntime/caml/runtime_events.h (diff)
The file was modifiedChanges (diff)
The file was modifiedotherlibs/runtime_events/runtime_events.ml (diff)
Commit 45e6bc31edd8e87d7e5c9ba4ba6e2b36e92e199f by Florian Angeletti
fix escaping of true/false in printing functions (#13263)

Both `true` and `false` should not be escaped using the raw identifier
syntax if they appear in a context where a variant constructor is
expected.
The file was modifiedtyping/typecore.ml (diff)
The file was modifiedtyping/oprint.ml (diff)
The file was modifiedtestsuite/tests/typing-misc/pr7937.ml (diff)
The file was modifiedtestsuite/tests/typing-modules/Test.ml (diff)
The file was modifiedtyping/out_type.ml (diff)
The file was modifiedparsing/pprintast.mli (diff)
The file was modifiedtyping/env.mli (diff)
The file was modified.depend (diff)
The file was modifiedtestsuite/tests/typing-objects/Tests.ml (diff)
The file was modifiedtestsuite/tests/parsing/rawidents.ml (diff)
The file was modifiedtestsuite/tests/tool-toplevel/multi_phrase_line.compilers.reference (diff)
The file was modifiedparsing/pprintast.ml (diff)
The file was modifiedtyping/typedecl.ml (diff)
The file was modifiedtestsuite/tests/tool-ocamlc-locations/marshalled.compilers.reference (diff)
The file was modifiedtestsuite/tests/typing-poly/poly.ml (diff)
The file was modifiedtyping/env.ml (diff)
Commit 6d3ec6eaee79798a8d800ecabb5cbf630d074b5e by andrew.cooper3
Discuss CAMLnoreturn in memory.h

It's only two decades old.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
The file was modifiedruntime/caml/memory.h (diff)
Commit 60f89d6a97d01f63869f4908db646ffcd960a90f by Florian Angeletti
review: test record error messages with raw identifiers
The file was modifiedtestsuite/tests/parsing/rawidents.ml (diff)
The file was modifiedChanges (diff)
Commit 5dd28edaad248ac3d5a8dccefaab504aff6a0205 by Florian Angeletti
add permission to the parsetree-change workflow
The file was modified.github/workflows/parsetree-change.yml (diff)
Commit 199caf4297a36365e6de0911c037b533cbba8aa3 by antonin
Add explanation to the doc of Hashtbl.create

Majority view in the triage discussion of #13474 concluded that we
should allow negative values but document that they are disregarded.
The file was modifiedstdlib/hashtbl.mli (diff)
The file was modifiedstdlib/moreLabels.mli (diff)
The file was modifiedChanges (diff)
The file was modifiedstdlib/templates/hashtbl.template.mli (diff)
The file was modifiedChanges (diff)
The file was modifiedChanges (diff)
Commit e711236cf2a14e5c0901fc057552fccca0e5709f by noreply
manual: minor editorial fixes in tutorials/parallelism.etex (#13373)

The file was modifiedmanual/src/tutorials/parallelism.etex (diff)
Commit 19b116d2c65de80ee21bac5c68da31d21439f250 by nathan.p.rebours
Add changelog entry for parsetree-change action

Signed-off-by: Nathan Rebours <nathan.p.rebours@gmail.com>
The file was modifiedChanges (diff)
Commit bd8e6f517828b552a299b22747bd482881707529 by kit-ty-kate
Add missing @since documentation to Sys.poll_actions
The file was modifiedstdlib/sys.mli (diff)
Commit 3b80b632640db1554fbba2c792312a04ce2624c7 by miod
Sync magic number definition with utils/config.common.ml.in
The file was modifiedotherlibs/dynlink/dynlink_config.ml.in (diff)
Commit bfeceb94e19b38abfe99696d84ee3426dc177cad by xavier.leroy
interp.c: more general API for the bytecode API

Support passing the initial values of env and extra_args as parameters
to the bytecode interpretation function.
The file was modifiedruntime/interp.c (diff)
The file was modifiedruntime/caml/interp.h (diff)
Commit a11272a4fd9a4c87c64ac0fb874f52b653ee320a by xavier.leroy
Reimplement bytecode callbacks without per-thread bytecode fragments

- Use the new `caml_bytecode_interpreter` API to jump straight to the
  function's code.
- Avoid modifying bytecode in place.
- Avoid per-thread bytecode.
- Register bytecode early and only once.

Fixes:  #13402
Fixes:  #13512
Closes: #13549
The file was modifiedruntime/callback.c (diff)
Commit d38286f3622c782fedfcde94021b78ecef3cce1c by xavier.leroy
Bytecode callbacks: make sure there is enough stack space

... before copying the arguments to the stack and calling the bytecode
interpreter.
The file was modifiedruntime/interp.c (diff)
The file was modifiedruntime/callback.c (diff)
Commit af5e5aa110aca03266847b8787f64f462161821b by xavier.leroy
Test callbacks with many arguments

For bytecode, this tests stack resizing in caml_callbackN.
The file was modifiedtestsuite/tests/callback/test1.ml (diff)
The file was modifiedtestsuite/tests/callback/test1_.c (diff)
The file was modifiedtestsuite/tests/callback/test1.reference (diff)
Commit 2a750b1afa7eac24a766eed1185db71e0ece229d by xavier.leroy
Changes entry for #13553
The file was modifiedChanges (diff)
Commit 7f5719c2651292ccd20c6e2644d44cf6dd360105 by antonin
Use nanosleep instead of usleep, if available

usleep() is deprecated in favour of nanosleep. The nanosleep() function
conforms to IEEE Std 1003.1b-1993 ("POSIX.1b").
The file was modifiedtestsuite/tests/tsan/waitgroup_stubs.c (diff)
The file was modifiedChanges (diff)
The file was modifiedruntime/platform.c (diff)
Commit 8f8ee0a9d0c318d39ea7156838d1783263223d4a by noreply
Fix compilation of native code systhreads (#13520)

st_stubs.c uses NATIVE_CODE, which had stopped being defined.
The file was modifiedChanges (diff)
The file was modifiedotherlibs/systhreads/Makefile (diff)
Commit a3464455f16136b065d6da2469ad01f1fe055dcd by Florian Angeletti
Changes: fix misplaced entry
The file was modifiedChanges (diff)
Commit a83b5ba2b7912d153cdcdf84f5a1a6e2195f929d by toots
Add PR review comments.
The file was modifiedotherlibs/systhreads/thread.mli (diff)
The file was modifiedotherlibs/systhreads/st_stubs.c (diff)
The file was modifiedotherlibs/systhreads/thread.ml (diff)
Commit c6ce7e1841efb91e2b63eca89542c9ea324407dd by david.allsopp
Silence ld warning with libasmrun_shared.so

amd64 and power were missing .type and .size directives on
caml_system.frametable which causes a warning from ld when linking
against the shared runtime.
The file was modifiedruntime/amd64.S (diff)
The file was modifiedChanges (diff)
The file was modifiedruntime/power.S (diff)
The file was modifiedruntime/amd64.S (diff)
The file was modifiedruntime/power.S (diff)
Commit 87fd1b4ce766997988a8ef311e85d49d8fcb2be1 by david.allsopp
Apply OBJECT..ENDOBJECT pattern to s390x
The file was modifiedruntime/s390x.S (diff)
Commit 85dd9c97574a931f8b813df5ff0d158502365033 by gabriel.scherer
[refactor] cmm_helpers: move around the *_caml functions
The file was modifiedasmcomp/cmm_helpers.ml (diff)
Commit f27da793946370b6c7305d9ec4f1c13da91edad7 by gabriel.scherer
cmm_helper: less tagging on switches

Co-authored-by: Clément Allain <clef-men@orange.fr>
Suggested-by: Vesa Karvonen <vesa.a.j.k@gmail.com>

`ocamlopt` optimizes switches that return only constants (from jump
tables to lookup tables). Furthermore it optimizes switches where the
constants are all tagged integers that happen to determine an affine
transformation of the switch index.

One aspect of this optimization that is slightly frustrating is that
it often generates more tagging noise than we would like. This is
particularly visible on identity transformations:

```ocaml
type t = A0 | A1 | A2 | A3

let test = function
  | A0 -> 0
  | A1 -> 1
  | A2 -> 2
  | A3 -> 3
```

One would reasonably expect `test` to be just the identity at runtime,
but in fact it is not, as shown in the `-dcmm` output:

```ocaml
(function camlMicro.test_401 (param/403: val)
  (+ (<< (>>s param/403 1) 1) 1))
```

The reason why there are more tagging operations than expected, in
trunk, is that the affine function is computed on the tagged
representations of the OCaml integers, rather than their untagged
representations. In the example of the identity above, the affine
function that is computed is not (0 -> 0, 1 -> 1, 2 -> 2)
(slope 1, offset 0) but instead (0 -> 1n, 1 -> 3n, 2 -> 5n) (slope 2n,
offset 1n). To apply the affine function to an argument, we first
untag it, and then apply the affine transformation: `arg` becomes
`2 * (arg >> 1) + 1`. The cmm_helpers smart contructors cannot rewrite
this into the identity `arg`, because this rewriting is not correct in
general (only for `arg` that have their least bit set).

In this commit, we instead compute the affine transformation on
OCaml (untagged) integers. Instead of computing
  `slope * untag(arg) + offset`,
we compute
  `tag(slope) *caml arg +caml tag(offset)`,
which generates nicer code and in particular simplifies into just
`arg` when we have (slope=1, offset=0).

There is a subtlety in the implementation, which is that the
`make_switch` function responsible for this optimization is called in
two different contexts in trunk, sometimes (from cmmgen) on tagged
integers and sometimes (from Switch) on untagged integers. If we just
change `make_switch` to not require untagging in cmmgen, but introduce
tagging in Switch to compensate, we risk adding a small performance
regression in the Switch case. Instead we make the function support
both calling contexts, and ensure that the minimal amount of
tagging/untagging is performed -- in particular, never more than
before.
The file was modifiedasmcomp/cmm_helpers.mli (diff)
The file was modifiedasmcomp/cmm_helpers.ml (diff)
The file was modifiedasmcomp/cmmgen.ml (diff)
The file was modifiedChanges (diff)
Commit fd41e1ab55fa11cbb98df2dab96e43b5540db31c by xavier.leroy
Update the "stale" Github action
The file was modified.github/workflows/stale.yml (diff)
Commit 75a216047cb9579ac9d9688e74468ab6ab989418 by gabriel.scherer
cleanup ocamldoc{,.opt}{,.exe} in partialclean

This avoids a (make bootstrap) failure where (make manpages) picks up a stale ocamldoc.opt after a bootstrap cycle.

Reported-by: Clément Allain <clef-men@orange.fr>

Reviewed-by: David Allsopp <david.allsopp@metastack.com>
Reviewed-by: Xavier Leroy <xavier.leroy@college-de-france.fr>
The file was modifiedMakefile (diff)
Commit d21b8632f2b77f8c2c71ceac46437821eeb18a6c by noreply
Dynlink.loadfile_private: don't hide loaded units until all have been loaded (#13376)

The file was modifiedtestsuite/tests/lib-dynlink-initializers/test10_main.byte.reference (diff)
The file was modifiedChanges (diff)
The file was modifiedotherlibs/dynlink/byte/dynlink.ml (diff)
Commit a047d14654ffb4361a5b82a20b66f8e17b5d677f by hugo.heuzard
Use <> instead of != for ints
The file was modifiedstdlib/format.ml (diff)
The file was modifiedstdlib/ephemeron.ml (diff)
Commit d4caf8bd44b2c0d030aa45083f3bf2bb840027fc by timmcgil
Honour --disable-cfi option for riscv runtime
The file was modifiedruntime/riscv.S (diff)
Commit f5ff74224029dc9ed765fe0942bd7fd41b194e39 by noreply
Add a `-keywords <version?+list>` flag (#13471)

This commit adds a `-keywords <version?+list>` flag which takes as argument:

    - an optional version v number (formatted as %d.%d)
    - a +-separated list of additional keywords

and defines the set of keywords recognized by the lexer as the set of keywords at the version `v` of OCaml (defaulting to the current version if no versions were given) completed by the list of additional keywords. This is intended to provide an easy way to keep old OCaml code with newer version of the compiler with additional keywords.
The file was modified.depend (diff)
The file was modifiedmanual/src/cmds/unified-options.etex (diff)
The file was modifiedparsing/parse.ml (diff)
The file was modifiedChanges (diff)
The file was modifiedman/ocamlc.1 (diff)
The file was modifiedutils/clflags.ml (diff)
The file was modifieddriver/compenv.ml (diff)
The file was modifiedparsing/lexer.mli (diff)
The file was modifieddriver/main_args.mli (diff)
The file was modifieddriver/main_args.ml (diff)
The file was modifiedparsing/lexer.mll (diff)
The file was modifiedutils/clflags.mli (diff)
Commit 9a63653166c7ee986d2cfa681a1c127ae07efacc by noreply
Fix caml_stat_wcsdup_noexc raising in out-of-memory (#13567)

The file was modifiedruntime/memory.c (diff)
Commit a86d5cc043dafb24220632ffbf981309fc00c4e2 by Florian Angeletti
-dsource: fix raw literal escape (#13391)

in locally abstract type inside a value constraint:

    let f: type \#while. ...
The file was modifiedChanges (diff)
The file was modifiedtestsuite/tests/parsetree/source.ml (diff)
The file was modifiedparsing/pprintast.ml (diff)
Commit 77f29baefc1acac53a51d95159b078a6f4a8a9e1 by noreply
Fix #11865 by detecting deletion of a root during root scanning. (#13584)

If a C finaliser tries to delete a root while we're iterating over the
set of roots, then mark the root as to be deleted lazily rather than
attempting to modify the roots data structure in place.
The file was modifiedruntime/caml/skiplist.h (diff)
The file was modifiedruntime/globroots.c (diff)
The file was addedtestsuite/tests/regression/pr11865/mkroot.reference
The file was addedtestsuite/tests/regression/pr11865/mkroot.ml
The file was modifiedmanual/src/cmds/intf-c.etex (diff)
The file was modifiedChanges (diff)
The file was modifiedruntime/skiplist.c (diff)
The file was addedtestsuite/tests/regression/pr11865/mkroot_stubs.c
Commit 9ddc048b4665147a26d41cfce8a7b57534778f85 by noreply
Fix #13579 by removing equations_generation (#13583)

The file was addedtestsuite/tests/typing-gadts/pr13579.ml
The file was modifiedtyping/ctype.ml (diff)
The file was modifiedChanges (diff)
Commit b7bb8b4f89c4f76e613a65ad0e396216969da0ac by noreply
error messages: disable text-based inline code styling (#13563)

* error messages: disable textual inline code quoting

we only keep bold styling when terminal support it
(and we specifically re-enable visible quotes in the testsuite).
The file was modifiedtestsuite/tests/typing-misc-bugs/pr6946_bad.compilers.reference (diff)
The file was modifiedtestsuite/tests/tool-ocamlc-locations/marshalled.compilers.reference (diff)
The file was modifiedtestsuite/tests/badly-ordered-deps/main.native.reference (diff)
The file was modifiedtestsuite/tests/typing-modules-bugs/pr6899_first_bad.compilers.reference (diff)
The file was modifiedtestsuite/tests/typing-recordarg/recordarg.ocaml.reference (diff)
The file was modifiedtestsuite/tests/typing-recmod/t01bad.compilers.reference (diff)
The file was modifiedtestsuite/tests/typing-short-paths/pr5918.compilers.reference (diff)
The file was modifiedtestsuite/tests/badly-ordered-deps/main.bytecode.reference (diff)
The file was modifiedtestsuite/tests/typing-short-paths/short-paths.compilers.reference (diff)
The file was modifiedtestsuite/tests/hidden_includes/hidden_stays_hidden.ocamlc.reference (diff)
The file was modifiedtestsuite/tests/parse-errors/unclosed_class_simpl_expr3.compilers.reference (diff)
The file was modifiedtestsuite/tests/typing-recmod/t11bad.compilers.reference (diff)
The file was modifiedtestsuite/tests/typing-modules/pr13099/test.compilers.reference (diff)
The file was modifiedtestsuite/tests/typing-objects-bugs/pr3968_bad.compilers.reference (diff)
The file was modifiedtestsuite/tests/typing-recmod/t08bad.compilers.reference (diff)
The file was modifiedtestsuite/tests/typing-private/private.compilers.principal.reference (diff)
The file was modifiedtestsuite/tests/basic/unit_naming.compilers.reference (diff)
The file was modifiedtestsuite/tests/hidden_includes/wrong_include_order.ocamlc.reference (diff)
The file was modifiedtestsuite/tests/formatting/margins.ocaml.reference (diff)
The file was modifiedtestsuite/tests/parse-errors/mismatch_struct_sig.compilers.reference (diff)
The file was modifiedtestsuite/tests/typing-recmod/t07bad.compilers.reference (diff)
The file was modifiedtestsuite/tests/tool-ocamlc-locations/test.compilers.reference (diff)
The file was modifiedtestsuite/tests/typing-recmod/t12bad.compilers.reference (diff)
The file was modifiedtyping/typecore.ml (diff)
The file was modifiedtestsuite/tests/letrec-check/pr7706.ocaml.reference (diff)
The file was modifiedtestsuite/tests/typing-rectypes-bugs/pr6870_bad.compilers.reference (diff)
The file was modifiedtestsuite/tests/tool-toplevel/redefinition_hints.compilers.reference (diff)
The file was modifiedtestsuite/tests/generated-parse-errors/errors.compilers.reference (diff)
The file was modifiedtestsuite/tests/typing-modules-bugs/pr6293_bad.compilers.reference (diff)
The file was modifiedtestsuite/tests/typing-modules-bugs/pr6992_bad.compilers.reference (diff)
The file was modifiedtestsuite/tests/typing-modules-bugs/pr9695_bad.compilers.reference (diff)
The file was modifiedtestsuite/tests/typing-recmod/t05bad.compilers.reference (diff)
The file was modifiedtestsuite/tests/parse-errors/unclosed_class_signature.compilers.reference (diff)
The file was modifiedtestsuite/tests/letrec-check/pr7231.ocaml.reference (diff)
The file was modifiedtestsuite/tests/typing-private/private.compilers.reference (diff)
The file was modifiedtestsuite/tests/typing-recmod/t14bad.compilers.reference (diff)
The file was modifiedtestsuite/tests/parse-errors/unclosed_simple_pattern.compilers.reference (diff)
The file was modifiedtestsuite/tests/tool-toplevel/error_highlighting.compilers.reference (diff)
The file was modifiedtestsuite/tests/typing-objects-bugs/pr4018_bad.compilers.reference (diff)
The file was modifiedtestsuite/tests/typing-recmod/t09bad.compilers.reference (diff)
The file was modifiedtestsuite/tests/parse-errors/unclosed_paren_module_expr3.compilers.reference (diff)
The file was modifiedtestsuite/tests/tool-toplevel/multi_phrase_line.compilers.reference (diff)
The file was modifiedtestsuite/tools/expect.ml (diff)
The file was modifiedtestsuite/tests/typing-sigsubst/sig_local_aliases_syntax_errors.compilers.reference (diff)
The file was modifiedtestsuite/tests/parse-errors/unclosed_struct.compilers.reference (diff)
The file was modifiedtestsuite/tests/typing-recmod/t15bad.compilers.reference (diff)
The file was modifiedtestsuite/tests/parse-errors/unclosed_paren_module_type.compilers.reference (diff)
The file was modifiedtestsuite/tests/typing-modules-bugs/pr6899_second_bad.compilers.reference (diff)
The file was modifiedtestsuite/tests/parse-errors/unclosed_paren_module_expr5.compilers.reference (diff)
The file was modifiedtestsuite/tests/parse-errors/unclosed_simple_expr.compilers.reference (diff)
The file was modifiedtestsuite/tests/parse-errors/unclosed_paren_module_expr2.compilers.reference (diff)
The file was modifiedtestsuite/tests/parse-errors/unclosed_class_simpl_expr2.compilers.reference (diff)
The file was modifiedtestsuite/tests/parse-errors/unclosed_class_simpl_expr1.compilers.reference (diff)
The file was modifiedtestsuite/tests/typing-objects-bugs/pr4435_bad.compilers.reference (diff)
The file was modifiedtestsuite/tests/parse-errors/unclosed_paren_module_expr4.compilers.reference (diff)
The file was modifiedtestsuite/tests/parsing/latin9.compilers.reference (diff)
The file was modifiedtestsuite/tests/typing-objects-bugs/pr4824a_bad.compilers.reference (diff)
The file was modifiedtestsuite/tests/typing-private-bugs/pr5026_bad.compilers.reference (diff)
The file was modifiedtestsuite/tests/typing-missing-cmi/test.compilers.reference (diff)
The file was modifiedtestsuite/tests/typing-misc/typecore_empty_polyvariant_error.compilers.reference (diff)
The file was modifiedtestsuite/tests/typing-modules-bugs/pr6752_bad.compilers.reference (diff)
The file was modifiedtestsuite/tests/shadow_include/cannot_shadow_error.compilers.reference (diff)
The file was modifiedtestsuite/tests/effect-syntax/when_test.compilers.reference (diff)
The file was modifiedtestsuite/tests/typing-modules-bugs/pr7414_bad.compilers.reference (diff)
The file was modifiedtestsuite/tests/typing-typeparam/newtype.ocaml.reference (diff)
The file was modifiedtestsuite/tests/parse-errors/unclosed_object.compilers.reference (diff)
The file was modifiedtestsuite/tests/tool-ocamlopt-save-ir/check_for_pack.compilers.reference (diff)
The file was modifiedtestsuite/tests/typing-modules-bugs/pr10693_bad.compilers.reference (diff)
The file was modifiedtestsuite/tests/parsing/int_and_float_with_modifier.compilers.reference (diff)
The file was modifiedChanges (diff)
The file was modifiedtestsuite/tests/parse-errors/expecting.compilers.reference (diff)
The file was modifiedtestsuite/tests/typing-safe-linking/b_bad.compilers.reference (diff)
The file was modifiedtestsuite/tests/parse-errors/unclosed_paren_module_expr1.compilers.reference (diff)
The file was modifiedtestsuite/tests/typing-extension-constructor/test.ocaml.reference (diff)
The file was modifiedtestsuite/tests/typing-modules-bugs/pr7414_2_bad.compilers.reference (diff)
The file was modifiedtestsuite/tests/typing-ocamlc-i/pr7620_bad.compilers.reference (diff)
The file was modifiedtestsuite/tests/typing-gadts/unexpected_existentials.ml (diff)
The file was modifiedtestsuite/tests/typing-rectypes-bugs/pr6174_bad.compilers.reference (diff)
The file was modifiedtestsuite/tests/typing-misc-bugs/pr6303_bad.compilers.reference (diff)
The file was modifiedtestsuite/tests/typing-polyvariants-bugs-2/pr3918c.compilers.reference (diff)
The file was modifiedtestsuite/tests/typing-rectypes-bugs/pr5343_bad.compilers.reference (diff)
The file was modifiedtestsuite/tests/typing-polyvariants-bugs/pr5057a_bad.compilers.reference (diff)
The file was modifiedtestsuite/tests/hidden_includes/cant_reference_hidden.ocamlc.reference (diff)
The file was modifiedtestsuite/tests/typing-recmod/t02bad.compilers.reference (diff)
The file was modifiedtestsuite/tests/typing-recmod/t04bad.compilers.reference (diff)
The file was modifiedtestsuite/tests/hidden_includes/not_included.ocamlc.reference (diff)
The file was modifiedtestsuite/tests/parse-errors/unclosed_sig.compilers.reference (diff)
The file was modifiedutils/misc.ml (diff)
The file was modifiedtestsuite/tests/letrec-check/pr7215.ocaml.reference (diff)
The file was modifiedtestsuite/tests/typing-sigsubst/test_locations.compilers.reference (diff)
Commit e8b1620201d7bf7d0129bd636f6e39cd4535918d by antonin
Perform a shallow clone of git submodules by default

Users and contributors likely don't need the full history of FlexDLL
and winpthreads development. The history can always be populated
later, on request, or with --no-recommend-shallow.

https://git-scm.com/docs/gitmodules#Documentation/gitmodules.txt-submoduleltnamegtshallow
https://git-scm.com/docs/git-submodule#Documentation/git-submodule.txt---no-recommend-shallow
The file was modified.gitattributes (diff)
The file was modified.gitmodules (diff)
Commit 59f4d280e3f228f883ac1515f5cee4afa8d966c0 by seb
Makefile.config: restore the {OCAMLC,OCAMLOPT}_{CFLAGS,CPPFLAGS} variables

They had been renamed in 31cdf416280053dcd38351b7858e818b23110779
(part of #12589) but we should keep the old names for backward compatibility.
The file was modifiedChanges (diff)
The file was modifiedMakefile.config.in (diff)
Commit 657629f9c9f5a4bad304014337830db4af019742 by nick
Unify separate atomic counter functions in runtime.
The file was modifiedruntime/bigarray.c (diff)
The file was modifiedruntime/caml/platform.h (diff)
The file was removedruntime/caml/atomic_refcount.h
The file was modifiedruntime/caml/mlvalues.h (diff)
The file was modifiedruntime/major_gc.c (diff)
The file was modifiedruntime/caml/camlatomic.h (diff)
The file was modifiedruntime/caml/misc.h (diff)
Commit e47df3d513f3f750a6f1f23dc198b32aa4841732 by garrigue
add simpler example for #13501
The file was modifiedtestsuite/tests/typing-misc/constraints.ml (diff)
Commit 6a01f5fb853f4200b0a5df9834756a5eb7d83d9c by nick
Always use atomic counter functions to access atomic counters.
The file was modifiedruntime/major_gc.c (diff)
The file was modifiedruntime/caml/bigarray.h (diff)
The file was modifiedotherlibs/unix/mmap_ba.c (diff)
The file was modifiedruntime/caml/camlatomic.h (diff)
Commit b567dd4253c33865dac2cb1420480c9a101c81cd by toots
Conditional windows compilation.
The file was modifiedotherlibs/systhreads/st_stubs.c (diff)
The file was modifiedruntime/caml/s.h.in (diff)
The file was modifiedconfigure (diff)
The file was modifiedconfigure.ac (diff)
Commit ee1148b55b466152c0296552f193a578bbbfdd39 by garrigue
move generalization to Typedecl.update_type
The file was modifiedtyping/typedecl.ml (diff)
Commit e026d9421db2a0358c24071f01ec9228fc7538a0 by noreply
Fix #13495: typechecker crash while typing objects  (#13514)

Fix 13495, making out of scope universal variables fatal, except for equality
The file was modifiedChanges (diff)
The file was addedtestsuite/tests/typing-objects/pr13495.ml
The file was modifiedtyping/ctype.ml (diff)
The file was addedtestsuite/tests/typing-recmod/pr13514.ml
The file was modifiedconfigure.ac (diff)
The file was modifiedotherlibs/systhreads/st_stubs.c (diff)
The file was modifiedruntime/caml/s.h.in (diff)
The file was modifiedconfigure (diff)
The file was modifiedruntime/caml/s.h.in (diff)
The file was modifiedconfigure.ac (diff)
The file was modifiedconfigure (diff)
The file was modifiedotherlibs/systhreads/st_stubs.c (diff)
The file was modifiedotherlibs/systhreads/st_stubs.c (diff)
Commit a2e58174a5c528f1d9c96af9a53da6fa546b0e75 by noreply
Update otherlibs/systhreads/st_stubs.c

Co-authored-by: Antonin Décimo <antonin.decimo@gmail.com>
The file was modifiedotherlibs/systhreads/st_stubs.c (diff)
Commit 0e8dd79017ff1b3117046503c57801cd2db5b4c2 by noreply
Update configure.ac

Co-authored-by: Antonin Décimo <antonin.decimo@gmail.com>
The file was modifiedconfigure.ac (diff)
The file was modifiedconfigure (diff)
The file was modifiedconfigure (diff)
The file was modifiedconfigure.ac (diff)
Commit a713d5a03a99700df68ad5205f2b71cd06ca402c by noreply
Update configure.ac

Co-authored-by: Antonin Décimo <antonin.decimo@gmail.com>
The file was modifiedconfigure.ac (diff)
The file was modifiedconfigure (diff)
Commit 494da6f26bdb26ed4ce8de57c88a3e58ac1e5410 by samuel.thibault
Match GNU/Hurd last

To allow matching other GNU systems before this.
The file was modifiedconfigure.ac (diff)
The file was modifiedconfigure (diff)
Commit 48226da4f5d2fec68d366c9d9cbf6fac11af116f by contact
adds data_types to dune configuration

Dune configuration was missing a module definition which caused builds to fail. This commit adds the module definition.
The file was modifieddune (diff)
Commit 7812c19f2da9e9aecc153c6d0e96d4e58c0b7941 by timmcgil
Use '$' instead of '.' to separate module names in symbol names.

This changes mangling of OCaml long identifiers from
`camlModule.name_NNN` to `camlModule$name_NNN`. Additionally it
changes the encoding of special characters from $xx (two hex digits)
to $$xx (two dollar signs followed by two hex digits). Mangled names
are now consistent across all platforms.
The file was modifiedasmcomp/x86_proc.ml (diff)
The file was modifiedruntime/amd64.S (diff)
The file was modifiedtestsuite/tests/native-debugger/linux-gdb-arm64.reference (diff)
The file was modifiedruntime/caml/frame_descriptors.h (diff)
The file was modifiedtestsuite/tests/frame-pointers/exception_handler.reference (diff)
The file was modifiedtestsuite/tests/native-debugger/macos-lldb-amd64.reference (diff)
The file was modifiedruntime/startup_nat.c (diff)
The file was modifiedtestsuite/tests/native-debugger/linux-lldb-arm64.reference (diff)
The file was modifiedChanges (diff)
The file was modifiedtestsuite/tests/frame-pointers/effects.reference (diff)
The file was modifiedtestsuite/tests/frame-pointers/c_call.reference (diff)
The file was modifiedtestsuite/tests/unwind/stack_walker.c (diff)
The file was modifiedtestsuite/tests/native-debugger/macos-lldb-arm64.reference (diff)
The file was modifiedasmcomp/emitaux.ml (diff)
The file was modifiedruntime/amd64nt.asm (diff)
The file was modifiedruntime/power.S (diff)
The file was modifiedruntime/riscv.S (diff)
The file was modifiedtestsuite/tests/frame-pointers/stack_realloc.reference (diff)
The file was modifiedruntime/s390x.S (diff)
The file was modifiedmiddle_end/compilenv.ml (diff)
The file was modifiedtestsuite/tests/native-debugger/linux-gdb-amd64.reference (diff)
The file was modifiedtestsuite/tests/asmcomp/func_sections.run (diff)
The file was modifiedtestsuite/tests/native-debugger/lldb-script (diff)
The file was modifiedtestsuite/tests/native-debugger/linux-lldb-amd64.reference (diff)
The file was modifiedtestsuite/tests/frame-pointers/reperform.reference (diff)
The file was modifiedtestsuite/tests/frame-pointers/stack_realloc2.reference (diff)
The file was modifiedruntime/dynlink_nat.c (diff)
The file was modifiedruntime/arm64.S (diff)
The file was modifiedtestsuite/tests/native-debugger/linux-gdb-riscv.reference (diff)
Commit 33efff28d575064caca840658687947b97f976d3 by Florian Angeletti
-dsource: \#mod is not an operator in type context

Fix #13603 by not adding parentheses around (mod) when it is neither a
pattern nor an expression.
The file was modifiedparsing/pprintast.ml (diff)
The file was modifiedtestsuite/tests/parsetree/source.ml (diff)
Commit bf48df5dbd5e6399bece566dfeb092d9921cc762 by antonin
Minor header inclusion fixes
The file was modifiedruntime/caml/shared_heap.h (diff)
The file was modifiedruntime/caml/weak.h (diff)
The file was modifiedruntime/caml/runtime_events.h (diff)
The file was modifiedruntime/caml/bigarray.h (diff)
The file was modifiedruntime/caml/camlatomic.h (diff)
The file was modifiedruntime/caml/platform.h (diff)
The file was modifiedruntime/caml/codefrag.h (diff)
The file was modifiedruntime/caml/fail.h (diff)
The file was modifiedruntime/caml/alloc.h (diff)
The file was modifiedruntime/caml/memprof.h (diff)
The file was modifiedruntime/caml/instrtrace.h (diff)
The file was modifiedruntime/caml/skiplist.h (diff)
The file was modifiedruntime/caml/tsan.h (diff)
The file was modifiedruntime/caml/signals.h (diff)
The file was modifiedruntime/caml/printexc.h (diff)
The file was modifiedruntime/caml/custom.h (diff)
The file was modifiedruntime/caml/addrmap.h (diff)
The file was modifiedotherlibs/runtime_events/caml/runtime_events_consumer.h (diff)
Commit d0a28652ba2967759445958fd256f89c4ecd9913 by antonin
Audit the installed headers for C++ compatibility

C++ name mangling applies to symbols: variable and function names. The
rule of thumb is to enclose public symbols declarations in blocks:

    #ifdef __cplusplus
    extern "C" {
    #endif

    /* symbols go here */

    #ifdef __cplusplus
    }
    #endif

Symbols protected by CAML_INTERNALS blocks need not to be covered.

Headers that contain definitions incompatible with C++, such as
_Atomic, also need protection.
The file was modifiedruntime/caml/domain.h (diff)
The file was modifiedruntime/caml/domain_state.h (diff)
The file was modifiedruntime/caml/osdeps.h (diff)
The file was modifiedruntime/caml/tsan.h (diff)
The file was modifiedotherlibs/runtime_events/caml/runtime_events_consumer.h (diff)
The file was modifiedruntime/caml/addrmap.h (diff)
The file was modifiedruntime/caml/runtime_events.h (diff)
The file was modifiedruntime/caml/backtrace.h (diff)
The file was modifiedruntime/caml/custom.h (diff)
The file was modifiedruntime/caml/minor_gc.h (diff)
The file was modifiedruntime/caml/address_class.h (diff)
The file was modifiedruntime/caml/intext.h (diff)
The file was modifiedruntime/caml/signals.h (diff)
The file was modifiedChanges (diff)
The file was modifiedruntime/caml/weak.h (diff)
The file was modifiedruntime/caml/hooks.h (diff)
The file was modifiedruntime/caml/printexc.h (diff)
The file was modifiedruntime/caml/sys.h (diff)
Commit 1addeb9c8547a9dfb317329955f204bf1c4141b6 by antonin
Test whether C++ stubs can be compiled and linked

- Test whether OCaml C headers are also valid in C++;
- Test whether C++ files can be linked with the runtime. Symbols that
  are not covered by CAML_INTERNALS need to have C linkage (under
  extern "C" { ... }). There are too many to check exhaustively, so
  use a dummy stub for now.

Co-authored-by: Kate <kit-ty-kate@outlook.com>
The file was addedtestsuite/tests/cxx-api/all_includes.ml
The file was addedtestsuite/tests/cxx-api/stubs.c
The file was addedtestsuite/tests/cxx-api/all-includes.h
Commit 31ac5a7d06deedeab917364578e0fa23962cd2c5 by miod
Fix CFI annotation when invoking noalloc C code.

The register number was incorrect.
The file was modifiedasmcomp/riscv/emit.mlp (diff)
Commit 542e34f873c227b6f5161eb37f1afe97b96bbb48 by noreply
Fix Numbers.Int_base.compare (#13606)

The file was modifiedutils/numbers.ml (diff)
The file was modifiedChanges (diff)
Commit e267d7b2422c101afdc683112bb067ab0ff9e195 by thevoodoos
Refactor `Typecore.type_application`

The typing of applications is now decomposed in two phases: collecting the
arguments and typing them.

Co-authored-by: Ulysse Gérard <thevoodoos@gmail.com>
The file was modifiedtyping/untypeast.ml (diff)
The file was modifiedlambda/translcore.mli (diff)
The file was modifiedocamldoc/odoc_ast.ml (diff)
The file was modifiedtyping/typedtree.mli (diff)
The file was modifiedlambda/translcore.ml (diff)
The file was modifiedtyping/printtyped.ml (diff)
The file was modifiedtyping/tast_mapper.ml (diff)
The file was modifiedtyping/typedtree.ml (diff)
The file was modifiedtyping/typeclass.ml (diff)
The file was modifiedtyping/value_rec_check.ml (diff)
The file was modifiedtyping/tast_iterator.ml (diff)
The file was modifiedtyping/typecore.ml (diff)
Commit 968473ba68098cad4cf09f3e8be1fa7b1fda0cb6 by miod
Do not include <runtime/caml/config.h> unless truly necessary.
The file was modifiedruntime/s390x.S (diff)
The file was modifiedruntime/amd64.S (diff)
Commit 64f9d9a916d12a9145dfb97f51766aa09fed87f3 by guillaume.munch-maccagnoni
Fatal error if allocations fail inside lf_skiplist.c
The file was modifiedruntime/lf_skiplist.c (diff)
Commit 7944ac5b45f7b60fd81050be4dbe646c29718529 by guillaume.munch-maccagnoni
Fatal error if OOM inside skiplist.c
The file was modifiedruntime/skiplist.c (diff)
Commit 0404da24e4f0e8bba5de6c8416f45dda329a0e01 by guillaume.munch-maccagnoni
[minor] Fix comments

Alignment of malloc/caml_stat_alloc is guaranteed
The file was modifiedruntime/caml/lf_skiplist.h (diff)
The file was modifiedruntime/lf_skiplist.c (diff)
Commit aff6e65e706782b4529633a89ecc9d481b6353fe by nick
Hold lock around ephemeron debugging code.
The file was modifiedruntime/major_gc.c (diff)
Commit 21d4d9425245b8028b51af7fc6a925a0f141963d by samuel.thibault
Enable native backend on x86_64 GNU/Hurd
The file was modifiedChanges (diff)
The file was modifiedconfigure.ac (diff)
The file was modifiedconfigure (diff)
Commit 961df281641776ec8ba343006f971849a1501b91 by samuel.thibault
Match GNU/Hurd last

To allow matching other GNU systems before this.
The file was modifiedconfigure (diff)
The file was modifiedconfigure.ac (diff)
Commit 60cee045dab2e2fcbc31cf864a8860b3fa3ea37a by samuel.thibault
Enable natdynlink on x86_64 GNU/Hurd
The file was modifiedconfigure.ac (diff)
The file was modifiedChanges (diff)
The file was modifiedconfigure (diff)
Commit cd48dc0ac20f58fa460b55fafb75784d5a9d62f3 by hugo.heuzard
Remove unused runtime due to recursive value compilation changes.

This change appeared in 5.2 in

- #12551, #12608, #12782, #12596: Overhaul of recursive value compilation.
The file was modifiedruntime/alloc.c (diff)
The file was modifiedboot/ocamlc (diff)
The file was modifiedboot/ocamllex (diff)
Commit 0ba2d8993032432e41c2eb9ff76ee8af091e7e53 by Florian Angeletti
review: extended longident explanation
The file was modifiedparsing/pprintast.ml (diff)
The file was modifiedChanges (diff)
Commit 372f0ed40c93593716b20aad59b64247a0c6d29b by Florian Angeletti
error messages: enable formatting for warnings
The file was modifiedtestsuite/tests/warnings/w01.compilers.reference (diff)
The file was modifiedtestsuite/tests/warnings/w74.ml (diff)
The file was modifiedtestsuite/tests/match-exception-warnings/exhaustiveness_warnings.ml (diff)
The file was modifiedtestsuite/tests/tool-toplevel/pr7060.compilers.reference (diff)
The file was modifiedtestsuite/tests/tmc/usage_warnings.ml (diff)
The file was modifiedtestsuite/tests/typing-extensions/open_types.ml (diff)
The file was modifiedtestsuite/tests/typing-misc/records.ml (diff)
The file was modifiedutils/misc.mli (diff)
The file was modifiedparsing/location.ml (diff)
The file was modifiedtestsuite/tests/typing-gadts/pr7390.ml (diff)
The file was modifiedtestsuite/tests/warnings/w51.ml (diff)
The file was modifiedtestsuite/tests/tool-toplevel/multi_phrase_line.compilers.reference (diff)
The file was modifiedtestsuite/tests/warnings/w54.compilers.reference (diff)
The file was modifiedtestsuite/tests/typing-ocamlc-i/pr4791.compilers.reference (diff)
The file was modifiedtestsuite/tests/warnings/w26_alias.ml (diff)
The file was modifiedtestsuite/tests/asmcomp/0001-test.compilers.reference (diff)
The file was modifiedtestsuite/tests/warnings/w04_failure.compilers.reference (diff)
The file was modifiedtestsuite/tests/warnings/w45.compilers.reference (diff)
The file was modifiedtestsuite/tests/warnings/w55.flambda.reference (diff)
The file was modifiedtestsuite/tests/warnings/w55.native.reference (diff)
The file was modifiedtestsuite/tests/typing-warnings/ambiguous_guarded_disjunction.ml (diff)
The file was modifiedtestsuite/tests/typing-gadts/pr7269.ml (diff)
The file was modifiedtestsuite/tests/warnings/w59.flambda.reference (diff)
The file was modifiedtestsuite/tests/typing-warnings/pr6872.ml (diff)
The file was modifiedtestsuite/tests/typing-gadts/pr7016.ml (diff)
The file was modifiedtestsuite/tests/no-alias-deps/aliases.compilers.reference (diff)
The file was modifiedtestsuite/tests/warnings/w52.ml (diff)
The file was modifiedtestsuite/tests/typing-gadts/test.ml (diff)
The file was modifiedtestsuite/tests/typing-misc/disambiguate_principality.ml (diff)
The file was modifiedtestsuite/tests/warnings/w53_across_cmi.compilers.reference (diff)
The file was modifiedtestsuite/tests/typing-warnings/open_warnings.ml (diff)
The file was modifiedtestsuite/tests/typing-gadts/pr7432.ml (diff)
The file was modifiedtestsuite/tests/typing-misc/empty_variant.ml (diff)
The file was modifiedtestsuite/tests/typing-misc/labels.ml (diff)
The file was modifiedtestsuite/tests/typing-gadts/pr5906.ml (diff)
The file was modifiedtestsuite/tests/match-side-effects/partiality.ml (diff)
The file was modifiedtestsuite/tests/typing-objects/Tests.ml (diff)
The file was modifiedtestsuite/tests/local-functions/non_local.compilers.reference (diff)
The file was modifiedtestsuite/tests/warnings/w53.compilers.reference (diff)
The file was modifiedtestsuite/tests/typing-warnings/exhaustiveness.ml (diff)
The file was modifiedtestsuite/tests/syntactic-arity/max_arity.compilers.reference (diff)
The file was modifiedtestsuite/tests/typing-gadts/pr6241.ml (diff)
The file was modifiedtestsuite/tests/typing-gadts/syntactic-arity.ml (diff)
The file was modifiedtestsuite/tests/typing-objects-bugs/pr7284_bad.compilers.reference (diff)
The file was modifiedtestsuite/tests/typing-poly/poly.ml (diff)
The file was modifiedtestsuite/tests/typing-gadts/pr9019.ml (diff)
The file was modifiedtestsuite/tests/typing-deprecated/alerts.ml (diff)
The file was modifiedtestsuite/tests/typing-ocamlc-i/pr7402.compilers.reference (diff)
The file was modifiedtestsuite/tests/typing-warnings/pr7553.ml (diff)
The file was modifiedtestsuite/tests/typing-warnings/application.ml (diff)
The file was modifiedtestsuite/tests/typing-warnings/unused_recmodule.ml (diff)
The file was modifiedtestsuite/tests/typing-misc/pr6416.ml (diff)
The file was modifiedtestsuite/tests/tmc/other_features.ml (diff)
The file was modifiedtestsuite/tests/typing-gadts/principality-and-gadts.ml (diff)
The file was modifiedtestsuite/tests/tool-ocamlc-open/tool-ocamlc-open-error.compilers.reference (diff)
The file was modifiedtestsuite/tests/warnings/w47_inline.compilers.reference (diff)
The file was modifiedtestsuite/tests/typing-misc/build_as_type.ml (diff)
The file was modifiedtestsuite/tests/let-syntax/let_syntax.ml (diff)
The file was modifiedtestsuite/tests/typing-gadts/pr5981.ml (diff)
The file was modifiedtestsuite/tests/lexing/uchar_esc.ocaml.reference (diff)
The file was modifiedtestsuite/tests/typing-deprecated/deprecated.ml (diff)
The file was modifiedtestsuite/tests/typing-gadts/pr5997.ml (diff)
The file was modifiedtestsuite/tests/typing-misc/constraints.ml (diff)
The file was modifiedtestsuite/tests/typing-misc/injectivity.ml (diff)
The file was modifiedtestsuite/tests/typing-warnings/pr7261.compilers.reference (diff)
The file was modifiedtestsuite/tests/basic/patmatch_incoherence.ml (diff)
The file was modifiedutils/misc.ml (diff)
The file was modifiedtestsuite/tests/warnings/w06.compilers.reference (diff)
The file was modifiedtestsuite/tests/typing-gadts/pr5785.ml (diff)
The file was modifiedtestsuite/tests/typing-warnings/pr7115.ml (diff)
The file was modifiedtyping/typecore.ml (diff)
The file was modifiedtestsuite/tests/typing-warnings/records.ml (diff)
The file was modifiedtestsuite/tests/typing-extensions/disambiguation.ml (diff)
The file was modifiedtestsuite/tests/typing-gadts/yallop_bugs.ml (diff)
The file was modifiedtestsuite/tests/typing-ocamlc-i/pervasives_leitmotiv.compilers.reference (diff)
The file was modifiedtestsuite/tests/typing-gadts/pr7234.ml (diff)
The file was modifiedtestsuite/tests/typing-misc/polyvars.ml (diff)
The file was modifiedtestsuite/tests/warnings/w58.native.reference (diff)
The file was modifiedtestsuite/tests/typing-objects/field_kind.ml (diff)
The file was modifiedtestsuite/tests/typing-gadts/pr6993_bad.ml (diff)
The file was modifiedtestsuite/tests/typing-warnings/unused_types.ml (diff)
The file was modifiedtestsuite/tests/typing-warnings/pr9244.ml (diff)
The file was modifiedtestsuite/tests/messages/precise_locations.ml (diff)
The file was modifiedtestsuite/tests/typing-gadts/pr5989.ml (diff)
The file was modifiedtestsuite/tests/warnings/w03.compilers.reference (diff)
The file was modifiedtestsuite/tests/warnings/w04.compilers.reference (diff)
The file was modifiedtestsuite/tests/typing-safe-linking/b_bad.compilers.reference (diff)
The file was modifiedtestsuite/tests/typing-polyvariants-bugs/pr7824.ml (diff)
The file was modifiedtestsuite/tests/typing-unboxed/test.ml (diff)
The file was modifiedtestsuite/tests/basic-more/pr10338.compilers.reference (diff)
The file was modifiedtestsuite/tests/typing-gadts/didier.ml (diff)
The file was modifiedtestsuite/tests/tmc/tupled_function_calls.native.reference (diff)
The file was modifiedutils/warnings.ml (diff)
The file was modifiedtestsuite/tests/basic-more/morematch.compilers.reference (diff)
The file was modifiedtestsuite/tests/typing-warnings/unused_functor_parameter.ml (diff)
The file was modifiedtestsuite/tests/typing-warnings/pr7085.ml (diff)
The file was modifiedtestsuite/tests/typing-objects/Exemples.ml (diff)
The file was modifiedtestsuite/tests/tmc/partial_application.compilers.reference (diff)
The file was modifiedtestsuite/tests/typing-gadts/pr10189.ml (diff)
The file was modifiedtestsuite/tests/typing-warnings/disable_warnings_classes.ml (diff)
The file was modifiedtestsuite/tests/typing-modules/generative.ml (diff)
The file was modifiedtestsuite/tests/warnings/w44.ml (diff)
The file was modifiedtestsuite/tests/warnings/w47_ppwarning.compilers.reference (diff)
The file was modifiedutils/warnings.mli (diff)
The file was modifiedtestsuite/tests/basic-more/robustmatch.compilers.reference (diff)
The file was modifiedtestsuite/tests/lexing/escape.ocaml.reference (diff)
The file was modifiedtestsuite/tests/typing-warnings/pr5892.ml (diff)
The file was modifiedtestsuite/tests/typing-ocamlc-i/pr6323.compilers.reference (diff)
Commit 58faa8fbd66fff7ffc753503d685f2e4dbeb124e by Florian Angeletti
error messages: doc for partial match warning
The file was modifiedutils/warnings.mli (diff)
The file was modifiedutils/warnings.ml (diff)
The file was modifiedtestsuite/tests/typing-warnings/exhaustiveness.ml (diff)
The file was modifiedtestsuite/tests/typing-extensions/open_types.ml (diff)
The file was modifiedtyping/parmatch.ml (diff)
Commit 2276de38a3d896d19ed8929464d2df5d13d482b7 by Florian Angeletti
review: names for error report formatting
The file was modifiedparsing/location.ml (diff)
Commit c166f0cd5e3db41916db36209b71a603dcfc46b1 by Florian Angeletti
self-review: add missing spaces
The file was modifiedtestsuite/tests/typing-extensions/disambiguation.ml (diff)
The file was modifiedtestsuite/tests/typing-warnings/ambiguous_guarded_disjunction.ml (diff)
The file was modifiedtestsuite/tests/typing-objects/Tests.ml (diff)
The file was modifiedtestsuite/tests/typing-warnings/records.ml (diff)
The file was modifiedutils/warnings.ml (diff)
The file was modifiedtestsuite/tests/typing-warnings/pr6872.ml (diff)
The file was modifiedtestsuite/tests/warnings/w45.compilers.reference (diff)
Commit 9012f57fe95fdf13dee0aa239cdd383df10e083b by Florian Angeletti
warnings: fine-tune principality warnings
The file was modifiedtestsuite/tests/typing-poly/poly.ml (diff)
The file was modifiedtestsuite/tests/typing-extensions/floatarray.ml (diff)
The file was modifiedtestsuite/tests/typing-misc/disambiguate_principality.ml (diff)
The file was modifiedutils/warnings.ml (diff)
The file was modifiedtestsuite/tests/typing-gadts/principality-and-gadts.ml (diff)
The file was modifiedtestsuite/tests/typing-polyvariants-bugs/pr8575.ml (diff)
The file was modifiedtestsuite/tests/typing-warnings/records.ml (diff)
The file was modifiedtestsuite/tests/let-syntax/let_syntax.ml (diff)
The file was modifiedtyping/typecore.ml (diff)
The file was modifiedtestsuite/tests/typing-warnings/pr6872.ml (diff)
Commit 2dd410cc687bf2cc2e80f2a0fa56197860c859c9 by Florian Angeletti
warnings: tweak break hints for flambda warning (59)
The file was modifiedutils/warnings.ml (diff)
The file was modifiedtestsuite/tests/warnings/w59.flambda.reference (diff)
The file was modifiedChanges (diff)
Commit c839100f2dbe91b7f7182b638682d6d532bffbc5 by noreply
Update format.ml to avoid Queue.empty (#13572)

In case of concurrent races, Format functions may raise an uncaught `Queue.empty` exception. Change this into a clean `Invalid_argument` failure to make it easier for users to figure out what is going on.
The file was modifiedChanges (diff)
The file was modifiedstdlib/format.ml (diff)
The file was modifiedstdlib/format.mli (diff)
Commit 6c3dc598871ca0cb279cdb7ed9a047089326eca1 by antonin
Various fixes to set thread name

- a Debian code search shows that projects check at configure-time for
  the prctl symbol, not the declaration.

  https://codesearch.debian.net/search?q=HAVE_PRCTL
  https://codesearch.debian.net/search?q=HAVE_DECL_PRCTL

- only check for SetThreadDescription declaration if the symbol has
  been found;

- fix SetThreadDescription missing declaration to include
  __declspec(import) and __cdecl (for x86). The declaration should
  have been copied from the header rather than from the documentation,
  which is missing these bits;

- fix caml/osdeps.h include style.
The file was modifiedChanges (diff)
The file was modifiedconfigure (diff)
The file was modifiedotherlibs/systhreads/st_stubs.c (diff)
The file was modifiedruntime/caml/s.h.in (diff)
The file was modifiedconfigure.ac (diff)
Commit 183948c289df28e5150af502fb84f1fc252a2709 by thevoodoos
Refactor: use std function to filter a list in odoc_ast

Suggested-by: Antonin Décimo <antonin@tarides.com>
The file was modifiedocamldoc/odoc_ast.ml (diff)
Commit f91ec48dec9448a96f52d2454f4dd975115af67e by thevoodoos
Add changelog entry for #13612
The file was modifiedChanges (diff)
Commit 9ef1641bbcde616096e734dcae58a47480cf6ebf by noreply
gprinttyp: pretty printing for levels (#13621)

The file was modifiedtyping/gprinttyp.ml (diff)
The file was modified.depend (diff)
The file was modifiedtyping/gprinttyp.mli (diff)
Commit 0481b086ec244562efc4456097f65ce21a566a0b by antonin
configure: use $warn_error_flag instead of -Werror
The file was modifiedconfigure.ac (diff)
The file was modifiedconfigure (diff)
The file was modifiedaclocal.m4 (diff)
Commit e166b4f840e4b46c3ea78f9fc01a47c0c19259fb by antonin
configure: stop checking for math.h

math.h is from C89. All the code assumes it is present and the define
isn't used at all.
The file was modifiedconfigure (diff)
The file was modifiedconfigure.ac (diff)
Commit 80310afb74d3e46234878aedaa98ed1bc53f7441 by antonin
configure: assume presence of unistd.h on POSIX systems
The file was modifiedotherlibs/unix/truncate_unix.c (diff)
The file was modifiedruntime/io.c (diff)
The file was modifiedruntime/domain.c (diff)
The file was modifiedotherlibs/unix/setsid.c (diff)
The file was modifiedruntime/caml/s.h.in (diff)
The file was modifiedruntime/runtime_events.c (diff)
The file was modifiedotherlibs/unix/ftruncate.c (diff)
The file was modifiedruntime/fix_code.c (diff)
The file was modifiedotherlibs/unix/nice.c (diff)
The file was modifiedruntime/caml/compatibility.h (diff)
The file was modifiedotherlibs/unix/setgroups.c (diff)
The file was modifiedotherlibs/unix/unixsupport_unix.c (diff)
The file was modifiedotherlibs/unix/lseek_win32.c (diff)
The file was modifiedruntime/unix.c (diff)
The file was modifiedotherlibs/runtime_events/runtime_events_consumer.c (diff)
The file was modifiedotherlibs/unix/lseek_unix.c (diff)
The file was modifiedruntime/startup_byt.c (diff)
The file was modifiedruntime/fiber.c (diff)
The file was modifiedotherlibs/unix/caml/unixsupport.h (diff)
The file was modifiedotherlibs/unix/mmap_unix.c (diff)
The file was modifiedruntime/backtrace_byt.c (diff)
The file was modifiedotherlibs/unix/getgroups.c (diff)
The file was modifiedotherlibs/unix/open_unix.c (diff)
The file was modifiedconfigure.ac (diff)
The file was modifiedotherlibs/unix/initgroups.c (diff)
The file was modifiedruntime/dynlink.c (diff)
The file was modifiedruntime/debugger.c (diff)
The file was modifiedotherlibs/unix/fcntl.c (diff)
The file was modifiedstdlib/header.c (diff)
The file was modifiedyacc/main.c (diff)
The file was modifiedconfigure (diff)
The file was modifiedotherlibs/unix/envir_unix.c (diff)
The file was modifiedruntime/sys.c (diff)
The file was modifiedotherlibs/unix/lockf_unix.c (diff)
The file was modifiedotherlibs/systhreads/st_pthreads.h (diff)
The file was modifiedruntime/platform.c (diff)
The file was modifiedotherlibs/unix/access.c (diff)
Commit 487a5ae89df2ef7e8fb502cf1b08e71e487b97c9 by noreply
Add a short path for String.concat and String.split_on_char (#13620)

The file was modifiedChanges (diff)
The file was modifiedstdlib/string.ml (diff)
Commit 9786bdebbd217868638318eb0c278691a5d5407d by nick
Pure re-ordering of major_gc.c, to gather related functions together.
The file was modifiedruntime/major_gc.c (diff)
Commit bc0d7725a1762551e1ff54c7ac89504e0440f90d by nick
Banner comments for each section of major_gc.c.
The file was modifiedruntime/major_gc.c (diff)
Commit 75a518d15522f0db6eaf3b0597710754e135d138 by noreply
lexer: lowercase-only delimiters for quoted strings (#13628)

* lexer: lowercase-only delimiters for quoted strings
* lexer: allow {%ext  | |}
The file was addedtestsuite/tests/parsing/comments.compilers.reference
The file was modifiedChanges (diff)
The file was modifiedparsing/lexer.mll (diff)
The file was addedtestsuite/tests/parsing/comments.ml
The file was modifiedtestsuite/tests/parsing/quotedextensions.compilers.reference (diff)
The file was modifiedtestsuite/tests/parsing/quotedextensions.ml (diff)
The file was modified.gitattributes (diff)
Commit 2270fbc50945dc779e13a6497e72ea407625b6ff by noreply
Added a few location while parsing (#13624)

The file was modifiedChanges (diff)
The file was modifiedboot/menhir/parser.ml (diff)
The file was modifiedparsing/parser.mly (diff)
Commit 19ed39f0de9a1f3aef3202d73da6ba0373302438 by antonin
Suggest regenerating configure by running tools/autogen directly
The file was modifiedtools/ci/actions/check-configure.sh (diff)
The file was modifiedtools/pre-commit-githook (diff)
The file was modifiedrelease-info/howto.md (diff)
The file was modifiedHACKING.adoc (diff)
Commit 346be1a68c5d1a479465bcfcb2023a86f577277a by antonin
Suggest a Docker image to regenerate the configure script

In case the user's system and the current CI ship a different version
of GNU Autoconf, the user-generated configure s cript might be
rejected by the CI. Suggest a Docker image based on the latest Ubuntu
LTS, which should match the CI and help .
The file was modifiedHACKING.adoc (diff)
Commit 4f04b7c00c66199fb6e42388db452d58c95ec166 by Sebastien.Hinderer
Changes: add myself as a reviewer for PR #13601
The file was modifiedChanges (diff)
The file was modifiedChanges (diff)
Commit 4771e973136b29646e410b50459ceb22ce179267 by miod
Update tsan oracles after 7f5719c2651292ccd20c6e2644d44cf6dd360105
The file was modifiedtestsuite/tests/tsan/exn_in_callback.reference (diff)
The file was modifiedtestsuite/tests/tsan/waitgroup_stubs.c (diff)
The file was modifiedtestsuite/tests/tsan/exn_reraise.reference (diff)
The file was modifiedtestsuite/tests/tsan/reperform.reference (diff)
The file was modifiedtestsuite/tests/tsan/perform.reference (diff)
The file was modifiedtestsuite/tests/tsan/record_field.reference (diff)
The file was modifiedtestsuite/tests/tsan/exn_from_c.reference (diff)
The file was modifiedtestsuite/tests/tsan/array_elt.reference (diff)
The file was modifiedtestsuite/tests/tsan/raise_through_handler.reference (diff)
The file was modifiedtestsuite/tests/tsan/unhandled.reference (diff)
Commit 5717d1c4386e5e08bef32533f2438928f0a6d898 by garrigue
Fix #13598 by protecting partial_pred
The file was modifiedtestsuite/tests/typing-gadts/pr13579.ml (diff)
The file was modifiedtyping/ctype.ml (diff)
The file was modifiedtyping/typecore.ml (diff)
The file was modifiedChanges (diff)
The file was modifiedtyping/ctype.mli (diff)
Commit aee24619a292b3a2beb654be79514a9a1266b8ee by garrigue
properly protect wrap_trace_gadt_instances
The file was modifiedtyping/ctype.ml (diff)
Commit 69959830b165e78f31930941121e7e1678e8323f by garrigue
follow Florian's suggestion
The file was modifiedChanges (diff)
The file was modifiedtyping/typecore.ml (diff)
Commit 8656c3e26b930c7984c28b1cb56f10b008fab9d2 by garrigue
add counterexample for #13599
The file was modifiedtestsuite/tests/typing-gadts/pr13579.ml (diff)
Commit c92b4bb14161643de6db62f5f02345dfd83ce482 by miod
Update tsan and frame-pointer oracles after 703ba8eac4da669f793d84452a6137f333254db2
The file was modifiedtestsuite/tests/tsan/unhandled.reference (diff)
The file was modifiedtestsuite/tests/tsan/perform.reference (diff)
The file was modifiedtestsuite/tests/tsan/reperform.reference (diff)
The file was modifiedtestsuite/tests/tsan/raise_through_handler.reference (diff)
The file was modifiedtestsuite/tests/tsan/exn_from_c.reference (diff)
The file was modifiedtestsuite/tests/tsan/exn_reraise.reference (diff)
The file was modifiedtestsuite/tests/tsan/filter-locations.sh (diff)
The file was modifiedtestsuite/tests/tsan/record_field.reference (diff)
The file was modifiedtestsuite/tests/frame-pointers/exceptions.reference (diff)
The file was modifiedtestsuite/tests/tsan/array_elt.reference (diff)
The file was modifiedtestsuite/tests/tsan/exn_in_callback.reference (diff)
Commit 803b2839def38fbea5f34c3469b5be3cc489c1b9 by nick
Use correct CFA register on MacOS. Improve linker version detection.

Co-authored-by: Tim McGilchrist <timmcgil@gmail.com>
The file was modifiedChanges (diff)
The file was modifiedtestsuite/tests/unwind/check-linker-version.sh (diff)
The file was modifiedasmcomp/arm64/emit.mlp (diff)
Commit fa7fb7275e3e2acd19382950cb8d6c089684f3b3 by garrigue
use backtracking in Ctype.unify_gadt
The file was modifiedtestsuite/tests/typing-gadts/pr13579.ml (diff)
The file was modifiedtyping/ctype.ml (diff)
Commit e0eb3c0a552e3ed0ea889a9573e61847a4fadebe by garrigue
add new failure example
The file was modifiedtestsuite/tests/typing-gadts/pr13579.ml (diff)
Commit 7cc22be81350ff05c4f0f734c607558d7ca023e1 by garrigue
optimize unify_gadt to only check for free variables in the expected type
The file was modifiedtyping/ctype.ml (diff)
The file was modifiedtyping/ctype.mli (diff)
The file was modifiedtyping/typecore.ml (diff)
Commit ebf105153f98a54747ec8d8706bdea828c621d6a by garrigue
add comment in unify_pat_types_refine
The file was modifiedtyping/typecore.ml (diff)
Commit c68aedf00ed29555caf7134ac3040004c0f57f41 by garrigue
update comment in ctype.mli
The file was modifiedtyping/ctype.mli (diff)
Commit 283b113e70a2a204743ed55b4920aef865ded189 by garrigue
update result of examples
The file was modifiedtestsuite/tests/typing-gadts/pr13579.ml (diff)
Commit a536f9cc52d729aba90d1c7721bfe9ffcdc883c5 by miod
Fix mangling of caml_system$frametable
The file was modifiedruntime/s390x.S (diff)
The file was modifiedruntime/power.S (diff)
The file was modifiedChanges (diff)
Commit 5ca75437feae9a424bfd99928ce582f52d2dd604 by timmcgil
Put G into FUNCTION, END_FUNCTION and OBJECT

Reduce the unnecessary differences between amd64.S and arm64.S runtime
files.
The file was modifiedruntime/amd64.S (diff)
Commit 0fded25d29c82cb8c7a18957fc6cd96a851556b3 by timmcgil
Fix broken frame pointer tests from #13050
The file was modifiedtestsuite/tests/frame-pointers/stack_realloc2.arm64.reference (diff)
The file was modifiedtestsuite/tests/frame-pointers/fp_backtrace.c (diff)
The file was modifiedtestsuite/tests/frame-pointers/stack_realloc.arm64.reference (diff)
Commit 2f6ba85854f19caf13c67a1d249c538dbb783e33 by samuel
Fix a pattern in configure

In a sh `case` pattern matching, each `|`-separated alternative must
match the complete expression
The file was modifiedconfigure (diff)
The file was modifiedconfigure.ac (diff)
Commit b23e217e6c25b79f3caecf73cbb43a2ca722f921 by samuel
Fix syntax details in HACKING.adoc
The file was modifiedHACKING.adoc (diff)
Commit f24b30b70880db0b34e39e1d551626c095212d5b by antonin
Update to libtool 2.5.4
The file was modifiedbuild-aux/ltoptions.m4 (diff)
The file was modifiedbuild-aux/ltsugar.m4 (diff)
The file was modifiedbuild-aux/ltmain.sh (diff)
The file was modifiedbuild-aux/lt~obsolete.m4 (diff)
The file was modifiedbuild-aux/libtool.m4 (diff)
The file was modifiedconfigure (diff)
The file was modifiedbuild-aux/ltversion.m4 (diff)
Commit 4895ce975165b015defca4542400af33269cffd3 by antonin
Update to Automake 1.17
The file was modifiedbuild-aux/missing (diff)
The file was modifiedbuild-aux/compile (diff)
The file was modifiedbuild-aux/install-sh (diff)
Commit 97cd0188405d1d653941fb723e595b452cbaa828 by antonin
Update GNU config

Update to latest (00b15927496058d23e6258a28d8996f87cf1f191).

https://git.savannah.gnu.org/cgit/config.git/commit/?id=00b15927496058d23e6258a28d8996f87cf1f191
The file was modifiedbuild-aux/config.guess (diff)
The file was modifiedbuild-aux/config.sub (diff)
The file was modifiedChanges (diff)
Commit 1c68509ebb61653d2d025bfc0eb9f5cf4cab9fd0 by antonin
Remove unneeded Automake files
The file was modified.gitattributes (diff)
The file was removedbuild-aux/compile
The file was removedbuild-aux/missing
Commit c815cfa9dbe07b98417102609200463ef728fc67 by samuel
Add the missing `$(EXE)` for `stripdebug` invocations
The file was modifiedMakefile (diff)
The file was modifiedMakefile.common (diff)
Commit 7f0c3f49a9fa8418aebad1ed576fe7e259fae387 by gabriel.scherer
typecore.ml: documentation comments for untyped_apply_arg

Co-authored-by: Samuel Vivien <samuel.vivien@inria.fr>
Co-authored-by: Florian Angeletti <florian.angeletti@inria.fr>
Co-authored-by: Ulysse Gérard <thevoodoos@gmail.com>
The file was modifiedtyping/typecore.ml (diff)
Commit 0a100d80e1739973d42648a7226f773c1a08a8c0 by gabriel.scherer
typecore.ml: documentation comments for type_application

Co-authored-by: Samuel Vivien <samuel.vivien@inria.fr>
Co-authored-by: Florian Angeletti <florian.angeletti@inria.fr>
Co-authored-by: Ulysse Gérard <thevoodoos@gmail.com>
The file was modifiedtyping/typecore.ml (diff)
Commit 015b82e094eaf5eebde80bedb292e363f56ab33f by gabriel.scherer
type_args: move [expand_head] to match trunk evaluation order
The file was modifiedtyping/typecore.ml (diff)
The file was modifiedtyping/typecore.ml (diff)
Commit 21604ef63321b7c1e0743e1dffc6a6c858d347ac by gabriel.scherer
typecore.ml: small location improvement in an type_application error message

Co-authored-by: Samuel Vivien <samuel.vivien@inria.fr>
Co-authored-by: Florian Angeletti <florian.angeletti@inria.fr>
Co-authored-by: Ulysse Gérard <thevoodoos@gmail.com>
The file was modifiedtyping/typecore.ml (diff)
Commit 21338b9d5969a6713b6737a651738cb51c789883 by gabriel.scherer
minor renaming for consistency
The file was modifiedtyping/typecore.ml (diff)
Commit a1a11b55601c3a071acc060ef3507f15d021d9dc by gabriel.scherer
typecore.ml: an [instance] was possibly missing compared to the trunk version

(This might make a difference when reconstructed omitted parameters that were deconstructed from a generic type.)

Co-authored-by: Samuel Vivien <samuel.vivien@inria.fr>
Co-authored-by: Florian Angeletti <florian.angeletti@inria.fr>
Co-authored-by: Ulysse Gérard <thevoodoos@gmail.com>
The file was modifiedtyping/typecore.ml (diff)
The file was modifiedtyping/typecore.ml (diff)
Commit f21da205e21c082bea3a9749cc4afd43ae35a5f8 by Florian Angeletti
runtime: help gcc static analyzer by widening a test
The file was modifiedruntime/startup_byt.c (diff)
Commit d32da7937b59d5b62baba06cfeb844ecc370f540 by stedolan
Avoid traversing C parts of frame pointer chain when reallocating stack

When the OCaml stack grows we need to rewrite frame pointers (if enabled)
to point to the new stack.

However, when using a C library that was not compiled with frame pointers
enabled, we cannot assume that there is an unbroken chain of frame pointers
through both the OCaml and C parts of the stack. Doing so leads to segfaults.

Instead, we note that the only frame pointers that can point to OCaml stacks
(the ones that need updating) are those already on OCaml stacks, plus the first
ones pushed after any OCaml->C calls. These can be found by traversing the
struct c_stack_link chain, without needing to traverse any intervening C frames.

This imposes a new constraint on the runtime assembly stubs: after switching to
C they must not push anything to the stack before calling a C function. This
was already true for all but caml_c_call_stack_args. Enforcing this invariant
for caml_c_call_stack_args is straightforward enough, and simplifies the DWARF
backtrace logic.

For arm64, a side-effect of this change is that DWARF backtraces now work on
stacks containing calls to caml_c_call_stack_args, which were broken before.
(Tested with macos lldb)
The file was modifiedChanges (diff)
The file was modifiedruntime/fiber.c (diff)
The file was modifiedruntime/arm64.S (diff)
The file was modifiedtestsuite/tests/frame-pointers/c_call.reference (diff)
The file was addedtestsuite/tests/frame-pointers/qsort.reference
The file was modifiedruntime/amd64nt.asm (diff)
The file was modifiedruntime/amd64.S (diff)
The file was addedtestsuite/tests/frame-pointers/qsort.ml
The file was addedtestsuite/tests/frame-pointers/qsort_.c
Commit 96c9d6ced14ffbf0e390291f98807e4d3d831294 by samuel
Include the `runtime` directory only for ocamltest

The `runtime` directory must be `-I`ncluded only since PR#12896 and only
in ocamltest.
When building an OCaml cross compiler, two OCaml compilers are actually
involved, where the non-cross compiler is used to build the cross one.
Most cross-compiler projects do that by overriding variables such as
`CAMLOPT` to point to the non-cross compiler during the build of the
cross compilers. In these use cases, adding the explicit `-I runtime`
makes them generate the cross compilers linking in the cross runtime
(which naturally fails) instead of the build/host runtime that the
non-cross compiler would use without `-I runtime`. To re-enable those
use cases, this patch moves the addition only on `ocamltest/%` targets.
The file was modifiedMakefile (diff)
Commit f7ba75b2d92448b57c05ff3a749468bc29f4b209 by samuel
Use `target` instead of `host` to detect the C toolchain

Recall that the only currently officially supported configurations are
when `build` ~ `host` = `target`, where '~' means that the code
generated for `host` runs on `build` even when they differ (such as when
`build` is `x86_64-pc-cygwin` and `host` is `x86_64-pc-windows` (MSVC)
or `x86_64-w64-mingw32`).

Still, many projects use OCaml cross compilers. All those projects
generate a cross compiler by assuming a non-cross OCaml compiler is
available in `PATH` (where non-cross means generating code that will run
on `host`). For the cross compiler, a C compiler and binutils for
`target` are necessary to build the target runtime. (Note that the
non-cross compiler will link its own (`build`/`host`) runtime into the
generated `.opt` cross compilers rather than the just-compiled target
runtime.)

In that setup the runtime that will be compiled to create a cross
compiler will run only on the `target` so this commit:

- sets `cross_compiling` by comparing `build` to `target` (rather than
  to `host`), as this variable will be used later,
- uses `target` to set up the tool prefix,
- temporarily assigns `host*` values to `target*` values during the
  libtool configuration, as this detects a `build` to `host` toolchain.

Note that all these changes are transparent when `host` = `target`.
The file was modifiedconfigure (diff)
The file was modifiedconfigure.ac (diff)
Commit 4ec617b5a65c24cea5ebac8e99ce7d3c173ab103 by samuel
Use `target` instead of `host` when relevant in configuration

As the C toolchain being configured is generating code for `target`, use
`target` in every test that is done according to the toolchain.

Note that all these changes are transparent when `host` = `target`.
The file was modifiedaclocal.m4 (diff)
The file was modifiedconfigure.ac (diff)
The file was modifiedconfigure (diff)
Commit b6a46a5d27dab85ec76581be63e33ec5f6acec1b by samuel
Detect a _build_ C toolchain to build `sak`

Import `ax_prog_cc_for_build` from the Autoconf Macro Archive to detect
the C toolchain for the build machine when (and only when) we are
generating a cross compiler, namely when code generated for the target
doesn't run on the build machine
Move the configuration of `SAK_*` variables in `configure` to set them
using the build C toolchain to compile and link `sak` when generating a
cross compiler
This assumes that `sak` can be built with the default
automatically-detected flags when building a cross compiler
The file was modifiedMakefile (diff)
The file was addedbuild-aux/ax_prog_cc_for_build.m4
The file was modifiedMakefile.build_config.in (diff)
The file was modifiedaclocal.m4 (diff)
The file was modifiedconfigure.ac (diff)
The file was modifiedconfigure (diff)
Commit 32e393c31541777c7f97e1a255814fd619d84f03 by samuel
Check that the OCaml versions are compatible for a cross compiler

When building a cross compiler using an already built non-cross
compiler, check that they are of the same version as a sanity check, as
the cross compiler will be linked using the OCaml code in the source
tree and the C runtime from the non-cross compiler
The file was modifiedconfigure.ac (diff)
The file was modifiedconfigure (diff)
Commit 6fad55e2669ae7fa04ab82e33a9822aecaca151a by olejodd10
Improve documentation of Map.S.add_to_list

Replace `v` with `data` for better readability
The file was modifiedstdlib/templates/map.template.mli (diff)
The file was modifiedstdlib/map.mli (diff)
The file was modifiedstdlib/moreLabels.mli (diff)
Commit 91ced71ae91405463f88da4376743efe87f3cab5 by noreply
Improve the error message when GADT parameter variance cannot be checked (#13663)

The file was modifiedtyping/typedecl.ml (diff)
The file was modifiedtyping/typedecl_variance.mli (diff)
The file was modifiedChanges (diff)
The file was modifiedtyping/typedecl_variance.ml (diff)
The file was modifiedtestsuite/tests/typing-gadts/yallop_bugs.ml (diff)
Commit 63293581e124962d6f9e1d92b3ca7d79fc8957ed by noreply
Better errors for illegal recursive modules (#13646)

The file was modifiedtyping/typemod.ml (diff)
The file was modifiedtyping/env.ml (diff)
The file was modifiedtyping/typeclass.ml (diff)
The file was modifiedtestsuite/tests/typing-recmod/gpr1626.ml (diff)
The file was modifiedtestsuite/tests/typing-recmod/pr6491.ml (diff)
The file was modifiedChanges (diff)
The file was modifiedtyping/env.mli (diff)
Commit 0a729049c50b4ba02ee0622f986ec4e1ed3d8a95 by Florian Angeletti
release-info: update the prospective calendar
The file was modifiedrelease-info/calendar.md (diff)
Commit 54ca811639689aa21ce9d4c2bd7d16de331029fe by samuel
Use a `TARGET_BINDIR` configure variable instead of `--with-target-bindir`

Change the way to configure the location of the runtime binaries on the
target system from a `--with-target-bindir=...`, which allows users to
use a meaningless `--without-target-bindir`, to a `TARGET_BINDIR`
variable

Suggested-by: Sébastien Hinderer <seb@tarides.com>
Suggested-by: David Allsopp <david.allsopp@metastack.com>
The file was modifiedconfigure (diff)
The file was modifiedconfigure.ac (diff)
Commit 799fd8e2d0e0c250d03f5174f83d110ae5d24057 by samuel
Add a configurable library directory on target

Add a `TARGET_LIBDIR` variable to `configure` and assign a Makefile
`TARGET_LIBDIR` variable with it
Use the value of `LIBDIR` by default for this new variable
Use `TARGET_LIBDIR` to define the `OCAML_STDLIB_DIR` macro used by the
runtime

When building a cross compiler, the OCaml standard library has no reason
to be found at the same paths on the host and on the target. This allows
users to provide a path that is meaningful to look for libraries to link
dynamically on the target.
The file was modifiedconfigure (diff)
The file was modifiedMakefile (diff)
The file was modifiedMakefile.config.in (diff)
The file was modifiedconfigure.ac (diff)
Commit a11d993d9c30109951fc036374d7dc5c8b68ec0b by samuel
Detect `flexlink` only on relevant targets

On Unix platforms, make sure it is possible to have a `flexlink`
executable in `PATH` (which is useful for instance when using a cross
compiler to Windows), and still be able to configure and build a
non-cross compiler
The file was modifiedconfigure.ac (diff)
The file was modifiedconfigure (diff)
Commit 5e3d5b97c4dfc696b8a0246da0bfe2a1087649db by samuel
Add a `Config` entry for the compression libraries

Define `Config.compression_c_libraries` for the flags needed to link
with the `comprmarsh` library

Need bootstrap

Co-authored-by: Sébastien Hinderer <seb@tarides.com>
The file was modifiedutils/config.mli (diff)
The file was modifiedutils/config.fixed.ml (diff)
The file was modifiedutils/config.generated.ml.in (diff)
The file was modifiedutils/config.common.ml.in (diff)
Commit c552e7d5f470f985fcda472e60ef6910a2f061d9 by samuel
Add a `Config` entry for the target OS type

Define `Config.target_os_type` so that:

- the `%ostype_*` primitives correspond to the target OS type rather
  than the host OS one,
- the default executable name is the expected default of the target
  platform.

Need bootstrap
The file was modifiedmiddle_end/flambda/closure_conversion.ml (diff)
The file was modifiedutils/config.mli (diff)
The file was modifiedutils/config.generated.ml.in (diff)
The file was modifiedconfigure (diff)
The file was modifiedutils/config.common.ml.in (diff)
The file was modifiedutils/config.fixed.ml (diff)
The file was modifiedconfigure.ac (diff)
The file was modified.depend (diff)
The file was modifiedmiddle_end/closure/closure.ml (diff)
Commit b4168737e06b944dcb753681591cde1ca97e972e by samuel
Bootstrap

Bootstrap due to the 2 previous commits
The file was modifiedboot/ocamlc (diff)
The file was modifiedboot/ocamllex (diff)
Commit e836fae84502eebb34c524e4babc3e5d1d2e4649 by samuel
Add a Makefile.cross with rules to build a cross compiler

Add a new `Makefile.cross` that gets enabled when building a cross
compiler, aka when host is different from target
Define two new (phony) targets:
- crossopt, to build the cross compilers to the native target (and what
  is required for such cross compilers to work)
- installcross, to install the cross compilers
The file was addedMakefile.cross
The file was modifiedMakefile (diff)
Commit 27861bd9a7100376a29023ef35d83f1f96581c8a by samuel
Enable bootstrapping flexdll in the cross-compiler setting

Add a rule to build flexdll in the cross-compiler setting, namely
building flexdll on Unix, by driving its `Makefile` so that Windows
resources are not built and only the .opt version is really built (and
copied to the byte binary directory nevertheless)
Use the `-o` flag to tell `make` to never try to rebuild `flexlink` (as
it would otherwise, according to the dependencies in the main
`Makefile`)
The file was modifiedMakefile.cross (diff)
Commit 5d48e0ddca638c24680db268f47041b9b9578ee0 by samuel
Add cross-compilation cases to `sak`

When building a Windows-to-Unix OCaml cross compiler, `sak` gets a
Windows string (of UTF-16 `wchar_t`s) and must produce a Unix string (of
UTF-8 `char`s). And vice versa when building a Unix-to-Windows cross
compiler.
To make this possible, this commit splits the `encode-C-literal` command
into two commands with specific encodings of the result:
`encode-C-utf8-literal` and `encode-C-utf16-literal`.

Instead of pulling in a library (and the problems of linking with it)
for the task, this commit adds the specific and simple UTF-* encoders
and decoders that are needed and uses them only when building a
cross compiler (the result is unchanged in non-cross-compiler settings).

In the cross-compiler UTF-8 case, the non-printable characters are
encoded to get a safer generated code.
The file was modifiedconfigure (diff)
The file was modifiedruntime/sak.c (diff)
The file was modifiedconfigure.ac (diff)
The file was modifiedMakefile (diff)
The file was modifiedMakefile.build_config.in (diff)
Commit dcfef9ff06ae8430fad5260a11b15a8448c2ba9e by samuel
Document cross compilers in INSTALL.adoc
The file was modifiedINSTALL.adoc (diff)
Commit 9cc3d8b5bf3acbc0e458549b442fa59b36930cbb by samuel
Add a changelog entry for cross compilers
The file was modifiedChanges (diff)
Commit b74457d71c0cabd1f9e15981aa0e10080ad37953 by samuel
Add a CI workflow to test cross compilers

This commit adds a new CI workflow to build a set of cross compilers,
use them to compile a simple program and run the generated binaries on
the target platforms
This new workflow can be triggered on PRs by adding the
`run-crosscompiler-tests` label and on `trunk` manually
The file was modified.gitattributes (diff)
The file was added.github/workflows/build-cross.yml
Commit e1da88653cac3e26962a1a3d652848f81062581b by fdsteffahn
Improve `regular_nested` example for “polymorphism” chapter

Previously, the example dept function for `regular_nested` was clearly buggy. In particular the expression
```
1 + max (maximal_depth a) (maximal_depth (Nested q))
```
was adding `1` to the `maximal_depth (Nested q)` side, too, resulting in unbalanced depth calculation (later list elements get increasingly larger “depth”)

The minimal fix would have been
```
max (1 + maximal_depth a) (maximal_depth (Nested q))
```
but then I still find the `Nested [] -> 0` case confusing. Adding a `List []` element to produce `Nested [List []]` makes the depth jump by `2`!?

We could redefine this. E.g. as `Nested [] -> 1`, which is better already.
Still, this calls out a “Nested” case for certain values which aren’t actually reporting a depth>1.

During PR review, we thus ended up with actually making `..._depth (Nested [])` evaluate to 2!

A minimally changed definition thus looks like
```
let rec regular_depth = function
  | List _ -> 1
  | Nested [] -> 2
  | Nested (a::q) -> max (1 + maximal_depth a) (maximal_depth (Nested q));;
```
(about the name change, see below)

We instead change the definition now to work with `List._` API instead, so it becomes
```
let rec regular_depth = function
  | List _ -> 1
  | Nested n -> 1 + List.fold_left max 1 (List.map regular_depth n);;
```

This avoids the use of the previous, somewhat weird “manual fold” approach;
additionally it makes the `Nested [] -> 2` case less prominent and thus (hopefully) less distracting
to readers who don’t actually *want* do reason about the exact behavior of this depth-function.

And finally, with this
```
let rec regular_depth = function
  | List _ -> 1
  | Nested n -> 1 + …something…with…regular_depth…n…;;
```
structure, the function becomes (at least superficially) very similar to the subsequent
```
let rec depth = function
  | List _ -> 1
  | Nested n -> 1 + depth n;;
```
which could help a reader to focus less on wondering if the latter really is just the result of directly “adapting” the former.

The naming is also changed to keep more consistent:
now it is `regular_nested` with `regular_depth`
and then `nested` with `depth`

Finally (also relating to naming) there actually was a clear typo that’s fixed now:
the original text had one instance where it misspelled “`regular_nested`” as “`regular_depth`” in line 306 (now 305).

(This commit also includes a few instances of bad-looking extra indentation removed, and the definition of `type 'a regular_nested` is not separated via `;;` from the example `let l = ...` which should help improve readability)
The file was modifiedChanges (diff)
The file was modifiedmanual/src/tutorials/polymorphism.etex (diff)
The file was modifiedChanges (diff)
Commit e2b1636f59fd57c0378d551715f9d377477346fc by noreply
Remove redundant ~refine argument in Typecore, and clarify use of unify_gadt. (#13660)

The file was modifiedtyping/ctype.mli (diff)
The file was modifiedtyping/ctype.ml (diff)
The file was modifiedtyping/typecore.ml (diff)
Commit eb217aaba7ab8253193c5bccb08c7ffcfb8ac1fd by david.allsopp
Only call Cygwin setup once

If upgrading is forced and packages are required, combine the two calls.
The file was modifiedtools/ci/appveyor/appveyor_build.cmd (diff)
Commit 30c0ae59aa340d332a6e48884fe189bd9d1f0a6f by david.allsopp
Fix logic error in configure.ac

The AS_CASE for initialising install_ocamlnat was using $natdynlink
before it had been set.
The file was modifiedconfigure (diff)
The file was modifiedconfigure.ac (diff)
Commit 714b354f9243c2dd606f9dc7c05018ad834c6e8d by Pierre Chambart
Avoid register stall on conversion operations
The file was modifiedasmcomp/amd64/emit.mlp (diff)
Commit 30b33feb3287f9ff52b19fa59a5c4b2f7094d3d9 by Florian Angeletti
driver: use compilation unit name in dependency in native linker
The file was addedtestsuite/tests/badly-ordered-deps/a.ml
The file was addedtestsuite/tests/badly-ordered-deps/cocinelle.reference
The file was addedtestsuite/tests/badly-ordered-deps/cocinelle.ml
The file was modifiedasmcomp/asmlink.ml (diff)
The file was modifiedbytecomp/bytelink.ml (diff)
The file was modifiedasmcomp/asmlibrarian.ml (diff)
The file was modifiedChanges (diff)
Commit e287d1ab946bd34aec898b9115cec1cf5051c8fb by Florian Angeletti
review: testsuite explanation
The file was modifiedtestsuite/tests/badly-ordered-deps/cocinelle.ml (diff)
The file was modifiedChanges (diff)
Commit 143aabbcb8770b0a8f4b7a67216db30d10a6285a by gabriel.scherer
[refactor] genprintval: abstract away the use of Out_name

Note: `tree_of_qualified` now take a `name : string` instead of a
`name : out_name` that had to sometimes be transformed back without
being used for printing.
The file was modifiedtoplevel/genprintval.ml (diff)
Commit ee8709ff5a4866904f41e1595fc31d4b9093f325 by gabriel.scherer
a testsuite for toplevel printing of constructors
The file was addedtestsuite/tests/tool-toplevel/constructor_printing.ml
Commit cdc747d2494d8858e539201d7d11f899e3e293ce by gabriel.scherer
genprintval: printer shorter paths for constructors
The file was modifiedtyping/data_types.mli (diff)
The file was modifiedtyping/data_types.ml (diff)
The file was modified.depend (diff)
The file was modifiedtestsuite/tests/tool-toplevel/constructor_printing.ml (diff)
The file was modifiedtoplevel/genprintval.ml (diff)
Commit b010c5f6669698e7222a4363decba966ba01f32e by gabriel.scherer
genprintval constructor printing: extra test case
The file was modifiedtestsuite/tests/tool-toplevel/constructor_printing.ml (diff)
Commit 782595b4f25d8bf5a1625c382b31d4c5c826d39c by gabriel.scherer
testsuite example from Florian
The file was modifiedtestsuite/tests/tool-toplevel/constructor_printing.ml (diff)
The file was modifiedChanges (diff)
Commit 0bc9035ba57b4697790ccbdeab79de8d332c5c17 by gabriel.scherer
runtime: remove backup_thread_running

Reported-by: Jan Midtgaard <mail@janmidtgaard.dk>
The file was modifiedruntime/domain.c (diff)
Commit 523e6a6253b11d0d9d99682a8436fb1efb2cdedc by noreply
Update GitHub CI Ubuntu from 22.04 to 24.04. (#13665)

Update Ubuntu from 22.04 to 24.04.

Co-authored-by: David Allsopp <david.allsopp@metastack.com>
The file was modifiedtestsuite/tests/native-debugger/linux-lldb-amd64.reference (diff)
The file was modified.github/workflows/build.yml (diff)
The file was modifiedtestsuite/tests/native-debugger/sanitize.awk (diff)
Commit c796b3b05fa42df6d033d127d6be25ded7c74114 by noreply
Add eager bool functions: Bool.(logand, logor, logxor). (#13662)

Add eager bool functions: Bool.(logand, logor, logxor).
The file was modifiedtestsuite/tests/lib-bool/test.ml (diff)
The file was modifiedstdlib/bool.mli (diff)
The file was modifiedstdlib/bool.ml (diff)
The file was modifiedChanges (diff)
Commit af968358ffeee9eaae2389a090e7472a2a035e4a by samuel.aime.vivien
Refactor in typing/typetexp
The file was modifiedtyping/typetexp.ml (diff)
Commit 1227a7339d5f07a4af54bbe2ef424a63264cac8d by samuel.aime.vivien
Lifted code out for tree_of_typexp
The file was modifiedtyping/out_type.ml (diff)
Commit 3480dbd1ffba5f38cac1190ca1d0bf1d8a5cefa3 by samuel.aime.vivien
Refactor in parsing/pprintast
The file was modifiedparsing/pprintast.ml (diff)
The file was modifiedtyping/typemod.ml (diff)
The file was modifiedparsing/pprintast.ml (diff)
Commit 0de4054f265ab70d710d1a49138563cffe8ac152 by nick
Teach debugger scripts about variable number of domains.
The file was modifiedChanges (diff)
The file was modifiedtools/gdb.py (diff)
The file was modifiedtools/ocaml.py (diff)
The file was modifiedtools/lldb.py (diff)
Commit ba2948992b21f58efef748f7a8681d0d39e283a7 by garrigue
Fix #13688 by moving before_generalize call inside with_new_pool
The file was modifiedtyping/ctype.ml (diff)
The file was addedtestsuite/tests/typing-misc/automatic_generalize.ml
The file was modifiedtyping/ctype.ml (diff)
Commit d89dd7bf3c59c89bd0d2f9173f0fbe5ca7483279 by gabriel.scherer
domain.c: simplify caml_domain_is_multicore

Reviewed-by: Miod Vallat <miod@tarides.com>
The file was modifiedruntime/domain.c (diff)
The file was modifiedChanges (diff)
Commit 7ad9280cd6aa3ec191d12f64282681a4daf5c831 by Florian Angeletti
manual: switch pdf renderer to lualatex
The file was modifiedmanual/src/Makefile (diff)
The file was modifiedmanual/src/manual.tex (diff)
Commit 50f2d28aafe77497a8157d9fb7600c6fd3cd5dab by Florian Angeletti
manual: don't escape non-ascii unicode character in grammars
The file was modifiedmanual/tools/transf.mll (diff)
Commit 19de0eda12c83f52c83640e0739e569ec63d118e by Florian Angeletti
manual: document the switch to basic unicode support
The file was modifiedmanual/src/refman/lex.etex (diff)
The file was modifiedChanges (diff)
The file was modifiedChanges (diff)
Commit 670d5edf8c951a3ffd34efb34de65db7b7a07b57 by Florian Angeletti
review: Unicode capitalization
The file was modifiedmanual/src/refman/lex.etex (diff)
Commit 337e0b2b49745b8b834c7e21d72201248ae0bbb5 by Florian Angeletti
manual: transf.mll better escaping
The file was modifiedmanual/tools/transf.mll (diff)
Commit 2d80773b504a792b1eacbcf5a5622cf1bf2558ac by Florian Angeletti
review: use Unicode vocabulary
The file was modifiedmanual/src/refman/lex.etex (diff)
Commit 2815c01df35ac0bd37850028385ad0ffdbba1172 by Florian Angeletti
review: stronger encoding wording
The file was modifiedmanual/src/refman/lex.etex (diff)
The file was modifiedChanges (diff)
Commit c64ad791616421a239e8b96e824dae9be4a50783 by Florian Angeletti
review: rewording and expand Latin-1 block
The file was modifiedmanual/src/refman/lex.etex (diff)
Commit 8fd5cab915856a8835322fac451ea1ddcefad039 by Florian Angeletti
github workflow: add texlive-luatex for the manual
The file was modified.github/workflows/build.yml (diff)
Commit d2b884f18af3f014acd301c668b4f51cff7dda45 by thevoodoos
Introduce `Typedtree.map_apply_arg`

Suggested-by: Gabriel Scherer <gabriel.scherer@gmail.com>
The file was modifiedlambda/translcore.ml (diff)
The file was modifiedtyping/typedtree.ml (diff)
The file was modifiedtyping/tast_mapper.ml (diff)
The file was modifiedtyping/typedtree.mli (diff)
Commit f4c8d14cbfe84e68f12d77f2e58dae1d97c96d25 by thevoodoos
Make matching exhaustive
The file was modifiedlambda/translcore.ml (diff)
The file was modifiedtyping/typecore.ml (diff)
The file was modifiedtyping/typedtree.mli (diff)
Commit 32c98b64e8327bcb87326939cd4b116ff4870b67 by thevoodoos
Rename `type_omitted_parameters`
The file was modifiedtyping/typecore.ml (diff)
Commit fceca9e8a40c6ba65ba1d9012280f565640da7bd by thevoodoos
Update reviewers list in changelog
The file was modifiedChanges (diff)
The file was modifiedChanges (diff)
Commit 94fafd4c02b8da396e7d7646c236a95091353dc2 by mail
Rewrite mutable globals for GC control to be atomic

This rewrites four globals to be atomic, thus avoiding data races to them
and bringing them in line with the atomic caml_verb_gc:
- caml_percent_free
- caml_custom_major_ratio
- caml_custom_minor_ratio
- caml_custom_minor_max_bsz
The file was modifiedruntime/caml/custom.h (diff)
The file was modifiedruntime/custom.c (diff)
The file was modifiedruntime/gc_ctrl.c (diff)
The file was modifiedruntime/major_gc.c (diff)
Commit 894cae4b634e6bd7df44fec6f1588e6dc163d3dc by david.allsopp
Revert "Include the `runtime` directory only for ocamltest"

This reverts commit 96c9d6ced14ffbf0e390291f98807e4d3d831294.
The file was modifiedMakefile (diff)
Commit e8a96519666e4ec1253aeee3d85ecea145130f91 by david.allsopp
Fix static builds of the compiler

ocamlc -custom needs to include <caml/mlvalues.h> and therefore the
build has -I runtime in order to facilitate this. -I runtime breaks
cross-compilation, since it causes the .a files in runtime to be found
by the host ocamlopt instead of its own.

This workaround defeats that problem by adding + to VPATH as the first
include, which will cause the host compiler's Standard Library directory
(which includes the runtime .a files) to be included first in the search
path. When building the compiler's libraries (which should be using the
target's Standard Library, not the host's), -nostdlib -I stdlib is
already inserted before VPATH by the build system, which means this
mechanism never interferes with the selection of the correct Standard
Library.
The file was modifiedMakefile.cross (diff)
Commit fa8cd4d714e3106970bfa0148d9c4adf8e73e67f by michael
manual: fix name of caml_hash_variant in the C interface

The function is called hash_variant in Btype, but caml_hash_variant in
caml/mlvalues.h.
The file was modifiedmanual/src/cmds/intf-c.etex (diff)
The file was modifiedChanges (diff)
Commit fbe9cedf020ceedbfc777977fe86346dcec289ff by hugo.heuzard
faster caml_continuation_use_and_update_handler_noexc
The file was modifiedruntime/fiber.c (diff)
The file was modifiedChanges (diff)
Commit 385ab8f9b9ad8d8dc53a7d2777e35533fc6c93fa by pieter
Support unicode identifiers in comments
The file was modifiedparsing/lexer.mll (diff)
Commit e8d47983ea6b5556484caca3196b09b245f4e013 by gabriel.scherer
typos in ephemeron-related comments
The file was modifiedruntime/caml/weak.h (diff)
The file was modifiedruntime/weak.c (diff)
Commit d75d775e0c15bddb2b42685c144abefeeb38012f by gabriel.scherer
typemod: labeled argument [strengthen:bool] for type_{module,application}
The file was modifiedtyping/typemod.ml (diff)
Commit 85970ee160c13baa89d904dabb00266eb08dc088 by gabriel.scherer
typemod: labeled argument [funct_body:bool] for type_{module,application,open_decl}
The file was modifiedtyping/typemod.ml (diff)
Commit ccbd123a82e59c710f36097c37b269d4cbbf7c20 by pieter
Add test for unicode identifier in comment
The file was modifiedtestsuite/tests/parsing/comments.ml (diff)
The file was modifiedtestsuite/tests/parsing/comments.compilers.reference (diff)
Commit 4d2298df37987fe5bb099bc0943a304024b524c9 by noreply
Add `Char.Ascii` module (#13695)

* char.mli: add a module preamble.

* char.mli: replace incorrect mentions of 'ASCII code' by 'integer code'.

* char.mli: uniformize integer range notations, turn US-ASCII into ASCII.

* char.mli: section the module.

* Add Char.Ascii module.

* Address review comments.

* Change {lower,upper}_hex_digit_of_int to behave like digit_of_int.
The file was modifiedtestsuite/tests/typing-modules/aliases.ml (diff)
The file was modifiedstdlib/char.ml (diff)
The file was modifiedChanges (diff)
The file was modifiedstdlib/char.mli (diff)
The file was addedtestsuite/tests/lib-char/test.ml
The file was addedtestsuite/tests/lib-char/test.reference
Commit bf7d441d6c0f0c682cb678167f93719efd42a5c7 by guillaume.munch-maccagnoni
[minor] Document locking behaviour of C channels
The file was modifiedruntime/caml/io.h (diff)
The file was modifiedruntime/runtime_events.c (diff)
The file was modifiedruntime/caml/platform.h (diff)
Commit 88f1c1cebcd5d2d3fd2d37e16163d34bf750722d by guillaume.munch-maccagnoni
Avert potential deadlock in caml_iterate_named_values

But have not found uses of caml_iterate_named_values in the wild to
evaluate the actual impact.
The file was modifiedruntime/callback.c (diff)
Commit 50bf0b072a00634fb39b09ab1ef9681e3d881364 by guillaume.munch-maccagnoni
Use caml_plat_lock_non_blocking in signals.c, clarify signal installation
The file was modifiedruntime/signals.c (diff)
Commit 2ff121a1f1c255df084141f941657c3e54af1124 by guillaume.munch-maccagnoni
Replace caml_plat_locking with caml_plat_non_blocking in io.c

We apply the rule of using the non-blocking version when calling from
the mutator. The present change does not fix potential bugs AFAIU.
The file was modifiedruntime/io.c (diff)
Commit d931f22d7fe8899eec68621d42befd18b7ac38ee by guillaume.munch-maccagnoni
Document remaining uses of caml_plat_lock
The file was modifiedruntime/caml/frame_descriptors.h (diff)
The file was modifiedruntime/codefrag.c (diff)
The file was modifiedruntime/frame_descriptors.c (diff)
The file was modifiedruntime/globroots.c (diff)
The file was modifiedruntime/gc_stats.c (diff)
The file was modifiedChanges (diff)
The file was modifiedChanges (diff)
Commit 1f2b4bb8064eb2b87cb59a6537ccf5e9705fdc24 by guillaume.munch-maccagnoni
Revert "Replace caml_plat_locking with caml_plat_non_blocking in io.c"

This reverts commit 2ff121a1f1c255df084141f941657c3e54af1124.

See #13713
The file was modifiedruntime/io.c (diff)
Commit 9f8dac22c42f1d41a027b3c8144657c656aee6cd by guillaume.munch-maccagnoni
Document use of caml_plat_lock_blocking
The file was modifiedruntime/io.c (diff)
Commit ada90eb6d3b8f3b3669af726b95ae970780e1830 by guillaume.munch-maccagnoni
Correctly fix the runtime events deadlock
The file was modifiedruntime/caml/platform.h (diff)
The file was modifiedruntime/runtime_events.c (diff)
The file was modifiedChanges (diff)
Commit 93ef4d3cdadc15dddd21be5bbf164f72ee94509a by thevoodoos
Use a more explicit name for [remaining_function_type]
The file was modifiedtyping/typecore.ml (diff)
Commit 681f10ef93b33ab5b17a1fea2160f8b4b97f55ef by david.allsopp
Pin Cygwin back to 3.5.4
The file was modifiedtools/ci/appveyor/appveyor_build.cmd (diff)
Commit 3adf26f4284e4f8c74cfe347565466e6572e2d22 by david.allsopp
Correct OOM semantics of caml_stat_strdup_to_os

The Windows implementation caml_stat_strdup_to_utf16 returned NULL on
OOM, where caml_stat_strdup raises Out_of_memory. Windows implementation
fixed to raise Out_of_memory.

caml_stat_strdup_noexc_to_os to be used in the one place in the runtime
where NULL should in fact be returned.
The file was modifiedruntime/win32.c (diff)
The file was modifiedChanges (diff)
The file was modifiedruntime/caml/misc.h (diff)
The file was modifiedruntime/caml/osdeps.h (diff)
Commit 71783097893344035c6840ff7b49434e78396e94 by gabriel.scherer
fix subtyping error message for some polymorphic variants

fixes #13703
The file was modifiedChanges (diff)
The file was modifiedtestsuite/tests/typing-misc/polyvars.ml (diff)
The file was modifiedtyping/ctype.ml (diff)
Commit b082fd17f080c7fb7e13f2bbb57edb06cd1e81c8 by david.allsopp
Create symlinks on Windows when available

Previously Windows unconditionally uses `cp`, doubling the size required
for the OCaml binaries. `configure` now determines if `ln` creates
native symlinks and only uses `cp` if that fails. Users of the compiler
are simply required to enable Developer Mode (or build OCaml using an
elevated shell).
The file was modifiedconfigure.ac (diff)
The file was modifiedconfigure (diff)
The file was modifiedChanges (diff)
The file was modifiedaclocal.m4 (diff)
Commit e0467cc670b51d29942556a028313b6d260344da by david.allsopp
Set MSYS and CYGWIN permanently

Slightly easier detection, and a somewhat hardened implementation.
The file was modifiedMakefile.common (diff)
The file was modifiedaclocal.m4 (diff)
The file was modifiedconfigure (diff)
Commit e24eacc40c5c955e57bf59707a60e2cb64dc124f by david.allsopp
Test installations on the MSVC workflow
The file was modified.github/workflows/build-msvc.yml (diff)
The file was modified.gitattributes (diff)
The file was modifiedstdlib/result.mli (diff)
The file was modifiedtestsuite/tests/lib-result/test.ml (diff)
The file was modifiedstdlib/result.ml (diff)
The file was modifiedChanges (diff)
The file was modifiedtestsuite/tests/match-side-effects/test_contexts_code.ml (diff)
Commit bb153516686ec1d4b180cbbec5736e5f0aea6dda by samuel
Add a dummy `caml_debugger_saved_instruction` when `HAS_SOCKETS` is false

The `caml_debugger_saved_instruction` function is called unconditionally
in `runtime/interp.c` to implement the debugger-specific instructions.
This patch provides a dummy implementation for that function, alongside
the other `caml_debugger_*` functions, so that the interpreter can be
built in the uncommon setups with no available socket implementation.
The file was modifiedruntime/debugger.c (diff)
Commit dd76656cdcf5d78f0c41c3a117397d1209f6c2c1 by duncan
Fix Dynarray.for_all's docstring
The file was modifiedstdlib/dynarray.mli (diff)
Commit 227b7b1e407b7dfcf0ac7457ca3c5d52b180bd20 by mail
Bump multicoretests to version 0.6
The file was modified.github/workflows/multicoretests.yml (diff)
Commit bb73dc75315dd620652b0d37e887248e3735fc7e by noreply
Fix minor typo in Ephemeron documentation (#13730)

Signed-off-by: Josh Berdine <josh@berdine.net>
The file was modifiedstdlib/ephemeron.mli (diff)
Commit 3b4310333cdac89a5fb6855c4ffd4ef5a9e38f8e by mail
Add a Changes entry
The file was modifiedChanges (diff)
Commit b2ee286390a47c5ec6f98d7c6add57fb21f7f947 by noreply
Add `filteri` to `Seq` (#13729)

The file was modifiedstdlib/seq.ml (diff)
The file was modifiedtestsuite/tests/lib-seq/test.ml (diff)
The file was modifiedChanges (diff)
The file was modifiedstdlib/seq.mli (diff)
Commit 49baed77c5e7f1f83f39220d5a0c2bc89ffc446f by noreply
Add Either.retract (#13731)

The file was modifiedstdlib/either.ml (diff)
The file was modifiedtestsuite/tests/match-side-effects/test_contexts_code.ml (diff)
The file was modifiedChanges (diff)
The file was modifiedstdlib/either.mli (diff)
Commit 0f328ae448be6a96d7deb5bb3ccf9c3d452abdac by timmcgil
instr_size fixes for arm64
The file was modifiedChanges (diff)
The file was modifiedasmcomp/arm64/emit.mlp (diff)
Commit a38592bfa6fcd2e4ad8633620b7bea27d310d09d by timmcgil
Add enable-codegen-invariants flag for instr_size debugging
The file was modifiedutils/config.fixed.ml (diff)
The file was modifiedconfigure (diff)
The file was modifiedMakefile.config.in (diff)
The file was modifiedutils/config.mli (diff)
The file was modifiedutils/config.generated.ml.in (diff)
The file was modifiedutils/config.common.ml.in (diff)
The file was modifiedasmcomp/arm64/emit.mlp (diff)
The file was modifiedconfigure.ac (diff)
Commit 2da20f7641342c880289c850e83d4f2f58ba23c8 by noreply
Improve performance of Weak.add (#13737)

* Improve performance of Weak.add

Replace a recursive function by a while loop.
The recursive function was allocated for each element when resizing, contributing significantly
to the memory footprint of code using weak tables.

* More idiomatic code

* Changes

* nitpick from Gabriel
The file was modifiedstdlib/weak.ml (diff)
The file was modifiedChanges (diff)
Commit 46fed85f453314df95257f19490bd934bd24a1d1 by david.allsopp
Correct name of coccinelle test
The file was removedtestsuite/tests/badly-ordered-deps/cocinelle.reference
The file was removedtestsuite/tests/badly-ordered-deps/cocinelle.ml
The file was addedtestsuite/tests/badly-ordered-deps/coccinelle.reference
The file was addedtestsuite/tests/badly-ordered-deps/coccinelle.ml
Commit ab31621c1e3f9da0350ef952a2043780771c4356 by david.allsopp
Fix coccinelle linking regression test on Cygwin

Native code version of the test specifies that the program is
coccinelle.exe (on all platforms) and the output coccinelle. On Cygwin,
these are the same file and setting up the output therefore truncates
the program before it runs.
The file was modifiedtestsuite/tests/badly-ordered-deps/coccinelle.ml (diff)
Commit 21a98e6a3f87bc26209465bffc58034a7fe3df92 by david.allsopp
Simplify test script slightly
The file was modifiedtestsuite/tests/badly-ordered-deps/coccinelle.ml (diff)
Commit 7530f1f51db81f87c4738035d22b77042c3c6a33 by timmcgil
Add enable-codegen-invariants flag to CI testing
The file was modifiedtools/ci/inria/main (diff)
The file was modified.github/workflows/build.yml (diff)
Commit 8f2daefea61762313728a38e415c00b6cad903ca by noreply
Optimize Weak.find_aux (#13740)

Change the Stdlib Weak module's find_aux function that is used by find,
find_opt, mem, merge, and remove to avoid a closure allocation by converting
a nested recursive function to a while loop.
The file was modifiedstdlib/weak.ml (diff)
The file was modifiedChanges (diff)
The file was modifiedstdlib/.depend (diff)
Commit 137dd26adc3345547b6eef6da744ac0d66fbc209 by noreply
String starts_with/ends_with tests should run unconditionally (#13741)

The file was modifiedtestsuite/tests/lib-string/test_string.ml (diff)
Commit 657d79eb2d4d6c3502cf49067d24980c25d2b442 by david.allsopp
Add caml_stat_char_array_{to,of}_os

Allows conversion of arbitrary char/wchar_t sequences by allowing the
number of characters copied to be specified. The output length of the
encoding can also be returned by these functions.
The file was modifiedruntime/caml/memory.h (diff)
The file was modifiedruntime/memory.c (diff)
The file was modifiedChanges (diff)
The file was modifiedruntime/caml/misc.h (diff)
The file was modifiedruntime/caml/osdeps.h (diff)
The file was modifiedruntime/win32.c (diff)
Commit 6612bfeb129a6576475d66a7cd9a35942126d9b7 by david.allsopp
Annotate more caml_stat_* functions
The file was modifiedruntime/caml/osdeps.h (diff)
The file was modifiedruntime/caml/memory.h (diff)
Commit f0d5d907ab13a5fe3a3c834b01c145199974e21f by noreply
Add Linux ARM64 build
The file was modified.github/workflows/build.yml (diff)
The file was modified.github/workflows/build.yml (diff)
Commit a31022b1de9bd946901ec8b2b65d854e402ae951 by antonin
Add a .editorconfig file

https://editorconfig.org/
The file was modifiedHACKING.adoc (diff)
The file was modifiedChanges (diff)
The file was added.editorconfig
The file was modified.gitattributes (diff)
Commit 7a01877e2265697da0dec8dbfe80fea0d09749a0 by josh
Document that custom finalizers must not access the OCaml heap, etc.

Signed-off-by: Josh Berdine <josh@berdine.net>
The file was modifiedChanges (diff)
The file was modifiedmanual/src/cmds/intf-c.etex (diff)
Commit be1b81063bacaba3527101fa94888376f4196a24 by antonin
Explicit units in time management

Keep track of the time unit in variable names. Define cleverly-named
constants to help with conversions.
The file was modifiedChanges (diff)
The file was modifiedotherlibs/unix/select_unix.c (diff)
The file was modifiedotherlibs/unix/stat_unix.c (diff)
The file was modifiedotherlibs/unix/execvp.c (diff)
The file was modifiedtestsuite/tests/tsan/waitgroup_stubs.c (diff)
The file was modifiedotherlibs/unix/sockopt_win32.c (diff)
The file was modifiedotherlibs/unix/gettimeofday_win32.c (diff)
The file was modifiedotherlibs/unix/itimer.c (diff)
The file was modifiedotherlibs/unix/utimes_win32.c (diff)
The file was modifiedotherlibs/unix/sleep_win32.c (diff)
The file was modifiedruntime/caml/misc.h (diff)
The file was modifiedotherlibs/unix/access.c (diff)
The file was modifiedotherlibs/unix/times_unix.c (diff)
The file was modifiedotherlibs/unix/gettimeofday_unix.c (diff)
The file was modifiedotherlibs/unix/stat_win32.c (diff)
The file was modifiedotherlibs/unix/utimes_unix.c (diff)
The file was modifiedruntime/sys.c (diff)
The file was modifiedruntime/win32.c (diff)
The file was modifiedotherlibs/unix/sleep_unix.c (diff)
The file was modifiedotherlibs/unix/select_win32.c (diff)
The file was modifiedotherlibs/unix/caml/unixsupport.h (diff)
The file was modifiedotherlibs/unix/sockopt_unix.c (diff)
The file was modifiedruntime/platform.c (diff)
The file was modifiedruntime/unix.c (diff)
Commit de538165495f0d06dfebf33be2d6dcfc047ef7a3 by antonin
Prevent erroneously waiting for an unbounded time in Unix.select

The documentation of `Unix.select _ _ _ s` reads:

> The fourth argument is the maximal timeout, in seconds; a negative
> fourth argument means no timeout (unbounded wait).

This fixes a potential bug on Windows with the implementation of
`Unix.select`. If a file descriptor list exceeds `FD_SETSIZE` (64
elements by default), or if one of the lists contains at least one fd
that's not a socket, then [`select`][1] is emulated. In this code
path, if the timeout ends up equating the sentinel value for an
unbounded wait (`INFINITE` in the WinAPI, equal to $2^{32}$), then the
wait becomes unbounded. This breaks the semantics of
[Unix.select]. Cap the timeout to $2^{32}$ milliseconds.

[1]: https://learn.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-select
The file was modifiedChanges (diff)
The file was modifiedotherlibs/unix/unix.mli (diff)
The file was modifiedotherlibs/unix/select_win32.c (diff)
The file was modifiedotherlibs/unix/unixLabels.mli (diff)
Commit 102a053ae15e2172e6016b6576b6acbd6c65eb64 by leo
fix wrong PR number in Changes
The file was modifiedChanges (diff)
The file was modifiedChanges (diff)
Commit b95d55cfbddcfbaf56dc018c0e6774836d9a60ae by noreply
Fix a documentation typo in `seq.mli`
The file was modifiedstdlib/seq.mli (diff)
Commit 8646dcee9944531fbd7db8cc29970558f3a9b8fa by samuel.aime.vivien
Refactor of previous_arg_loc
The file was modifiedtyping/typecore.ml (diff)
Commit 7b36c26d15e4770da4b8729e4fe4f6302d66640c by samuel.aime.vivien
Lift may_warn out of match in collect_apply_args
The file was modifiedtyping/typecore.ml (diff)
Commit 122ac73b1ee1f7ac767cbfb04587aa725191300f by samuel.aime.vivien
Major refactor in collect_apply_args to prepare for a new function kind
The file was modifiedtyping/typecore.ml (diff)
Commit bda2bc3285d49b8659a714b92c69bc2fe82b66b3 by samuel.aime.vivien
Corrected tabulation level typo
The file was modifiedtyping/typecore.ml (diff)
Commit 0bc15724133ea7c2991d2cf26bf8824c8eb6e65e by samuel.aime.vivien
Moved proper_exp_loc and unify_exp to the top of the file for future uses in collect_apply_args
The file was modifiedtyping/typecore.ml (diff)
Commit fd3e90af16179b4db22bd3b244c9d8098076b2fb by samuel.aime.vivien
Corrected typo in comment that came from an argument renamed in a previous change
The file was modifiedtyping/typecore.ml (diff)
The file was modifiedChanges (diff)
Commit bd8674f400fc78e31c5fd82d130a82803da31fa9 by samuel.aime.vivien
Simplified a match (based on reviewers feedback) to remove an assert false
The file was modifiedtyping/typecore.ml (diff)
Commit 53ef3cdaa3939130818a7bcbc103feeed6c2d4d0 by samuel.aime.vivien
Inlined `eliminate_optional_arg` and `use_arg`
The file was modifiedtyping/typecore.ml (diff)
Commit d61b11da782e01294d235c7c9f1e2d486fe19316 by Pierre Chambart
Add machtype on Cmm function parameters
The file was modifiedasmcomp/cmmgen.ml (diff)
Commit 8be936eec409cd01154ae96cc6308a59e77b1c26 by Pierre Chambart
Correct memory_chunk annotation on loads of integers
The file was modifiedasmcomp/cmm_helpers.mli (diff)
The file was modifiedasmcomp/cmm_helpers.ml (diff)
The file was modifiedasmcomp/cmmgen.ml (diff)
Commit d2f9ed55de5782f4642768148679106ba5699762 by Pierre Chambart
Add missing kind annotation on Cmm catch arguments
The file was modifiedasmcomp/cmmgen.ml (diff)
Commit f749733f2e8f98222a43d128b3fc04f17fae2f59 by Pierre Chambart
Update comment [get_field_gen]
The file was modifiedasmcomp/cmm_helpers.mli (diff)
The file was modifiedChanges (diff)
Commit 8fe740dd1c5b4d5496a9b0f9ed38755036ed13a9 by noreply
Allow unboxing of static catch parameters with flambda (#13758)

The file was modifiedmiddle_end/flambda/flambda_invariants.ml (diff)
The file was modifiedmiddle_end/flambda/inline_and_simplify.ml (diff)
The file was modifiedmiddle_end/flambda/inconstant_idents.ml (diff)
The file was modifiedmiddle_end/flambda/flambda_to_clambda.ml (diff)
The file was addedtestsuite/tests/asmcomp/static_catch_unboxing.ml
The file was modifiedmiddle_end/flambda/flambda.ml (diff)
The file was modifiedmiddle_end/flambda/flambda.mli (diff)
The file was modifiedChanges (diff)
The file was modifiedmiddle_end/flambda/closure_conversion.ml (diff)
The file was modifiedmiddle_end/flambda/flambda_utils.ml (diff)
The file was modifiedrelease-info/calendar.md (diff)
Commit 1d68ef7038a71442eee90e3679c3d7999caa40b9 by david.allsopp
Skip emit blank lines in the native-debugger tests

They're not interesting in terms of what's being analysed - in passing
this should deal with the instability of the location of the suppressed
lldb plugin message.
The file was modifiedtestsuite/tests/native-debugger/sanitize.awk (diff)
The file was modifiedtestsuite/tests/native-debugger/linux-gdb-riscv.reference (diff)
The file was modifiedtestsuite/tests/native-debugger/linux-gdb-amd64.reference (diff)
The file was modifiedtestsuite/tests/native-debugger/linux-gdb-arm64.reference (diff)
The file was modifiedtestsuite/tests/native-debugger/linux-lldb-amd64.reference (diff)
Commit d9a02829691ffdcd0e2ee2de73cc1d2f64967a44 by n.oje.bar
dynlink: cannot open dll error: always escape error message
The file was modifiedotherlibs/dynlink/dynlink_types.ml (diff)
Commit 850d3d70d7e2258aa4803d152c2c9f03421cf2a9 by hirrolot
Describe the termination behaviour in `seq.mli`
The file was modifiedstdlib/seq.mli (diff)
Commit 37948e2e562ef0e11fb8940dc546c96a3c73506c by noreply
Fix for inaccurate live blocks/words stats in compaction (#13774)

Fixes #13090
The file was modifiedruntime/shared_heap.c (diff)
The file was modifiedChanges (diff)
Commit 3597232dd532c77a3856ef92db79184f237ad413 by noreply
Ensure that pool owners are correctly set on pool adoption (#13773)

Co-authored-by: Stephen Dolan <sdolan@janestreet.com>
The file was modifiedruntime/shared_heap.c (diff)
The file was modifiedChanges (diff)
The file was addedtestsuite/tests/compaction/test_compact_manydomains.ml
Commit 21759223fabd6a1fa1f72cf208f6a7d99d53fd1a by noreply
Reset the major GC's pacing clock after any synchronous GC work. (#13736)

The file was modifiedruntime/major_gc.c (diff)
The file was modifiedruntime/gc_ctrl.c (diff)
The file was modifiedChanges (diff)
The file was modifiedruntime/caml/major_gc.h (diff)
Commit 5ed57a94f9bfa412e36e71ca7d20154b78cff00f by lmaurer
Fix ocamltest line numbers after multiline comments, strings

Any multiline string or comment in an ocamltest throws off the line numbers in
output:

    (* TEST
     (* This is
        a long comment *)

     fail; (* this is line 5 *)
    *)

     ... testing 'main.ml' with line 4 (fail) => failed (the fail action always fails)

This PR fixes both strings and comments.
The file was modifiedocamltest/tsl_lexer.mll (diff)
Commit fd3307b3a069037e3f748bc3d0e41f521b99b40c by antonin
Use nanosleep when available for the tick thread

Co-authored-by: David Allsopp <david.allsopp@metastack.com>
The file was modifiedotherlibs/systhreads/st_stubs.c (diff)
The file was modifiedChanges (diff)
The file was modifiedotherlibs/systhreads/st_win32.h (diff)
The file was modifiedotherlibs/systhreads/st_posix.h (diff)
The file was modifiedruntime/caml/misc.h (diff)
Commit a4c0e71ee98b727f347d356e4c6614c4b628d714 by samuel
Include `asm.h` at the beginning of assembler sources
The file was modifiedruntime/riscv.S (diff)
The file was modifiedruntime/arm64.S (diff)
The file was modifiedruntime/power.S (diff)
The file was modifiedruntime/s390x.S (diff)
The file was modifiedruntime/amd64.S (diff)
Commit 9698d2e40c17b1029950aaf6cecfc3ceba5c7adb by samuel
Detect the need for the GNU note for non-executable stack

Detect during `configure` whether the C compiler generates a
`.note.GNU-stack` section to mark it explicitly as non-executable
Define a macro in `m.h` and a configure variable so that OCaml can do as
cc does

Detail: without the explicit `.note.GNU-stack` section, recent versions
of GNU ld show, at least on some targets:
/usr/bin/ld: warning: .... missing .note.GNU-stack section implies executable stack
/usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
The file was modifiedconfigure.ac (diff)
The file was modifiedruntime/caml/m.h.in (diff)
The file was modifiedconfigure (diff)
The file was modifiedaclocal.m4 (diff)
Commit 9c2c93750356bd9b8d3da0d00c086cf40ae80cc1 by samuel
Add a `Config` variable for the need of the GNU non-executable stack note

Add a `Config.with_nonexecstack_note` variable to indicate whether the
`.note.GNU-stack` section should be present to mark the stack explicitly
as non-executable
The file was modifiedutils/config.fixed.ml (diff)
The file was modifiedutils/config.common.ml.in (diff)
The file was modifiedutils/config.generated.ml.in (diff)
The file was modifiedutils/config.mli (diff)
Commit 6469d438ea989956704a692406ed9dd0b88a4768 by noreply
#13764 ocamldep: keywords flag mirroring the ocaml{c,opt} one (#13779)

The file was modifiedman/ocamlprof.1 (diff)
The file was modifiedChanges (diff)
The file was modifiedmanual/src/cmds/ocamldep.etex (diff)
The file was modifiedman/ocamldep.1 (diff)
The file was modifiedmanual/src/cmds/profil.etex (diff)
The file was modifiedtools/ocamlcp_common.ml (diff)
The file was modifiedtools/ocamlprof.ml (diff)
The file was modified.depend (diff)
The file was modifieddriver/makedepend.ml (diff)
Commit 337805dc26b0469b95ae45ad1e9a02954789baab by olivier
Immutable arrays

Co-authored-by: Olivier Nicole <olivier@chnik.fr>
The file was modifiedtestsuite/tests/backtrace/pr2195.opt.reference (diff)
The file was modifiedtyping/tast_mapper.ml (diff)
The file was modifiedtyping/typedtree.ml (diff)
The file was modifiedtyping/printtyped.ml (diff)
The file was modified.depend (diff)
The file was modifiedbytecomp/bytegen.ml (diff)
The file was modifiedtyping/untypeast.ml (diff)
The file was modifiedlambda/lambda.mli (diff)
The file was modifiedtestsuite/tests/backtrace/pr2195-locs.byte.reference (diff)
The file was modifiedtyping/outcometree.mli (diff)
The file was modifiedtyping/patterns.mli (diff)
The file was modifiedtoplevel/genprintval.ml (diff)
The file was modifiedlambda/translcore.ml (diff)
The file was modifiedtyping/parmatch.ml (diff)
The file was modifiedlambda/tmc.ml (diff)
The file was modifiedruntime/str.c (diff)
The file was modifiedmiddle_end/flambda/closure_conversion.ml (diff)
The file was modifiedlambda/matching.ml (diff)
The file was modifiedtyping/predef.ml (diff)
The file was modifiedlambda/printlambda.ml (diff)
The file was modifiedtools/ocamlprof.ml (diff)
The file was modifiedmiddle_end/convert_primitives.ml (diff)
The file was modifiedtestsuite/tests/basic/patmatch_for_multiple.ml (diff)
The file was modifiedtyping/typecore.ml (diff)
The file was modifiedtyping/typeopt.ml (diff)
The file was modifiedtyping/predef.mli (diff)
The file was modifiedtyping/tast_iterator.ml (diff)
The file was modifiedtyping/typedtree.mli (diff)
The file was modifiedtyping/printpat.ml (diff)
The file was modifiedmiddle_end/closure/closure.ml (diff)
The file was modifiedtools/sync_stdlib_docs (diff)
The file was modifiedlambda/simplif.ml (diff)
The file was modifiedlambda/value_rec_compiler.ml (diff)
The file was modifiedlambda/translprim.ml (diff)
The file was modifiedlambda/lambda.ml (diff)
The file was modifiedtyping/patterns.ml (diff)
The file was modifiedtyping/value_rec_check.ml (diff)
The file was modifiedmiddle_end/internal_variable_names.ml (diff)
The file was modifiedtyping/oprint.ml (diff)
Commit ffb3e52ad7b5597d41bc14a34687421949c16d3e by olivier
Remove unnecessary iarray primitives

Namely %iarray_to_array and %iarray_of_array.
The file was modifiedlambda/printlambda.ml (diff)
The file was modifiedlambda/lambda.mli (diff)
The file was modifiedlambda/translprim.ml (diff)
The file was modifiedruntime/str.c (diff)
The file was modifiedmiddle_end/convert_primitives.ml (diff)
The file was modifiedmiddle_end/internal_variable_names.ml (diff)
The file was modifiedmiddle_end/closure/closure.ml (diff)
The file was modifiedlambda/value_rec_compiler.ml (diff)
The file was modifiedlambda/lambda.ml (diff)
The file was modifiedlambda/tmc.ml (diff)
The file was modifiedlambda/simplif.ml (diff)
The file was modifiedmiddle_end/flambda/closure_conversion.ml (diff)
The file was modifiedbytecomp/bytegen.ml (diff)
The file was modifiedboot/ocamllex (diff)
The file was modifiedboot/ocamlc (diff)
Commit af3d64dddb6aabf91a99306c2f58ae5e6ab8cb42 by olivier
Add Stdlib.Iarray module

Co-authored-by: Olivier Nicole <olivier@chnik.fr>
The file was modifiedtools/sync_stdlib_docs (diff)
The file was modifiedmanual/src/library/stdlib-blurb.etex (diff)
The file was modifiedstdlib/stdlib.mli (diff)
The file was modifiedstdlib/StdlibModules (diff)
The file was addedstdlib/iarray.mli
The file was addedstdlib/iarrayLabels.ml
The file was modified.depend (diff)
The file was addedstdlib/iarrayLabels.mli
The file was modifiedstdlib/stdlib.ml (diff)
The file was modifiedstdlib/.depend (diff)
The file was addedstdlib/iarray.ml
Commit 6d248096fb1aa00bec606a615e95b4408dcea12e by olivier
Immutable array tests
The file was modifiedtestsuite/tests/match-side-effects/test_contexts_code.ml (diff)
The file was modifiedtestsuite/tests/match-side-effects/partiality.ml (diff)
The file was addedtestsuite/tests/lib-array/test_iarray.ml
The file was modifiedtestsuite/tests/match-side-effects/check_partial.ml (diff)
The file was addedtestsuite/tests/typing-extensions/iarray.ml
The file was addedtestsuite/tests/array-functions/test_iarray.ml
The file was modifiedtestsuite/tests/backtrace/pr2195.opt.reference (diff)
The file was modifiedtestsuite/tests/backtrace/pr2195-locs.byte.reference (diff)
The file was addedtestsuite/tests/array-functions/test_iarray.reference
The file was modifiedtestsuite/tests/basic/patmatch_for_multiple.ml (diff)
Commit b3bd236c9bc79c188a8c73d5e00c18cf5179fdff by olivier
Remove .:() indexing operator
The file was modifiedtestsuite/tests/array-functions/test_iarray.ml (diff)
The file was modifiedtyping/typedtree.mli (diff)
The file was modifiedstdlib/iarrayLabels.mli (diff)
The file was modifiedstdlib/iarray.mli (diff)
The file was modifiedtestsuite/tests/lib-array/test_iarray.ml (diff)
The file was modifiedstdlib/iarray.ml (diff)
The file was modifiedChanges (diff)
The file was removedstdlib/iarrayLabels.mli
The file was modifiedtestsuite/tests/basic/patmatch_for_multiple.ml (diff)
The file was modifiedstdlib/stdlib.mli (diff)
The file was modifiedstdlib/iarray.ml (diff)
The file was modifiedtestsuite/tests/match-side-effects/test_contexts_code.ml (diff)
The file was modifiedstdlib/StdlibModules (diff)
The file was modifiedtestsuite/tests/match-side-effects/check_partial.ml (diff)
The file was modifiedtestsuite/tests/lib-array/test_iarray.ml (diff)
The file was modifiedtools/sync_stdlib_docs (diff)
The file was removedstdlib/iarrayLabels.ml
The file was modifiedstdlib/iarray.mli (diff)
The file was modifiedstdlib/.depend (diff)
The file was modifiedstdlib/stdlib.ml (diff)
The file was modifiedtestsuite/tests/match-side-effects/partiality.ml (diff)
Commit 49a91aaff110db94dcbd5653534441cb8d841a83 by samuel
Output the `.note.GNU-stack` section based on `configure`

Uniformly rely on the detection during `configure` of whether the
`.note.GNU-stack` section is generated by the C compiler to decide
whether to output it
Define a macro in `asm.h` and a function in `Emitaux` to output the
section when it should be

Before that patch, the `.note.GNU-stack` section was:
- on x86_64:
  - generated by `emit.mlp` only on Linux and FreeBSD
  - present in `amd64.S` only on Linux and FreeBSD
- on ARM:
  - generated by `emit.mlp` only on Linux
  - present in `arm64.S` except on macOS
- on RISC-V:
  - never generated by `emit.mlp`
  - always present in `riscv.S`
- on POWER:
  - always generated by `emit.mlp`
  - always present in `power.S`
- on S/390:
  - always generated by `emit.mlp`
  - always present in `s390x.S`
The file was modifiedasmcomp/riscv/emit.mlp (diff)
The file was modifiedruntime/s390x.S (diff)
The file was modifiedruntime/amd64.S (diff)
The file was modifiedasmcomp/power/emit.mlp (diff)
The file was modifiedtestsuite/tools/asmgen_s390x.S (diff)
The file was modifiedasmcomp/s390x/emit.mlp (diff)
The file was modifiedruntime/arm64.S (diff)
The file was modifiedasmcomp/amd64/emit.mlp (diff)
The file was modifiedruntime/caml/asm.h (diff)
The file was modifiedtestsuite/tools/asmgen_arm.S (diff)
The file was modifiedtestsuite/tools/asmgen_power.S (diff)
The file was modifiedruntime/riscv.S (diff)
The file was modifiedasmcomp/emitaux.ml (diff)
The file was modifiedasmcomp/emitaux.mli (diff)
The file was modifiedruntime/power.S (diff)
The file was modifiedtestsuite/tools/asmgen_arm64.S (diff)
The file was modifiedasmcomp/arm64/emit.mlp (diff)
Commit a3a2d568eac511f2dd4272816400f616bebd4308 by samuel
Detect support for `.size` and `.type` assembler directives

Detect during `configure` whether the C compiler generates `.size` and
`.type` assembler directives
Set the result to true if and only if both directives are generated for
functions and the `.type` directive is generated for objects (directives
equivalent to `.size` could be used for a simple `int`); display a
warning if some of the three combinations appear but not all three
Define a macro in `m.h` and a configure variable so that OCaml can do as
cc does
The file was modifiedconfigure.ac (diff)
The file was modifiedconfigure (diff)
The file was modifiedruntime/caml/m.h.in (diff)
The file was modifiedaclocal.m4 (diff)
Commit d42a7281755e0eaffedd27ec166266d9fe19bdc3 by samuel
Add a `Config` variable for the `.size` and `.type` assembler directives

Add a `Config.asm_size_type_directives` variable to indicate whether the
`.size` and `.type` assembler directives can be used in assembler code
The file was modifiedutils/config.generated.ml.in (diff)
The file was modifiedutils/config.fixed.ml (diff)
The file was modifiedutils/config.common.ml.in (diff)
The file was modifiedutils/config.mli (diff)
Commit 1094fa31703e1b813672b9fe82c53778aea027af by samuel
Output the `.size` and `.type` directives based on `configure` result

Uniformly rely on the detection during `configure` of whether the
`.size` and `.type` directives are generated by the C compiler to decide
whether to output them
Define two macros in `asm.h` and two functions in `Emitaux` to output
those directives to factorize them; to do so, `Emitaux.emit_symbol`
knows the special macOS case

Before that patch, the `.size` and `.type` directives were:
- on x86_64:
  - generated by `emit.mlp` only on Linux and GNU OSes; `.size` was
    generated for frametables only for a definite list of OSes, `.type`
    was never generated for frametables
  - present in `amd64.S` only on Linux and GNU OSes; the `.type`
    directives was present for functions on all but macOS, Cygwin,
    MinGW, MSVC
- on ARM:
  - generated by `emit.mlp` except on macOS
  - present in `arm64.S` except on macOS
- on RISC-V:
  - always generated by `emit.mlp`; `.size` was not generated for
    frametables
  - always present in `riscv.S`
- on POWER:
  - always generated by `emit.mlp`; `.size` was not generated for
    frametables
  - always present in `power.S`
- on S/390:
  - always generated by `emit.mlp` for `.type`, never generated for
    `.size`
  - always present in `s390x.S` for `.type`, never present for `.size`
The file was modifiedruntime/caml/asm.h (diff)
The file was modifiedasmcomp/power/emit.mlp (diff)
The file was modifiedruntime/amd64.S (diff)
The file was modifiedasmcomp/riscv/emit.mlp (diff)
The file was modifiedasmcomp/s390x/emit.mlp (diff)
The file was modifiedruntime/riscv.S (diff)
The file was modifiedruntime/s390x.S (diff)
The file was modifiedruntime/power.S (diff)
The file was modifiedasmcomp/emitaux.mli (diff)
The file was modifiedasmcomp/amd64/emit.mlp (diff)
The file was modifiedasmcomp/arm64/emit.mlp (diff)
The file was modifiedasmcomp/emitaux.ml (diff)
The file was modifiedruntime/arm64.S (diff)
Commit 473020a816f65f63dc2258cf8273fe2497c0278b by samuel
Add a Changes entry
The file was modifiedChanges (diff)
Commit 66cae6325c93341ec77539d8b1ca9fce04319e2b by noreply
Use [%extension_constructor] instead of Obj.Extension_constructor.of_val in Type.Id (#13782)

The file was modifiedChanges (diff)
The file was modifiedstdlib/type.ml (diff)
Commit 857b341b2a5fcadac14217ae694cd574637e6e94 by noreply
add `Stdlib.phys_equal` (#13753)

The file was modifiedtestsuite/tests/backtrace/pr2195-locs.byte.reference (diff)
The file was modifiedstdlib/stdlib.ml (diff)
The file was modifiedtestsuite/tests/basic/patmatch_for_multiple.ml (diff)
The file was modifiedtestsuite/tests/match-side-effects/check_partial.ml (diff)
The file was modifiedChanges (diff)
The file was modifiedstdlib/stdlib.mli (diff)
The file was modifiedtestsuite/tests/match-side-effects/test_contexts_code.ml (diff)
The file was modifiedtestsuite/tests/match-side-effects/partiality.ml (diff)
The file was modifiedtestsuite/tests/backtrace/pr2195.opt.reference (diff)
Commit 7eefe8d1812d8805ce690c3094b7abbc9d7d6649 by daniel.buenzli
Unicode chars in error messages: respect the Unicode notation.
The file was modifiedparsing/lexer.mll (diff)
The file was modifiedocamldoc/odoc_lexer.mll (diff)
Commit d20a51163ea2caac5d24d96e23f1de7856bf5f95 by noreply
Expose IO_BUFFER_SIZE as Sys.io_buffer_size, merge IO_BUFFER_SIZE and UNIX_BUFFER_SIZE (#13589)

The file was modifiedotherlibs/unix/caml/unixsupport.h (diff)
The file was modifiedtestsuite/tests/match-side-effects/check_partial.ml (diff)
The file was modifiedruntime/caml/misc.h (diff)
The file was modifiedstdlib/in_channel.ml (diff)
The file was modifiedstdlib/sys.ml.in (diff)
The file was modifiedstdlib/sys.mli (diff)
The file was modifiedChanges (diff)
The file was modifiedruntime/sys.c (diff)
The file was modifiedruntime/caml/io.h (diff)
Commit 586ffd505826d774d32ca485da187e0472323307 by david.allsopp
Fix indentation (whitespace change only)
The file was modifiedtools/ci/appveyor/appveyor_build.sh (diff)
Commit 0ed595d29a0f7125b252dd0521b6aa0b73124bd1 by david.allsopp
Display the configure command on AppVeyor
The file was modifiedtools/ci/appveyor/appveyor_build.sh (diff)
Commit 941181162eb4332b46297f38fcecd58fca66b214 by david.allsopp
Restore AppVeyor configure-caching
The file was modifiedtools/ci/appveyor/appveyor_build.sh (diff)
Commit 9e2faaa7f83f7db64fc7b7d9cd9d722589b8a3da by xavier.leroy
Fix under-estimated Lcondbranch instruction size

Part of #13746

Co-authored-by: Tim McGilchrist <timmcgil@gmail.com>
The file was modifiedasmcomp/power/emit.mlp (diff)
Commit 76f8ec66f1d9168157b5c63adeabff627b0d022d by gabriel.scherer
-d(no-)canonical-ids flag (unset by default): boilerplate, no implementation
The file was modifieddriver/main_args.mli (diff)
The file was modifiedutils/clflags.mli (diff)
The file was modifiedutils/clflags.ml (diff)
The file was modifieddriver/main_args.ml (diff)
Commit 73866ebb166a65d583e4cbfc4b9c6236cad6a31b by gabriel.scherer
implement Ident canonicalization
The file was modifiedtestsuite/tests/basic/patmatch_for_multiple.ml (diff)
The file was modifiedtestsuite/tests/basic/patmatch_split_no_or.ml (diff)
The file was modifiedtestsuite/tests/match-side-effects/test_contexts_code.ml (diff)
The file was modifiedtestsuite/tests/match-side-effects/check_partial.ml (diff)
The file was modifiedtyping/ident.ml (diff)
The file was modifiedtestsuite/tests/match-side-effects/partiality.ml (diff)
The file was modifiedChanges (diff)
Commit ed4d653eeb59c449c0b3af9383e604c8871ca5c1 by gabriel.scherer
-dcanonical-ids: un-hide /0 stamps
The file was modifiedtestsuite/tests/match-side-effects/check_partial.ml (diff)
The file was modifiedtyping/ident.ml (diff)
The file was modifiedtestsuite/tests/basic/patmatch_split_no_or.ml (diff)
The file was modifiedtestsuite/tests/match-side-effects/partiality.ml (diff)
The file was modifiedtestsuite/tests/match-side-effects/test_contexts_code.ml (diff)
The file was modifiedtestsuite/tests/basic/patmatch_for_multiple.ml (diff)
Commit 1ef454907b19fba693a182296594d5b8024fa6f4 by Florian Angeletti
format: add a out_width function to Format device

This new function is used to compute the rendered width of substrings
when printing. The aim is to improve the rendering for unicode strings.

However unicode-aware width function should know that `Format` decompose
substrings at the seams of format string constructors and thus joining
characters split across those seams will result in approximative width
computation.

For instance, the underlying formatting engine considers that

    width "@[<h>ᄒ@,ᅢ@,ᆫ@,ᄀ@,ᅳ@,ᆯ@]@]"

is equal to the sum

    width "ᄒ" + width "ᅢ@"+ width "ᆫ" + width "ᄀ" + width "ᅳ" + width "ᆯ"

rather than the width of the joined characters:

    width "핸틀"
The file was modifiedstdlib/format.mli (diff)
The file was addedtestsuite/tests/lib-format/unicode.ml
The file was modified.gitattributes (diff)
The file was modifiedstdlib/format.ml (diff)
Commit 8fef8dfa3e0dfa16521184c0b2fd6c71a5b3d37a by Florian Angeletti
review: add a use of "pp_string_as"
The file was modified.gitattributes (diff)
The file was modifiedtestsuite/tests/lib-format/unicode.ml (diff)
The file was modifiedstdlib/format.mli (diff)
Commit d643794245c17e87bda08924e19a680673de7429 by Florian Angeletti
format: install utf8_scalar_width by default
The file was modifiedstdlib/format.ml (diff)
The file was modifiedstdlib/.depend (diff)
The file was modifiedstdlib/format.mli (diff)
The file was modified.gitattributes (diff)
The file was modifiedtestsuite/tests/lib-format/unicode.ml (diff)
The file was modifiedtestsuite/tests/tool-toplevel/strings.compilers.reference (diff)
The file was modifiedtestsuite/tests/win-unicode/mltest.compilers.reference (diff)
Commit 94d2a1553ebae93f52030734e2bde44e9b82a168 by Florian Angeletti
review: before_width computation and documentation
The file was modifiedstdlib/format.mli (diff)
The file was modifiedstdlib/format.ml (diff)
Commit 75bd842dedb2ab964e49d917498a6684506504f1 by Florian Angeletti
review: clarify when [out_width] is called
The file was modifiedstdlib/format.mli (diff)
The file was modifiedChanges (diff)
Commit c2c6f72796d1a1e831d1d8f214924e4bfda2ee49 by Florian Angeletti
review: documentation typo and desync
The file was modifiedstdlib/format.mli (diff)
Commit 31c2b5b6502a4b8b22d52cdc14b0e7e6b52f2db0 by david.allsopp
Be consistent with the Windows triplets

Consistently:
- Match -cygwin suffix only for Cygwin (anything else is an error)
- Match the -w64- in *-w64-mingw32*
- Match the -pc- in *-pc-windows
The file was modifiedconfigure.ac (diff)
The file was modifiedconfigure (diff)
The file was modifiedaclocal.m4 (diff)
Commit 91730e5eeae329ae5668be843554f1369705bcda by david.allsopp
Consolidate and document the Windows triplets
The file was modifiedaclocal.m4 (diff)
The file was modifiedconfigure (diff)
The file was modifiedChanges (diff)
The file was modifiedconfigure.ac (diff)
Commit 9d3164630236aa4e6a070966b934474f5fd1a3f8 by david.allsopp
Fix backslashes in runtime/build_config.h

echo cannot portably be used to display strings containing backslashes
and the echo builtin in dash in particular always transforms \\ to \
which breaks the transformation in sak.

Use printf instead.

Co-authored-by: Samuel Hym <samuel@tarides.com>
The file was modifiedMakefile (diff)
The file was modifiedChanges (diff)
Commit 3929ca86d8af26c9c885438c67a84909ac7062dd by david.allsopp
Move TARGET_LIBDIR to Makefile.build_config

This value is internal to the build and shouldn't be installed with
Makefile.config
The file was modifiedMakefile.config.in (diff)
The file was modifiedMakefile.build_config.in (diff)
Commit 3403c2b534da7af9700335bbeb4252304c719840 by david.allsopp
Use C.UTF-8 for the test locale in check-typo
The file was modifiedtools/check-typo (diff)
Commit 2caa6556b15faae542a326ca8d6de9649052a689 by david.allsopp
Require all text files to be valid UTF-8

Files which Git regards as binary are already skipped, but require _all_
non-binary files therefore to be valid UTF-8. The files still require
the utf8 attribute for UTF-8 to be _expected_.
The file was modifiedtools/check-typo (diff)
Commit 1bc5a621b63e67ddedca574c9e02807fdd32c0fe by david.allsopp
Stop using non-ascii attribute

All the files using the non-ascii attribute are in fact UTF-8.
The file was modified.gitattributes (diff)
The file was modifiedtools/check-typo (diff)
Commit 68ef82059dff1da550affe12569d6458250e1999 by david.allsopp
Add check-typo to 5.x release branches!
The file was modified.github/workflows/hygiene.yml (diff)
Commit f5afa7d75586437036557ed37883ee87e80b5e65 by david.allsopp
Test check-typo PRs properly

Run check-typo over the entire tree if either .gitattributes or
check-typo itself have been altered.
The file was modifiedtools/ci/actions/check-typo.sh (diff)
The file was modified.github/workflows/hygiene.yml (diff)
Commit 9e497a6235494caeb9e15ae8f074ebb65ae36f76 by david.allsopp
Use non-ascii name rather than utf8

Rationale: all text files must be valid UTF-8 (and any UTF-8 is valid in
copyright headers, as before), but source files which use non-ASCII
characters (still forming valid UTF-8 sequences) must indicate
non-ascii.
The file was modifiedtools/check-typo (diff)
The file was modified.gitattributes (diff)
The file was modifiedparsing/ast_helper.mli (diff)
The file was modifiedtyping/patterns.mli (diff)
The file was modifiedtyping/datarepr.ml (diff)
The file was modifiedtyping/outcometree.mli (diff)
The file was modifiedtyping/parmatch.ml (diff)
The file was modifiedtyping/printpat.ml (diff)
The file was modifiedutils/warnings.ml (diff)
The file was modifiedtyping/typecore.mli (diff)
The file was modifiedlambda/matching.ml (diff)
The file was modifiedmanual/src/refman/Makefile (diff)
The file was modifiedtyping/typedecl_variance.ml (diff)
The file was modifiedtools/ocamlprof.ml (diff)
The file was modifiedtyping/typetexp.mli (diff)
The file was modifiedparsing/ast_invariants.ml (diff)
The file was modifiedutils/misc.mli (diff)
The file was modifiedmanual/src/refman/exten.etex (diff)
The file was addedtestsuite/tests/typing-labeled-tuples/labeled_tuple_patterns.ml
The file was modifiedtyping/untypeast.ml (diff)
The file was addedtestsuite/tests/parse-errors/singleton_labeled_tuple_type.ml
The file was modifiedtyping/typedtree.ml (diff)
The file was modifiedocamldoc/odoc_value.ml (diff)
The file was modifiedtestsuite/tests/parsing/illegal_ppx.ml (diff)
The file was addedtestsuite/tests/typing-labeled-tuples/labeled_tuples_and_constructors.ml
The file was addedtestsuite/tests/typing-labeled-tuples/labeled_tuples_dsource.ml
The file was modifiedtyping/typecore.ml (diff)
The file was modifiedtestsuite/tests/generated-parse-errors/errors.compilers.reference (diff)
The file was addedtestsuite/tests/parse-errors/bigarray_index_labels.ml
The file was modifiedtyping/types.ml (diff)
The file was modifiedtyping/printtyped.ml (diff)
The file was modifiedChanges (diff)
The file was modifiedocamldoc/odoc_ast.ml (diff)
The file was modifiedparsing/ast_helper.ml (diff)
The file was modifieddebugger/eval.ml (diff)
The file was modifiedboot/menhir/parser.ml (diff)
The file was modifiedparsing/ast_mapper.ml (diff)
The file was modifiedtyping/value_rec_check.ml (diff)
The file was modifiedtoplevel/genprintval.ml (diff)
The file was modifiedtestsuite/tests/parsing/broken_invariants.ml (diff)
The file was modifiedtestsuite/tests/parsing/broken_invariants.compilers.reference (diff)
The file was modifiedtestsuite/tests/parsetree/locations_test.compilers.reference (diff)
The file was modifiedtyping/oprint.ml (diff)
The file was modifiedtyping/tast_mapper.ml (diff)
The file was modifiedtyping/typedecl_separability.ml (diff)
The file was modifiedutils/warnings.mli (diff)
The file was modifiedmanual/tests/cross_reference_checker.ml (diff)
The file was modifiedtyping/typedecl.ml (diff)
The file was modifiedtyping/typedtree.mli (diff)
The file was modifiedtyping/tast_iterator.ml (diff)
The file was modifiedmanual/src/refman/expr.etex (diff)
The file was modifiedtyping/rawprinttyp.ml (diff)
The file was modifiedtyping/ctype.ml (diff)
The file was modifiedlambda/translcore.ml (diff)
The file was modifiedtyping/types.mli (diff)
The file was addedmanual/src/refman/extensions/labeledtuples.etex
The file was modifiedtestsuite/tools/expect.ml (diff)
The file was modifiedtyping/typetexp.ml (diff)
The file was modifiedutils/misc.ml (diff)
The file was modifiedparsing/parser.mly (diff)
The file was modifiedparsing/pprintast.ml (diff)
The file was addedtestsuite/tests/parse-errors/bigarray_index_labels.compilers.reference
The file was modifiedmanual/src/refman/types.etex (diff)
The file was modifiedtyping/out_type.ml (diff)
The file was modifiedmanual/src/refman/patterns.etex (diff)
The file was modifiedtyping/printtyp.ml (diff)
The file was modifiedtyping/gprinttyp.ml (diff)
The file was modifiedtyping/predef.ml (diff)
The file was modifiedtyping/btype.ml (diff)
The file was modifiedparsing/parsetree.mli (diff)
The file was modifiedparsing/printast.ml (diff)
The file was modifiedtyping/patterns.ml (diff)
The file was modifiedparsing/ast_iterator.ml (diff)
The file was addedtestsuite/tests/typing-labeled-tuples/labeled_tuples.ml
The file was addedtestsuite/tests/parse-errors/singleton_labeled_tuple_type.compilers.reference
The file was modifiedparsing/depend.ml (diff)
The file was modifiedtyping/ctype.mli (diff)
The file was modifiedboot/ocamlc (diff)
The file was modifiedboot/ocamllex (diff)
Commit 5301a4c11a1ecba25e6f38c6a3ccb8fc263b417a by noreply
Implement `get_left` & `get_right` in `Either` (#13768)

The file was modifiedstdlib/either.ml (diff)
The file was modifiedChanges (diff)
The file was modifiedstdlib/either.mli (diff)
The file was modifiedtestsuite/tests/lib-either/test.ml (diff)
Commit 530940b9cb734937ba61b4586bf007558105d656 by david.allsopp
Missing flexlink bootstrap dependencies
The file was modifiedMakefile (diff)
The file was modifiedChanges (diff)
Commit 3a3a742c284b1d64e18921e249fedd47ecc94eea by noreply
Rename Format.utf8_scalar_width to utf_8_scalar_width (#13794)

The standard library consistently uses utf_8 and not utf8.
The file was modifiedstdlib/format.mli (diff)
The file was modifiedstdlib/format.ml (diff)
The file was modifiedtestsuite/tests/lib-format/unicode.ml (diff)
The file was modifiedChanges (diff)
Commit 193f31e333d829587b88d5f40c159de1cd87fdd4 by daniel.buenzli
array.ml: remove dependency on String module.
The file was modifiedstdlib/StdlibModules (diff)
The file was modifiedstdlib/array.ml (diff)
The file was modifiedstdlib/.depend (diff)
Commit ca8eacba349d25267527493efb6c599d3deccad5 by daniel.buenzli
Add String.edit_distance with a classic implementation.
The file was modifiedstdlib/string.mli (diff)
The file was modifiedstdlib/stringLabels.mli (diff)
The file was modified.gitattributes (diff)
The file was modifiedstdlib/.depend (diff)
The file was modifiedtestsuite/tests/lib-string/test_string.ml (diff)
The file was modifiedstdlib/string.ml (diff)
Commit 5d6d178bfdd1aa4dfdc0302c916f48e5c4808fb6 by daniel.buenzli
String.edit_distance: use a ring buffer of rows instead of a full matrix.
The file was modifiedstdlib/string.ml (diff)
Commit 50b1431f33b6baaed3f76e4e7fe920d75e301983 by daniel.buenzli
String.edit_distance: add [limit] to bound distance computation.
The file was modifiedstdlib/string.mli (diff)
The file was modifiedstdlib/stringLabels.mli (diff)
The file was modifiedtestsuite/tests/lib-string/test_string.ml (diff)
The file was modifiedstdlib/string.ml (diff)
The file was modifiedtestsuite/tests/lib-string/test_string.ml (diff)
The file was modifiedstdlib/string.ml (diff)
The file was modifiedstdlib/string.mli (diff)
The file was modifiedstdlib/stringLabels.mli (diff)
The file was modifiedstdlib/.depend (diff)
Commit 66b32886902d2933c16fb0f1b93182462939a66a by daniel.buenzli
Address review comment from wikku.
The file was modifiedstdlib/string.ml (diff)
Commit 251af1c5ecceedf2bee259942a5e3cb78e841ae1 by daniel.buenzli
String.spellcheck: better default max_dist.
The file was modifiedtestsuite/tests/lib-string/test_string.ml (diff)
The file was modifiedstdlib/stringLabels.mli (diff)
The file was modifiedstdlib/string.ml (diff)
The file was modifiedstdlib/string.mli (diff)
Commit bad6faa005ed9ff8836947db9f07384bff5760eb by daniel.buenzli
String.edit_distance: add an obvious shortcut for limit <= 1.

This is mainly useful for String.spellcheck once it has reached
a minimal distance of 0.
The file was modifiedstdlib/string.ml (diff)
Commit 2101a740584ad81decc9bf6258e9a082677eadb5 by daniel.buenzli
Address doc review from Gabriel.
The file was modifiedstdlib/stringLabels.mli (diff)
Commit 330ebc0143d44e030d65719863d75a1134374ffa by daniel.buenzli
String.spellcheck: compute the word's uchars only once.
The file was modifiedstdlib/string.ml (diff)
Commit 3f48a6c41225b39e3914b0b491a36fc8d86791e5 by daniel.buenzli
Add forgotten run of tools/sync_stdlib_docs.
The file was modifiedstdlib/string.mli (diff)
Commit 7afd7d8a16482a5e607cbf16f5836150aee8850f by daniel.buenzli
Address review from Nicolás.
The file was modifiedstdlib/stringLabels.mli (diff)
The file was modifiedstdlib/string.ml (diff)
The file was modifiedstdlib/string.mli (diff)
Commit 348d6b0fb46538e2d5a0f0034a48608073d1cc89 by daniel.buenzli
Short path: improve bound check.
The file was modifiedstdlib/string.ml (diff)
Commit c5529601abec6976d1941cea5ac0998987b43d17 by daniel.buenzli
String.spellcheck: represent dictionaries by their iteration.
The file was modifiedstdlib/string.ml (diff)
The file was modifiedtestsuite/tests/lib-string/test_string.ml (diff)
The file was modifiedstdlib/string.mli (diff)
The file was modifiedstdlib/stringLabels.mli (diff)
Commit 51f245bcc305a856d0721d756cbdd15e14e3bc59 by daniel.buenzli
String.edit_distance: reduce window size and add comment about rogue read.
The file was modifiedstdlib/string.ml (diff)
Commit 4df17f0b03344b51e449e9e3e076bb3fd9421cdb by daniel.buenzli
String.edit_distance: jmax computation: guard against reasonable overflows.
The file was modifiedstdlib/string.ml (diff)
The file was modifiedChanges (diff)
Commit 1c073d55ebca6b6f0e0cd57d0e5a5cee13bd9473 by timmcgil
Add prefetch support for ARM64, PPC64, RiscV and s390x
The file was modifiedruntime/caml/misc.h (diff)
The file was modifiedChanges (diff)
Commit 9fb92d973f1154d395f849bc70606361bdcee31f by noreply
Track type of variables bound by `as` (#13763)

Keep the types of variables bound by `as` because they may not equal the
types of the `as` patterns themselves. This fixes some incorrect value
kinds that can lead to miscompilation.

---------

Co-authored-by: Leo White <leo@lpw25.net>
The file was modifiedtyping/patterns.mli (diff)
The file was modifiedtyping/typedtree.ml (diff)
The file was addedtestsuite/tests/asmcomp/regression_value_kinds.ml
The file was modifiedtyping/tast_mapper.ml (diff)
The file was modifiedocamldoc/odoc_ast.ml (diff)
The file was modifiedtyping/patterns.ml (diff)
The file was modifiedtyping/typedtree.mli (diff)
The file was modifiedtyping/parmatch.ml (diff)
The file was modifiedChanges (diff)
The file was modifiedlambda/translclass.ml (diff)
The file was modifiedlambda/translcore.ml (diff)
The file was modifiedtyping/printtyped.ml (diff)
The file was modifiedlambda/matching.ml (diff)
The file was modifiedtyping/printpat.ml (diff)
The file was modifiedtyping/untypeast.ml (diff)
The file was modifiedtyping/value_rec_check.ml (diff)
The file was modifiedtyping/tast_iterator.ml (diff)
The file was modifiedtyping/typecore.ml (diff)
The file was modifiedtyping/cmt2annot.ml (diff)
Commit 4db5ac9ad71219dda35eb9d4888a65a0185009cc by Florian Angeletti
OCaml Language Committe: description and link
The file was modifiedCONTRIBUTING.md (diff)
The file was modifiedstdlib/string.ml (diff)
Commit d1b8d0decf0bd76b47609e4acf8dabe70eb6f09e by daniel.buenzli
Revert changes to .gitattributes.

They are no longer needed since #13724 has been merged.
The file was modified.gitattributes (diff)
Commit e87ba1b4a80ae064cb96e42b996184e3ed02761c by daniel.buenzli
Add non-ascii to .gitattributes apparently #13724 was not a revolution.
The file was modified.gitattributes (diff)
Commit d24e76f95e2040205073c99038181a17644944a6 by daniel.buenzli
Fix conflict resolution bug in Changes.
The file was modifiedChanges (diff)
Commit 77a24a05a99b19af7090a1e6c722c97386298571 by daniel.buenzli
.gitattributes: thinking too much about types.
The file was modified.gitattributes (diff)
Commit 7962a31ec8472888db0218f0f1bb53cb70e23e2b by gabriel.scherer
stdlib: new module Pqueue
The file was modifiedstdlib/.depend (diff)
The file was addedstdlib/pqueue.ml
The file was modifiedstdlib/stdlib.mli (diff)
The file was addedtestsuite/tests/lib-pqueue/test.ml
The file was modifiedstdlib/StdlibModules (diff)
The file was modifiedstdlib/stdlib.ml (diff)
The file was addedstdlib/pqueue.mli
The file was addedtestsuite/tests/lib-pqueue/test.reference
Commit 9e1f5892af296e9064563e6708ae5355aa3b30c1 by gabriel.scherer
a more versatile API

functor Make provides a simple API (with priorities apart
from values) and functor MakePoly provides a generic API
where the type of elements is user-provided
The file was modifiedstdlib/pqueue.mli (diff)
The file was modifiedtestsuite/tests/lib-pqueue/test.ml (diff)
The file was modifiedstdlib/pqueue.ml (diff)
The file was modifiedstdlib/.depend (diff)
The file was modifiedChanges (diff)
Commit 9193fad24b50c599e3ad91baa8d10726578604b2 by gabriel.scherer
give module Make a signature constraint
The file was modifiedstdlib/pqueue.ml (diff)
The file was modifiedstdlib/pqueue.mli (diff)
Commit a19b84a7f222f382af2fc6e84fbd1e860fd66ab7 by gabriel.scherer
add Pqueue to stdlib documentation
The file was modifiedmanual/src/library/stdlib-blurb.etex (diff)
The file was modifiedstdlib/pqueue.ml (diff)
Commit 7d20f94f378d50ab017cd293a7a67663a3c532e2 by gabriel.scherer
stdlib: better interface for priority queues

introducing two different signatures for min-priority queues and
max-priority queues (and accordingly two functors to build them)
is much clearer, at the cost of a slightly bigger interface for
Pqueue
The file was modifiedstdlib/pqueue.ml (diff)
The file was modifiedstdlib/pqueue.mli (diff)
The file was modifiedtestsuite/tests/lib-pqueue/test.ml (diff)
Commit ee8e0a2291f2c5e592454c1da161054265a5c19e by gabriel.scherer
stdlib: yet another interface for priority queues

we now have polymorphic (min and max) priority queues, with separate
priorities, and monomorphic ones, with priority on elements
The file was modifiedtestsuite/tests/lib-pqueue/test.ml (diff)
The file was modifiedstdlib/pqueue.mli (diff)
The file was modifiedstdlib/pqueue.ml (diff)
Commit 445d3226bbb5bdf4f2a54ca4c4eafb2bbc2ec385 by gabriel.scherer
stdlib: a fourth API for priority queues

we still have both monomorphic and polymorphic functors,
but the polymorphic functors do not have separate priorities anymore
The file was modifiedtestsuite/tests/lib-pqueue/test.ml (diff)
The file was modifiedstdlib/pqueue.mli (diff)
The file was modifiedstdlib/pqueue.ml (diff)
Commit a9dc931de8a74c65beb5bbe6d503f21e379f4b81 by gabriel.scherer
various small changes in Pqueue interface

add_seq/of_seq replaced by add_iter/of_iter
improved documentation string at various places
The file was modifiedstdlib/pqueue.ml (diff)
The file was modifiedstdlib/pqueue.mli (diff)
The file was modifiedtestsuite/tests/lib-pqueue/test.ml (diff)
Commit eaeb7180450731a6bba151be38fed3d7ab9488ae by gabriel.scherer
adding a suffix _unordered to iter and fold

and removing to_seq in addition
The file was modifiedtestsuite/tests/lib-pqueue/test.ml (diff)
The file was modifiedstdlib/pqueue.ml (diff)
The file was modifiedstdlib/pqueue.mli (diff)
Commit 5cbe1a3f21f7ea14cd02c34e7c03d64ac1c67941 by gabriel.scherer
priority queues: no more Empty exception

in addition, min_elt now returns an option (and get_min_elt raises
an exception, namely Invalid_argument), as well as pop_min
The file was modifiedstdlib/pqueue.ml (diff)
The file was modifiedstdlib/pqueue.mli (diff)
The file was modifiedtestsuite/tests/lib-pqueue/test.ml (diff)
Commit 081dd199b7d9abd756b6ffc5fc3d8b1c5a373345 by gabriel.scherer
priority queues: remove_min does nothing if the queue is empty
The file was modifiedstdlib/pqueue.mli (diff)
The file was modifiedstdlib/pqueue.ml (diff)
The file was modifiedtestsuite/tests/lib-pqueue/test.ml (diff)
The file was modifiedstdlib/.depend (diff)
Commit ea71f4a530e428e2a4e0be280f4ec3b5d0b03ba9 by daniel.buenzli
Changes: move Pqueue entry from 5.3 to working version.
The file was modifiedChanges (diff)
Commit 9593e5a32b10af2f8b2c6e1d9c355d738d9d35ea by daniel.buenzli
Add Uchar.{utf_8_decode_length_of_byte,max_utf_8_decode_length}.
The file was modified.gitattributes (diff)
The file was modifiedChanges (diff)
The file was modifiedstdlib/string.ml (diff)
The file was modifiedstdlib/uchar.mli (diff)
The file was modifiedstdlib/uchar.ml (diff)
The file was modifiedtestsuite/tests/lib-uchar/test.ml (diff)
The file was modifiedstdlib/uchar.mli (diff)
Commit 852d1e0bcd1d404de0d8f873ceb792fc148c80dd by noreply
Don't trash the backtraces in `Sys.getenv_opt` (#13727)

The file was modifiedruntime/sys.c (diff)
The file was modifiedstdlib/sys.ml.in (diff)
The file was modifiedChanges (diff)
Commit 6e80aa02422c10c693334e29e70d425ede81e3e6 by n.oje.bar
Changes: missing parentheses
The file was modifiedChanges (diff)
Commit afd6b968872318aac4d6579ffda04ba446c7fc35 by samuel.aime.vivien
Added an error detection when generating typing constraints
The file was modifiedtestsuite/tests/typing-misc/constraints.ml (diff)
The file was modifiedChanges (diff)
The file was modifiedtyping/typetexp.ml (diff)
The file was modifiedChanges (diff)
The file was modifiedtestsuite/tests/typing-misc/constraints.ml (diff)
Commit 80f0a255c2f7f3faccdbb2f3d763e79392a7d065 by Florian Angeletti
testsuite: promote a no-flat-float-array test

The test was not updated after a warning styling change
The file was modifiedtestsuite/tests/typing-misc/pr6939-no-flat-float-array.ml (diff)
Commit d39cc22d820b5700434c33b5540450ac3255c8e5 by noreply
PDF manual: add section titles to page right-facing page headers (#13802)

Fixes: #13800
The file was modifiedmanual/src/macros.tex (diff)
Commit 0eb0ed82862e9f7345eef2bc838d048db9033f11 by xavier.leroy
Fix LaTeX formatting of table of operators and their precedences
The file was modifiedapi_docgen/Ocaml_operators.mld (diff)
Commit 474804ad04048775bd92fa0d1baa7bd798cc14c6 by gabriel.scherer
types: fix a small bug in the scope+marks bitmasking code
The file was modifiedtyping/types.ml (diff)
Commit a59f2cc646e0e7c31cb13df91a530371602d58bc by antonin
Prefer Autoconf EXEEXT to our exeext

Autoconf detects `.exe` on all Windows targets. OBJEXT and EXEEXT are
automatically substituted.
The file was modifiedconfigure (diff)
The file was modifiedutils/config.generated.ml.in (diff)
The file was modifiedconfigure.ac (diff)
The file was modifiedMakefile.config.in (diff)
The file was modifiedocamltest/ocamltest_config.ml.in (diff)
The file was modifiedconfigure.ac (diff)
The file was modifiedconfigure (diff)
Commit cd18b1bef1bae1f63b66bad7d18c345c76702820 by antonin
Update AX_PROG_CC_FOR_BUILD to rev 26

The AX_PROG_CC_FOR_BUILD macro has fixes from revision 21 to 26 that
are needed, or it would overwrite OBJEXT and EXEEXT with BUILD_OBJEXT
and BUILD_EXEEXT without defining the latter.
The file was modifiedconfigure (diff)
The file was modifiedbuild-aux/ax_prog_cc_for_build.m4 (diff)
Commit 0dd2a4786a482531c0a76f59494dd746d1d88313 by antonin
configure: define outputobj and outputexe flags together
The file was modifiedconfigure (diff)
The file was modifiedconfigure.ac (diff)
Commit 041937c701aeac03be6a203391987be1763de7d2 by antonin
Fix sak build not using the proper build compiler invocation

sak doesn't need separate compilation and linking stages, and this
avoids adding build-specific variables to the Makefiles.

Co-authored-by: shym <samuel@tarides.com>
The file was modifiedMakefile.build_config.in (diff)
The file was modifiedconfigure.ac (diff)
The file was modifiedconfigure (diff)
The file was modified.github/workflows/build-cross.yml (diff)
The file was modifiedMakefile (diff)
The file was modifiedChanges (diff)
The file was modifiedMakefile.common (diff)
Commit 7ed394b8dc3f1befdc4883f88e2ae311567409ae by matthewelse1997
Add support for unaligned accesses on arm64

As discussed in #13631, the decision not to support unaligned accesses
on arm64 was made before any hardware was available, and in practice all
ARMv8 CPUs support unaligned accesses.
The file was modifiedChanges (diff)
The file was modifiedasmcomp/arm64/arch.ml (diff)
Commit 41d0c6009b27935109345f4491aae514f624bb3f by noreply
Expose a way to get current timestamp in runtime events (#13785)

It's useful to be able to access the current timestamp, to be able to
correlate timestamps from the event buffer with other time sources such
as `mtime` or `ptime`.

Co-authored-by: David Allsopp <david.allsopp@metastack.com>
The file was modifiedruntime/caml/osdeps.h (diff)
The file was addedtestsuite/tests/lib-runtime-events/test_timestamp_monotonic.ml
The file was modifiedotherlibs/runtime_events/runtime_events_consumer.c (diff)
The file was modifiedotherlibs/runtime_events/runtime_events.mli (diff)
The file was modifiedotherlibs/runtime_events/runtime_events.ml (diff)
The file was modifiedChanges (diff)
Commit 718862ae11f60f5cf9b63500b56c093b84fb04aa by samuel.aime.vivien
Fix forgotten check on validity of a type variable name
The file was modifiedtyping/typetexp.ml (diff)
The file was modifiedChanges (diff)
The file was modifiedtestsuite/tests/typing-misc/typetexp_errors.ml (diff)
The file was modifiedtyping/typetexp.ml (diff)
Commit c04f265bb6f21af647d1b3135d573fa581578d32 by samuel.aime.vivien
Updated PR number in Changes
The file was modifiedChanges (diff)
Commit 03b92958801124123433186d43cb14c8f2cdee22 by samuel.aime.vivien
Refactored packed modules types into a record containing a location
The file was modifiedparsing/ast_helper.mli (diff)
The file was modifiedparsing/ast_mapper.ml (diff)
The file was modifiedparsing/ast_helper.ml (diff)
The file was modifiedtyping/untypeast.ml (diff)
The file was modifiedparsing/parsetree.mli (diff)
The file was modifiedtestsuite/tests/parsing/shortcut_ext_attr.compilers.reference (diff)
The file was modifiedtyping/typetexp.ml (diff)
The file was modifiedparsing/ast_iterator.mli (diff)
The file was modifiedparsing/ast_iterator.ml (diff)
The file was modifiedtestsuite/tests/parsetree/locations_test.compilers.reference (diff)
The file was modifiedboot/menhir/parser.ml (diff)
The file was modifiedparsing/parser.mly (diff)
The file was modifiedtestsuite/tests/parsing/attributes.compilers.reference (diff)
The file was modifiedparsing/pprintast.ml (diff)
The file was modifiedtestsuite/tests/typing-modules/package_constraint.ml (diff)
The file was modifiedparsing/ast_mapper.mli (diff)
The file was modifiedparsing/printast.ml (diff)
The file was modifiedparsing/ast_invariants.ml (diff)
The file was modifiedparsing/depend.ml (diff)
Commit d047a32bb0cecb80f9b9ee0008784a7ce1368d3f by samuel.aime.vivien
Modified parsetree to store type constraints directly with a module packing.

This is done to distinguish `(module M) : (module S)` from `(module M : S)`
The file was modifiedtyping/untypeast.ml (diff)
The file was modifiedparsing/depend.ml (diff)
The file was modifiedtyping/typecore.ml (diff)
The file was modifiedboot/menhir/parser.ml (diff)
The file was modifiedparsing/ast_helper.mli (diff)
The file was modifiedparsing/parsetree.mli (diff)
The file was modifiedtestsuite/tests/parsing/attributes.compilers.reference (diff)
The file was modifiedtools/ocamlprof.ml (diff)
The file was modifiedparsing/parser.mly (diff)
The file was modifiedparsing/ast_iterator.ml (diff)
The file was modifiedparsing/ast_helper.ml (diff)
The file was modifiedparsing/pprintast.ml (diff)
The file was modifiedparsing/printast.ml (diff)
The file was modifiedparsing/ast_mapper.ml (diff)
Commit b2f82b19dd8c41bbec8ba9f3fa830784a1016087 by samuel.aime.vivien
Defactored code in typing/typecore to improve readability
The file was modifiedtyping/typecore.ml (diff)
Commit c547cb66c3a0a18698c1728a3e4bf6bd9c727e67 by samuel.aime.vivien
Added tests to ensure this new pattern is in the testsuite
The file was modifiedtestsuite/tests/typing-modules/firstclass.ml (diff)
The file was modifiedChanges (diff)
Commit 269ff809b39d52d88cf8f99fe739198324b8ccb6 by Florian Angeletti
fix #13778: module S with type t = int uses type t
The file was modifiedtyping/typemod.ml (diff)
The file was modifiedChanges (diff)
The file was modifiedtestsuite/tests/typing-modules/package_constraint.ml (diff)
Commit 22ab57de9c1ce8e4e313fa26b46bf90d2f549167 by Florian Angeletti
fix #13788: spellchecking hint, keep module context

    Fun.protact

now prints

     Did you mean `Fun.protect`?

rather than

    Did you mean `protect`?
The file was modifiedtestsuite/tests/messages/spellcheck.ml (diff)
The file was modifiedutils/misc.mli (diff)
The file was modifiedutils/misc.ml (diff)
The file was modifiedtyping/typetexp.ml (diff)
The file was modifiedChanges (diff)
The file was modifiedtyping/env.ml (diff)
The file was modifiedtools/check-typo (diff)
Commit 0c5ae452e490d5dfde0d611f21da8fd47712affb by thevoodoos
Attach new locs to `Ldot` and `Lapply` nodes
instead of `Lident` nodes.

Parser changes.
Requires bootstrap.

Co-authored-by: Jules Aguillon <jules@j3s.fr>
Suggested-by: Florian Angeletti <florian.angeletti@inria.fr>
The file was modifiedtyping/typeclass.ml (diff)
The file was modifiedboot/menhir/menhirLib.mli (diff)
The file was modifiedparsing/ast_mapper.ml (diff)
The file was modified.depend (diff)
The file was modifiedtoplevel/byte/trace.ml (diff)
The file was modifiedtyping/printtyped.ml (diff)
The file was modifieddebugger/debugger_parser.mly (diff)
The file was modifiedtyping/untypeast.ml (diff)
The file was modifiedtyping/typemod.ml (diff)
The file was modifiedtyping/tast_iterator.ml (diff)
The file was modifiedtyping/gprinttyp.ml (diff)
The file was modifiedparsing/depend.ml (diff)
The file was modifiedocamldoc/odoc_misc.ml (diff)
The file was modifiedtoplevel/topdirs.ml (diff)
The file was modifiedtyping/out_type.ml (diff)
The file was modifiedparsing/longident.ml (diff)
The file was modifiedparsing/parser.mly (diff)
The file was modifiedtoplevel/genprintval.ml (diff)
The file was modifiedtyping/tast_mapper.ml (diff)
The file was modifiedparsing/printast.ml (diff)
The file was modifiedtyping/ctype.ml (diff)
The file was modifiedparsing/longident.mli (diff)
The file was modifiedboot/menhir/menhirLib.ml (diff)
The file was modifiedtyping/typecore.ml (diff)
The file was modifiedparsing/pprintast.ml (diff)
The file was modifiedlambda/lambda.ml (diff)
The file was modifiedparsing/ast_invariants.ml (diff)
The file was modifiedboot/menhir/parser.ml (diff)
The file was modifiedparsing/ast_iterator.ml (diff)
The file was modifiedtyping/env.ml (diff)
Commit f28e9701c4ac6e43db4949bf72c2d0490191709c by thevoodoos
Remove polymorphic comparisons of longidents

The added locations in longidents change the behaviour of the generic
comparison functions.

Reduce diff in typecore
The file was modifiedparsing/pprintast.ml (diff)
The file was modifiedparsing/longident.mli (diff)
The file was modifiedtyping/typecore.ml (diff)
The file was modifiedtyping/ctype.ml (diff)
The file was modifiedparsing/longident.ml (diff)
The file was modifiedtyping/typetexp.ml (diff)
The file was modifiedtyping/out_type.ml (diff)
Commit cbd90c8f3516c5f902effa5532841115abb66985 by thevoodoos
Stop using longidents in Types.Tpackage
The file was modifiedtyping/gprinttyp.ml (diff)
The file was modifiedtyping/typecore.mli (diff)
The file was modifiedtyping/types.ml (diff)
The file was modifiedtyping/out_type.ml (diff)
The file was modifiedtyping/typemod.mli (diff)
The file was modifiedtyping/types.mli (diff)
The file was modifiedtyping/ctype.ml (diff)
The file was modifiedtyping/rawprinttyp.ml (diff)
The file was modifiedtyping/ctype.mli (diff)
The file was modifiedtyping/typemod.ml (diff)
The file was modifiedtyping/typetexp.ml (diff)
Commit 1f6f3dc54465903ba28740b7afe8c7d269e06f38 by thevoodoos
Update dependency info
The file was modified.depend (diff)
Commit 8cb487eab930bf7ce07bb4c9a31be82159321ab2 by thevoodoos
Add changelog entry for #13302
The file was modifiedChanges (diff)
Commit 9a1b74cd8231b8b822c23ab3938e1fcba1afcbdf by thevoodoos
Promote changes in test: errors have finer lid locations

Also fix tests that rely on constructing longidents.
The file was modifiedtestsuite/tests/typing-modules/pr7851.ml (diff)
The file was modifiedtestsuite/tests/hidden_includes/hidden_stays_hidden.ocamlc.reference (diff)
The file was modifiedtestsuite/tests/typing-modules/functors.ml (diff)
The file was modifiedtestsuite/tests/typing-objects/pr6383.ml (diff)
The file was modifiedtestsuite/tests/typing-recmod/pr6491.ml (diff)
The file was modifiedtestsuite/tests/typing-misc/records.ml (diff)
The file was modifiedtestsuite/tests/typing-modules/Test.ml (diff)
The file was modifiedtestsuite/tests/warnings/deprecated_module.compilers.reference (diff)
The file was modifiedtestsuite/tests/typing-misc/injectivity.ml (diff)
The file was modifiedtestsuite/tests/typing-modules/pr7726.ml (diff)
The file was modifiedtestsuite/tests/parsing/illegal_ppx.ml (diff)
The file was modifiedtestsuite/tests/typing-modules/pr7207.ml (diff)
The file was modifiedtestsuite/tests/typing-modules/pr6633.ml (diff)
The file was modifiedtestsuite/tests/typing-sigsubst/sig_local_aliases.ml (diff)
The file was modifiedtestsuite/tests/warnings/deprecated_module_use.compilers.reference (diff)
The file was modifiedtestsuite/tests/hidden_includes/cant_reference_hidden.ocamlc.reference (diff)
The file was modifiedtestsuite/tests/typing-modules/applicative_functor_type.ml (diff)
The file was modifiedtestsuite/tests/compiler-libs/test_longident.ml (diff)
The file was modifiedtestsuite/tests/basic/unit_naming.compilers.reference (diff)
The file was modifiedboot/ocamlc (diff)
The file was modifiedboot/ocamllex (diff)
Commit 04620f7e14a8e7fe0aec7974164b1bc2f01e563c by thevoodoos
Less verbose longident test output

Co-authored-by: Florian Angeletti <florian.angeletti@inria.fr>
The file was modifiedtestsuite/tests/compiler-libs/test_longident.ml (diff)
Commit 828b92d0b12591aa51cdedb1b66059428ec7dd63 by Florian Angeletti
stdlib: add a format_text function for text-like format strings

this functions replaces spaces and newlines ([' '] and ['\n']) by Format
formatting hints in format string literals. This make it easier to mix
free-flowing text with [Printf] specifiers, boxes and tags.
The file was modifiedstdlib/format.ml (diff)
The file was modifiedstdlib/format.mli (diff)
The file was modifiedstdlib/camlinternalFormatBasics.ml (diff)
The file was modifiedstdlib/camlinternalFormatBasics.mli (diff)
The file was addedtestsuite/tests/lib-format/format_text.ml
Commit 41a836a26114092e0322175bc8a1f6a5e77ce12c by Florian Angeletti
review: paragraph, tmc implementation and documentation
The file was modifiedtestsuite/tests/lib-format/format_text.ml (diff)
The file was modifiedstdlib/format.ml (diff)
The file was modifiedstdlib/format.mli (diff)
Commit 8d639ef459d90af1ca2a82f263e49bb29f2ac7cc by Florian Angeletti
review: remove blank line coalescing, update description

and simplify the implementation along the way
The file was modifiedstdlib/format.mli (diff)
The file was modifiedstdlib/format.ml (diff)
The file was modifiedChanges (diff)
Commit 55a825d0815027fe8a9231232b9fc3e8c002f2f5 by Florian Angeletti
review: typo in documentation
The file was modifiedstdlib/format.mli (diff)
Commit 6b0b8c3d5f7fa27a3ea6f81a819f1c808671b312 by Florian Angeletti
review: simpler format_text breaks computation
The file was modifiedstdlib/format.ml (diff)
The file was modifiedChanges (diff)
Commit 0678f71d528f1d501f22036953390429a9fc9902 by thevoodoos
Ensure depth-first search in iterators
The file was modifiedtyping/tast_iterator.ml (diff)
The file was modifiedparsing/ast_iterator.ml (diff)
Commit 175f59e684688502bdcaa6b1a0407ea06c42cbf2 by antonin
Light refactor of caml_unix_random_seed

- use the buffer size instead of a magic constant;
- remove unused _WIN32 guards around getpid/getppid, Windows has its
  own caml_win32_random_seed.
The file was modifiedruntime/sys.c (diff)
Commit bc89d7bc23c23b1e8bb954eafd4b81e082c10a4c by antonin
Use the Windows CSPRNG to get a random seed for Stdlib.Random
The file was modifiedChanges (diff)
The file was modifiedruntime/win32.c (diff)
The file was modifiedstdlib/random.mli (diff)
Commit 56485ca93ea894ead1cd32af4121fce51fd692b8 by samuel.aime.vivien
Added unused warning on type definitions comming from an `_ as _`
The file was modifiedtestsuite/tests/typing-warnings/unused_types.ml (diff)
The file was modifiedtyping/typetexp.ml (diff)
The file was modifiedChanges (diff)
The file was modified.depend (diff)
Commit 9681a72e451aa2b4050f8a803dbcda7a21c2ff60 by samuel.aime.vivien
Moved location of error message to match location and warning settings
The file was modifiedtestsuite/tests/typing-warnings/unused_types.ml (diff)
The file was modifiedtyping/typetexp.ml (diff)
Commit 93a3fbc32050e884d0c69853f1257c84ac3893c2 by samuel.aime.vivien
Store only potential unused warnings
The file was modifiedtyping/typetexp.ml (diff)
Commit b2ae919d22610b45d439fbe4c8ea877b52b328a1 by samuel.aime.vivien
Made a distinction in the warnings between types and type variables

JJ : Replace "variable" by "alias"
The file was modifiedtestsuite/tests/typing-warnings/unused_types.ml (diff)
The file was modifiedutils/warnings.mli (diff)
The file was modifiedtyping/typedecl.ml (diff)
The file was modifiedutils/warnings.ml (diff)
The file was modifiedtyping/env.ml (diff)
The file was modifiedtyping/typetexp.ml (diff)
Commit 759582d7da9a99cea90b1f5b3bd711904d1361c5 by noreply
Print warning when set thread name fails. (#13823)

Co-authored-by: Antonin Décimo <antonin.decimo@gmail.com>
The file was modifiedruntime/caml/misc.h (diff)
The file was modifiedotherlibs/systhreads/thread.mli (diff)
The file was modifiedotherlibs/systhreads/st_stubs.c (diff)
The file was modifiedruntime/misc.c (diff)
Commit 15183ea18c7f287a0ad011ab3e969576fdae8bf1 by Nick.Barnes
Fix field initialisation bug in runtime_events.c.
The file was modifiedruntime/runtime_events.c (diff)
The file was modifiedChanges (diff)
Commit d608d2be2b9232bd4abbdd6c958189ac379f0eb1 by noreply
Avoid re-marking ephemerons with trivial data (#13827)

In general, ephemerons may need to be marked more than once, if new marking
has occurred since ephemeron marking began. This patch optimises this logic:
re-marking is never necessary if the data field of the ephemeron is trivial.
This optimisation was present in OCaml 4, and is important for Stdlib.Weak,
which only uses ephemerons with trivial data.
The file was modifiedChanges (diff)
The file was modifiedruntime/major_gc.c (diff)
Commit 6cd8dc730e6acf17b930656f3cf9aee6a3ae0db1 by stedolan
Allow values reachable from ephemeron keys to be collected by minor GC
The file was modifiedruntime/minor_gc.c (diff)
The file was modifiedruntime/weak.c (diff)
The file was addedtestsuite/tests/weak-ephe-final/weak_array_par.reference
The file was modifiedChanges (diff)
The file was modifiedruntime/shared_heap.c (diff)
The file was modifiedruntime/caml/weak.h (diff)
The file was modifiedruntime/caml/runtime_events.h (diff)
The file was modifiedruntime/caml/minor_gc.h (diff)
The file was modifiedruntime/major_gc.c (diff)
The file was addedtestsuite/tests/weak-ephe-final/weak_array_par.ml
The file was modifiedruntime/minor_gc.c (diff)
Commit 0727cd83ae173b43769863eef3c08b5ebb216ca7 by stedolan
Bugfix: Hd_val instead of Tag_val
The file was modifiedruntime/minor_gc.c (diff)
The file was modifiedruntime/minor_gc.c (diff)
Commit bf28aea732543de4534b81c75a16ddc9b91ae5a6 by noreply
Skip running native debugger tests when TSan is enabled. (#13816)

Using TSan adds extra frames into backtraces as part of the design of
this feature. For now disable these tests with TSan, it would be
possible in future to modify these tests to handle this combination.
The file was modifiedtestsuite/tests/native-debugger/linux-gdb-riscv.ml (diff)
The file was modifiedtestsuite/tests/native-debugger/macos-lldb-amd64.ml (diff)
The file was modifiedtestsuite/tests/native-debugger/linux-gdb-amd64.ml (diff)
The file was modifiedtestsuite/tests/native-debugger/linux-gdb-arm64.ml (diff)
The file was modifiedtestsuite/tests/native-debugger/linux-lldb-amd64.ml (diff)
The file was modifiedtestsuite/tests/native-debugger/macos-lldb-arm64.ml (diff)
The file was modifiedtestsuite/tests/native-debugger/linux-lldb-arm64.ml (diff)
Commit db065511a5ff2a9e0bf8b73d67eb2ab51e595237 by noreply
Translmod.type_structure: remove unnecessary plumbing for module block size (#13832)

The file was modifiedlambda/translobj.mli (diff)
The file was modifiedlambda/translobj.ml (diff)
The file was modifiedlambda/translmod.ml (diff)
Commit fc7322768ac84f69dd08453c19c11444d4b26479 by valentin.gatienbaron
fix pexp_function documentation
The file was modifiedparsing/parsetree.mli (diff)
Commit b7eb17314aceb60b613c8e5aafc0e005263b303a by Florian Angeletti
error messages: align spellchecking hints
The file was modifiedtyping/typetexp.ml (diff)
The file was modifiedtestsuite/tests/messages/highlight_tabs.ml (diff)
The file was modifiedtestsuite/tests/typing-misc/printing.ml (diff)
The file was modifiedtestsuite/tests/messages/spellcheck.ml (diff)
The file was modifiedtestsuite/tests/typing-misc/typetexp_errors.ml (diff)
The file was modifiedtyping/typecore.ml (diff)
The file was modifiedtestsuite/tests/typing-modules/pr6633.ml (diff)
The file was modifiedtestsuite/tests/typing-misc/records.ml (diff)
The file was modifiedtestsuite/tests/typing-core-bugs/missing_rec_hint.ml (diff)
The file was modifiedtestsuite/tests/typing-extensions/disambiguation.ml (diff)
The file was modifiedtestsuite/tests/typing-core-bugs/repeated_did_you_mean.ml (diff)
The file was modifiedutils/misc.ml (diff)
The file was modifiedtestsuite/tests/typing-misc/polyvars.ml (diff)
The file was modifiedtestsuite/tests/typing-warnings/records.ml (diff)
The file was modifiedtoplevel/topcommon.ml (diff)
The file was modifiedtyping/env.ml (diff)
The file was modifiedtestsuite/tests/typing-labeled-tuples/labeled_tuples.ml (diff)
The file was modifiedtestsuite/tests/typing-sigsubst/sig_local_aliases.ml (diff)
The file was modifiedutils/misc.mli (diff)
Commit 24890a3e3ec8061622af8976375ce5ee6743f425 by Florian Angeletti
error messages: spellcheck hints are no longer lazily computed
The file was modifiedtoplevel/topcommon.ml (diff)
The file was modifiedtyping/env.ml (diff)
The file was modifiedtyping/typecore.ml (diff)
The file was modifiedtyping/typetexp.ml (diff)
The file was modifiedutils/misc.mli (diff)
The file was modifiedutils/misc.ml (diff)
Commit f47a3584909081e5ed0b6166fb75cf0fdb68ef8d by Florian Angeletti
format_doc: preprocessing function for ralign
The file was modifiedutils/format_doc.mli (diff)
The file was modifiedtyping/typetexp.ml (diff)
The file was modifiedtestsuite/tests/messages/spellcheck.ml (diff)
The file was modifiedtoplevel/topcommon.ml (diff)
The file was modifiedtyping/env.ml (diff)
The file was modifiedtyping/typecore.ml (diff)
The file was modifiedutils/format_doc.ml (diff)
The file was modifiedutils/misc.mli (diff)
The file was modifiedutils/misc.ml (diff)
Commit a927fdc33c9c63be8e2728825ba8966238b7db93 by Florian Angeletti
Misc.with_aligned_hint: fmt variant
The file was modifiedtyping/typetexp.ml (diff)
The file was modifiedtyping/env.ml (diff)
The file was modifiedtyping/typecore.ml (diff)
The file was modifiedtoplevel/topcommon.ml (diff)
The file was modifiedutils/misc.ml (diff)
The file was modifiedutils/misc.mli (diff)
Commit 0868f24bac7e5f2e72fd6b936e54a61ac5788c70 by david.allsopp
Ensure apt is updated before installing packages
The file was modified.github/workflows/build.yml (diff)
The file was modified.github/workflows/tsan.yml (diff)
The file was modified.github/workflows/build-cross.yml (diff)
Commit 5ef08e922b4f92751b37c51c2cdfa201c89c6ad1 by Florian Angeletti
format_doc: fix bug in align functions
The file was modifiedutils/format_doc.ml (diff)
Commit 871910328dc0ac48116541ae1ce1216c92fc5f37 by Florian Angeletti
review: split `with_aligned_hint` function
The file was modifiedtyping/typetexp.ml (diff)
The file was modifiedtyping/env.ml (diff)
The file was modifiedutils/misc.mli (diff)
The file was modifiedtoplevel/topcommon.ml (diff)
The file was modifiedtyping/typecore.ml (diff)
The file was modifiedutils/misc.ml (diff)
The file was modifiedChanges (diff)
Commit 40ae152f9a144711d439ac2d105d39a729a45e9f by Florian Angeletti
review: Misc.aligned_hint, better documentation
The file was modifiedutils/misc.mli (diff)
Commit e4e6980a3edae9d6a7be5b8337f12266f04095dd by ccasinghino
Add test showing untypeast issue
The file was modifiedtestsuite/tests/compiler-libs/test_untypeast.ml (diff)
Commit 5a4e4bb99bf4622120be76b52acc56d19b542c85 by ccasinghino
Fix untypeast handling of pvb_constraint
The file was modifiedtestsuite/tests/compiler-libs/test_untypeast.ml (diff)
The file was modifiedtyping/untypeast.ml (diff)
Commit 5fe9ecc09c3b233ff12a6c4cc7e25b12c9f2b6f7 by gabriel.scherer
expose Printast.pattern for debugging
The file was modifiedparsing/printast.mli (diff)
Commit 41ace2f0cf3a0509a026db3ab79bf6b2da630837 by Florian Angeletti
dune support: iarray placeholder
The file was addedstdlib/dune_support/dune
The file was modifiedstdlib/dune (diff)
The file was addedstdlib/dune_support/new_predef_types.mli
Commit e24b9cc8597f750e1fc327bed4f17740d962dbe5 by ccasinghino
Address review feedback
The file was modifiedtyping/untypeast.ml (diff)
The file was modifiedtestsuite/tests/compiler-libs/test_untypeast.ml (diff)
The file was modifiedChanges (diff)
Commit 672b91bbc9ec58d1fa279369490bb452bf2a4e75 by gabriel.scherer
-dtypedtree: print locations for 'extra' nodes
The file was modifiedtyping/printtyped.ml (diff)
Commit b62ae360775e58128b785c729f2530822d733376 by n.oje.bar
manual: clarify documentation of C macros on integers
The file was modifiedmanual/src/cmds/intf-c.etex (diff)
Commit 22f4766026883b0f703c857b4dc89c6c81958591 by valentin.gatienbaron
document what Location.loc_ghost is

The general idea of "it's for stuff added by the parser" is simple,
but it's also not particularly precise, as it doesn't clearly explain
why `let f x = x` creates a ghost node for `fun x -> x`.
The file was modifiedparsing/location.mli (diff)
The file was modifiedparsing/parser.mly (diff)
The file was modifiedmanual/src/cmds/intf-c.etex (diff)
Commit 91d3075f98f2b6c7b6f111ec0bc5d49120fbff14 by josh
Fix Weak.get_copy not darkening custom blocks

This PR changes `ephe_get_field_copy` to darken the value it returns if it is a custom block.

While looking at PRs related to ephemerons I noticed a suspicious code path in `ephe_get_field_copy`. So far I have not managed to trigger a crash, but figured I would send this PR for feedback anyhow.

The scenario that worries me is if `ephe_get_field_copy` is called with a value that is not `caml_ephe_none` and is a custom block. In this case, a `Some` block will be allocated to wrap it, and returned. So the argument custom block value will be returned without being copied nor darkened. If `ephe_get_field` were called, it would be darkened. It makes sense that custom blocks are not copied, to avoid issues with calling finalizers multiple times. But I can not see how it is safe to not darken the returned value.

Looking at the history, when custom blocks stopped being copied, they were darkened: https://github.com/ocaml/ocaml/pull/710

Unrelated but in the same code, `ephe_get_field_copy` has a retry loop to protect against an allocation changing the tag or size of the value it is being asked to copy. Isn't changing tags or sizes no longer possible with the ocaml 5 runtime? But I'm unsure about `Forward_tag` values.

Signed-off-by: Josh Berdine <josh@berdine.net>
The file was modifiedChanges (diff)
The file was modifiedruntime/weak.c (diff)
Commit 7d897be326657de6a49bf5b5e37e956d5c1523dd by n.oje.bar
Add note about Val_int truncation
The file was modifiedmanual/src/cmds/intf-c.etex (diff)
Commit 437981fd1aa5258994876e895704e1715af564b1 by nick
Ensure root safety in caml_register_named_value.
The file was modifiedruntime/callback.c (diff)
Commit 657a50ff726f8958ccda79a4ef2ed6a476228f97 by gabriel.scherer
Float.Array.fill: add [@@noalloc] attribute

Reported-by: Alain Frisch <alain@frisch.fr>
The file was modifiedstdlib/float.ml (diff)
Commit b5f2f49b6437b663e28c3a36303cd9b7b0a1b3b5 by gabriel.scherer
Float.Array.fill: add [@inline] attribute to expose float-unboxing opportunity

Reported-by: Alain Frisch <alain@frisch.fr>
The file was modifiedstdlib/float.ml (diff)
Commit e610c443732841b6b3a285c29e823f42bbd9502f by noreply
Index all paths components (#13848)

Now that we have locations for all longident components, we can add these to the index for tools to be able to provide project-wide occurrences and renaming of these modules.

The file was modifiedChanges (diff)
The file was modifiedtestsuite/tests/shape-index/index_functor.reference (diff)
The file was modifiedtestsuite/tests/shape-index/index.reference (diff)
The file was modifiedtestsuite/tests/shape-index/index_aliases.reference (diff)
The file was modifiedtestsuite/tests/shape-index/index_constrs.reference (diff)
The file was modifiedfile_formats/cmt_format.ml (diff)
The file was modifiedtestsuite/tests/shape-index/index_modules.reference (diff)
The file was modifiedtestsuite/tests/shape-index/index_bindingops.reference (diff)
The file was modifiedtestsuite/tests/shape-index/index.ml (diff)
The file was modifiedtestsuite/tests/shape-index/index_constrs_records.reference (diff)
Commit 2038290d90f1608756244be1d6ac7e0e093db98e by noreply
Add `[Float.]Array.{equal.compare}` (#13836)

* Add [Float.]Array.{equal,compare}.

* Array.equal: do not implement it with an exception.

* Array.compare: while cosmetics.

* Alternate implementation of Array.compare.

* Array.compare docstring: remove reference to List.compare.

* Update changes.

* Array.compare: more test cases for normalization.
The file was modifiedstdlib/float.mli (diff)
The file was modifiedstdlib/float.ml (diff)
The file was modifiedChanges (diff)
The file was modifiedstdlib/arrayLabels.mli (diff)
The file was modifiedstdlib/array.ml (diff)
The file was modifiedstdlib/array.mli (diff)
The file was modifiedtestsuite/tests/lib-array/test_array.ml (diff)
The file was modifiedstdlib/templates/floatarraylabeled.template.mli (diff)
Commit d6cb0a7350d18c996fd1e924003b5dadc20e7766 by vincent.laviron
Fix Changes entry for PR13782
The file was modifiedChanges (diff)
Commit 40008eef326af87b33456a6c33d15d1ecfee3ee8 by kit-ty-kate
Add a Repr module to the standard library
The file was modifiedstdlib/.depend (diff)
The file was modifiedtestsuite/tests/backtrace/pr2195-locs.byte.reference (diff)
The file was modifiedChanges (diff)
The file was modifiedstdlib/StdlibModules (diff)
The file was addedstdlib/repr.mli
The file was modifiedmanual/src/library/stdlib-blurb.etex (diff)
The file was modifiedtestsuite/tests/backtrace/pr2195.opt.reference (diff)
The file was modifiedstdlib/stdlib.ml (diff)
The file was modifiedstdlib/stdlib.mli (diff)
The file was addedstdlib/repr.ml
Commit e3feeda58e133cb55f6ae17529403aff18080c11 by josh
Add reviewer to Changes

Signed-off-by: Josh Berdine <josh@berdine.net>
The file was modifiedChanges (diff)
Commit 8ff9dc9ada58e806cf83aef30ba6107ae257a765 by josh
Add Stephen Dolan's test
The file was addedtestsuite/tests/weak-ephe-final/ephe_custom.ml
The file was addedtestsuite/tests/weak-ephe-final/ephe_custom.reference
Commit ce90c353e353f0f1b4abdf7ea5db508253248920 by noreply
Add pointer to ocamltest docs from testsuite/HACKING.md (#13869)

I would have found this useful, since the special treatment of the
`(* TEST *)` comment in new test was not apparent.

Signed-off-by: Josh Berdine <josh@berdine.net>
The file was modifiedtestsuite/HACKING.adoc (diff)
The file was modifiedtyping/typemod.ml (diff)
The file was modifiedparsing/asttypes.mli (diff)
The file was modifiedparsing/pprintast.ml (diff)
The file was modifiedChanges (diff)
The file was modifiedutils/clflags.mli (diff)
The file was modifieddriver/main_args.ml (diff)
The file was modifiedtyping/out_type.ml (diff)
The file was modifiedtyping/types.ml (diff)
The file was modifiedutils/clflags.ml (diff)
The file was modifieddriver/main_args.mli (diff)
The file was modifiedtyping/typedecl_variance.ml (diff)
The file was modifiedparsing/asttypes.ml (diff)
The file was modifiedtyping/oprint.ml (diff)
Commit f8a52fe22b12cf989f8ff2aab746a17e04f77132 by tscompor
add the syntax for bivariance
The file was modifiedparsing/parser.mly (diff)
The file was modifiedboot/menhir/parser.ml (diff)
Commit 314018bba1c34688c650d26f5778a445ea04cdd8 by tscompor
enable -i-variance in tests for variance and constraints
The file was modifiedtestsuite/tests/typing-misc/constraints.ml (diff)
The file was modifiedtestsuite/tests/typing-misc/injectivity.ml (diff)
The file was modifiedtestsuite/tests/typing-misc/variance.ml (diff)
Commit 8800b88aeba35775f0dda6e4a2e9336710e534db by Florian Angeletti
shape printer: less box drifting
The file was modifiedtestsuite/tests/shape-index/index_aliases.reference (diff)
The file was modifiedtestsuite/tests/shape-index/index.reference (diff)
The file was modifiedtyping/shape_reduce.ml (diff)
The file was modifiedtestsuite/tests/shape-index/index_functor.reference (diff)
Commit 8d8d55910fa7ba07f23122506f71598627502cf2 by Florian Angeletti
shape printer: reduce white spaces
The file was modifiedtyping/shape_reduce.ml (diff)
The file was modifiedtestsuite/tests/shape-index/index_functor.reference (diff)
The file was modifiedtestsuite/tests/shape-index/index_types.reference (diff)
The file was modifiedtestsuite/tests/shape-index/index_aliases.reference (diff)
The file was modifiedtestsuite/tests/shape-index/index_labels.reference (diff)
The file was modifiedtestsuite/tests/shape-index/index.reference (diff)
The file was modifiedtestsuite/tests/shape-index/index_vb.reference (diff)
The file was modifiedtestsuite/tests/shape-index/index_constrs.reference (diff)
The file was modifiedtestsuite/tests/shape-index/index_objects.reference (diff)
The file was modifiedtestsuite/tests/shape-index/index_constrs_records.reference (diff)
The file was modifiedtestsuite/tests/shape-index/index_bindingops.reference (diff)
The file was modifiedtestsuite/tests/shape-index/index_modules.reference (diff)
Commit 55f984ded51f1c2b2f407c2c425d0a6b880caf32 by Florian Angeletti
ocamldoc: add option to turn off _ escaping
The file was modifiedocamldoc/odoc_latex.mli (diff)
The file was modifiedocamldoc/odoc_args.ml (diff)
The file was modifiedocamldoc/odoc_latex.ml (diff)
Commit e3453e8170e90c448ceae9a85656ab90495645b9 by Florian Angeletti
manual: remove special handling of In_channel and Out_channel
The file was modifiedmanual/src/cmds/unified-options.etex (diff)
The file was modifiedapi_docgen/ocamldoc/Makefile (diff)
The file was modifiedmanual/src/library/compilerlibs.etex (diff)
The file was modifiedmanual/tests/check-stdlib-modules (diff)
The file was modifiedmanual/src/library/stdlib-blurb.etex (diff)
Commit c94fda77c810a1da9b7d049452a0b38714c17c0a by david.allsopp
Remove special-casing for socketpair

Windows supports socketpair, so it can be tested in the same way.
The file was modifiedtestsuite/tests/lib-unix/common/cloexec.ml (diff)
Commit 1efd41e662687b062173b96d306d7f84b257a327 by david.allsopp
Re-enable the cloexec.ml test on Windows

Test refactored to use fds both on Unix and on Windows, and consequently
to use Unix.execv instead of Unix.create_process to call the status
checker.
The file was modifiedtestsuite/tests/lib-unix/common/fdstatus_main.ml (diff)
The file was modifiedtestsuite/tests/lib-unix/common/cloexec.ml (diff)
The file was modifiedtestsuite/tests/lib-unix/common/fdstatus_aux.c (diff)
Commit 8d5175fe298efc2215dcba1015bd1dc7ea8e39e4 by david.allsopp
Add not-target-windows ocamltest action

The windows / not-windows tests catch Cygwin as well (since Cygwin runs
on Windows). not-target-windows passes as long the compiler targets
neither MSVC nor mingw-w64.
The file was modifiedocamltest/ocamltest_config.mli (diff)
The file was modifiedocamltest/ocamltest_config.ml.in (diff)
The file was modifiedocamltest/builtin_actions.ml (diff)
Commit 9edc8660342bccb712ef16a00db32b8905d6a688 by david.allsopp
Test Unix.create_process as well

Ensures that both Unix.create_process (using posix_spawn, when
available) and Unix.execve are correctly doing cloexec.

At present, test disabled on Windows, because Unix.create_process needs
reimplementing in terms of MSVC's spawn primitive (in order to inherit
fds correctly).
The file was modifiedtestsuite/tests/lib-unix/common/cloexec.ml (diff)
The file was modifiedtestsuite/tests/lib-unix/common/fdstatus_main.ml (diff)
Commit f5f9c89205447b20106bbd669610f873ee2abe29 by david.allsopp
Switch from not-windows to not-target-windows

Enables a whole series of Cygwin tests which should never have been
disabled.
The file was modifiedtestsuite/tests/lib-systhreads/eintr.ml (diff)
The file was modifiedtestsuite/tests/lib-unix/common/fork_cleanup_systhreads.ml (diff)
The file was modifiedtestsuite/tests/lib-systhreads/testpreempt.ml (diff)
The file was modifiedtestsuite/tests/lib-systhreads/testyield.ml (diff)
The file was modifiedtestsuite/tests/hidden_includes/test.ml (diff)
The file was modifiedtestsuite/tests/lib-unix/common/fork_cleanup.ml (diff)
The file was modifiedtestsuite/tests/lib-unix/common/multicore_fork_domain_alone.ml (diff)
The file was modifiedtestsuite/tests/lib-unix/common/multicore_fork_domain_alone2.ml (diff)
The file was modifiedtestsuite/tests/parallel/catch_break.ml (diff)
The file was modifiedtestsuite/tests/lib-systhreads/threadsigmask.ml (diff)
The file was modifiedtestsuite/tests/callback/signals_alloc.ml (diff)
The file was modifiedtestsuite/tests/lib-runtime-events/test_user_event_signal.ml (diff)
Commit 30fe8b7f3e0e79689e4c66b1ccc28193effaeb38 by david.allsopp
Switch uses of libunix to not-target-windows

libunix / libwin32unix are now in place for their actual purpose
The file was modifiedtestsuite/tests/lib-unix/common/sigwait.ml (diff)
The file was modifiedtestsuite/tests/lib-threads/delayintr.ml (diff)
The file was modifiedtestsuite/tests/lib-unix/kill/unix_kill.ml (diff)
The file was modifiedtestsuite/tests/lib-runtime-events/test_external.ml (diff)
The file was modifiedtestsuite/tests/lib-runtime-events/test_external_preserve.ml (diff)
The file was modifiedtestsuite/tests/lib-threads/sockets.ml (diff)
The file was modifiedtestsuite/tests/lib-systhreads/testfork2.ml (diff)
The file was modifiedtestsuite/tests/lib-runtime-events/test_fork.ml (diff)
The file was modifiedtestsuite/tests/lib-systhreads/testfork.ml (diff)
The file was modifiedtestsuite/tests/lib-threads/signal.ml (diff)
The file was modifiedtestsuite/tests/lib-runtime-events/test_corrupted.ml (diff)
The file was modifiedtestsuite/tests/lib-runtime-events/test_user_event_unknown.ml (diff)
The file was modifiedtestsuite/tests/callback/test_signalhandler.ml (diff)
Commit 29d1fd2b2f1653e39c2ec30f68bda03776f0d289 by david.allsopp
Add target-windows ocamltest action

Use it to eliminate all remaining uses of the libunix and libwin32unix
actions.
The file was modifiedtestsuite/tests/lib-unix/win-env/test_env.ml (diff)
The file was modifiedtestsuite/tests/lib-unix/win-symlink/parallel_symlink.ml (diff)
The file was modifiedtestsuite/tests/lib-unix/win-socketpair/test.ml (diff)
The file was modifiedtestsuite/tests/lib-unix/win-stat/test.ml (diff)
The file was modifiedtestsuite/tests/lib-unix/win-channel-of/parallel_channel_of.ml (diff)
The file was modifiedtestsuite/tests/lib-unix/isatty/isatty_tty.ml (diff)
The file was modifiedocamltest/builtin_actions.ml (diff)
The file was modifiedtestsuite/tests/lib-unix/win-createprocess/test.ml (diff)
The file was modifiedtestsuite/tests/lib-unix/win-symlink/test.ml (diff)
The file was modifiedtestsuite/tests/runtime-errors/syserror.ml (diff)
Commit 998bf6443b38a31bceae6be06a88939661d41d95 by noreply
error messsages: convert most hints to submessage (#13838)

This commit

* converts most hints in error messages to separate submessages
* removes some non-modular boxing
* inlines grammatical contents in format strings

in order to improve the indentation of such hints and pave the way to reunifying the error and warning formats for compiler report.
The file was modifiedtestsuite/tests/typing-modules/pr6633.ml (diff)
The file was modifiedtyping/typedecl.ml (diff)
The file was modifiedtyping/typetexp.mli (diff)
The file was modifiedtestsuite/tests/typing-extensions/iarray.ml (diff)
The file was modifiedtestsuite/tests/tool-toplevel/error_highlighting.compilers.reference (diff)
The file was modifiedtestsuite/tests/let-syntax/let_syntax.ml (diff)
The file was modifiedtestsuite/tests/typing-core-bugs/type_expected_explanation.ml (diff)
The file was modifiedtestsuite/tests/typing-warnings/application.ml (diff)
The file was modifiedtestsuite/tests/warnings/w44.ml (diff)
The file was modifiedtyping/env.ml (diff)
The file was modifiedparsing/lexer.mll (diff)
The file was modifiedChanges (diff)
The file was modifiedtestsuite/tests/typing-gadts/syntactic-arity.ml (diff)
The file was modifiedtestsuite/tests/formatting/errors_batch.reference (diff)
The file was modifiedtyping/typemod.ml (diff)
The file was modifiedtyping/typedecl.mli (diff)
The file was modifiedutils/misc.mli (diff)
The file was modifiedtyping/typecore.ml (diff)
The file was modifiedtestsuite/tests/typing-objects/Tests.ml (diff)
The file was modifiedtyping/env.mli (diff)
The file was modifiedtyping/includemod_errorprinter.ml (diff)
The file was modifiedtestsuite/tests/typing-misc/typecore_nolabel_errors.ml (diff)
The file was modifiedtestsuite/tests/generated-parse-errors/errors.compilers.reference (diff)
The file was modifiedparsing/parse.ml (diff)
The file was modifiedtyping/includecore.ml (diff)
The file was modifiedtyping/typetexp.ml (diff)
The file was modifiedparsing/location.mli (diff)
The file was modifiedtestsuite/tests/typing-private/invalid_private_row.ml (diff)
The file was modified.depend (diff)
The file was modifiedparsing/location.ml (diff)
The file was modifiedtestsuite/tests/typing-misc/typetexp_errors.ml (diff)
The file was modifiedutils/misc.ml (diff)
The file was modifiedtestsuite/tests/typing-core-bugs/const_int_hint.ml (diff)
Commit 7d111103b4fe61b37c52b8c928d688c185382dc8 by david.allsopp
Remove out-of-date comment from cloexec.ml test
The file was modifiedtestsuite/tests/lib-unix/common/cloexec.ml (diff)
The file was modifiedChanges (diff)
Commit 7a67af0d3060fdf8fd5ea6d625f349c211aa4fec by vincent.laviron
Add Cvar_mut in Cmm to access mutable variables
The file was modifiedChanges (diff)
The file was modifiedasmcomp/cmmgen.ml (diff)
The file was modifiedasmcomp/afl_instrument.ml (diff)
The file was modifiedasmcomp/cmm_invariants.ml (diff)
The file was modifiedasmcomp/cmm.mli (diff)
The file was modifiedasmcomp/cmm.ml (diff)
The file was modifiedasmcomp/selectgen.ml (diff)
The file was modifiedasmcomp/cmm_helpers.ml (diff)
The file was modifiedasmcomp/thread_sanitizer.ml (diff)
The file was modified.depend (diff)
The file was modifiedasmcomp/printcmm.ml (diff)
Commit 1f4ae043ceb37bd5db2e6e811e432129fe84ba42 by vincent.laviron
Enforce proper use of mutability in codegen tests
The file was modifiedtestsuite/tools/parsecmm.mly (diff)
The file was modifiedtestsuite/tools/parsecmmaux.ml (diff)
The file was modifiedtestsuite/tools/parsecmmaux.mli (diff)
Commit 568e558fc13859634fb49d9d9c78778cc22c82fa by vincent.laviron
Add invariant checks for Cmm mutability of variables
The file was modifiedasmcomp/cmm_invariants.ml (diff)
Commit ae8de4e5427a17c92b52747d44210927e7ff8108 by vincent.laviron
Remove Cmm_helpers.bind_nonvar, as bind now has the right semantics
The file was modifiedasmcomp/cmm_helpers.mli (diff)
The file was modifiedasmcomp/cmmgen.ml (diff)
The file was modifiedasmcomp/cmm_helpers.ml (diff)
The file was addedtestsuite/tests/basic/eval_order_9.ml
The file was addedtestsuite/tests/asmcomp/issue13875.ml
The file was addedtestsuite/tests/basic/eval_order_9.reference
Commit af77a8a93225081ce833ea0417c147b7ce93094e by noreply
Make object stat counters atomic (#13880)

In a codebase where a lot of object were being created in parallel,
thread sanitizer reported races, which seem to be from these counters.
The file was modifiedstdlib/camlinternalOO.ml (diff)
The file was modifiedChanges (diff)
The file was modifiedstdlib/.depend (diff)
Commit 979ce41050ddaf772cd1f372b571b924d35a4325 by noreply
Use a dedicated primitive for Lazy blocks (#13867)

Lazy blocks are very special, in that a value bound to a lazy block may,
at any moment, completely change its shape (it could become an immediate,
or any other kind of value).
By splitting these blocks from the regular blocks, we allow the middle-end
to assume that any Pmakeblock behaves as a normal block, making all
related optimisations safer.

In passing, this also fixes an issue with Forward blocks in recursive definitions.
The file was modifiedlambda/translcore.ml (diff)
The file was modifiedlambda/translprim.ml (diff)
The file was modifiedlambda/value_rec_compiler.ml (diff)
The file was addedtestsuite/tests/lazy/lazy9.reference
The file was modifiedmiddle_end/clambda_primitives.ml (diff)
The file was modifiedmiddle_end/flambda/inlining_cost.ml (diff)
The file was addedtestsuite/tests/lazy/lazy10.ml
The file was modifiedlambda/lambda.mli (diff)
The file was modifiedlambda/printlambda.ml (diff)
The file was modifiedmiddle_end/closure/closure.ml (diff)
The file was modifiedmiddle_end/internal_variable_names.ml (diff)
The file was addedtestsuite/tests/lazy/lazy10.reference
The file was modifiedlambda/lambda.ml (diff)
The file was modifiedmiddle_end/printclambda_primitives.ml (diff)
The file was modifiedmiddle_end/convert_primitives.ml (diff)
The file was modifiedmiddle_end/semantics_of_primitives.ml (diff)
The file was addedtestsuite/tests/lazy/lazy9.ml
The file was modifiedChanges (diff)
The file was modifiedlambda/tmc.ml (diff)
The file was modified.depend (diff)
The file was modifiedmiddle_end/clambda_primitives.mli (diff)
The file was modifiedasmcomp/cmmgen.ml (diff)
The file was modifiedbytecomp/bytegen.ml (diff)
Commit 574783a877bb53fc3aa548868809f62d3dd9ac98 by noreply
Implement `Dynarray.{exists2, for_all2}` (#13885)

The file was modifiedtestsuite/tests/lib-dynarray/test.ml (diff)
The file was modifiedstdlib/dynarray.mli (diff)
The file was modifiedChanges (diff)
The file was modifiedstdlib/dynarray.ml (diff)
Commit 0bc02965103137e62d1ccecb600b783d63f87b00 by hirrolot
Fix my author name in the contributions
The file was modified.mailmap (diff)
The file was modifiedChanges (diff)
Commit 50c380354c65753247c51fbd4f49c3ffb8f0785d by samuel.aime.vivien
Renamed unify_package into compare_package
The file was modifiedtyping/ctype.ml (diff)
Commit 1dfd7530f358fa5f2233969bdad3830f42383b11 by samuel.aime.vivien
Added an inlined record for Tpackage
The file was modifiedtyping/types.ml (diff)
The file was modifiedtyping/typemod.ml (diff)
The file was modifiedtyping/typedecl_separability.ml (diff)
The file was modifiedtyping/out_type.ml (diff)
The file was modifiedtyping/rawprinttyp.ml (diff)
The file was modifiedocamldoc/odoc_env.ml (diff)
The file was modifiedtyping/btype.ml (diff)
The file was modifiedtyping/types.mli (diff)
The file was modifiedtyping/typedecl_variance.ml (diff)
The file was modifiedtyping/subst.ml (diff)
The file was modifiedtyping/typecore.ml (diff)
The file was modifiedtyping/typetexp.ml (diff)
The file was modifiedtyping/ctype.ml (diff)
The file was modifiedtyping/gprinttyp.ml (diff)
Commit 84061af5044161b227ed5bda9bf9df06a825366c by samuel.aime.vivien
Lift inlined record out of Tpackage as a new type
The file was modifiedtyping/types.mli (diff)
The file was modifiedtyping/types.ml (diff)
The file was modifiedboot/ocamlc (diff)
The file was modifiedboot/ocamllex (diff)
Commit d52bb40a46f5db14765ae00ebd24259e30f4125a by samuel.aime.vivien
Changed interface of compare_package to take packages as argument
The file was modifiedtyping/ctype.ml (diff)
Commit 9e5e9e17b67ad243909420544c7e1d3999c81a39 by samuel.aime.vivien
Factor subtype_package out of subtype_rec
The file was modifiedtyping/ctype.ml (diff)
Commit 7e19f1055b123efffe7c6c7cf10b31ae3de7a5b6 by samuel.aime.vivien
Changed interface of package_subtype to take packages as arguments
The file was modifiedtyping/ctype.mli (diff)
The file was modifiedtyping/typemod.ml (diff)
The file was modifiedtyping/ctype.ml (diff)
Commit 99c540cf407efda8cc84e8e5a921ead78c7cf577 by samuel.aime.vivien
Factor unify_package out of unify3
The file was modifiedtyping/ctype.ml (diff)
Commit 1cf0aa106f11176880b79384552e80fe2b1d0b85 by samuel.aime.vivien
Factor moregen_package out of moregen
The file was modifiedtyping/ctype.ml (diff)
Commit 7ba00a04d91e3f9c9101231a41c1fb0a688f4a10 by samuel.aime.vivien
Factor eqtype_package out of eqtype
The file was modifiedtyping/ctype.ml (diff)
Commit 8f6365f53e4d670692bcf8ef1aeda435e20234cb by samuel.aime.vivien
Changed interface of type_package to take a package as argument and return a package
The file was modifiedtyping/typecore.ml (diff)
The file was modifiedtyping/typemod.ml (diff)
The file was modifiedtyping/typecore.mli (diff)
Commit 00b916ba59778d1aac9dfd636c615c74da5adaf1 by samuel.aime.vivien
Small improvement of presentation
The file was modifiedtyping/gprinttyp.ml (diff)
The file was modifiedtyping/ctype.ml (diff)
Commit 1256ad997a8ef6fbbc449201ab976aa68a12bdfe by samuel.aime.vivien
Changed interface of modtype_of_package to take a package as argument
The file was modifiedtyping/typemod.mli (diff)
The file was modifiedtyping/typemod.ml (diff)
Commit 8b7397b08bc973ab2a68f2d15a988ae6fcb0db26 by samuel.aime.vivien
Introduce a new record for package types in outcometree
The file was modifiedtyping/oprint.ml (diff)
The file was modifiedtyping/out_type.ml (diff)
The file was modifiedtyping/outcometree.mli (diff)
The file was modifiedChanges (diff)
Commit 8b6421a32b94761ec030c76d039f1e2f779e5fd5 by samuel.aime.vivien
Renamed pack_fields to pack_cstrs in package_type for coherence
The file was modifiedtyping/typetexp.ml (diff)
The file was modifiedtyping/typedtree.ml (diff)
The file was modifiedtyping/printtyped.ml (diff)
The file was modifiedtyping/tast_mapper.ml (diff)
The file was modifiedtyping/typedtree.mli (diff)
The file was modifiedtyping/untypeast.ml (diff)
The file was modifiedtyping/tast_iterator.ml (diff)
Commit 51b6d5a92ade3c8824ff501f5b56430d1a39646b by samuel.aime.vivien
Renamed fileds of Typedtree.package_type for less ambiguity with Types.package
The file was modifiedtyping/untypeast.ml (diff)
The file was modifiedtyping/typemod.ml (diff)
The file was modifiedtyping/printtyped.ml (diff)
The file was modifiedtyping/typedtree.mli (diff)
The file was modifiedtyping/typetexp.ml (diff)
The file was modifiedtyping/tast_iterator.ml (diff)
The file was modifiedtyping/tast_mapper.ml (diff)
The file was modifiedtyping/typedtree.ml (diff)
The file was modifiedfile_formats/cmt_format.ml (diff)
Commit 5a4813dcaab1e8ab97dc50dbc426cecf5c664236 by samuel.aime.vivien
Refactor complete_type_list to take a package as argument
The file was modifiedtyping/ctype.ml (diff)
Commit 97b72fbc9846e6e27f89aa1bef5a871b413932b6 by noreply
#13702 error messages: specialized error messages for non-functors (#13865)

This commit adds a specialized error message for functor appearing in a context where non-functors were expected (and reciprocally) rather than using the generic error message for mismatched functor parameters.
The file was modifiedChanges (diff)
The file was modifiedtyping/includemod.ml (diff)
The file was modifiedtestsuite/tests/typing-modules/functors.ml (diff)
The file was modifiedtyping/includemod.mli (diff)
The file was modifiedtyping/includemod_errorprinter.ml (diff)
Commit f134dcca47af5ec433d2a5f01f267fab68b6f73d by Sebastien.Hinderer
Add reviewers to Changes entry for #13407
The file was modifiedChanges (diff)
Commit f26e623319eb1548d7e62003a5af71c2fcd668cf by antonin
gitignore: ignore macOS executable debug symbols directory

When an executable is linked using the -g flag, a directory for debug
symbols is created under macOS. It's only appearing for sak, and
creates noise with git status. Ignore it.
The file was modified.gitignore (diff)
Commit 50f133ab2576ca2c788bbc2351e948bec2bd6352 by garrigue
set scope in expand_abbrev rather than rely on update_scope
The file was modifiedtyping/ctype.mli (diff)
The file was modifiedtyping/ctype.ml (diff)
Commit 34fe58a01791fee65ea1ffb68516205f5a5e2d2a by garrigue
use Int.max rather than generic max
The file was modifiedtyping/ctype.ml (diff)
Commit 475fec725540c0f6d087287c96f11ecbaa77550a by garrigue
add log and comments; small change in instance_parameterized_type
The file was modifiedChanges (diff)
The file was modifiedtyping/ctype.ml (diff)
Commit 1520a3b31f087e5d7376dd310c52337102c599e8 by thevoodoos
Add a test showing unexpected approximated shapes
when indexing modules in constructor paths.
The file was modifiedtestsuite/tests/shape-index/index_constrs_records.reference (diff)
The file was modifiedtestsuite/tests/shape-index/index_constrs_records.ml (diff)
Commit 46a22fe69b40139e2ba6262f864deef5c13e8df3 by thevoodoos
Use `Pextra_ty` for specific shape paths and correctly index modules in these.

This makes the handling of the custom cases when resolving shape paths less ad-hoc and fixes shape resolution for modules in constructor and labels paths.

Suggested-by: Florian Angeletti <florian.angeletti@inria.fr>

Refactor and add apply case

Introduce a [scrape_extra_ty] function
The file was modifiedtestsuite/tests/shape-index/index_constrs_records.reference (diff)
The file was modifiedfile_formats/cmt_format.ml (diff)
The file was modifiedtyping/path.mli (diff)
The file was modifiedtyping/path.ml (diff)
The file was modifiedtyping/shape.ml (diff)
Commit 6de7798389ba818a80aebb35ddc5e1e9e4884513 by thevoodoos
Add changelog entry

Changes: add reviewer
The file was modifiedChanges (diff)
Commit 92e54c4c5a62bf6e7cffb5a94e1fa1b6007f33b4 by kit-ty-kate
Fix C _Atomic in header incompatibility with C++

_Atomic is standard C11 but is not standard C++ (although sometimes
available as a compiler extension). Use atomic_uintnat from our
camlatomic.h.

    In file included from all-includes.h:6:
    /Users/antonin/Tarides/ocaml/trunk/runtime/caml/custom.h:54:12: error: '_Atomic' does not name a type; did you mean 'Atom'?
       54 | CAMLextern _Atomic uintnat caml_custom_major_ratio;
          |            ^~~~~~~
          |            Atom
The file was modifiedruntime/caml/custom.h (diff)
The file was modifiedChanges (diff)
Commit 1b1f90c1ff5a821c4de4578ecb7615f0f751615b by samuel.aime.vivien
Correct regression with `unused-type-declaration` warning
The file was modifiedtyping/typetexp.ml (diff)
The file was modifiedChanges (diff)
The file was modifiedtestsuite/tests/typing-warnings/unused_types.ml (diff)
Commit 6b08d8f4b2a23d2516abc23049c98beb45b552fa by noreply
Merge pull request #13829 from clementblaudeau/recsig-substitution-cyclic-check

Fix missing check of illegal recursive module when using module type substitutions
The file was modifiedChanges (diff)
The file was modifiedtyping/typemod.ml (diff)
The file was modifiedtestsuite/tests/typing-modules/recursive.ml (diff)
The file was modifiedtestsuite/tests/typing-modules/module_type_substitution.ml (diff)
Commit daab3677fddfa989364ab28fd583e44b868d5582 by stephen
Remove quotes around \var{...} in intfc manual

The quotes prevent the `\var` operator from being applied, resulting in
"\var{...}" literally being displayed on the page.

Signed-off-by: Stephen Sherratt <stephen@sherra.tt>
The file was modifiedmanual/src/cmds/intf-c.etex (diff)
Commit 8326587bd27d94cc0235fc41b8b5c2eef40d082c by noreply
Fix documentation of Array.compare regarding the ordering. (#13908)

The file was modifiedstdlib/array.mli (diff)
The file was modifiedstdlib/float.mli (diff)
The file was modifiedstdlib/templates/floatarraylabeled.template.mli (diff)
The file was modifiedstdlib/dynarray.mli (diff)
The file was modifiedstdlib/arrayLabels.mli (diff)
Commit 895f2aed91d783c5665dc772a8a48652278a688b by noreply
Enforce evaluation order for generic applications in Closure (#13882)

The file was modifiedmiddle_end/closure/closure.ml (diff)
The file was modifiedChanges (diff)
Commit db5d77597cc8bd2804c5693ad9dbc45a65476a46 by noreply
Mark tests that actually require multicore (#13906)

Some tests fail or hang on mono-core systems. In this commit, we
introduce the "multicore" predicate in ocamltest, and mark the
affected tests.

Bug-Debian: https://bugs.debian.org/1101353
The file was modifiedocamltest/builtin_actions.ml (diff)
The file was modifiedtestsuite/tests/memory-model/publish.ml (diff)
The file was modifiedtestsuite/tests/parallel/mctest.ml (diff)
The file was modifiedtestsuite/tests/memory-model/forbidden.ml (diff)
The file was modifiedChanges (diff)
The file was modifiedtestsuite/tests/parallel/pingpong.ml (diff)
Commit 7a9289c0787846d36ee5fdec7410fbae335ddaff by noreply
Fix definition of Fibonacci numbers in the manual (#13912)

The file was modifiedmanual/src/tutorials/parallelism.etex (diff)
Commit 1f9c6094d1b7af713581e3563bd4c3e4f6ef1a0b by david.allsopp
Apply BUILD_PATH_PREFIX_MAP to Sys.argv.(0) in cmt

Cmt_format.cmt_infos.cmt_args includes a copy of Sys.argv from the
compiler invocation. The user is in control of the arguments passed to a
binary (Sys.argv.(1) and above) and can avoid embedding absolute paths,
but Sys.argv.(0) on some platforms is converted to an absolute path,
regardless of how the executable was invoked.
The file was modifiedChanges (diff)
The file was modifiedfile_formats/cmt_format.mli (diff)
The file was modifiedfile_formats/cmt_format.ml (diff)
Commit 9e5c8d489ce5a869686d6b50822284de9816da7a by antonin
GHA: remove PRISTINE_PATH

Should be unnecessary
The file was modified.github/workflows/build-msvc.yml (diff)
Commit 63295bd3e21633464b23cd1a12c48f3c797502d3 by antonin
GHA: bash is part of Cygwin base
The file was modified.github/workflows/build-msvc.yml (diff)
Commit d39f8c60d5b302b681ea700704ba2d64e4c73206 by antonin
GHA: tell Cygwin's bash to ignore CR line endings

As suggested by the cygwin-install action. Makes much nicer looking
shell scripts!

https://github.com/cygwin/cygwin-install-action?tab=readme-ov-file#line-endings
The file was modified.github/workflows/build-msvc.yml (diff)
Commit 4de803e9f3c3ac60ab25ca48d65ffdaae74c7857 by antonin
GHA: revisit limits on concurrent Make jobs

- When using MinGW-w64 on Linux, Make may spawn too many processes,
  triggering the OOM-killer, and ending the build.
- Running `make test` with `-j` has no effect, the test runner is
  already built and is responsible of running tests in parallel.
The file was modified.github/workflows/build-cross.yml (diff)
The file was modified.github/workflows/build-msvc.yml (diff)
Commit 2cacf01b11da3398adf1d67265f687a71949f6b6 by antonin
GHA: store the Autoconf cache key in the step output

Avoid using Cygwin when computing the cache key.
The file was modified.github/workflows/build-msvc.yml (diff)
Commit 84ef42f73a133217c26e81c74817da7b2f0adab9 by antonin
GHA: don't set CC as an env variable

Makes a cleaner ./configure invocation.
The file was modified.github/workflows/build-msvc.yml (diff)
Commit 8d78ef81154e37f6af622cfebc27c984e71c92bd by antonin
GHA: refactor configure calls in runner.sh
The file was modifiedtools/ci/actions/runner.sh (diff)
The file was modifiedtools/ci/actions/runner.sh (diff)
Commit 911230f609223ace2d79e41c9eadbdace25d594d by antonin
GHA: split configuration and build

Matches the other workflows.
The file was modified.github/workflows/build-msvc.yml (diff)
Commit 13a1158adf94b4ad67ce3cb6bae16c6121446b58 by antonin
GHA: use a fold for config.log in GHA

If configure fails, it is useful to have config.log, but the error is
initially more useful, and that's often harder to spot at the end of
config.log
The file was modified.github/workflows/build-msvc.yml (diff)
The file was modifiedtools/ci/actions/multicoretests.sh (diff)
The file was modifiedtools/ci/actions/runner.sh (diff)
Commit 72c750170ab42cf30572d89aedbf200ada220348 by Sebastien.Hinderer
Get rid of the @since attribute for the Uchar.hash function

Given that this function is present in the module since it was
introduced, the convension is to not have any @since attribute
at the function level, since the module-level one applies.

This commit reverts the addition of the attribute done in PR #13240, see
commit 9585cfe264c4d9b4185f60ebfbbec3f8e54d1432.
The file was modifiedstdlib/uchar.mli (diff)
Commit 60b30b936de1ce47ace2f3d50e91ca680a14dc58 by noreply
Add Result.product and Result.Syntax (#13696)

The file was modifiedtestsuite/tests/lib-result/test.ml (diff)
The file was modifiedstdlib/result.mli (diff)
The file was modifiedChanges (diff)
The file was modifiedstdlib/result.ml (diff)
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 (diff)
The file was modifiedstdlib/repr.mli (diff)
Commit ce76ff768831969cbf6ccf75464d51af6c05d3b6 by hazem-work
Add examples to the `Fun` module
The file was modifiedstdlib/fun.mli (diff)
Commit da21653cd9bf5cf295902a90a821cf9805681917 by hazem-work
Reword some paragraphs in `Fun` examples
The file was modifiedstdlib/fun.mli (diff)
Commit df4d7f8a6dbfbcf897cb7d71c730682df5c408e9 by hazem-work
Reword more paragraphs in `Fun` examples
The file was modifiedstdlib/fun.mli (diff)
Commit 739c5067e0b564565d39b8a0e3b68b3dfa4bfb07 by hazem-work
Add more examples to `Fun.id` and `const`
The file was modifiedstdlib/fun.mli (diff)
Commit f09b6cfb9a8edca1a4cc9eb06f9c9a3e2ff04c62 by hazem-work
Remove problematic examples and add descriptions
The file was modifiedstdlib/fun.mli (diff)
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 (diff)
Commit 0b5e45dac0c5559dc8bc1ff5cc28aeccb183b27b by hazem-work
Add "advanced"/"real-world" examples

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

And warn about too many combinators
The file was modifiedstdlib/fun.mli (diff)
Commit de5c9c0b4edeb63cdde9efc0027a5aabfb0edf8d by hazem-work
Deindent and improve formatting
The file was modifiedstdlib/fun.mli (diff)
Commit 565437aa1fa36f5c2f149d3a7b486f13140e0ccf by hazem-work
Reword some descriptions
The file was modifiedstdlib/fun.mli (diff)
Commit 7475f462587c6bf3eeae93dede4a8c5f080268b6 by hazem-work
Remove problematic `flip` examples
The file was modifiedstdlib/fun.mli (diff)
Commit f96cba128e5a2ca2cdfa7ed70e9ac4aff462a20a by hazem-work
Replace a `compose` example with more involved one
The file was modifiedstdlib/fun.mli (diff)
Commit ceb03c0cc4cad0ec82c8582f4f8d784aa9dc526a by hazem-work
Typos in the Uchar example
The file was modifiedstdlib/fun.mli (diff)
The file was modifiedstdlib/fun.mli (diff)
Commit 1208060c3ac6fe99170fb0ddc28e05122f96b3e3 by hazem-work
Replace the windows path conversion example
The file was modifiedstdlib/fun.mli (diff)
Commit f53905c9d7202ff002f0937b4329fd6eafcb467d by hazem-work
Add a Scanf example to id
The file was modifiedstdlib/fun.mli (diff)
Commit 3fa40af89df95d4a3773daa6707f68bb5bba0bab by hazem-work
Add example to const, remove example from compose
The file was modifiedstdlib/fun.mli (diff)
Commit 4818a160dd178cbc2016adb5827dcf7fc2333b0a by hazem-work
Indent code blocks, reorder, reformat, reword
The file was modifiedstdlib/fun.mli (diff)
Commit c23d18356099c00422f2e2ff8313ad208a85a7b6 by hazem-work
Remove scanf and floatarray examples from id
The file was modifiedstdlib/fun.mli (diff)
Commit 0afb9a2e243fd1dda8677eed1bcd9e016e30325f by hazem-work
Prevent overlong lines in code examples
The file was modifiedstdlib/fun.mli (diff)
The file was modifiedChanges (diff)
Commit 55e9cd44ed34d6a62b83d1a608a15de709df5b1e by david.allsopp
Harden the cloexec.ml test on Windows

On slower machines, it's possible for the main part of the test (in
fdstatus_main.ml) to complete before the cloexec.ml has actually
terminated as part of `Unix.execv` (this is an artefact of how the
underlying CRT `execv` call is implemented on Windows).

Strictly on native Windows, cloexec.ml creates an additional dummy file
and takes a write lock on it (with `Unix.lockf`). Before running, if
this file exists, fdstatus_main.ml will also try to take a write lock on
it, providing a way of fdstatus_main.ml being sure that its ancestor has
fully terminated without actually having to know its PID.
The file was modifiedtestsuite/tests/lib-unix/common/fdstatus_main.ml (diff)
The file was modifiedtestsuite/tests/lib-unix/common/cloexec.ml (diff)
Commit 78fc5774e856cfbe133750c66dfab48e3ab75452 by david.allsopp
Harden cloexec.ml test against virus scanners!

Particularly on slow VMs, on Windows it's possible to end up seeing a
"permission denied" error trying to delete tmp.txt at the end of the
test. The issue is that Windows Defender (or other virus scanners) are
backlogged during a testsuite run scanning executables which are being
compiled. When tmp.txt is closed, it gets added to Windows Defender's
scan queue, but it can take long enough that it hasn't actually closed
the file by the time fdstatus_main.ml tries to delete it.

The solution here is instead to open tmp.txt with O_SHARE_DELETE and
then use an additional C stub to open the file with
FILE_FLAG_DELETE_ON_CLOSE. This way, when fdstatus_main.ml terminates,
the file is automatically by Windows "when it's ready". ocamltest
merrily waits for the entire process group to terminate, as it usually
does.
The file was modifiedtestsuite/tests/lib-unix/common/cloexec.ml (diff)
The file was modifiedtestsuite/tests/lib-unix/common/fdstatus_aux.c (diff)
The file was modifiedtestsuite/tests/lib-unix/common/fdstatus_main.ml (diff)
Commit bcef9c341ffbedb5de93a8e3f9ea891e5366f24e by noreply
Enrich ocamltest doc about scripts (#13902)

The file was modifiedocamltest/OCAMLTEST.org (diff)
Commit 5d7bc092e33918f3aa10e654f79f33e6672ce2ef by valentin.gatienbaron
manual: alerts: add sections, in preparation for following commits
The file was modifiedmanual/src/refman/extensions/alerts.etex (diff)
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 (diff)
Commit ef86a89081864cb6529a74e9a532fad4e63a9f10 by valentin.gatienbaron
manual: alerts: document how to put alerts on all structure/signature items

Personally, I had no idea it was possible to put an alert on a let binding
until I saw it mentioned on a github issue, because it's undocumented.
Ideally, warning 53 would teach users that write:

    let x = 1 [@@deprecated]

to write:

    let x [@deprecated] = 1

instead, but I'm only changing doc here. And arguably, the first form
could be interpreted as the second form, when the pattern contains a
single variable (and fail otherwise), as that's how alerts works for
all other binding constructs.
The file was modifiedChanges (diff)
The file was modifiedmanual/src/refman/extensions/alerts.etex (diff)
Commit 04693889d92d531636eec92817cc9258735a1fde by noreply
Makefile.dev: work around #13817 (#13818)

The file was modifiedMakefile.dev (diff)
The file was modifiedparsing/HACKING.adoc (diff)
Commit 77cf7cd7938242415bb4e7180921aba21cafc96e by gabriel.scherer
[refactor] runtime: auxiliary function for allocated_words update
The file was modifiedruntime/gc_ctrl.c (diff)
The file was modifiedruntime/memory.c (diff)
The file was modifiedruntime/minor_gc.c (diff)
The file was modifiedruntime/caml/major_gc.h (diff)
The file was modifiedruntime/intern.c (diff)
Commit 94f501e35c640646cc1ce4bacb3c097e97769aa6 by gabriel.scherer
runtime: "suspended" and "resumed" allocations affect the major GC speed

This is a buildup commit, currently there is no control in the GC to suspend or resume specific allocations, so these counters are always 0.

The intuition is to "suspend" allocations during ramp-up phases, and "resume" allocations during ramp-down.
The file was modifiedruntime/major_gc.c (diff)
The file was modifiedruntime/domain.c (diff)
The file was modifiedruntime/caml/domain_state.tbl (diff)
Commit 96622777af462b25d18af319b7041d31063c4abf by gabriel.scherer
runtime: simplistic support for [ramp_up], [ramp_down]

During [ramp_up], the deallocation work coming from allocations is
"suspended". It can be "resumed" by calling [ramp_down].

[ramp_up] does not currently count the total number of suspended
allocations (this needs more domain state that is not reset on each
major state), so the user would not know which value to provided to
[ramp_down]. This will be added next.
The file was modifiedruntime/gc_ctrl.c (diff)
The file was modifiedruntime/caml/major_gc.h (diff)
The file was modifiedruntime/caml/gc_ctrl.h (diff)
The file was modifiedruntime/caml/misc.h (diff)
The file was modifiedruntime/caml/domain_state.tbl (diff)
Commit 84b15d08f33cec70714f1b0cfd9d4ea872667da9 by gabriel.scherer
runtime: count the work suspended by each ramp-up phase
The file was modifiedruntime/caml/domain_state.tbl (diff)
The file was modifiedruntime/major_gc.c (diff)
The file was modifiedruntime/gc_ctrl.c (diff)
The file was modifiedruntime/caml/gc_ctrl.h (diff)
The file was modifiedruntime/domain.c (diff)
Commit 612ec1a39c0aa8d6c55a0ed982de28773f54a84e by gabriel.scherer
runtime: support nested ramp-up phases
The file was modifiedruntime/gc_ctrl.c (diff)
Commit 5fd9f104aaada9690ffc75f85a0735dda3067c94 by gabriel.scherer
expose ramp_up, ramp_down as externals in stdlib/Gc
The file was modifiedruntime/gc_ctrl.c (diff)
The file was modifiedruntime/caml/gc_ctrl.h (diff)
The file was modifiedstdlib/gc.mli (diff)
The file was modifiedstdlib/gc.ml (diff)
The file was modifiedChanges (diff)
Commit b4ef74b6b0cfaf72288178f136d37db50dcc81f7 by gabriel.scherer
runtime: log ramp-up / ramp-down in SLICESIZE GC logs
The file was modifiedruntime/gc_ctrl.c (diff)
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 modifiedruntime/gc_ctrl.c (diff)
The file was modifiedstdlib/gc.mli (diff)
Commit 51ac833b3fb05c0c7f36732c5b5c5ac528159e01 by gabriel.scherer
[minor] stray fix in runtime/array.c
The file was modifiedruntime/array.c (diff)
Commit 59dcd8daa4cf4093804a4bdbd40f25a58e8ceabd by gabriel.scherer
runtime/array.c: expose {uniform_,float}array_concat, use it in Float.Array
The file was modifiedruntime/array.c (diff)
The file was modifiedstdlib/float.ml (diff)
The file was modifiedtestsuite/tests/lib-floatarray/floatarray.ml (diff)
The file was modifiedChanges (diff)
Commit 8800ddc8ee995e8d6d3c778b070bca999aedcd41 by noreply
Rename ccomptype to ccomp_type for consistency (#13927)

The file was modifiedocamltest/ocaml_actions.ml (diff)
The file was modifiedutils/config.generated.ml.in (diff)
The file was modifiedocamltest/ocaml_tests.ml (diff)
The file was modifiedocamltest/ocamltest_config.ml.in (diff)
The file was modifiedMakefile.config.in (diff)
The file was modifiedconfigure (diff)
The file was modifiedocamltest/ocamltest_config.mli (diff)
The file was modifiedconfigure.ac (diff)
The file was modifiedocamltest/builtin_actions.ml (diff)
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 modifiedstdlib/result.ml (diff)
The file was modifiedChanges (diff)
The file was modifiedstdlib/result.mli (diff)
The file was modifiedtestsuite/tests/lib-result/test.ml (diff)
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/seq.mli (diff)
The file was modifiedtestsuite/tests/backtrace/backtrace_dynlink.reference (diff)
The file was modifiedtestsuite/tests/lib-dynlink-initializers/test10_main.native.reference (diff)
The file was modifiedtestsuite/tests/translprim/comparison_table.compilers.reference (diff)
The file was modifiedstdlib/list.ml (diff)
The file was modifiedstdlib/seq.ml (diff)
The file was modifiedstdlib/list.mli (diff)
The file was modifiedtestsuite/tests/lib-dynlink-initializers/test10_main.byte.reference (diff)
The file was modifiedstdlib/listLabels.mli (diff)
The file was modifiedtestsuite/tests/backtrace/backtrace_dynlink.flambda.reference (diff)
The file was modifiedChanges (diff)
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 (diff)
The file was modifiedstdlib/domain.mli (diff)
Commit e0bd2767f9c52c93777b8084761cc675c6e40e9b by gabriel.scherer
mystery reviewer for 13643
The file was modifiedChanges (diff)
Commit 719260b898d082af0d61d82d79b7ad917fc33f36 by clement.blaudeau
Added tests for abstraction of whole module types during avoidance
The file was modifiedtestsuite/tests/shadow_include/shadow_all.ml (diff)
The file was modifiedtestsuite/tests/typing-modules/nondep.ml (diff)
Commit 4904473f55fcbaac0779060b8975e6dcd5c9c9a0 by clement.blaudeau
Removed abstraction of whole module types when avoiding a field

* Not backward compatible: code could use this behavior to create signatures
with abstract module type fields, and place them in negative positions with
[module type of], but it is highly unlikely intentional. There is no loss of
expressivity: the desired resulting signature can still be obtained with an
explicit signature constraint.

* Added Change entry
The file was modifiedtyping/mtype.ml (diff)
The file was modifiedtestsuite/tests/shadow_include/shadow_all.ml (diff)
The file was modifiedtestsuite/tests/typing-modules/nondep.ml (diff)
The file was modifiedChanges (diff)
The file was modified.depend (diff)
Commit fb3bac9f88a4eb7a48f347ca25005cc4e51828ea by noreply
Fix test weak-ephe-final/ephe_custom.ml (#13940)

The file was modifiedtestsuite/tests/weak-ephe-final/ephe_custom.ml (diff)
Commit 5270d8b5afd83e0e1e1fb5f9f5125e64ce3be09b by gabriel.scherer
[refactoring] move Matching.get_mod_field to Lambda.transl_mod_field
The file was modifiedlambda/lambda.mli (diff)
The file was modifiedlambda/matching.ml (diff)
The file was modifiedlambda/lambda.ml (diff)
Commit 1e6da84197d1ca2338722f74398f644cb341fe0b by gabriel.scherer
[refactoring] Lambda.transl_mod_field, move 'lazy' to clients
The file was modifiedlambda/matching.ml (diff)
The file was modifiedlambda/lambda.ml (diff)
The file was modifiedlambda/lambda.mli (diff)
Commit 6edeb97b978fba1fec67aeba4af05e539a15059f by gabriel.scherer
[refactor] Lambda: merge transl_mod_field and transl_prim
The file was modifiedlambda/matching.ml (diff)
The file was modifiedlambda/lambda.ml (diff)
The file was modifiedlambda/lambda.mli (diff)
The file was modified.depend (diff)
The file was modifiedruntime/array.c (diff)
The file was modifiedChanges (diff)
Commit 3717bf5ff373fef98902c447808f586503a00a14 by vincent.laviron
Typeopt: better handling of deeply nested unboxed types
The file was modifiedtyping/typeopt.ml (diff)
The file was addedtestsuite/tests/typeopt/nested_unboxed.ml
The file was modifiedChanges (diff)
Commit 0827a2998887d2b9915365c96acf36f2421250b3 by gabriel.scherer
runtime: migrate caml_{alloc,update}_dummy from alloc.c to obj.c
The file was modifiedruntime/obj.c (diff)
The file was modifiedruntime/alloc.c (diff)
Commit 33b6307cf78ad1680e9e66d8bf6fd086b73add98 by gabriel.scherer
caml_update_dummy: the [Infix_tag] case is dead code

We stopped using dummies for values at a function type in OCaml 5.2,
and the matching [caml_alloc_dummy_infix] function was removed in
cd48dc0ac20f58fa460b55fafb75784d5a9d62f3.
The file was modifiedruntime/obj.c (diff)
Commit 8eb1c98e83f65c9d43a95b0e40b438599b7f7855 by gabriel.scherer
[minor] value_rec_compiler: refactor alloc/update calls
The file was modifiedlambda/value_rec_compiler.ml (diff)
Commit 25bc9977863f149fd5ac98231ee27402148d20a0 by gabriel.scherer
recursive values: introduce [caml_update_dummy_lazy]
The file was modifiedlambda/value_rec_compiler.ml (diff)
The file was modifiedruntime/obj.c (diff)
Commit 7e1fdd20d5f981ce98520feb1fd0c4e320506ad6 by gabriel.scherer
regression test for lazy shortcutting in recursive values
The file was modifiedtestsuite/tests/letrec-compilation/lazy_.reference (diff)
The file was modifiedtestsuite/tests/letrec-compilation/lazy_.ml (diff)
The file was modifiedChanges (diff)
Commit f3ead54439c8043a95248ff1d09ff0c0cef6d648 by gabriel.scherer
lazy + letrec: insert indirections on lazy update to avoid concurrency issues
The file was modifiedlambda/value_rec_compiler.ml (diff)
The file was modifiedstdlib/camlinternalLazy.mli (diff)
The file was modifiedstdlib/camlinternalLazy.ml (diff)
Commit 06e29c039dceb172249e773534ed3123bfc53cca by gabriel.scherer
use a dedicated [caml_alloc_dummy] primitive

Suggested-by: Vincent Laviron <vincent.laviron@gmail.com>
The file was modifiedruntime/obj.c (diff)
The file was modifiedlambda/value_rec_compiler.ml (diff)
Commit d7d85ddb647e09f1f4d9c1ccb7a57e881c9fe8d1 by clement.blaudeau
Improved changelog message
The file was modifiedChanges (diff)
Commit 44bd8e000f18ec0ddf8543c64c62ed3f61dc16c1 by gabriel.scherer
document [caml_domain_alone] reasoning
The file was modifiedruntime/caml/domain.h (diff)
The file was modifiedruntime/domain.c (diff)
Commit e6be17f63413a5042da86c4a1a4a60be13d51564 by gabriel.scherer
spawn: increment [caml_num_domains_running] earlier to ease reasoning
The file was modifiedruntime/domain.c (diff)
Commit 1d24e2f2d0639f0c84a3b1b540d2bee0f4f4ba97 by gabriel.scherer
domain_create: release the domain lock on failure
The file was modifiedruntime/domain.c (diff)
The file was modifiedChanges (diff)
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 (diff)
Commit b444a23ffd64f3ebab9f83d66d1252ca2184f143 by noreply
List.sort_uniq : remove non-first duplicates. (#13862)

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

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

Signal_to_string and signal_to_int call invalid_arg if presented with
an unrecognised negative number. signal_of_int calls invalid_arg for
all negative numbers.
The file was modifiedstdlib/sys.ml.in (diff)
The file was modifiedstdlib/sys.mli (diff)
The file was modifiedtestsuite/tests/lib-sys/signal.ml (diff)
The file was modifiedChanges (diff)
Commit 1dad8e57c51e83973785b242406e313ee5a1144f by noreply
Allow 'effect' as attribute id (#13957)

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

(cherry picked from commit 62672b75a315e52e39275dce10d87f22df73e254)
The file was modifiedocamltest/options.ml (diff)
The file was modifiedocamltest/environments.ml (diff)
The file was modifiedocamltest/builtin_actions.ml (diff)
The file was modifiedocamltest/main.ml (diff)
Commit eac5234d70dc60d96dba8f6c93d2142dd50b16ad by antonin
ocamltest: use C99 booleans
The file was modifiedocamltest/run_unix.c (diff)
The file was modifiedocamltest/run_win32.c (diff)
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 (diff)
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 (diff)
Commit 4b8ad7058f1312aecc8d1e77b3f90931d6ddccc5 by antonin
ocamltest: compare wcscmp result with 0
The file was modifiedocamltest/run_win32.c (diff)
Commit 79c00fac1fda1f568f83124e15fa37eca0063f9c by antonin
ocamltest: alarm(3) is always successful

> The alarm() function is always successful, and no return value is
> reserved to indicate an error.

Sometimes an invalid perror message could appear in the logs.

https://pubs.opengroup.org/onlinepubs/9799919799/functions/alarm.html
The file was modifiedocamltest/run_unix.c (diff)
Commit 02a3282c112a5ed8eef7f4b6cd3bcbdb7366b41c by antonin
Teach ocamltest about colors

As the compiler drivers and various ocaml tools, ocamltest now accepts
the -color flag, and recognizes the OCAML_COLOR and NO_COLOR
environment variables.

It uses them to pass a corresponding --color flag to diff, if it was
detected during configure that diff supports this flag.
The file was modifiedutils/misc.mli (diff)
The file was modifiedocamltest/options.ml (diff)
The file was modifiedconfigure.ac (diff)
The file was modifieddriver/main_args.ml (diff)
The file was modifiedutils/misc.ml (diff)
The file was modifiedocamltest/filecompare.ml (diff)
The file was modifieddriver/main_args.mli (diff)
The file was modifiedconfigure (diff)
Commit b18a3becc7c535aa3cc645f850a3fa6df1e33bfd by antonin
GHA: update to macOS 15 and Xcode 16.3
The file was modified.github/workflows/build.yml (diff)
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-lldb-arm64.ml (diff)
The file was modifiedtestsuite/tests/native-debugger/linux-gdb-amd64.ml (diff)
The file was modifiedtestsuite/tests/native-debugger/linux-gdb-arm64.ml (diff)
The file was modifiedtestsuite/tests/native-debugger/macos-lldb-amd64.ml (diff)
The file was modifiedtestsuite/tests/native-debugger/macos-lldb-arm64.ml (diff)
The file was modifiedtestsuite/tests/native-debugger/linux-lldb-amd64.reference (diff)
The file was modifiedtestsuite/tests/native-debugger/macos-lldb-arm64.reference (diff)
The file was modifiedtestsuite/tests/native-debugger/linux-lldb-amd64.ml (diff)
The file was modifiedtestsuite/tests/native-debugger/linux-gdb-amd64.reference (diff)
The file was modifiedtestsuite/tests/native-debugger/linux-gdb-riscv.ml (diff)
The file was modifiedtestsuite/tests/native-debugger/macos-lldb-amd64.reference (diff)
Commit e366fcc2752085c02cc91e47bfe9a36876aecf74 by antonin
tests: native-debugger: sanitize library path

Debian and Fedora derivatives have different libpaths:

    -Using host libthread_db library "/lib/aarch64-linux-gnu/libthread_db.so.1".
    +Using host libthread_db library "/lib64/libthread_db.so.1".

fixup_libthread
The file was modifiedtestsuite/tests/native-debugger/linux-gdb-riscv.reference (diff)
The file was modifiedtestsuite/tests/native-debugger/sanitize.awk (diff)
The file was modifiedtestsuite/tests/native-debugger/linux-gdb-amd64.reference (diff)
The file was modifiedtestsuite/tests/native-debugger/linux-gdb-arm64.reference (diff)
Commit d2b9a889af057b1488633acdaa3cb2bb5203feae by antonin
tests: native-debugger: fix GDB version parsing
The file was modifiedtestsuite/tests/native-debugger/has_gdb.sh (diff)
Commit d4fcbe5bfed02a08b6d59f3d048e3e3a78572978 by antonin
tests: native-debugger: disable disabling ASLR

This allows running the tests more easily in Docker images. The
sanitization step takes care of removing artifacts of randomization
anyway.
The file was modifiedtestsuite/tests/native-debugger/macos-lldb-amd64.reference (diff)
The file was modifiedtestsuite/tests/native-debugger/linux-lldb-arm64.reference (diff)
The file was modifiedtestsuite/tests/native-debugger/lldb-script (diff)
The file was modifiedtestsuite/tests/native-debugger/macos-lldb-arm64.reference (diff)
The file was modifiedtestsuite/tests/native-debugger/gdb-script (diff)
The file was modifiedtestsuite/tests/native-debugger/linux-lldb-amd64.reference (diff)
Commit f24468b21c2b8912eff5194dbdf31d992ed2fe03 by antonin
tests: native-debugger: sanitize trailing blanks
The file was modifiedtestsuite/tests/native-debugger/linux-lldb-amd64.reference (diff)
The file was modifiedtestsuite/tests/native-debugger/macos-lldb-arm64.reference (diff)
The file was modifiedtestsuite/tests/native-debugger/sanitize.awk (diff)
The file was modifiedtestsuite/tests/native-debugger/linux-lldb-arm64.reference (diff)
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/linux-lldb-arm64.ml (diff)
The file was modifiedtestsuite/tests/native-debugger/linux-gdb-amd64.ml (diff)
The file was modifiedtestsuite/tests/native-debugger/linux-gdb-arm64.ml (diff)
The file was modifiedtestsuite/tests/native-debugger/macos-lldb-amd64.ml (diff)
The file was modifiedtestsuite/tests/native-debugger/macos-lldb-arm64.ml (diff)
The file was modifiedtestsuite/tests/native-debugger/linux-gdb-riscv.ml (diff)
The file was modifiedtestsuite/tests/native-debugger/linux-lldb-amd64.ml (diff)
The file was modifiedtestsuite/tests/native-debugger/sanitize.sh (diff)
Commit 916a4bc8deaf0d009d67b0d575178566f7d42eb5 by antonin
Apply suggestions from review
The file was modifiedocamltest/filecompare.ml (diff)
The file was modifieddriver/main_args.mli (diff)
The file was modifiedocamltest/options.ml (diff)
The file was modifieddriver/main_args.ml (diff)
Commit 92bb95f604245b4ea5d133a648901cb205ff6cd8 by antonin
Check separately in configure if DIFF supports --color
The file was modifiedocamltest/filecompare.ml (diff)
The file was modifiedocamltest/ocamltest_config.mli (diff)
The file was modifiedocamltest/ocamltest_config.ml.in (diff)
The file was modifiedconfigure.ac (diff)
The file was modifiedconfigure (diff)
Commit 4b905fd93d349f41c416f9a06bd2433425fc67b6 by noreply
Fix hygiene check for generating `configure` (#13935)

* Allow check-configure.sh to be run locally

* Re-bash the autoconf test

* Simplify - and correct - check-configure.sh

The script contained an unused feature to be able to check PRs as one -
this is never wanted, as we should always be checking that every commit
has a valid committed configure script.

The mechanism for checking whether commits should be tested is shifted
back to the actual trawl of the log. This is both simpler (because it
can be done with a simple file list) but also fixes a bug, since commits
which _didn't_ update configure could reset a failure from an earlier
commit.

* Wrong parameter checked in check-configure.sh

* Review
The file was modifiedtools/ci/actions/check-configure.sh (diff)
Commit 95e9f437d9f2c380b818816f0f6bbe6429e14ca5 by noreply
Added printing of presence flag in typedtree (#13963)

The file was modifiedtyping/printtyped.ml (diff)
The file was addedtestsuite/tests/typedtree/module_presence.ml
The file was modified.depend (diff)
Commit baefa7b666fcf642abe1e11672f1cdcaa4f7b63c by gabriel.scherer
[minor] value_rec_compiler: move primitive declarations earlier
The file was modifiedlambda/value_rec_compiler.ml (diff)
The file was modifiedlambda/value_rec_compiler.ml (diff)
The file was addedtestsuite/tests/letrec-compilation/nested2.ml
The file was modifiedChanges (diff)
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 addedmanual/src/cmds/profile-perf.etex
The file was modifiedmanual/src/allfiles.etex (diff)
The file was modifiedmanual/src/cmds/Makefile (diff)
The file was modifiedmanual/README.md (diff)
The file was modifiedChanges (diff)
The file was modifiedmanual/src/cmds/profil.etex (diff)
Commit a4bc947b602f5a9dbf24b67e2a6ca7b0e8e3a0ad by timmcgil
Collapse profiling into a single chapter.
The file was modifiedmanual/src/cmds/profil.etex (diff)
The file was modifiedmanual/README.md (diff)
The file was removedmanual/src/cmds/profile-perf.etex
The file was modifiedmanual/src/allfiles.etex (diff)
The file was modifiedmanual/src/cmds/Makefile (diff)
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 modified.depend (diff)
The file was modifieddriver/pparse.ml (diff)
The file was modifiedparsing/ast_invariants.mli (diff)
The file was modifieddriver/main_args.ml (diff)
The file was modifiedparsing/ast_invariants.ml (diff)
The file was modifiedtestsuite/tests/parsing/shortcut_ext_attr.compilers.reference (diff)
The file was modifiedutils/clflags.mli (diff)
The file was modifiedtestsuite/tests/parsing/shortcut_ext_attr.ml (diff)
The file was modifiedutils/clflags.ml (diff)
The file was modifieddriver/main_args.mli (diff)
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 modifiedtestsuite/tests/parsetree/locations_test.compilers.reference (diff)
The file was modifiedparsing/ast_invariants.ml (diff)
The file was modifiedChanges (diff)
The file was modifiedparsing/parser.mly (diff)
The file was modifiedtestsuite/tests/parsing/shortcut_ext_attr.compilers.reference (diff)
Commit 002a3566d2223de6ccbb599d2dcee806a528818f by valentin.gatienbaron
parser: refactor previous commit, by removing error prone functions
The file was modifiedparsing/parser.mly (diff)
Commit 59b3990f403ada5169ae60f660dc9686ffa8d950 by valentin.gatienbaron
parser: regenerate parser.ml
The file was modifiedboot/menhir/parser.ml (diff)
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 modifiedtestsuite/tests/typing-fstclassmod/scope_escape.ml (diff)
The file was modifiedtestsuite/tests/effect-syntax/error_messages.ml (diff)
The file was modifiedtestsuite/tests/typing-poly/pr11544.ml (diff)
The file was modifiedtyping/typecore.ml (diff)
The file was modifiedChanges (diff)
Commit 2e0d1e80cb2ed2e0ea10401d919a033400fbbd3b by clement.blaudeau
Renamed the flag `transparent_modules` into `no_alias_deps`
The file was modifiedparsing/ast_mapper.ml (diff)
The file was modifiedparsing/depend.ml (diff)
The file was modifiedtestsuite/tests/ppx-contexts/myppx.ml (diff)
The file was modifieddriver/compenv.ml (diff)
The file was modifiedtyping/env.ml (diff)
The file was modifieddriver/main_args.ml (diff)
The file was modifiedtestsuite/tests/ppx-contexts/test.compilers.reference (diff)
The file was modifiedutils/clflags.mli (diff)
The file was modifiedChanges (diff)
The file was modifieddriver/makedepend.ml (diff)
The file was modifiedutils/clflags.ml (diff)
Commit 4df884cb9185923d9a2cf23719927880d66e4b9a by clement.blaudeau
Update driver/makedepend.ml

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

Co-authored-by: Gabriel Scherer <gabriel.scherer@gmail.com>
The file was modifiedChanges (diff)
The file was modifiedruntime/array.c (diff)
Commit 9c3111d37bd250612f99ff6c71b8b8887e9567a7 by thevoodoos
Move filter_arrow error handling in a function
The file was modifiedtyping/typecore.ml (diff)
Commit d0c66e68483a91d92f46274578e360abc3b5d5f0 by thevoodoos
Refactor: extract loc_rest_of_function
The file was modifiedtyping/typecore.ml (diff)
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 (diff)
The file was modifiedtyping/typecore.mli (diff)
The file was modifiedtestsuite/tests/typing-misc/typecore_errors.ml (diff)
The file was modifiedtyping/typecore.ml (diff)
Commit 63bd7a6561cd77f5b5dfdea29739d890a327c87b by thevoodoos
Add a test illustrating a regression in type_approx
The file was modifiedtestsuite/tests/typing-misc/let_rec_approx.ml (diff)
Commit 363f64774b4c331b4956587c1dcd6dfd0afe3502 by thevoodoos
Fix the regression in type approx
The file was modifiedtestsuite/tests/typing-misc/let_rec_approx.ml (diff)
The file was modifiedtyping/typecore.ml (diff)
Commit 1527dda8d2f326edc7318055a4a44e4dd44d6cec by thevoodoos
Remove the loop: we are already in a recursive function
The file was modifiedtyping/typecore.ml (diff)
Commit dd14dd03e3cc7b75d980d34e61b416c40d9ed4c8 by thevoodoos
Add a comment about an unreachable case
The file was modifiedtyping/typecore.ml (diff)
Commit a75638202fa40681debf83f1d03a9736a68fd9e5 by thevoodoos
Add a comment for type_approx_fun_one_param's spato parameter.
The file was modifiedtyping/typecore.ml (diff)
Commit dc1e77060e32febd254db9266a9d14ad93250d8a by thevoodoos
Add a changelog entry for #13980
The file was modifiedChanges (diff)
Commit 4c6856f0d3b74d1f98a053fd60ebf2d8d1c23007 by david.allsopp
Propagate file_descr cloexec correctly to channels

On Windows, the Unix library performs most operations on files using the
Windows API directly, but the Unix.file_descr structure has the option
for using an underlying CRT fd. In particular, these are needed for the
{in,out}_channel_of_descr functions.

For some reason, the underlying _open_osfhandle call doesn't check for
inheritability of the OS handle itself (it's slightly odd, because it
does check other properties of it). By doing this ourselves, the
resulting CRT fd now correctly propagates O_CLOEXEC.
The file was modifiedChanges (diff)
The file was modifiedotherlibs/unix/channels_win32.c (diff)
Commit 84474967c692e5fb37e697ed9257fdc6495691d9 by david.allsopp
Set FLEXDIR when bootstrapping flexlink

Previously, the flexdll support objects were placed in both byte/bin and
opt/bin with the copy of flexlink.exe when flexlink was being
bootstrapped with OCaml. The objects are small, so the copying was not
particulary onerous.

However, if opt/bin/flexlink.exe is a native Windows symlink (pointing
to ../../flexlink.opt.exe) then Sys.executable_name when flexlink runs
will point to the wrong place. While flexlink ought to be checking
Sys.argv.(0) rather than Sys.executable_name, a better hardening is to
be explicit and set the FLEXDIR environment variable to point to the
directory containing the support objects. This also allows
byte/bin/flexlink.exe and opt/bin/flexlink.exe to share the same copy of
the objects.
The file was modifiedMakefile.build_config.in (diff)
The file was modifiedMakefile.cross (diff)
The file was modifiedMakefile.common (diff)
The file was modifiedMakefile (diff)
Commit 99bf62e438feb51d7b5b954ff4e8d0230b0e0172 by david.allsopp
Make ocamlmklib fail on an unknown parameter

This reverts commit 31cbd26c16f81c8a273ad3ba988c49db6b0dbe38.
The file was modifiedtools/ocamlmklib.ml (diff)
The file was modifiedChanges (diff)
Commit c681cd75440c3403ef442c6f9cf0c4c52d85af8a by thevoodoos
Collimate the comments
The file was modifiedtyping/typecore.ml (diff)
Commit e26ce76ecbbc66627e3234ba3c49dd89b7801e2e by vincent.laviron
Fix Makefile dependencies for ocamldoc, ocamltest and ocamldebug
The file was modifiedMakefile (diff)
Commit 60494e239ab043d72c1b1869ca790f7320f849fa by Florian Angeletti
Bump magic numbers and version for 5.5.0
The file was modifiedconfigure (diff)
The file was modifiedboot/ocamlc (diff)
The file was modifiedbuild-aux/ocaml_version.m4 (diff)
The file was modifiedboot/ocamllex (diff)
The file was modifiedVERSION (diff)
The file was modifiedocaml-variants.opam (diff)
Commit 4ee429d49dc03663eb6a91a8dd3f7da7ffaf7149 by clement.blaudeau
Refactor [is_functor_arg] table of env into [not_aliasable]

- In [env.ml], renamed the internal table used to track non aliasable modules
from [Env_functor_arg] to [Env_not_aliasable], renamed the associated test
function from [is_functor_arg] to [is_aliasable], renamed the [~arg] flags of
some functions into [~noalias]

- In [includemod.ml], removed the redundant [can_alias] function

- In [typemod.ml], changed the error message for [Cannot_alias]
The file was modifiedtyping/env.mli (diff)
The file was modifiedtyping/out_type.ml (diff)
The file was modifiedtyping/includemod.ml (diff)
The file was modifiedtyping/mtype.ml (diff)
The file was modifiedtyping/env.ml (diff)
The file was modifiedtyping/envaux.ml (diff)
The file was modifiedtyping/typemod.ml (diff)
The file was modifiedtestsuite/tests/typing-modules/pr13185.ml (diff)
The file was modifiedtestsuite/tests/typing-sigsubst/sigsubst.ml (diff)
Commit 9b9a8d1d5842edeacc234e2344c42f5f642e01e3 by clement.blaudeau
Added tests and updated error message with line breaks
The file was modifiedtyping/typemod.ml (diff)
The file was modifiedtestsuite/tests/typing-sigsubst/sigsubst.ml (diff)
The file was modifiedtestsuite/tests/typing-modules/pr13185.ml (diff)
The file was modifiedtestsuite/tests/typing-modules/aliases.ml (diff)
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 (diff)
The file was modifieddebugger/debugcom.ml (diff)
The file was modifiedtoplevel/topcommon.ml (diff)
The file was modifieddebugger/eval.ml (diff)
The file was modifiedtoplevel/genprintval.mli (diff)
The file was modifieddebugger/debugcom.mli (diff)
Commit ff699be4ada40b4d40c38db7460d290b5851eb92 by gabriel.scherer
genprintval: move user-installed printers out of the Make functor

User-provided printers see a whole Obj.t value, rather than getting
the remote value on-demand during printing.

Co-authored-by: Pierre Boutillier <pierre.boutillier@laposte.net>
The file was modified.depend (diff)
The file was modifieddebugger/printval.ml (diff)
The file was modifiedtoplevel/genprintval.ml (diff)
The file was modifieddebugger/debugcom.ml (diff)
The file was modifieddebugger/printval.mli (diff)
The file was modifiedtoplevel/genprintval.mli (diff)
The file was modifieddebugger/debugcom.mli (diff)
The file was modifieddebugger/loadprinter.ml (diff)
The file was modifiedtoplevel/topcommon.ml (diff)
Commit 7e4485d8770b5b088f022e43e0a353e5c59eeeed by gabriel.scherer
Generic printers in debugger
The file was modified.depend (diff)
The file was modifieddebugger/loadprinter.ml (diff)
The file was modifieddebugger/printval.mli (diff)
The file was modifieddebugger/printval.ml (diff)
Commit 9a8bc46842ceb79494c31e0d42e31170fb28b739 by gabriel.scherer
Test and doc of polymorphic printers in debugger
The file was modifiedChanges (diff)
The file was modifiedtestsuite/tests/tool-debugger/printer/printer.ml (diff)
The file was modifiedtestsuite/tests/tool-debugger/printer/debuggee.ml (diff)
The file was modifiedtestsuite/tests/tool-debugger/printer/debuggee.reference (diff)
The file was modifiedtestsuite/tests/tool-debugger/printer/input_script (diff)
Commit 1533cbcf9880a34bf9432c6690407c23f7578f40 by mail
Use trunk-compatible dune.3.18.2
The file was modified.github/workflows/multicoretests.yml (diff)
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 modifiedparsing/builtin_attributes.mli (diff)
The file was modifiedmanual/src/refman/extensions/attributes.etex (diff)
The file was modifiedparsing/builtin_attributes.ml (diff)
The file was modifiedChanges (diff)
The file was modified.depend (diff)
The file was modifiedtyping/typemod.ml (diff)
Commit eb383047f6bd6f3b247ffbe3e3c1e3738a5743a1 by olivier
Add Dynarray.unsafe_to_iarray

Fixes #13793.
The file was modifiedChanges (diff)
The file was modifiedtestsuite/tests/lib-dynarray/test.ml (diff)
The file was modifiedstdlib/dynarray.ml (diff)
The file was modifiedstdlib/dynarray.mli (diff)
Commit aaab90d38322567df59927a46959cbdabc3fee95 by noreply
Reimplement `let open`, `let module` and `let exception` in terms of a single construct (#13839)

* Expose Translcore.transl_struct_item

* Expose Typemod.type_str_item

* Define helper function Typecore.is_nonexpansive_stritem

* Add Pexp_struct_item, Texp_struct_item

* Reimplement 'let module'

* Reimplement 'let exception'

* Reimplement 'let open'

* Promote parser

* Accept tests

* Remove reimplemented AST nodes

* Ast_invariants: disallow other structure items

* Wrap in generalization region (suggested by @samsa1)

* Changes

* .depend
The file was modifiedlambda/translcore.ml (diff)
The file was modifiedtyping/typecore.ml (diff)
The file was modifiedlambda/translcore.mli (diff)
The file was modifiedparsing/ast_invariants.ml (diff)
The file was modifiedparsing/pprintast.ml (diff)
The file was modifiedtools/ocamlprof.ml (diff)
The file was modifiedtyping/tast_iterator.ml (diff)
The file was modifiedtyping/typemod.ml (diff)
The file was modifiedparsing/parser.mly (diff)
The file was modifiedtyping/typecore.mli (diff)
The file was modifiedtyping/typedtree.mli (diff)
The file was modifiedparsing/ast_helper.ml (diff)
The file was modifiedtestsuite/tests/parsetree/locations_test.compilers.reference (diff)
The file was modifiedtestsuite/tests/shape-index/index_modules.reference (diff)
The file was modified.depend (diff)
The file was modifiedChanges (diff)
The file was modifiedtyping/cmt2annot.ml (diff)
The file was modifiedtyping/value_rec_check.ml (diff)
The file was modifiedlambda/translmod.ml (diff)
The file was modifiedparsing/depend.ml (diff)
The file was modifiedparsing/parsetree.mli (diff)
The file was modifiedtestsuite/tests/parsing/shortcut_ext_attr.compilers.reference (diff)
The file was modifiedfile_formats/cmt_format.ml (diff)
The file was modifiedparsing/printast.ml (diff)
The file was modifiedtyping/tast_mapper.ml (diff)
The file was modifiedtyping/typedtree.ml (diff)
The file was modifiedtyping/printtyped.ml (diff)
The file was modifiedparsing/ast_iterator.ml (diff)
The file was modifiedboot/menhir/parser.ml (diff)
The file was modifiedparsing/ast_mapper.ml (diff)
The file was modifiedparsing/ast_helper.mli (diff)
The file was modifiedtyping/untypeast.ml (diff)
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/scss/style.scss (diff)
The file was modifiedChanges (diff)
The file was modifiedmanual/src/html_processing/src/process_api.ml (diff)
Commit 58db57d565aece80208b0e987b6e712a796c2fcf by noreply
Refine docs for `In_channel` and `Out_channel` (#13982)

The file was modifiedstdlib/in_channel.mli (diff)
The file was modifiedstdlib/out_channel.mli (diff)
Commit afa4dfad49d8b194365978776878be78e616e1f0 by n.oje.bar
Pprintast: use parentheses around Pexp_struct_item in sequences
The file was modifiedparsing/pprintast.ml (diff)
Commit 1d85917436da1a94c64bc7bffcd00edec1f3a847 by n.oje.bar
Move Changes entry to right place, add bugfix PR
The file was modifiedChanges (diff)
The file was modifiedtestsuite/tests/parsetree/source.ml (diff)
Commit 3fdb4baf81fb17d22974fabd2469427183c66005 by mail
Fix missing version bump to 5.5 in opam file
The file was modifiedocaml-variants.opam (diff)
Commit a8a80630c621dd92cd0a5ca8c7f28e9ee341e7fc by mail
Update precondition comment to reflect renaming from #12619
The file was modifiedruntime/shared_heap.c (diff)
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 (diff)
Commit 0faee008245c47abf945a6bd35c092329eff9e69 by david.allsopp
gha: Document labels triggering/skipping workflows
The file was modifiedHACKING.adoc (diff)
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 (diff)
Commit bd08fe5ff3125b0f0ef3549649420b3b4352d347 by david.allsopp
Add optional static and mimimal jobs

Tests a full `--disable-shared` build on Linux and also a Linux build
with as many options disabled as possible (as the minimal build in the
other-configs job on Jenkins also does).

The matrix is expanded by adding the 'CI: Full matrix' label to a pull
request.
The file was modifiedHACKING.adoc (diff)
The file was modified.github/workflows/build.yml (diff)
Commit 7bd48c16828a03216f2725b1772e037c4b6840db by david.allsopp
Merge macOS Dependency steps
The file was modified.github/workflows/build.yml (diff)
Commit 1183b2e68ac431be0717daa8d2858ce0834a936c by david.allsopp
Fix test_create_cursor_failures.ml on Cygwin

If Cygwin is running "elevated" - which it is in CI - then it acts as
though it's running as root. It intentionally activates
SeBackupPrivilege, which thwarts the test_create_cursor_failures.ml
test.

The OCaml testsuite will never require root privileges for anything
meaningful, so ocamltest on Cygwin simply drops the SeBackupPrivilege
when running on Cygwin, which means the test correctly fails.
The file was modifiedocamltest/run_stubs.c (diff)
The file was modifiedocamltest/run_command.ml (diff)
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 (diff)
Commit 722ac3597f693d2adeeeff9a03b22b1eee96df7a by david.allsopp
Add optional Cygwin check to CI
The file was modified.github/workflows/build-msvc.yml (diff)
Commit 419fe5878cc14e8ca158e65ef37dc4e131d6266b by david.allsopp
Add bytecode-only Cygwin check
The file was modified.github/workflows/build-msvc.yml (diff)
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 modified.github/workflows/build-msvc.yml (diff)
The file was modifiedtools/ci/appveyor/appveyor_build.sh (diff)
The file was modifiedHACKING.adoc (diff)
The file was modified.github/workflows/build.yml (diff)
Commit 749465de5d23f9ac16cf8c56599e2e3cb96077a2 by david.allsopp
Fix tools/check-symbol-names for i686 mingw-w64
The file was modifiedtools/check-symbol-names (diff)
Commit a9449fa8369548f9ace43a56655fe4a3c15bfc7c by david.allsopp
Windows matrix: arch instead of x86_64
The file was modified.github/workflows/build-msvc.yml (diff)
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 (diff)
Commit e6321cf1e3f3bfb0795108ab4d6c66c559ea9b63 by noreply
Fix memory corruption when an exception is raised during demarshaling. (#14015)

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

- [split_row_ids] and [unsafe_signature_subst]
The file was modifiedtyping/typemod.ml (diff)
Commit c86afcccb3914ab718d88f8a89c169d508dd2da7 by clement.blaudeau
[refactor merge] Changed the return logic

- Typedtrees are no longer built inside [merge_constraint] but inside
[transl_with], which removes the need for a special approximation case: merging
always returns a module type, not a Typedtree. Changed [transl_with] to build
the Typedtree there.

- Removed the [real_ids] mechanism that was used to store (imperatively) the
list of affected paths. Now the patches (defined by [return], [return_payload]
and [return_paths]) store both the resulting path and the list of affected
paths.

- Added a [payload] mechanism used only for the type constraint case, where the
replacement declaration is returned as an additional payload. Other cases return
[None].

- Create separate functions ([merge_type], [merge_module], [merge_modtype])

- Extracted the post processing (wellformedness checks and substitutions) into
an helper function [post_process]
The file was modifiedtyping/typemod.ml (diff)
Commit 69fa2d8ce47c79aa903be4ecac1dc1784eb535dc by clement.blaudeau
[refactor merge] Extracted the recursive functions for deep constr

- Broke down the main merging function into three parts: [merge_signature],
[patch_deep_item] and [patch_all]. The first two are mutually recursive and use
an extra argument [~patch]. For now, the only patch provided (in [merge_type],
[merge_module], etc) is [patch_all].
The file was modifiedtyping/typemod.ml (diff)
Commit 2dfe7eb470d79b460fae273c7956b97889be164e by clement.blaudeau
[refactor merge] Moved code
The file was modifiedtyping/typemod.ml (diff)
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 (diff)
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 (diff)
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 (diff)
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 (diff)
Commit cac4e069f00e81db589e652a808e4bb7f3898b35 by clement.blaudeau
[refactor merge] Added comments, minor stylistic changes

- Added general comments about merging

- Renamed the `merge_package_constraint` into `merge_package`

- Moved the [try ... with] of [merge_signature] to the outer function [merge].
The file was modifiedtyping/typemod.ml (diff)
Commit 4354a58ca3d6ded0863cc51c2369ec5a67259c51 by clement.blaudeau
[refactor merge] Corrections from Octachron review
The file was modifiedtyping/typemod.ml (diff)
Commit 27929219b1472958d654b71d9525921efb29d9da by clement.blaudeau
[refactor merge] Moved the catching of exception
The file was modifiedtyping/typemod.ml (diff)
Commit d38e5e615b9a22eff7cb0762101a1f8abbb8588a by clement.blaudeau
[refactor merge] Updated comments
The file was modifiedtyping/typemod.ml (diff)
Commit 330c1ad58f54ae5dd6d22ba37365287d87d93fb1 by clement.blaudeau
[refactor merge] Added Changelog entry
The file was modifiedChanges (diff)
Commit 9c47876b8b3714a2bfa687994999e02006e37efd by gabriel.scherer
[minor] printcmm: print atomic loads
The file was modifiedasmcomp/printcmm.ml (diff)
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 (diff)
Commit 1c6248081df5f7b6954115f22ce17bc456a5d6f5 by gabriel.scherer
[breaking] Change the prototype of [caml_atomic_cas_field].

This is a breaking change because this function was (unfortunately)
exposed outside CAML_INTERNALS, and is used by exactly one external
user, you guessed it:
  https://github.com/ocaml-multicore/multicore-magic/blob/360c2e829c9addeca9ccaee1c71f4ad36bb14a79/src/Multicore_magic.mli#L181-L185
  https://github.com/ocaml-multicore/multicore-magic/blob/360c2e829c9addeca9ccaee1c71f4ad36bb14a79/src/unboxed5/multicore_magic_atomic_array.ml#L36-L43

We chose to change the prototype to remain consistent with the naming
convention for the new caml_atomic_*_field primitives, which will be
added to support atomic record fields.

User code can easily adapt to this new prototype we are using, but not
in a way that is compatible with both old and new versions of
OCaml (not without some preprocessing at least).

Another option would be to expose

    int caml_atomic_cas_field(value obj, intnat fld, value, value)
    value caml_atomic_cas_field_boxed(value obj, value vfld, value, value)

but no other group of primitives in the runtime uses this _boxed
terminology, they instead use

    int caml_atomic_cas_field_unboxed(value obj, intnat fld, value, value)
    value caml_atomic_cas_field(value obj, value vfld, value, value)

and this would again break compatiblity -- it is not easier to convert
code to that two-version proposal, and not noticeably more efficient.

So in this case we decided to break compatibility (of an obscure,
experimental, undocumented but exposed feature) in favor of
consistency and simplificity of the result.
The file was modifiedruntime/caml/memory.h (diff)
The file was modifiedruntime/memory.c (diff)
The file was modifiedruntime/obj.c (diff)
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 (diff)
Commit 2122b66dba9cb7525ab68db7cbf30b09a4f97681 by gabriel.scherer
lambda: Add support for new atomic primitives.

Uses of existing atomic primitives %atomic_foo, which act on
single-field references, are now translated into %atomic_foo_field,
which act on a pointer and an offset -- passed as separate arguments.

In particular, note that the arity of the internal Lambda primitive
    Patomic_load
increases by one with this patchset. (Initially we renamed it into
    Patomic_load_field
but this creates a lot of churn for no clear benefits.)

We also support primitives of the form %atomic_foo_loc, which
expects a pair of a pointer and an offset (as a single argument),
as we proposed in the RFC on atomic fields
  https://github.com/ocaml/RFCs/pull/39
(but there is no language-level support for atomic record fields yet)

Co-authored-by: Clément Allain <clef-men@orange.fr>
The file was modifiedlambda/translprim.ml (diff)
The file was modifiedruntime/memory.c (diff)
The file was modifiedasmcomp/cmm_helpers.ml (diff)
The file was modifiedasmcomp/cmmgen.ml (diff)
The file was modifiedbytecomp/bytegen.ml (diff)
The file was modifiedtestsuite/tests/atomic-locs/cmm.compilers.reference (diff)
The file was modifiedasmcomp/cmm_helpers.mli (diff)
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 modifiedparsing/builtin_attributes.ml (diff)
The file was modifiedtyping/typedecl.mli (diff)
The file was modifiedtyping/includecore.ml (diff)
The file was modifiedtyping/typedtree.mli (diff)
The file was modifiedparsing/asttypes.mli (diff)
The file was modifiedtyping/data_types.mli (diff)
The file was modifiedocamldoc/odoc_sig.ml (diff)
The file was modifiedtyping/subst.ml (diff)
The file was modifiedtyping/typedecl.ml (diff)
The file was modifiedparsing/builtin_attributes.mli (diff)
The file was modifiedtyping/printtyped.ml (diff)
The file was modifiedtyping/typedtree.ml (diff)
The file was modifiedlambda/translcore.ml (diff)
The file was modifiedtyping/ctype.ml (diff)
The file was modifiedtyping/types.ml (diff)
The file was modifiedparsing/asttypes.ml (diff)
The file was modifiedtyping/includecore.mli (diff)
The file was modifiedtyping/types.mli (diff)
The file was modifiedtyping/out_type.ml (diff)
The file was modifiedtyping/outcometree.mli (diff)
The file was modifiedtyping/oprint.ml (diff)
The file was modifiedtyping/datarepr.ml (diff)
The file was modifiedtyping/data_types.ml (diff)
Commit e409b552b7d61121a340b91f9195687fc589e8a2 by gabriel.scherer
atomic fields in ocamldoc
The file was modifiedocamldoc/odoc_html.ml (diff)
The file was modifiedocamldoc/odoc_str.ml (diff)
The file was modifiedocamldoc/odoc_latex.ml (diff)
The file was modifiedocamldoc/odoc_info.mli (diff)
The file was modifiedocamldoc/odoc_type.mli (diff)
The file was modifiedocamldoc/odoc_man.ml (diff)
The file was modifiedocamldoc/odoc_sig.ml (diff)
The file was modifiedocamldoc/odoc_type.ml (diff)
Commit b1dea05488aa0a6a57d1a28834355e61492eaf39 by gabriel.scherer
Bootstrap.

To reproduce (see BOOTSTRAP.adoc for details):
- go to the earlier commit "lambda: Add support for new atomic
  primitives" as a known-good state, build that one
- keep the build artifacts around, come here and do `make bootstrap`
The file was modifiedboot/ocamllex (diff)
The file was modifiedboot/ocamlc (diff)
Commit 9fb1b31abcd751a7c6d34215903f89784de5353d by gabriel.scherer
Add tests for atomic record fields.
The file was modifiedtestsuite/tests/atomic-locs/cmm.compilers.reference (diff)
The file was addedtestsuite/tests/atomic-locs/record_fields.ml
The file was modifiedtestsuite/tests/atomic-locs/cmm.ml (diff)
Commit 2e8ca54741e0ff7550a9cc1a6a8b36c8b9b8359f by gabriel.scherer
[minor] Make test_untypeast.ml more readable.
The file was modifiedtestsuite/tests/compiler-libs/test_untypeast.ml (diff)
Commit ab0634e53819145464a231262c1f417a6b917aa2 by gabriel.scherer
Add predefined type ['a atomic_loc].

This type will be used for ['a Atomic.Loc.t], as proposed
in the RFC
  https://github.com/ocaml/RFCs/pull/39

We implement this here to be able to use it in the stdlib later,
after a bootstrap.
The file was modifiedtyping/predef.mli (diff)
The file was modifiedtyping/typeopt.ml (diff)
The file was modifiedtyping/predef.ml (diff)
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/includecore.ml (diff)
The file was modifiedtyping/env.mli (diff)
The file was modifiedtyping/env.ml (diff)
Commit 2acb346a8bcb92f1f82c2cee32aa001a0e641dcb by gabriel.scherer
Add extension [%atomic.loc record.field].
The file was modifiedtyping/tast_mapper.ml (diff)
The file was modifiedtyping/typecore.mli (diff)
The file was modifiedlambda/translcore.ml (diff)
The file was modifiedtyping/printtyped.ml (diff)
The file was modifiedtyping/value_rec_check.ml (diff)
The file was modifiedtestsuite/tests/compiler-libs/test_untypeast.ml (diff)
The file was modifiedfile_formats/cmt_format.ml (diff)
The file was modifiedtyping/tast_iterator.ml (diff)
The file was modifiedtyping/untypeast.ml (diff)
The file was modifiedtyping/typecore.ml (diff)
The file was modifiedtyping/typedtree.ml (diff)
The file was modifiedtyping/typedtree.mli (diff)
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 (diff)
Commit 5441c97e24b74e9dfb503d09a80fb6e0f6241f43 by gabriel.scherer
Add module [Stdlib.Atomic.Loc].
The file was modifiedstdlib/atomic.ml (diff)
The file was modifiedstdlib/atomic.mli (diff)
Commit 2cf2fed2a348344afe0941a0e8c6ac60de7be577 by gabriel.scherer
Add tests for [Atomic.Loc].
The file was modifiedtestsuite/tests/atomic-locs/cmm.ml (diff)
The file was modifiedtestsuite/tests/atomic-locs/record_fields.ml (diff)
The file was modifiedtestsuite/tests/atomic-locs/cmm.compilers.reference (diff)
Commit 8138d72f7bcb634453ee59a15e50454fad6dacab by gabriel.scherer
Reimplement [Atomic.t] using [Atomic.Loc.t].
The file was modifiedstdlib/atomic.ml (diff)
Commit 929479284895eadf07942a4869a4413930c1a3f7 by gabriel.scherer
Forbid atomic fields in patterns.
The file was modifiedtyping/typecore.ml (diff)
The file was modifiedtyping/typecore.mli (diff)
The file was modifiedChanges (diff)
Commit 26a5bdee619338cee22cf243bb3b14a528c1b47f by gabriel.scherer
testsuite for pattern-matching on atomic reads
The file was modifiedtyping/typecore.ml (diff)
The file was modifiedtestsuite/tests/atomic-locs/record_fields.ml (diff)
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 (diff)
The file was modifiedtestsuite/tests/atomic-locs/record_fields.ml (diff)
Commit 27b62e17b7f3799cdf71c032d8f3e4ec73c9e2b2 by gabriel.scherer
stdlib/Atomic: move the Loc module below in the .mli
The file was modifiedstdlib/atomic.mli (diff)
Commit 2816e615b81d823c54b16478a83df1008c800556 by gabriel.scherer
stdlib/Atomic: minimal documentation
The file was modifiedstdlib/atomic.mli (diff)
Commit 465e615a111eb6b0bfabec938032aa94a5030762 by gabriel.scherer
describe atomic record fields in the reference manual
The file was modifiedmanual/src/refman/extensions/extensionnodes.etex (diff)
The file was modifiedmanual/src/refman/typedecl.etex (diff)
The file was modifiedmanual/src/refman/extensions/attributes.etex (diff)
The file was modifiedmanual/src/tutorials/parallelism.etex (diff)
Commit 3e00aa54590360c0a97e471a259c5ad38ea12713 by noreply
Runtime events: dispatch the right event message type (#13970)

* Dispatch the right event message type

`type.runtime | type.user` does not really make sense as `.runtime`
and `.user` are two projections of the same union type.

Prevents a MSVC 19.44.35109.1 warning:

    runtime/runtime_events.c(595): warning C5287: operands are different enum types
    'ev_runtime_message_type' and 'ev_user_message_type'; use an explicit cast to silence this warning

Co-authored-by: Gabriel Scherer <gabriel.scherer@gmail.com>

* Fit in 80 cols

---------

Co-authored-by: Gabriel Scherer <gabriel.scherer@gmail.com>
The file was modifiedruntime/runtime_events.c (diff)
The file was modifiedChanges (diff)
The file was modifiedotherlibs/unix/putenv.c (diff)
The file was modifiedotherlibs/unix/unix.mli (diff)
The file was modifiedotherlibs/unix/unix_win32.ml (diff)
The file was modifiedotherlibs/unix/unix_unix.ml (diff)
The file was modifiedotherlibs/unix/unixLabels.mli (diff)
The file was modifiedtestsuite/tests/lib-unix/win-env/test_env.reference (diff)
The file was modifiedtestsuite/tests/lib-unix/win-env/test_env.ml (diff)
Commit 8cadc919cc864f85d2f09596ef7a76c867de315f by reisenberg
Document [row_more] and [row_fixed].
The file was modifiedtyping/types.mli (diff)
Commit 90d454692dabf1b95c4583d2b0cfa02bd98d43bb by noreply
Add Option.product and Option.Syntax (#13916)

The file was modifiedstdlib/result.mli (diff)
The file was modifiedChanges (diff)
The file was modifiedstdlib/option.mli (diff)
The file was modifiedtestsuite/tests/lib-option/test.ml (diff)
The file was modifiedstdlib/option.ml (diff)
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 (diff)
The file was modifiedtools/gen_sizeclasses.ml (diff)
Commit 000a5c57ee9da59bd81d3132c55fcf4931bd9f99 by antonin
Fix unterminated-string-initialization warning

    yacc/reader.c:62:1: error: initializer-string for character array is too long, array size is 32 but initializer has size 33 (including the null terminating character); did you mean to use the 'nonstring' attribute? [-Werror,-Wunterminated-string-initialization]
       62 | "\000\000\000\000\000\000\000\000\376\377\377\207\376\377\377\007\000\000\000\000\000\000\000\000\377\377\177\377\377\377\177\377";
          | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    yacc/reader.c:64:1: error: initializer-string for character array is too long, array size is 32 but initializer has size 33 (including the null terminating character); did you mean to use the 'nonstring' attribute? [-Werror,-Wunterminated-string-initialization]
       64 | "\000\000\000\000\200\000\377\003\376\377\377\207\376\377\377\007\000\000\000\000\000\000\000\000\377\377\177\377\377\377\177\377";
          | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The file was modifiedyacc/reader.c (diff)
The file was modifiedChanges (diff)
Commit f252da5314f3eda4967da5caf6eafedcdcabef2c by gabriel.scherer
fix atomic-locs/cmm.compilers.reference
The file was modifiedtestsuite/tests/atomic-locs/cmm.compilers.reference (diff)
Commit 6c2e7cf22f25b4ec9685b28b5b991346ae842591 by antonin
tests: native-debugger: sanitize GDB+musl output
The file was modifiedtestsuite/tests/native-debugger/linux-gdb-arm64.reference (diff)
The file was modifiedtestsuite/tests/native-debugger/sanitize.awk (diff)
The file was modifiedtestsuite/tests/native-debugger/linux-gdb-riscv.reference (diff)
The file was modifiedtestsuite/tests/native-debugger/linux-gdb-amd64.reference (diff)
The file was modifiedChanges (diff)
The file was modifiedruntime/major_gc.c (diff)
Commit 5f663c525a88c76e93a7da27f2dad1aaacb2108c by david.allsopp
Add caml_sys_proc_self_exe primitive

caml_executable_name is always called in native startup and for all the
non-default bytecode linking mechanisms. Bytecode startup now always
calls caml_executable_name, and this value is stored along with
exe_name.

caml_sys_proc_self_exe returns this stored value as a string option. It
returns None if caml_executable_name is not implemented on a given
platform.
The file was modifiedruntime/sys.c (diff)
The file was modifiedruntime/startup_byt.c (diff)
The file was modifiedruntime/startup_nat.c (diff)
The file was modifiedruntime/caml/startup_aux.h (diff)
The file was modifiedruntime/caml/sys.h (diff)
The file was modifiedruntime/startup_aux.c (diff)
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 (diff)
The file was modifiedstdlib/sys.mli (diff)
The file was modifiedChanges (diff)
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.mli (diff)
The file was modifiedtyping/typemod.ml (diff)
The file was modified.depend (diff)
The file was modifiedtyping/typecore.ml (diff)
The file was removedtools/eqparsetree.ml
Commit f33fae757e037b681baa635a75067286e44168a4 by noreply
Add row_more invariant
The file was modifiedtyping/types.mli (diff)
Commit d5e48252c891b8f00a2a5a9507000cbdacda03e2 by mail
Update flexdll submodule to 0.44
The file was modifiedflexdll (diff)
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 (diff)
The file was modifiedtyping/types.mli (diff)
The file was modifiedChanges (diff)
Commit bf40de4309e80162303ca006204f0a7797f2dc71 by antonin
tests: native-debugger: sanitize LLDB+GLIBC output
The file was modifiedtestsuite/tests/native-debugger/linux-lldb-amd64.reference (diff)
The file was modifiedtestsuite/tests/native-debugger/sanitize.awk (diff)
The file was modifiedtestsuite/tests/native-debugger/linux-lldb-arm64.reference (diff)
The file was modifiedocamltest/variables.mli (diff)
The file was modifiedocamltest/variables.ml (diff)
The file was modifiedocamltest/tsl_semantics.ml (diff)
Commit 4df3c8be060c01f9c671663201f37d14ba7c191a by damien.doligez
update Changes for #13961
The file was modifiedChanges (diff)
Commit 1d3252f7737e38bcf1a7995a61ceb3c8b2321ca6 by damien.doligez
simplifications suggested by reviewer
The file was modifiedocamltest/variables.ml (diff)
The file was modifiedocamltest/variables.mli (diff)
The file was modifiedChanges (diff)
The file was modifiedocamltest/tsl_semantics.ml (diff)
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.mli (diff)
The file was modifieddriver/maindriver.ml (diff)
The file was modifieddriver/compenv.ml (diff)
The file was modifieddriver/optmaindriver.ml (diff)
The file was modifieddriver/compile_common.mli (diff)
Commit 7da23dc454005c035ba9c4ec61ebbd3d4be03fed by gabriel.scherer
Better error messages on invalid recursive module definitions

Partially addresses issue of ambiguous error messages when no safe
module is defined in a recursive module chain. The error messages
should list out the full path of the values that cause the module to
be unsafe.
The file was modifiedtestsuite/tests/basic-modules/recursive_module_evaluation_errors.ml (diff)
The file was modified.depend (diff)
The file was modifiedChanges (diff)
The file was modifiedlambda/translmod.ml (diff)
The file was modifiedlambda/translmod.mli (diff)
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 addedtestsuite/tests/statmemprof/bigarray.ml
The file was addedtestsuite/tests/statmemprof/bigarray_stubs.c
The file was modifiedotherlibs/unix/mmap_ba.c (diff)
The file was addedtestsuite/tests/statmemprof/bigarray.reference
The file was modifiedChanges (diff)
Commit 5cc9a523d906307f59d1f00c3b5b1fb87c5d5d92 by gabriel.scherer
Format: place hint white spaces after the break hint

When formatting with margin > 9,

   "@[aaaa@ bbbb@;<∞ 0>cccc@]"

the `a` and `b` blocks fits inside the margin, and thus this text ought
to be formatted as

    aaaa bbbb
    cccc

However, before this commit `Format` rendered this text as

    aaaa
    bbbb
    cccc

because it attributed the size of the horizontal contents of the `@;<∞ 0>`
break hint to the pending break hint `@ `.
This commit fixes this issue by attributing the size of the horizontal
contents of a break hint to the break hints itself rather than any
pending break hint.
The file was modifiedstdlib/format.ml (diff)
The file was addedtestsuite/tests/lib-format/breaks.ml
The file was modifiedChanges (diff)
The file was modifiedChanges (diff)
Commit 76b1eddd94d7d2fb2ecd9d1225f8315733f39e61 by noreply
Attach infix extension points/attributes on local module/exception/open to structure item instead of enclosing let expression (#14009)

Before this change, infix extension points and/or attributes were attached
to the AST node of the enclosing let expression, ie:

  let module%foo[@bar] M = N in ...

was parsed as

  [%foo (let module M = N in ...)[@bar]]

After this change, this is parsed as:

  let [%%foo module M = N [@@bar]] in ...

Moreover, ext/attrs are now allowed following the "let" itself to attach them
to the enclosing let:

  let%foo[@bar] module M = N in ...

is parsed as

  [%foo (let module M = N in ...)[@bar]]

This is a breaking change.
The file was modifiedChanges (diff)
The file was modifiedparsing/ast_invariants.ml (diff)
The file was modifiedboot/menhir/parser.ml (diff)
The file was modifiedtestsuite/tests/warnings/w60.compilers.reference (diff)
The file was modifiedparsing/parser.mly (diff)
The file was modifiedtestsuite/tests/parsing/shortcut_ext_attr.compilers.reference (diff)
Commit 3bc21edc8e45a4e3919ff5d7f2f484b014af6669 by toastal
manual: fall back immediately to user-agent-defined fonts

These font stacks aren’t well-curated & these defaults subjectively
don’t look good. If the web font fails, to load, this is a better
alternative.
The file was modifiedChanges (diff)
The file was modifiedmanual/src/html_processing/scss/_common.scss (diff)
Commit d3bc22fec04227546633300951b5c8f6b498024f by noreply
Uniformize parsing rules for structure and signature items (#14039)

The file was modifiedboot/menhir/parser.ml (diff)
The file was modifiedparsing/parser.mly (diff)
Commit 5dffcba0bb3b75dea5e505f8caff54b1c3242e3a by pierre.boutillier
Trully share #*_printers machinery between toplevel and debugger
The file was modifiedtoplevel/topprinters.ml (diff)
The file was modifiedtoplevel/topprinters.mli (diff)
The file was modifiedtoplevel/topcommon.mli (diff)
The file was modified.depend (diff)
The file was modifieddebugger/printval.ml (diff)
The file was modifiedtoplevel/topdirs.ml (diff)
The file was modifieddebugger/printval.mli (diff)
The file was modifieddebugger/loadprinter.ml (diff)
The file was modifiedtoplevel/topcommon.ml (diff)
The file was modifiedtoplevel/toploop.mli (diff)
The file was modifiedstdlib/gc.mli (diff)
The file was modifiedotherlibs/unix/mmap_ba.c (diff)
The file was modifiedruntime/memprof.c (diff)
The file was modifiedruntime/caml/memprof.h (diff)
The file was modifiedstdlib/gc.ml (diff)
Commit ef052805f1871d7c54716b493812bef30a9423d5 by david.allsopp
update the memprof bigarray test
The file was modifiedtestsuite/tests/statmemprof/bigarray.ml (diff)
The file was modifiedtestsuite/tests/statmemprof/bigarray.reference (diff)
Commit 27d26c9fdd885db8e1f34889207df3d1aa7db4bf by david.allsopp
Move #13675 to 5.4 Changes
The file was modifiedChanges (diff)
Commit c36da49338c42193da62803f5eb4dbe31f28bf91 by gabriel.scherer
Reimplement generational stack scanning a la OCaml 4

Uses spare bits in return addresses to mark already-scanned stack frames.
Currently works on
- POWER
- RISC-V
- ARM 64-bits in Top Bits Ignore mode (i.e. under Linux but not under macOS)
The file was modifiedruntime/fiber.c (diff)
The file was modifiedruntime/caml/roots.h (diff)
The file was modifiedruntime/caml/stack.h (diff)
The file was modifiedruntime/minor_gc.c (diff)
The file was modifiedruntime/backtrace_nat.c (diff)
Commit 86e2926895af77e2bac57838cd442eb0e842530a by gabriel.scherer
ARM64: explicitly ignore top bits in return addresses

Unless the hardware is in top-bits-ignore mode already.

As a consequence, generational stack scanning is supported on all
ARM64 platforms, incl. Apple Silicon / macOS.

The overhead of the extra masking instruction before every `ret`
instruction is low: 1% to 1.5% code size increase; run-time increase
is lost in the noise.
The file was modifiedasmcomp/arm64/arch.ml (diff)
The file was modifiedasmcomp/arm64/arch.mli (diff)
The file was modifiedruntime/caml/stack.h (diff)
The file was modifiedruntime/arm64.S (diff)
The file was modifiedasmcomp/arm64/emit.mlp (diff)
Commit 413a3bdee7adaf4cbe7fbdb2dfc191477b6a0943 by gabriel.scherer
Better API for generational stack scanning

Introduce the `Saved_return_address_raw` macro, to be used at the only place
where return address marks matter (minor GC root scanning).

The `Saved_return_address` macro transparently masks the mark bit off,
so that existing uses of this macro for backtraces, etc, are unchanged.
The file was modifiedruntime/backtrace_nat.c (diff)
The file was modifiedruntime/caml/stack.h (diff)
The file was modifiedruntime/fiber.c (diff)
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 (diff)
The file was modifiedChanges (diff)
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 (diff)
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/modulealias.etex (diff)
The file was modifiedmanual/src/refman/extensions/alerts.etex (diff)
The file was modifiedmanual/src/refman/extensions/privatetypes.etex (diff)
The file was modifiedmanual/src/refman/extensions/doccomments.etex (diff)
The file was modifiedmanual/src/refman/extensions/indexops.etex (diff)
The file was modifiedmanual/src/refman/extensions/overridingopen.etex (diff)
The file was modifiedmanual/src/refman/extensions/generativefunctors.etex (diff)
The file was modifiedmanual/src/refman/extensions/recursivemodules.etex (diff)
The file was modifiedmanual/src/refman/extensions/moduletypeof.etex (diff)
The file was modifiedmanual/src/refman/extensions/generalizedopens.etex (diff)
The file was modifiedmanual/src/refman/extensions/arrayliterals.etex (diff)
The file was modifiedmanual/src/refman/extensions/gadts.etex (diff)
The file was modifiedmanual/src/refman/extensions/signaturesubstitution.etex (diff)
The file was modifiedmanual/src/refman/extensions/bigarray.etex (diff)
The file was modifiedmanual/src/refman/extensions/extensiblevariants.etex (diff)
The file was modifiedmanual/src/refman/exten.etex (diff)
The file was modifiedmanual/src/refman/extensions/extensionnodes.etex (diff)
The file was modifiedmanual/src/refman/extensions/locallyabstract.etex (diff)
The file was modifiedmanual/src/refman/extensions/firstclassmodules.etex (diff)
The file was modifiedmanual/src/refman/extensions/attributes.etex (diff)
The file was modifiedmanual/src/refman/extensions/inlinerecords.etex (diff)
The file was modifiedmanual/src/refman/extensions/letrecvalues.etex (diff)
The file was modifiedmanual/src/refman/extensions/effects.etex (diff)
The file was modifiedmanual/src/refman/extensions/extensionsyntax.etex (diff)
The file was modifiedmanual/src/refman/extensions/bindingops.etex (diff)
The file was modifiedmanual/src/refman/extensions/emptyvariants.etex (diff)
The file was modifiedmanual/src/refman/extensions/labeledtuples.etex (diff)
The file was modifiedChanges (diff)
Commit 517e7bd99e9b379e4523a29bb2eddbfd042498b8 by pierre.boutillier
Use BUILD_PATH_PREFIX_MAP to sanitize debug event paths, do not rewrite shebang

1. bytecomp/emitcode.ml

Sanitize the paths in debug events using
BUILD_PATH_PREFIX_MAP. However if the mapping has no effect, then do
nothing.

2. bytecomp/bytelink.ml
Do not do BUILD_PATH_PREFIX_MAP mapping of the path
supplied by the user with the `-use-runtime` option.
This is used to fill in the shebang part of the
executable, and an abstract path is unlikely to
work there.
The file was modifiedbytecomp/emitcode.ml (diff)
The file was modifiedChanges (diff)
The file was modifiedbytecomp/bytelink.ml (diff)
Commit a1263d64ddfdf5c5e91003e22abc10e3044258be by samuel
Accept native freestanding targets at configure time

Accept `*-none` and `*-elf*` triplets for all the architectures with a
native backend to describe the corresponding freestanding targets;
`none` and `elf*` are the most commonly-used last components in triplets
for freestanding targets
Set `system` to `none` and `os_type` to `None` in such cases
The file was modifiedconfigure.ac (diff)
The file was modifiedconfigure (diff)
Commit 8bc40f9d8dea61824c2c7f4bf773b59ba118c8d7 by samuel
Allow `*-ocaml` as target triplets to build freestanding cross compilers

Allow `ocaml` to be used as the last component of the target triplet in
case we are using a custom toolchain for a freestanding target. The
target triplet is then temporarily rewritten to "<arch>-none" to compute
the canonical target.
This allows to use a `*-*-ocaml-` prefixes (`x86_64-solo5-ocaml-`, for
instance) to create cross-compiler toolchains dedicated to specific
freestanding targets.
The file was modifiedconfigure (diff)
The file was modifiedconfigure.ac (diff)
The file was modifiedChanges (diff)
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/caml/shared_heap.h (diff)
The file was modifiedruntime/domain.c (diff)
The file was modifiedruntime/shared_heap.c (diff)
The file was modifiedChanges (diff)
Commit c6f552107c1b34c63f8049915c9417cb92b366d8 by gabriel.scherer
runtime: caml_finalise_heap should first adopt all orphan pools
The file was modifiedruntime/shared_heap.c (diff)
Commit fdd28b4529609f9b092e0125e20009d99fd4bcdd by gabriel.scherer
review: clarify the invariants in [domain_create], including for the last domain
The file was modifiedruntime/domain.c (diff)
The file was modifiedruntime/shared_heap.c (diff)
The file was modifiedruntime/caml/shared_heap.h (diff)
Commit afbd801a6342476d8cf10b8a4a575fc66e3fe891 by gabriel.scherer
review: clarify the invariants required to free the shared heap
The file was modifiedruntime/domain.c (diff)
The file was modifiedruntime/shared_heap.c (diff)
The file was modifiedruntime/caml/shared_heap.h (diff)
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 (diff)
Commit 561199ec592fe1c9fefe902105002e864de145fe by gabriel.scherer
Changelog: fix ordering for 5.3
The file was modifiedChanges (diff)
Commit 109d09eedc3f72cac6719c2f827ad774c5cce9e9 by gabriel.scherer
Changes: reuse the improved 5.4 entry order from the 5.4 branch
The file was modifiedChanges (diff)
Commit 776e8c147f3853398a7941d52a910489c21c393e by noreply
Unix.kill: On Windows, make process exit code ERROR_PROCESS_ABORTED (#14046)

* Unix.kill: On Windows, make process exit code non-zero

* Changes

* Changes

* Exit with ERROR_PROCESS_ABORTED instead of 137

* Add since comment
The file was modifiedotherlibs/unix/unixLabels.mli (diff)
The file was modifiedotherlibs/unix/unix.mli (diff)
The file was modifiedotherlibs/unix/createprocess.c (diff)
The file was modifiedChanges (diff)
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/emitcode.ml (diff)
The file was modifiedbytecomp/bytelink.ml (diff)
Commit 8ff76fd68b14a12701ca857da43eba56b27a0dd4 by gabriel.scherer
re-apply the part of #14045 that disables path rewrites on the shebang
The file was modifiedbytecomp/bytelink.ml (diff)
Commit 64ef2d0ce1eb7d5f09ac6cde1a78f74b62804cc6 by noreply
Special constructor for %sys_argv primitive (#10570)

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

The file was modifiedChanges (diff)
The file was modifieddebugger/source.ml (diff)
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 (diff)
Commit ec88aacdab329e70418287b425eb1dd710cc4973 by noreply
Add Option.blend (#13995)

The file was modifiedstdlib/option.mli (diff)
The file was modifiedstdlib/option.ml (diff)
The file was modifiedChanges (diff)
Commit 318e988e8ad96dc7475d5638e35c61e450fab687 by Florian Angeletti
error message: point all label mismatches
The file was modifiedtyping/ctype.ml (diff)
The file was modifiedtyping/errortrace_report.ml (diff)
The file was modifiedtestsuite/tests/typing-labeled-tuples/labeled_tuples_and_constructors.ml (diff)
The file was modifiedtyping/errortrace.ml (diff)
The file was modifiedtestsuite/tests/typing-labeled-tuples/labeled_tuple_patterns.ml (diff)
The file was modifiedtestsuite/tests/typing-labeled-tuples/labeled_tuples.ml (diff)
The file was modifiedtyping/errortrace.mli (diff)
Commit a2ff76a67ff6e00068d5d9cb0bd5102308be4d88 by thevoodoos
Add a test showing spurious unused warnign in fonctor argument signatures.

The bug was most certainly introduced in https://github.com/ocaml/ocaml/pull/13308

Illustrates issue https://github.com/ocaml/ocaml/issues/13955

Co-authored-by: Florian Angeletti <florian.angeletti@inria.fr>
The file was modifiedtestsuite/tests/warnings/w32.ml (diff)
The file was modifiedtestsuite/tests/warnings/w32.compilers.reference (diff)
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.ml (diff)
The file was modifiedtestsuite/tests/warnings/w32.compilers.reference (diff)
The file was modifiedtyping/typemod.ml (diff)
The file was modifiedtestsuite/tests/warnings/w32.ml (diff)
The file was modifiedtyping/includemod.mli (diff)
Commit 2d8bb555e2cf34a05b4a9ffbd5a1d2ef2e9d2329 by thevoodoos
Reduce test noise by disabling warning 60
The file was modifiedtestsuite/tests/warnings/w32.compilers.reference (diff)
The file was modifiedtestsuite/tests/warnings/w32.ml (diff)
Commit 8f55b4bf03cbc02c4fd59a552677c66bd3aa8450 by thevoodoos
Add changelog entry for #13956
The file was modifiedChanges (diff)
Commit 77b6c42a5a23ba64c26e0e6bc5168eeb94d3046a by me
dynlink: fix exception name in printer

It looks like the name got changed in #1063. The `Cannot_open_dll` name
in the printer can be misleading because it points to a different type.
The file was modifiedotherlibs/dynlink/dynlink_types.ml (diff)
The file was modifiedChanges (diff)
Commit d946a6df253c1772b8858ea2bff533b74f15471c by me
Add changelog entry
The file was modifiedChanges (diff)
Commit 834f73ec5c7d36ddecb5210d169c348d4b705f29 by damien.doligez
fix one more definition of fib in the manual
The file was modifiedmanual/src/cmds/intf-c.etex (diff)
Commit 8761443617f229d5fe683ed2570aa79c8d64348a by noreply
Add a new type kind `Type_external` (#13712)

* parser.mly
* boot/menhir
* let Ctype.mcomp
1. distinguish string and bytes, and
2. judge locally defined abstract types compatible
   (by disabling non_aliasable).
* farewell non_aliasable
* - make alldepend
- Changes
- add and promote tests
- fix variance
* rephrase "provably equal" comment
The file was modifiedparsing/ast_mapper.ml (diff)
The file was modifiedocamldoc/odoc_str.ml (diff)
The file was modifiedtyping/untypeast.ml (diff)
The file was modifiedtyping/outcometree.mli (diff)
The file was modifiedtyping/typedtree.mli (diff)
The file was modifiedtyping/typeopt.ml (diff)
The file was modifiedparsing/printast.ml (diff)
The file was modifiedtoplevel/genprintval.ml (diff)
The file was modifiedboot/menhir/parser.ml (diff)
The file was modifiedparsing/depend.ml (diff)
The file was modifiedocamldoc/odoc_html.ml (diff)
The file was modifiedparsing/parsetree.mli (diff)
The file was modifiedtyping/btype.ml (diff)
The file was modifiedocamldoc/odoc_scan.ml (diff)
The file was modifiedtyping/env.ml (diff)
The file was modifiedtyping/datarepr.ml (diff)
The file was modifiedocamldoc/odoc_type.ml (diff)
The file was modifiedtestsuite/tests/typing-gadts/or_patterns.ml (diff)
The file was addedtestsuite/tests/typing-misc/type_external.ml
The file was modifiedtestsuite/tests/typing-poly/poly.ml (diff)
The file was modified.depend (diff)
The file was modifiedocamldoc/odoc_latex.ml (diff)
The file was modifiedocamldoc/odoc_search.ml (diff)
The file was modifiedparsing/pprintast.ml (diff)
The file was modifiedtestsuite/tests/typing-misc/exp_denom.ml (diff)
The file was modifiedocamldoc/odoc_texi.ml (diff)
The file was modifiedtyping/subst.ml (diff)
The file was modifiedtestsuite/tests/tool-toplevel/multi_phrase_line.compilers.reference (diff)
The file was modifiedtestsuite/tests/typing-objects/Tests.ml (diff)
The file was modifiedtestsuite/tests/typing-gadts/test.ml (diff)
The file was modifiedtyping/includecore.mli (diff)
The file was modifiedocamldoc/odoc_type.mli (diff)
The file was modifiedtyping/tast_mapper.ml (diff)
The file was modifiedtestsuite/tests/typing-misc/records.ml (diff)
The file was modifiedtyping/typedecl_separability.ml (diff)
The file was modifiedChanges (diff)
The file was modifiedtyping/types.ml (diff)
The file was modifiedtyping/types.mli (diff)
The file was modifiedtyping/includecore.ml (diff)
The file was modifiedparsing/parser.mly (diff)
The file was modifiedtyping/printtyped.ml (diff)
The file was modifiedtyping/typedecl.ml (diff)
The file was modifiedtestsuite/tests/tool-ocamlc-locations/marshalled.compilers.reference (diff)
The file was modifiedocamldoc/odoc_dep.ml (diff)
The file was modifiedtestsuite/tests/typing-safe-linking/a.ml (diff)
The file was modifiedtyping/parmatch.ml (diff)
The file was modifiedtyping/typedtree.ml (diff)
The file was modifiedtestsuite/tests/parsing/rawidents.ml (diff)
The file was modifiedtyping/tast_iterator.ml (diff)
The file was modifiedtyping/oprint.ml (diff)
The file was modifiedocamldoc/odoc_sig.ml (diff)
The file was modifiedocamldoc/odoc_info.mli (diff)
The file was modifiedtestsuite/tests/typing-extension-constructor/test.ocaml.reference (diff)
The file was modifiedtyping/out_type.ml (diff)
The file was modifiedtyping/typedecl_variance.ml (diff)
The file was modifiedocamldoc/odoc_cross.ml (diff)
The file was modifiedparsing/ast_iterator.ml (diff)
The file was modifiedtyping/ctype.ml (diff)
The file was modifiedtyping/predef.ml (diff)
The file was modifiedocamldoc/odoc_man.ml (diff)
Commit 48b9b736ee719a5645de0a30db86710edb87751a by kc
For stores on Apple Silicon, emit `stlr` instead of `dmb ishld; str`.
The file was modifiedasmcomp/arm64/emit.mlp (diff)
Commit 511e95be095aa0d45f0d8f2c29cab6f59a17a948 by Florian Angeletti
error messages: point mismatched univars
The file was modifiedtyping/errortrace_report.ml (diff)
The file was modifiedtestsuite/tests/typing-poly/poly.ml (diff)
The file was modifiedtyping/ctype.ml (diff)
The file was modifiedtyping/errortrace.mli (diff)
The file was modifiedtyping/errortrace.ml (diff)
Commit 5f2b948a56124aa0864e202e0270475fbf97e21c by kc
Introduce Sixtyfour memory chunk to handle unaligned accesses
The file was modifiedasmcomp/s390x/emit.mlp (diff)
The file was modifiedasmcomp/arm64/selection.ml (diff)
The file was modifiedasmcomp/power/emit.mlp (diff)
The file was modifiedasmcomp/printcmm.ml (diff)
The file was modifiedasmcomp/cmm_helpers.ml (diff)
The file was modifiedasmcomp/amd64/emit.mlp (diff)
The file was modifiedasmcomp/riscv/emit.mlp (diff)
The file was modifiedasmcomp/arm64/emit.mlp (diff)
The file was modifiedasmcomp/cmm.ml (diff)
The file was modifiedasmcomp/thread_sanitizer.ml (diff)
The file was modifiedasmcomp/cmm.mli (diff)
Commit 721712624b6e0f148377fb5c444ff425b08d5e29 by noreply
Fix note: the alignment of `_Atomic long long unsigned int` fields changed in GCC 11.1 on i686 (#14035)

* Prevent a GCC 11.1+ note on _Atomic long long int alignment in i686

    runtime/caml/runtime_events.h:217:1: note: the alignment of '_Atomic long long unsigned int' fields changed in GCC 11.1
    217 | };
        | ^

* Use GCC aligned attribute instead of C alignas

The C standard _Alignas / alignas isn't enough to silence the GCC
note, as of GCC 14.
The file was modifiedChanges (diff)
The file was modifiedruntime/caml/runtime_events.h (diff)
Commit 48efc58d67242349af56ae91944e3052c6cbd26b by noreply
Add missing `item-attribute` rule for `let-binding` in documentation of attributes (#14077)

This reflects the grammar in
https://github.com/ocaml/ocaml/blob/8761443617f229d5fe683ed2570aa79c8d64348a/parsing/parser.mly#L2742-L2759
and without this rule, the documentation doesn't account for forms like

```
let foo = bar
[@@bax]
```
The file was modifiedChanges (diff)
The file was modifiedmanual/src/refman/extensions/attributes.etex (diff)
Commit 342a6431356af904dff5d06b940249a9429fc081 by david.allsopp
Switch back to ubuntu-latest
The file was modified.github/workflows/build.yml (diff)
The file was modifiedChanges (diff)
Commit a2e25d6d9aae00fb6762e0c3a890f4ad23b73be6 by kc
Address reviewer comments.
The file was modifiedChanges (diff)
The file was modifiedasmcomp/arm64/emit.mlp (diff)
Commit 5607fc429d6a45bf4802c175c2950a5c8ba3711a by noreply
Catch invalid aliases at merging rather than subtyping (#14066)

* Add tests for introduction of invalid aliases via module constraints

* Catch invalid aliases at module constraints, not at subtyping

* Remove the unreachable "Invalid alias" subtyping error

* changelog
The file was modifiedChanges (diff)
The file was modifiedtestsuite/tests/typing-modules/merge_constraint.ml (diff)
The file was modifiedtyping/includemod.ml (diff)
The file was modifiedtyping/typemod.mli (diff)
The file was modifiedtestsuite/tests/typing-modules/pr7818.ml (diff)
The file was modifiedtestsuite/tests/typing-modules/aliases.ml (diff)
The file was modifiedtyping/includemod.mli (diff)
The file was modifiedtyping/includemod_errorprinter.ml (diff)
The file was modifiedtyping/typemod.ml (diff)
Commit 6b82c95cf44071e86c3cbba2757520d0c227f339 by david.allsopp
Generalise Compmisc.init_path

Previously, Compmisc.init_path initialised the load path using
Config.standard_library, but this can now be altered via an optional
?standard_library argument. This is used internally when testing
compiler installations in order to allow Ccomp.call_linker to be used.
The file was modifieddriver/compmisc.mli (diff)
The file was modifieddriver/compmisc.ml (diff)
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.mli (diff)
The file was modifiedbytecomp/dll.ml (diff)
Commit b48ba73a22dbf499133dcb1dbd8464be41f5e8a8 by david.allsopp
Add Misc.Stdlib.String.to_utf_8_seq
The file was modifiedutils/misc.ml (diff)
The file was modifiedutils/misc.mli (diff)
Commit 88d803f5dedffd883d7addee4a0261a2feaa089e by david.allsopp
Expose Bytelink.read_runtime_launch_info
The file was modifiedbytecomp/bytelink.mli (diff)
Commit 12ea618e22add7047ac3e09d2fa5a07ea42d52d9 by Florian Angeletti
Changes bookkeeping: missing reviewer
The file was modifiedChanges (diff)
Commit f1c31807fd9d56880bef5e64c8b2aec175dcbc10 by n.oje.bar
Add Domain.running_domain_count
The file was modifiedstdlib/domain.mli (diff)
The file was modifiedstdlib/domain.ml (diff)
The file was modifiedruntime/domain.c (diff)
The file was modifiedChanges (diff)
The file was modifiedChanges (diff)
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.generated.ml.in (diff)
The file was modifiedaclocal.m4 (diff)
The file was modifiedconfigure.ac (diff)
The file was modifiedconfigure (diff)
The file was modifiedutils/config.fixed.ml (diff)
The file was modifiedutils/config.mli (diff)
Commit a28e47bd42ad6a1f8ca3c26345aa27e7809bb66a by david.allsopp
Add a test for the compiler "in-prefix"
The file was addedtestsuite/tools/testRelocation.ml
The file was addedtestsuite/in_prefix/README.md
The file was addedtestsuite/tools/environment.mli
The file was addedtestsuite/tools/cmdline.mli
The file was addedtestsuite/tools/testDynlink.ml
The file was addedtestsuite/tools/testBytecodeBinaries.ml
The file was modifiedconfigure.ac (diff)
The file was addedtestsuite/tools/harness.ml
The file was addedtestsuite/tools/testToplevel.ml
The file was addedtestsuite/tools/testRelocation.mli
The file was addedtestsuite/tools/testLinkModes.ml
The file was addedtestsuite/tools/test_in_prefix.ml
The file was addedtestsuite/tools/testLinkModes.mli
The file was addedtestsuite/tools/test_in_prefix.mli
The file was addedtestsuite/tools/toolchain.mli
The file was addedtestsuite/tools/test_ld_conf.ml
The file was modifiedconfigure (diff)
The file was addedtestsuite/tools/testToplevel.mli
The file was modifiedMakefile.build_config.in (diff)
The file was modified.depend (diff)
The file was modifiedMakefile (diff)
The file was addedtestsuite/tools/testDynlink.mli
The file was addedtestsuite/tools/cmdline.ml
The file was modified.gitignore (diff)
The file was addedtestsuite/tools/main_in_c.c
The file was addedtestsuite/tools/harness.mli
The file was addedtestsuite/tools/environment.ml
The file was addedtestsuite/tools/testBytecodeBinaries.mli
The file was addedtestsuite/tools/toolchain.ml
The file was addedtestsuite/in_prefix/Makefile.test
The file was addedtestsuite/tools/test_ld_conf.mli
Commit 9585ef98182f0159a6ceb00e0824ff11cf3237c0 by david.allsopp
Plumb the in-prefix tests into CI
The file was modified.github/workflows/build-msvc.yml (diff)
The file was modifiedtools/ci/inria/main (diff)
The file was modified.github/workflows/build.yml (diff)
The file was modifiedtools/ci/actions/runner.sh (diff)
The file was modifiedtools/ci/appveyor/appveyor_build.sh (diff)
Commit 89e4b157b3487085beaeca29aea78875b18c64fe by gabriel.scherer
Changes: 14074 was backported to 5.4
The file was modifiedChanges (diff)
Commit fe89cb9ace6789a09dde59153185929442db658c by sdolan
Avoid an error when a channel is flushed during close
The file was modifiedChanges (diff)
The file was modifiedruntime/io.c (diff)
The file was addedtestsuite/tests/lib-channels/close_during_flush.reference
The file was addedtestsuite/tests/lib-channels/close_during_flush.ml
The file was modifiedruntime/io.c (diff)
The file was modifiedtestsuite/tests/lib-channels/close_during_flush.ml (diff)
The file was modifiedChanges (diff)
Commit d9068d1a24b33b4837cdb7ba3d62aeebe26c3bc8 by olivier
Fix flakiness of TSan tests using flushes and synchronization

Co-authored-by: Fabrice Buoro <fabbing@free.fr>

All logging output is moved to stderr, the same output where TSan dumps
its race reports. This is to help understanding what happens if the
output of this test ever changes.

Additionally, a second synchronizing barrier is added to some tests to
remove flakiness.

The existing barrier ensured that

1. there was a data race, by delaying the synchronizing `Domain.join`
   until after both domains had accessed the shared mutable field; and
2. that these accesses always happened in the same order (write first or
   read first).

The role of the new barrier is to enforce always the same order between
the TSan report and logging lines such as `"Leaving f"`. Not enforcing
that order was the source of flakiness in these tests.
The file was modifiedChanges (diff)
The file was modifiedtestsuite/tests/tsan/exn_from_c.reference (diff)
The file was modifiedtestsuite/tests/tsan/exn_in_callback.ml (diff)
The file was modifiedtestsuite/tests/tsan/exn_in_callback.reference (diff)
The file was modifiedtestsuite/tests/tsan/exn_reraise.reference (diff)
The file was modifiedtestsuite/tests/tsan/exn_from_c.ml (diff)
The file was modifiedtestsuite/tests/tsan/exn_reraise.ml (diff)
Commit e745631c138b7847fb7262dbeb579c25618f4f58 by timmcgil
Skip native-debugger tests.
The file was modifiedtools/ci/inria/sanitizers/script (diff)
Commit 6837826754f012cf57e8c74f882061ceadd8c9f3 by n.oje.bar
Use caml_unix_error instead of errno+caml_uerror
The file was modifiedotherlibs/unix/readlink_win32.c (diff)
The file was modifiedotherlibs/unix/lockf_win32.c (diff)
The file was modifiedotherlibs/unix/link_win32.c (diff)
Commit 072a905c85fbfcc1c6141d420ee4b4c3214790a7 by n.oje.bar
Symmetrize caml_sys_rename and caml_unix_rename

Make the libunix implementation common for Windows and POSIX.

The Windows implementation was using a simple call to MoveFileEx, but
rename_os aliases to caml_win32_rename, which is a more portable and
POSIX-like reimplementation, with fixes from #12320 and before.
The file was removedotherlibs/unix/rename_win32.c
The file was modifiedotherlibs/unix/Makefile (diff)
The file was removedotherlibs/unix/rename_unix.c
The file was addedotherlibs/unix/rename.c
The file was modifiedruntime/caml/osdeps.h (diff)
The file was modifiedruntime/sys.c (diff)
Commit 37ca0324a4478fc639772bc6ec4ebbfda1265e7f by n.oje.bar
Symmetrize caml_sys_chdir and caml_unix_chdir
The file was modifiedotherlibs/unix/chdir.c (diff)
The file was modifiedruntime/sys.c (diff)
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 modifiedotherlibs/unix/close_unix.c (diff)
The file was modifiedruntime/sys.c (diff)
Commit 055b3b16dbf74798829a68c8feab4ade081d40bb by n.oje.bar
Symmetrize caml_sys_system_command and caml_unix_system

- caml_unix_system on Windows would raise ENOENT if the command string
  wasn't C safe. Prefer raising EINVAL as caml_sys_system_command.
- caml_sys_system_command did not call _flushall on Windows as
  caml_unix_system did.
The file was modifiedotherlibs/unix/system.c (diff)
The file was modifiedruntime/sys.c (diff)
The file was modifiedChanges (diff)
Commit 7ac77a4b698a4ac978998cef7a25ed5979b5c231 by noreply
stdlib: Option.{for_all, exists} (#13920)

* Option.{for_all, exists}

* Changes
The file was modifiedstdlib/option.mli (diff)
The file was modifiedChanges (diff)
The file was modifiedstdlib/option.ml (diff)
Commit a2e5fef1ee6d9741418749d4b4d3597129d17ae1 by n.oje.bar
[refactor] dynarray variable naming, consistently use [f] for function arguments
The file was modifiedstdlib/dynarray.ml (diff)
Commit d82258d173ed8c2c3e5594cb799f083f96e8f694 by n.oje.bar
Dynarray.rev_iter, rev_iteri
The file was modifiedstdlib/dynarray.mli (diff)
The file was modifiedstdlib/dynarray.ml (diff)
The file was modifiedtestsuite/tests/lib-dynarray/test.ml (diff)
The file was modifiedChanges (diff)
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 (diff)
The file was modifiedstdlib/domain.ml (diff)
The file was modifiedChanges (diff)
The file was modifiedstdlib/domain.mli (diff)
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 modifiedChanges (diff)
The file was modifiedocamldoc/odoc_html.mli (diff)
The file was modifiedocamldoc/odoc_html.ml (diff)
The file was modifiedtestsuite/tests/tool-ocamldoc/Paragraph.html.reference (diff)
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/statmemprof/bigarray_stubs.c (diff)
The file was modifiedtestsuite/tests/lib-bigarray-2/bigarrfstub.c (diff)
The file was modifiedtestsuite/tests/lib-bigarray-2/bigarrcstub.c (diff)
Commit 5307849b3b4d876cd23e32b3585176b782871579 by Florian Angeletti
Changes bookkeeping: fix 13896 entry
The file was modifiedChanges (diff)
Commit 3c357eac444cab2fb06723b5312d77ebd2b300be by Florian Angeletti
toplevel: test with nongeneric printer
The file was modifiedtestsuite/tests/tool-toplevel/install_printer.ml (diff)
The file was modifiedtestsuite/tests/tool-toplevel/install_printer.compilers.reference (diff)
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 (diff)
The file was modifiedtyping/ctype.mli (diff)
The file was modifiedtoplevel/genprintval.ml (diff)
Commit a9a97df9a5da1a5fe49a56872b675f90c48ac7a3 by Florian Angeletti
refactor Ctype: remove nongen_inst argument
The file was modifiedtoplevel/genprintval.ml (diff)
The file was modifiedtyping/ctype.mli (diff)
The file was modifiedtyping/includecore.ml (diff)
The file was modifiedtyping/ctype.ml (diff)
The file was modifiedChanges (diff)
The file was modified.github/workflows/build.yml (diff)
The file was modified.github/workflows/build-msvc.yml (diff)
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 (diff)
The file was modifiedconfigure.ac (diff)
Commit c8745658446e06bd79e0a68e181faeb186c8f62b by david.allsopp
Temporarily disable warning C5387 on MSVC
The file was modifiedtestsuite/tests/lib-bigarray-2/bigarrfstub.c (diff)
The file was modifiedtestsuite/tests/lib-bigarray-2/bigarrcstub.c (diff)
The file was modifiedtestsuite/tests/statmemprof/bigarray_stubs.c (diff)
Commit ee44effce6729d3543e20829a09b5d417bd90d43 by Nick.Barnes
Update memprof after leaving the barrier at the end of minor GC, nor before.
The file was modifiedChanges (diff)
The file was modifiedruntime/minor_gc.c (diff)
Commit 501875bc10151a00ca880daee158a4d1c8e7781c by antonin
Use C99 (u)int64_t instead of MSVC __int64 extension
The file was modifiedtestsuite/tests/lib-unix/win-stat/fakeclock.c (diff)
The file was modifiedotherlibs/unix/truncate_win32.c (diff)
The file was modifiedotherlibs/unix/stat_win32.c (diff)
The file was modifiedruntime/caml/config.h (diff)
The file was modifiedruntime/caml/io.h (diff)
The file was modifiedotherlibs/unix/mmap_win32.c (diff)
Commit 9893cdd32e41d8347ccfcbd7dd60436913a8709f by antonin
Use time_t instead of MSVC __time64_t

The documentation reads:

> `time` is a wrapper for `_time64` and `time_t` is, by default,
> equivalent to `__time64_t`. If you need to force the compiler to
> interpret `time_t` as the old 32-bit `time_t`, you can define
> `_USE_32BIT_TIME_T`.

https://learn.microsoft.com/en-us/cpp/c-runtime-library/reference/time-time32-time64?view=msvc-170
The file was modifiedotherlibs/unix/stat_win32.c (diff)
Commit 7c93d2483b5fb1a3dab79c5c3fb3d34954aa3c4b by antonin
Use C99 fixed-width integers in bigarray
The file was modifiedruntime/caml/bigarray.h (diff)
The file was modifiedruntime/bigarray.c (diff)
Commit a4a0259ce6b97dd7467d0be4e31f9d5bf679119d by antonin
Fully use C99 stdint.h fixed-width integers
The file was modifiedruntime/caml/config.h (diff)
Commit c2255f1439b4e1751ccc6d300a50aaddae467b5c by antonin
Define intnat/uintnat with C99 intptr_t/uintptr_t
The file was modifiedruntime/caml/config.h (diff)
Commit cb7791b5804e0904165bd14a563b6007a09b2410 by antonin
Use C99 inttypes.h fixed-width format macros
The file was modifiedruntime/clambda_checks.c (diff)
The file was modifiedruntime/caml/config.h (diff)
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 modifiedruntime/minor_gc.c (diff)
The file was modifiedruntime/platform.c (diff)
The file was modifiedruntime/parsing.c (diff)
The file was modifiedruntime/gc_ctrl.c (diff)
The file was modifiedruntime/fiber.c (diff)
The file was modifiedruntime/caml/config.h (diff)
The file was modifiedruntime/shared_heap.c (diff)
The file was modifiedruntime/major_gc.c (diff)
The file was modifiedruntime/printexc.c (diff)
The file was modifiedruntime/instrtrace.c (diff)
The file was modifiedruntime/domain.c (diff)
The file was modifiedruntime/interp.c (diff)
The file was modifiedtestsuite/tests/lf_skiplist/stubs.c (diff)
The file was modifiedruntime/sys.c (diff)
The file was modifiedtestsuite/tests/asmgen/mainarith.c (diff)
The file was modifiedruntime/meta.c (diff)
The file was modifiedtestsuite/tests/asmgen/mainimmed.c (diff)
Commit be56900a97e120647e62bdac1dfb86e4b4e582f8 by antonin
s/alloced/allocated/g
The file was modifiedruntime/shared_heap.c (diff)
The file was modifiedChanges (diff)
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 (diff)
The file was modifiedChanges (diff)
The file was modifiedtestsuite/tests/compiler-libs/test_untypeast.ml (diff)
Commit 7928a26a5e0ddcdfcfafab260f2702487d125961 by Florian Angeletti
toplevel: fix a typo in directive error messages
The file was modifiedtoplevel/topcommon.ml (diff)
The file was modifiedChanges (diff)
Commit 2accc32526d778906d4c372ae270fb0cabea6de4 by samuel.aime.vivien
Replaced normalize_package_path by Env.normalize_modtype_path
The file was modifiedtyping/ctype.ml (diff)
Commit 7020994917be1c0b1e80abd9bfd94492227b0429 by david.allsopp
Add -Wno-cast-function-type-mismatch more clangily
The file was modifiedconfigure (diff)
The file was modifiedconfigure.ac (diff)
Commit 8fe6f7addd78da00cf979f415f6b13f548e1ff2a by david.allsopp
Typo in stdlib/Makefile

Affects forced recompilation of runtime-launch-info
The file was modifiedstdlib/Makefile (diff)
Commit fc3294370566b4a0f749addd6b9be7cd2b19a7e0 by david.allsopp
Reduce tmpheader.exe to 4-5KiB on Windows

stdlib/headernt.c was adapted in OCaml 3.00 to reduce its size by
avoiding the use of the CRT and using Windows API functions directly
(this is a well-studied trick on Windows, principally as a puzzle for
producing tiny binaries).

This got "regressed" slightly in OCaml 4.06, in the complex introduction
of wide character support for Windows, as the mingw-w64 incantation
required was unclear, so the entry point was changed to wmain, and the
size of the header increased.

By switching from wcslen (a CRT function) to lstrlen (a Win32 API
function), headernt.c again only requires kernel32.dll.

Additional flags are added for both ld (mingw-w64) and link (MSVC) to
squeeze every last byte out of tmpheader.exe. The MSVC version of the
header is once again no longer passed through strip, as this was found
to be corrupting the executable (and had never been reducing its size
anyway).
The file was modifiedstdlib/headernt.c (diff)
The file was modifiedstdlib/Makefile (diff)
Commit 776b993861f3b46bfb3d847e4abcd2fed9041321 by david.allsopp
Stop using Caml_inline and CAMLnoret in headernt.c

Modern C compilers are sufficiently intelligent not to need the inlining
hints!

Inline the definition from caml/misc.h for CAMLnoret.

Co-authored-by: Antonin Décimo <antonin@tarides.com>
The file was modifiedstdlib/headernt.c (diff)
Commit 558c630b234bf6c9da5180cdda6945b91ff6c937 by david.allsopp
Remove unnecessary guards around unistd.h

Already updated to remove the actual test in s.h, since XPG1 (1985)
required it and it is therefore part of the Single Unix
Specification (1992), but the _WIN32 guard and the loading of s.h are
unnecessary.
The file was modifiedstdlib/header.c (diff)
Commit 8769fb2ec80c96fa39b0da4abc504d8cfd91f7f5 by david.allsopp
Use PATH_MAX instead of MAXPATHLEN
The file was modifiedstdlib/header.c (diff)
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 (diff)
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 (diff)
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/headernt.c (diff)
The file was modifiedruntime/caml/exec.h.in (diff)
The file was modifiedstdlib/header.c (diff)
Commit a42453ab2d8797c1148633cedd48b9a78f3cf6fd by david.allsopp
Re-order some header functions (no-op)
The file was modifiedstdlib/header.c (diff)
The file was modifiedstdlib/headernt.c (diff)
Commit b07835920b4af4d8800c3bcbc18ffbb7f797f2fe by david.allsopp
Share error path in headernt.c
The file was modifiedstdlib/headernt.c (diff)
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 (diff)
The file was modifiedstdlib/header.c (diff)
Commit 9dbf642346df24f14d8cd6eaa192b9e84c1c78f7 by david.allsopp
headernt.c: inline run_runtime into main
The file was modifiedstdlib/headernt.c (diff)
Commit 2f8e23f2443f90b60b7b2d49fdd90a7dad6e7f07 by david.allsopp
Check for errors from lseek in header.c
The file was modifiedstdlib/header.c (diff)
Commit dc12795c9945a2599e86ad9da2da846a0890fbc8 by david.allsopp
Refactor error display code
The file was modifiedstdlib/header.c (diff)
The file was modifiedstdlib/headernt.c (diff)
Commit c25d75cf42a21a8a0a385d6e7b94da4c2c545d2e by david.allsopp
header.c: close bytecode image before exec

Leaking fd
The file was modifiedstdlib/header.c (diff)
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 (diff)
Commit 8fb3bc35de96ddd1f22b7f58c7276046688510d8 by david.allsopp
headernt: make read_runtime_path more CRTish
The file was modifiedstdlib/headernt.c (diff)
Commit 725c900b81d9e8feb787ab481f4958d5337e179e by david.allsopp
Missing error case in headernt.c
The file was modifiedstdlib/headernt.c (diff)
Commit 9b35c8d9069a861f81d2817adbc48cb95a741f9c by david.allsopp
Unify the common parts of header.c and headernt.c
The file was modifiedstdlib/headernt.c (diff)
The file was modifiedstdlib/header.c (diff)
Commit 93b7ff9a158300c306c680a47930726b065467c0 by david.allsopp
Merge stdlib/header{,nt}.c
The file was modifiedtestsuite/tools/testLinkModes.ml (diff)
The file was modifiedstdlib/Makefile (diff)
The file was removedstdlib/headernt.c
The file was modifiedtestsuite/in_prefix/README.md (diff)
The file was modifiedstdlib/header.c (diff)
Commit bb465f5e7065330098e6b2c17cb775350840ac37 by Florian Angeletti
error messages: typo, missing inline code
The file was modifiedtyping/typecore.ml (diff)
The file was modifiedtestsuite/tests/typing-misc/apply_non_function.ml (diff)
The file was modifiedChanges (diff)
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 modifiedChanges (diff)
The file was modifiedconfigure (diff)
The file was modifiedconfigure.ac (diff)
Commit d7af01eec1f8ff8cdd3b0b375f6ba9a0dc55f8e4 by noreply
Increase the amount of data written to a pipe in a test (#14116)

On some OSes, you need to write more than 1MB of data to a pipe
before writes block, and read more than 64k to unblock them.
The file was modifiedtestsuite/tests/lib-channels/close_during_flush.ml (diff)
Commit 9936c99820f4d4aa53a7eb3ee1e99bfdd4f0d340 by rtjoa
Add regression test
The file was modifiedtestsuite/tests/typing-modules/merge_constraint.ml (diff)
Commit fd56f1f4c7f850a25b3606e588b2579b9ec234a0 by rtjoa
Fix non-destructive `with type` with type constraints
The file was modifiedtestsuite/tests/typing-modules/merge_constraint.ml (diff)
The file was modifiedtyping/typemod.ml (diff)
Commit 2204b3dd03ebd6612be9fc1e4bc4b2c0623d32e0 by rtjoa
Add with type constraint testing
The file was modifiedtestsuite/tests/typing-modules/merge_constraint.ml (diff)
The file was modifiedChanges (diff)
Commit 01ebbbd3d1b99cacf368345a8989136f8b38f0b2 by noreply
Add {Set,Map}.S.is_singleton (#14118)

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

The file was modifiedChanges (diff)
The file was modifiedstdlib/listLabels.mli (diff)
The file was modifiedtestsuite/tests/lib-list/test.ml (diff)
The file was modifiedstdlib/list.mli (diff)
The file was modifiedstdlib/list.ml (diff)
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 (diff)
Commit 4a034852ad619b353f2fade2822f875e583545b6 by clement.blaudeau
Add the approx flag to merging of module constraints

- While module types constraints were using the [approx] flag to disable
equivalence checking when merging, module constraints were only checked for
cyclicity. Now, both use the same logic: the constraints is approximated and
then merged in approx mode, where no equivalence check is done. It computes a
better skeleton for the approximated signature, as the destructive substitutions
are correctly removing the fields.

- Add tests borrowed (and adapted) from
https://github.com/oxcaml/oxcaml/pull/4121

- This commit changes the [lookup_module_path ~load:false] for [lookup_module],
where the load flag is not set to false. I should not have much impact for
well-typed programs, as the loading would happen after the approximation phase
anyway.
The file was modifiedtyping/typemod.ml (diff)
The file was addedtestsuite/tests/typing-recmod/regression_destructive_subst.ml
Commit 971d0b59c732bd6778b79f10b3f62e5e0ebe4d67 by clement.blaudeau
Add a [merge_type_approx] for approximation of type constraints

This commit introduces a new function to specifically deal with merging type
constraints in approximation mode:
- destructive constraints actually remove the constrained field, to prevent
incorrect approximation (specifically, incorrect shadowing)
- non-destructive constraints are treated as an identity patch, where the
constrained field is replaced by itself. This allows us to reuse the normal
merging infrastructure and fail early in case of ill-formed constraints where
the field is not present (other forms of ill-formedness are caught later)

The [post_process] function is made aware of the approximation flag to disable
wellformedness checks
The file was modifiedtyping/typemod.ml (diff)
Commit 9f6407a56d0c5c837b7b502107b937b54554981b by clement.blaudeau
Add tests for module and type constraints during approximation
The file was modifiedtestsuite/tests/typing-modules/merge_constraint.ml (diff)
The file was modifiedChanges (diff)
Commit 74d169331120a74c9e2a76eb80d7c9a42a293201 by clement.blaudeau
Add another test for destructive type constraints approximation
The file was modifiedtestsuite/tests/typing-modules/merge_constraint.ml (diff)
Commit 3114cddc8b4bdd717aa98f0fd0a6a4fc7fdb09b8 by clement.blaudeau
Address review comments on #14100

- Factor out computation of the [destructive] flag for constraints between
merging in normal and approximation modes

- Fix typos in test descriptions

- Add test that ghost items are not affected by constraints

- Update Changelog
The file was modifiedtyping/typemod.ml (diff)
The file was modifiedChanges (diff)
The file was modifiedtestsuite/tests/typing-modules/merge_constraint.ml (diff)
The file was modifiedChanges (diff)
Commit f9025a6d8644b69ccef173847a3d662210a023c4 by clement.blaudeau
Refactor post_process of signature merging

The [post_process] function for signature merging was taking two linked
arguments: a [~destructive] flag and a [replace] function to apply only if the
flag was set to [true]. This commit combines the two into a single optional
function [replace] and clarifies some documentation comments.
The file was modifiedtyping/typemod.ml (diff)
Commit 706823f870d9efa6038e1d182553ae20345d7448 by clement.blaudeau
Update comment and Changelog
The file was modifiedtyping/typemod.ml (diff)
The file was modifiedChanges (diff)
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 (diff)
Commit dc7baf3cd1e821a8a10be7ccb12346f18ee764df by noreply
Missing case in {Stdlib,Float}.frexp documentation (#14128)

The file was modifiedstdlib/float.mli (diff)
The file was modifiedstdlib/templates/float.template.mli (diff)
The file was modifiedstdlib/stdlib.mli (diff)
Commit bea10971d2ae2b4f7276830371528c3fd36ba301 by noreply
Fix `__tsan_func_exit()` signature mismatch (#14065) (#14082)

* Added checks to ensure __tsan_* internal builtins are as we expect them to be and introduced wrappers for them and updated configure

* Changes to .S files reflecting the fact that we use caml_tsan_* in favour of __tsan_*

---------

Signed-off-by: HHN <harihara.sn@gmail.com>
Co-authored-by: Antonin Décimo <antonin.decimo@gmail.com>
The file was modifiedruntime/arm64.S (diff)
The file was modifiedconfigure.ac (diff)
The file was modifiedruntime/power.S (diff)
The file was modifiedruntime/s390x.S (diff)
The file was modifiedruntime/amd64.S (diff)
The file was modifiedconfigure (diff)
The file was modifiedruntime/memory.c (diff)
The file was modifiedruntime/riscv.S (diff)
The file was modifiedChanges (diff)
The file was modifiedruntime/tsan.c (diff)
The file was modifiedruntime/caml/tsan.h (diff)
The file was modifiedruntime/caml/s.h.in (diff)
The file was modifiedasmcomp/thread_sanitizer.ml (diff)
The file was modifiedtyping/typemod.ml (diff)
Commit dce8e77e7d90a33ae975b62cce20013b81d7c4f5 by noreply
matching: fix some non-deterministic code generation (#14091)

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

The file was modifiedmiddle_end/flambda/ref_to_variables.ml (diff)
The file was modifiedmiddle_end/flambda/flambda_to_clambda.ml (diff)
The file was modifiedmiddle_end/flambda/augment_specialised_args.ml (diff)
The file was modifiedmiddle_end/flambda/flambda_utils.ml (diff)
The file was modifiedmiddle_end/flambda/freshening.ml (diff)
The file was modifiedmiddle_end/flambda/inline_and_simplify.ml (diff)