Skip to content
Failed

Changes

Summary

  1. fix Makefile dependencies of ocamltest (commit: d45e39d) (details)
  2. matching: formatting noise (commit: 488a588) (details)
  3. Use typing information from Clambda for mutable Cmm variables (commit: 1336ce0) (details)
  4. Assert that Cassign is only used on Clet_mut-bound variables (commit: de9e630) (details)
  5. matching: half_compiled_row: (head, patl, act) => - 12 assert false (commit: c591c17) (details)
  6. matching: move things around (commit: bfc2b13) (details)
  7. Add test for short-paths in error messages (commit: 9de0113) (details)
  8. Fix some bugs in short-paths (commit: 1188af3) (details)
  9. Avoid polymorphic compare in Ident (commit: 76752f7) (details)
  10. Add Changes entry (commit: 1906371) (details)
  11. Short circuit simple inclusion checks (commit: ecfaffe) (details)
  12. Bootstrap (commit: ccfd2cf) (details)
  13. Add Changes entry (commit: 7b99835) (details)
  14. Apply short-paths to an additional case (commit: 971ffaf) (details)
  15. Add Changes entry (commit: c5bd0d8) (details)
  16. typedtree.mli: un-open Types (commit: 9fb4b05) (details)
  17. Add a unique id to every signature item (commit: d52dd5c) (details)
  18. use uid for usage warnings (commit: e4de6c1) (details)
  19. update testsuite (commit: 7e37000) (details)
  20. typecore: wrap_unpacks => type_unpacks (commit: dacf8b5) (details)
  21. set_value_used_callback: simplify implementation (commit: 8abb519) (details)
  22. Changes (commit: 6063e73) (details)
  23. Types.Uid: include Identifiable (commit: 3fe2538) (details)
  24. update Changes (commit: a280041) (details)
  25. Uid.reinit (commit: 86b33bc) (details)
  26. printtyp: inline a function call (#9347) (commit: 0a09add) (details)
  27. bootstrap (commit: dec26d4) (details)
  28. add forgotten word in comment (commit: b67779b) (details)
  29. build_subtype: assert arrow type is known (#9348) (commit: bea2d04) (details)
  30. make depend (commit: e8d9ec5) (details)
  31. Define Seq.cons and Seq.append. (#9077) (commit: cc4a075) (details)
  32. disambiguation: improve the API of NameChoice.disambiguate (commit: bf6c8d4) (details)
  33. Document warning 67 in ocamlc man page (#9346) (commit: e10d0ac) (details)
  34. Micro-optimise allocations on amd64 to save a register (#9280) (commit: 4d4a056) (details)
  35. fix HACKING.adoc formatting (commit: a80939a) (details)
  36. matching: Add intermediary types to keep track of the compilation state of pms (commit: 4b41481) (details)
  37. parmatch: export Pattern_head (commit: 9504ede) (details)
  38. matching: start using Pattern_head (commit: 8790988) (details)
  39. matching: more precise argo argument (commit: 5a22a88) (details)
  40. matching: remove dedicated type, use labelled arguments (commit: 3d339ea) (details)
  41. matching: add an assert false in divide variant (commit: f3e6fc7) (details)
  42. Implement #9280 for MSVC64 (#9358) (commit: e137610) (details)
  43. matching: deduplicate the matrix pretty-printing functions (commit: 3388d0a) (details)
  44. matching: deduplicate the debug information printing (commit: 9ba926c) (details)
  45. ocamldebug: initialize all functions in Env (#9356) (commit: 95a5399) (details)
  46. matching: ctx_matcher with heads (#9359) (commit: 7fd5dd9) (details)
  47. Avoid looking up nonexistent Comballoc debuginfo (commit: 05afee9) (details)
  48. Deprecate -annot (#2141) (commit: 57d329e) (details)
  49. minor Changes files (commit: c811c71) (details)
  50. TOOLS: Ocamldep arg to not include current dir to search path (commit: e0b31a6) (details)
  51. Add an assertion that we never try to read debuginfo from system frames (#9366) (commit: 58f8284) (details)
  52. Add a new toplevel directive #use_output "<command>" (commit: e54876a) (details)
  53. Generate the same locations for raises in bytecode and native code (commit: cc7b687) (details)
  54. Generate the same backtraces for method send in bytecode and native (commit: 07d0192) (details)
  55. Changes entry (commit: 97f15cd) (details)
  56. Fix #9344 (#9368) (commit: c7de942) (details)
  57. fix doc comment for unit type (commit: a8a3c55) (details)
  58. fix doc comment for seq type (commit: 75bc37d) (details)
  59. fix sockaddr type doc comment (commit: 16e40ae) (details)
  60. fix msg_flag type doc comment (commit: 058e089) (details)
  61. Use $AWK not awk (commit: bc867ce) (details)
  62. Don't assume . in AWKPATH (commit: e4f3aa8) (details)
  63. matching: use polymorphic variants to classify general/half_simple/simple patterns (#9361) (commit: 3196a70) (details)
  64. The manual is now hosted on ocaml.org (#9378) (commit: 466ed63) (details)
  65. [Refactor]: Typing/typeclass.ml (commit: 52dc5d7) (details)
  66. Fix Changes entry (commit: b4e34ae) (details)
  67. Replace caml_int_compare and caml_float_compare with primitives (#2324) (commit: 824ce35) (details)
  68. Stdlib: added Printf.ikbprintf, Printf.ibprintf (#9364) (commit: 4019c33) (details)
  69. fix attribute examples in the manual (commit: 3e7de34) (details)
  70. minor Changes change (commit: f4915d5) (details)
  71. Remove sudo:false in .travis.yml (#9402) (commit: 49d0580) (details)
  72. dune: cmt2annot (commit: 250c9c8) (details)
  73. [nitpick]: Added "." at the end of warning descriptions in utils/warnings.ml (commit: 50866e4) (details)
  74. Added: Warning 67 description. (commit: e831b47) (details)
  75. add optional argument principality examples (#9405) (commit: e10e2bf) (details)
  76. Map.filter_map and Set.filter_map (commit: 1cd6e44) (details)
  77. add more principality warnings examples for applications (#9408) (commit: 1e78d1e) (details)
  78. Move changelog entry for #9344's fix in 4.10 section (commit: 05c209f) (details)
  79. Gc.Memprof.start: take a record instead of 5 optional parameters (commit: ff6b200) (details)
  80. memprof: remove caml_unused memprof_start_byt and then bootstrap (commit: 14a4510) (details)
  81. memprof runtime: keep tracker callbacks in a single value (commit: d440079) (details)
  82. testsuite/Makefile: refactor the -promote ocamltest logic (commit: 89b41c3) (details)
  83. ocamltest: collect 'summary' information on whether a failure happened (commit: 9eadd76) (details)
  84. ocamltest: opt-in -keep-test-dir-on-success to keep test data on success (commit: a86943c) (details)
  85. testsuite/Makefile: allow users to explicit set KEEP_TEST_DIR_ON_SUCCESS=1 (commit: 45697b3) (details)
  86. Changes -- and justification. (commit: 86066c8) (details)
  87. disambiguation for extension constructors (commit: 4f9f41e) (details)
  88. README: update link to manual pages and reference inbox.ocaml.org (commit: 6dd7b42) (details)
  89. replaced fib example with gcd in coreexample.etex (commit: 97b9bed) (details)
  90. [REVIEW REQUIRED] matching: simplify can_group (commit: acd44f9) (details)
  91. [minor] matching: rename `group_var` into `simple_omega_like` (commit: d05f86e) (details)
  92. [minor] fix a Makefile warning by defining undefined variables (commit: 7612a6d) (details)
  93. Changes entry for the refactoring of the pattern-matching compiler (commit: 2e82c0e) (details)
  94. PowerPC, System Z: do not reset backtrace_pos in caml_raise_exception (#9428) (commit: d235f16) (details)
  95. Fix documentation comment for struct large_free_block (#9399) (commit: 61a2be4) (details)
  96. extern.c: make sure extern_free_stack() is always called on an exception (commit: 4d11d1d) (details)
  97. caml_output_value_to_malloc: revise freeing of output buffer (commit: 13fbd2a) (details)
  98. Update Changes (commit: 3d4564c) (details)
  99. In `{expr with ...}`, always evaluate `expr` even if all labels are redefined (#9432) (commit: d67c704) (details)
  100. configure for mingw: GCC optimization options (commit: 743ca1b) (details)
  101. configure: add GCC option -fexcess-precision=standard (commit: c5afa93) (details)
  102. configure: quote [] inside cases of AS_CASE construct (commit: 797698d) (details)
  103. configure: use m4_normalize to reformat long messages (commit: e35babe) (details)
  104. Update Changes for PR#9426 (commit: 286d4d6) (details)
  105. Add riscv64 backend (commit: a208886) (details)
Commit d45e39d1fd216d311af711b6b9d7024a2b24bdad by gabriel.scherer
fix Makefile dependencies of ocamltest

The ocamltest modules depend on core-compiler modules and get linked
with compilerlibs archives, but those dependencies were not recorded
in the makefile, leading to incremental build errors.

(A particular error I encountered is that ocamltest/Ocaml_actions now
depends on Lambda through Cmo_format, but was not correctly rebuilt
after Lambda changes, leading to link-time failure when linking
ocaml_actions.cmo and ocamlcommon.cma together.)

This commit adds dependencies on the compilerlibs archives, as a proxy
for the corresponding compiler modules.
(commit: d45e39d)
The file was modifiedChanges (diff)
The file was modifiedocamltest/Makefile (diff)
Commit 488a588169e5937e9a6769f1bdd7b09e38b7b28e by thomas.refis
matching: formatting noise

There were some patches on the file since our last series of patch that
didn't respect the formatting.
So we're calling ocamlformat again (the same version as before,
something < 0.10) so everything rebases cleanly.
(commit: 488a588)
The file was modifiedlambda/matching.ml (diff)
Commit 1336ce0c0ddcc1a75b5eb511cce7828dd2afb3a2 by sdolan
Use typing information from Clambda for mutable Cmm variables
(commit: 1336ce0)
The file was modifiedasmcomp/cmm.ml (diff)
The file was modifiedasmcomp/cmm.mli (diff)
The file was modifiedChanges (diff)
The file was modifiedasmcomp/selectgen.ml (diff)
The file was addedtestsuite/tests/regression/pr1580/pr1580.reference
The file was modifiedasmcomp/reg.mli (diff)
The file was addedtestsuite/tests/regression/pr1580/pr1580.ml
The file was modifiedasmcomp/afl_instrument.ml (diff)
The file was modifiedasmcomp/reg.ml (diff)
The file was modifiedasmcomp/printcmm.ml (diff)
The file was modifiedasmcomp/cmmgen.ml (diff)
The file was modifiedasmcomp/cmm_helpers.ml (diff)
The file was modifiedasmcomp/selectgen.mli (diff)
Commit de9e6308521b63052d828b6f617d482b00450afa by sdolan
Assert that Cassign is only used on Clet_mut-bound variables
(commit: de9e630)
The file was modifiedtestsuite/tools/lexcmm.mll (diff)
The file was modifiedasmcomp/selectgen.mli (diff)
The file was modifiedtestsuite/tests/asmgen/quicksort2.cmm (diff)
The file was modifiedtestsuite/tests/asmgen/arith.cmm (diff)
The file was modifiedtestsuite/tests/asmgen/quicksort.cmm (diff)
The file was modifiedtestsuite/tests/asmgen/tagged-integr.cmm (diff)
The file was modifiedtestsuite/tests/asmgen/soli.cmm (diff)
The file was modifiedtestsuite/tests/asmgen/tagged-quicksort.cmm (diff)
The file was modifiedasmcomp/selectgen.ml (diff)
The file was modifiedtestsuite/tools/parsecmm.mly (diff)
Commit c591c17d521bca9f6caa2c335e5d60cc2e66ad79 by thomas.refis
matching: half_compiled_row: (head, patl, act) => - 12 assert false
(commit: c591c17)
The file was modifiedlambda/matching.ml (diff)
The file was modifiedlambda/matching.ml (diff)
Commit 9de0113e942c747367a0454f83073769959709f7 by leo
Add test for short-paths in error messages
(commit: 9de0113)
The file was addedtestsuite/tests/typing-short-paths/errors.ml
Commit 1188af3614d0f407048079e26d17794c037927dd by leo
Fix some bugs in short-paths
(commit: 1188af3)
The file was modifiedtyping/typecore.ml (diff)
The file was modifiedtestsuite/tests/typing-short-paths/errors.ml (diff)
Commit 76752f7255c2bb7838df88b42fc14606376f6739 by leo
Avoid polymorphic compare in Ident
(commit: 76752f7)
The file was modifiedtyping/ident.ml (diff)
The file was modifiedChanges (diff)
Commit ecfaffe9dea54ffde0167653ff49bc66974a20bb by leo
Short circuit simple inclusion checks
(commit: ecfaffe)
The file was modifiedtyping/includemod.ml (diff)
The file was modifiedtyping/env.mli (diff)
The file was modifiedtyping/subst.mli (diff)
The file was modifiedtyping/env.ml (diff)
The file was modifiedtyping/typemod.ml (diff)
The file was modifiedtyping/includemod.mli (diff)
The file was modifiedboot/ocamlc (diff)
The file was modifiedboot/ocamllex (diff)
The file was modifiedChanges (diff)
Commit 971ffafffb7ac624080cec9ef6591df595009682 by leo
Apply short-paths to an additional case
(commit: 971ffaf)
The file was modifiedtyping/printtyp.ml (diff)
The file was modifiedtyping/printtyp.mli (diff)
The file was modifiedtestsuite/tests/typing-short-paths/errors.ml (diff)
The file was modifiedtyping/typecore.ml (diff)
The file was modifiedChanges (diff)
The file was modifiedtyping/typedtree.mli (diff)
Commit d52dd5c33ee405bdcae067dffba36bc13921778b by thomas.refis
Add a unique id to every signature item
(commit: d52dd5c)
The file was modifiedlambda/translcore.ml (diff)
The file was modifiedtyping/typemod.ml (diff)
The file was modifiedtoplevel/topdirs.ml (diff)
The file was modifiedtyping/ctype.ml (diff)
The file was modifiedtyping/typeclass.ml (diff)
The file was modifiedtyping/predef.ml (diff)
The file was modifiedtyping/datarepr.ml (diff)
The file was modifiedtyping/mtype.ml (diff)
The file was modifiedtyping/datarepr.mli (diff)
The file was modifiedtyping/printtyp.ml (diff)
The file was modifiedocamldoc/odoc_sig.ml (diff)
The file was modifiedtyping/subst.ml (diff)
The file was modifiedtyping/typecore.ml (diff)
The file was modifiedtyping/typedecl.ml (diff)
The file was modifiedtyping/env.ml (diff)
The file was modifiedtyping/types.ml (diff)
The file was modifiedtyping/types.mli (diff)
The file was modifiedtyping/env.ml (diff)
The file was modifiedtyping/env.mli (diff)
The file was modifiedtyping/typecore.ml (diff)
The file was modifiedtyping/types.ml (diff)
The file was modifiedtyping/types.mli (diff)
The file was modifiedtyping/typedecl.ml (diff)
The file was modifiedtyping/includecore.ml (diff)
The file was modifiedtyping/includemod.ml (diff)
The file was modifiedtestsuite/tests/typing-sigsubst/test_locations.compilers.reference (diff)
The file was addedtestsuite/tests/typing-fstclassmod/fstclassmod.compilers.reference
The file was modifiedtestsuite/tests/typing-warnings/ambiguous_guarded_disjunction.ml (diff)
Commit dacf8b5a0bec1760a24b4f3bf237a84a22a74918 by thomas.refis
typecore: wrap_unpacks => type_unpacks

This allows us to give the same uid to the module bound in the guard,
and the one bound in the rhs.
(commit: dacf8b5)
The file was removedtestsuite/tests/typing-fstclassmod/fstclassmod.compilers.reference
The file was modifiedtestsuite/tests/typing-warnings/ambiguous_guarded_disjunction.ml (diff)
The file was modifiedtyping/typecore.ml (diff)
Commit 8abb51905b56e712393578a72557813c3e9825a2 by thomas.refis
set_value_used_callback: simplify implementation
(commit: 8abb519)
The file was modifiedtyping/env.ml (diff)
The file was modifiedChanges (diff)
Commit 3fe25383ba9992d1818f6fa8a3a99d05a38a1da4 by thomas.refis
Types.Uid: include Identifiable
(commit: 3fe2538)
The file was modifiedtyping/types.ml (diff)
The file was modifiedtyping/env.ml (diff)
The file was modifiedtyping/types.mli (diff)
The file was modifiedChanges (diff)
The file was modifieddriver/compmisc.ml (diff)
The file was modifiedtyping/types.mli (diff)
The file was modifiedtyping/types.ml (diff)
Commit 0a09add592f44dba5362f58cc654c6879f1f4bee by noreply
printtyp: inline a function call (#9347)

(commit: 0a09add)
The file was modifiedtyping/printtyp.ml (diff)
The file was modifiedboot/ocamlc (diff)
The file was modifiedboot/ocamllex (diff)
The file was modifiedtyping/env.ml (diff)
Commit bea2d045827b3f94f4e4da3c2c388344ceaee67b by noreply
build_subtype: assert arrow type is known (#9348)

`build_subtype` is invoked only through `enlarge_type` when typechecking Pexp_coerce.

The type passed to `build_subtype` can only have `Cok` arrows because:
- the base type is the direct result of `Typetexp.transl_simple_type_delayed` which only introduces `Cok` arrows
- the other source of arrows could be the result of unification; however at this point the type variables are fresh, they have not been unified with any existing types.

Adding this assertion ensures that this property won't be broken by accident.
(commit: bea2d04)
The file was modifiedtyping/ctype.ml (diff)
The file was modified.depend (diff)
Commit cc4a075e9bd5a7148d8a2eb5480d4c0739c6bc78 by noreply
Define Seq.cons and Seq.append. (#9077)

* Define Seq.cons and Seq.append.
(commit: cc4a075)
The file was modifiedChanges (diff)
The file was modifiedstdlib/seq.mli (diff)
The file was modifiedstdlib/seq.ml (diff)
Commit bf6c8d4b95a13d12b97bb3a10dcfa7f06978650d by gabriel.scherer
disambiguation: improve the API of NameChoice.disambiguate
(commit: bf6c8d4)
The file was modifiedChanges (diff)
The file was modifiedtyping/typecore.ml (diff)
The file was modifiedtestsuite/tests/typing-warnings/records.ml (diff)
Commit e10d0ac160e647e97f211302923c010b88c4b247 by noreply
Document warning 67 in ocamlc man page (#9346)

(commit: e10d0ac)
The file was modifiedman/ocamlc.m (diff)
Commit 4d4a056bc7823fb94813afe8d9ad6e72fa83e504 by noreply
Micro-optimise allocations on amd64 to save a register (#9280)

There's no need for allocation on amd64 to clobber the %rax register. It's only used in one case (-compact out-of-line allocation of >3 words), and only used there to do a single subtraction. That subtraction can be done by the caller at no code size penalty, freeing up %rax.

Inside amd64.S functions, %r11 can be used instead of %rax as temporary.  %r11 is destroyed by PLT stub code, so on ELF platforms it costs nothing to use.
(commit: 4d4a056)
The file was modifiedasmcomp/amd64/proc.ml (diff)
The file was modifiedruntime/amd64.S (diff)
The file was modifiedChanges (diff)
The file was modifiedasmcomp/amd64/emit.mlp (diff)
The file was modifiedHACKING.adoc (diff)
Commit 4b41481d2c43ad6ef44294ea236017084f4c57d1 by thomas.refis
matching: Add intermediary types to keep track of the compilation state of pms
(commit: 4b41481)
The file was modifiedlambda/matching.ml (diff)
The file was modifiedtyping/parmatch.mli (diff)
Commit 8790988aa466beedd291b17a21ede0eb10133cb4 by thomas.refis
matching: start using Pattern_head
(commit: 8790988)
The file was modifiedlambda/matching.ml (diff)
Commit 5a22a88dcd21661c25d71c256d30385d89cdfac3 by thomas.refis
matching: more precise argo argument
(commit: 5a22a88)
The file was modifiedlambda/matching.ml (diff)
Commit 3d339ea6ea64499cc3ea3610841af2ff97ff208f by thomas.refis
matching: remove dedicated type, use labelled arguments
(commit: 3d339ea)
The file was modifiedlambda/matching.ml (diff)
Commit f3e6fc709ba187b5ae88deba6c3f74bda0f9a5f7 by thomas.refis
matching: add an assert false in divide variant

This triggers if the first column contains something other than a
variant (this is similar to the "get_key"s for other heads).
(commit: f3e6fc7)
The file was modifiedlambda/matching.ml (diff)
Commit e1376102480a26b7b464d8e672b56a82c9a32da1 by noreply
Implement #9280 for MSVC64 (#9358)

Follow-up to 4d4a056bc
(commit: e137610)
The file was modifiedruntime/amd64nt.asm (diff)
Commit 3388d0abcb4a2413382fd05956558481f27b4544 by gabriel.scherer
matching: deduplicate the matrix pretty-printing functions
(commit: 3388d0a)
The file was modifiedlambda/matching.ml (diff)
Commit 9ba926c77493ddf1b6a8c695b6a946980cf1bc2b by gabriel.scherer
matching: deduplicate the debug information printing
(commit: 9ba926c)
The file was modifiedlambda/matching.ml (diff)
Commit 95a5399b2852acf1c4e0094a20bdd74315968fc5 by noreply
ocamldebug: initialize all functions in Env (#9356)

Switch ocamldebug to compiler-libs in order to avoid hidden dependencies issue.

In particular, the Env module is only fully initialized after the Typemod and Includemod modules have been linked. Calling `Env.find_type` before that initialization may result in an assert false when functor-derived types are involved.
(commit: 95a5399)
The file was modifiedChanges (diff)
The file was modifieddebugger/Makefile (diff)
Commit 7fd5dd9fdc8e1b473cf971cd61f21f3c92055aad by noreply
matching: ctx_matcher with heads (#9359)

Co-authored-by: Gabriel Scherer <gabriel.scherer@gmail.com>
(commit: 7fd5dd9)
The file was modifiedlambda/matching.ml (diff)
Commit 05afee9edd21f5e62b37f20ebdcb6b41b095ebe8 by sdolan
Avoid looking up nonexistent Comballoc debuginfo
(commit: 05afee9)
The file was modifiedChanges (diff)
The file was modifiedruntime/backtrace_nat.c (diff)
Commit 57d329e07b50e6869875471b085541baadcb8376 by noreply
Deprecate -annot (#2141)

* Move driver code from Cmt2annot to Read_cmt
* Move cmt2annot.ml into typing/
* make depend
* Use standard error handling
* Move specific logic to read_cmt
* Do not pass full cmt record as argument
* Better locations
* Emit .annot files produced from cmt data
* Remove direct calls to Stypes
* Deprecate -annot
* Changes
* make depend
* Adapt doc
* make -C tools depend
(commit: 57d329e)
The file was addedtyping/cmt2annot.ml
The file was modifieddriver/compile_common.ml (diff)
The file was modifiedtools/read_cmt.ml (diff)
The file was removedtools/cmt2annot.ml
The file was modifiedtools/Makefile (diff)
The file was modifiedtyping/TODO.md (diff)
The file was modifiedtyping/typemod.ml (diff)
The file was modifiedChanges (diff)
The file was modified.depend (diff)
The file was modifieddriver/main_args.ml (diff)
The file was modifiedman/ocamlopt.m (diff)
The file was modifiedmanual/manual/cmds/unified-options.etex (diff)
The file was modifiedtyping/typeclass.ml (diff)
The file was modifiedlambda/simplif.ml (diff)
The file was modifiedman/ocamlc.m (diff)
The file was modifiedtyping/typecore.ml (diff)
The file was modifiedtools/.depend (diff)
The file was modifiedcompilerlibs/Makefile.compilerlibs (diff)
The file was modifiedtyping/envaux.ml (diff)
The file was modifiedChanges (diff)
Commit e0b31a6abc01bb3bb6f82f3d0f4619b8a8330062 by muskan
TOOLS: Ocamldep arg to not include current dir to search path
(commit: e0b31a6)
The file was modifiedChanges (diff)
The file was modifiedmanual/manual/cmds/ocamldep.etex (diff)
The file was modifieddriver/makedepend.ml (diff)
The file was modifiedman/ocamldep.m (diff)
Commit 58f8284acae7790511a12f9d481def5e0f8e2abb by noreply
Add an assertion that we never try to read debuginfo from system frames (#9366)

(commit: 58f8284)
The file was modifiedruntime/backtrace_nat.c (diff)
Commit e54876a8693a575c5c623a1ee6ae1fef8e347e80 by noreply
Add a new toplevel directive #use_output "<command>"

Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
Co-authored-by: David Allsopp <david.allsopp@metastack.com>
(commit: e54876a)
The file was modifiedChanges (diff)
The file was modifiedmanual/manual/cmds/top.etex (diff)
The file was modifiedtoplevel/topdirs.ml (diff)
The file was addedtestsuite/tests/tool-toplevel/use_command.ml
The file was modifiedtoplevel/opttopdirs.mli (diff)
The file was modifiedtoplevel/toploop.mli (diff)
The file was modifiedtoplevel/opttoploop.ml (diff)
The file was modifiedtoplevel/opttoploop.mli (diff)
The file was modifiedtoplevel/opttopdirs.ml (diff)
The file was modifiedtoplevel/topdirs.mli (diff)
The file was modifiedtoplevel/toploop.ml (diff)
Commit cc7b687a0281711f2d7f4ee12c7e6e8f9e95bc74 by sdolan
Generate the same locations for raises in bytecode and native code
(commit: cc7b687)
The file was modifiedtestsuite/tests/backtrace/inline_traversal_test.ml (diff)
The file was modifiedtestsuite/tests/backtrace/raw_backtrace.ml (diff)
The file was removedtestsuite/tests/backtrace/backtrace2.byte.reference
The file was addedtestsuite/tests/backtrace/backtrace2.reference
The file was addedtestsuite/tests/backtrace/pr6920_why_at.reference
The file was modifiedtestsuite/tests/backtrace/backtrace_slots.ml (diff)
The file was addedtestsuite/tests/backtrace/backtrace_deprecated.reference
The file was addedtestsuite/tests/backtrace/backtrace_slots.reference
The file was modifiedlambda/translcore.ml (diff)
The file was addedtestsuite/tests/backtrace/inline_traversal_test.reference
The file was removedtestsuite/tests/backtrace/raw_backtrace.opt.reference
The file was modifiedtestsuite/tests/backtrace/pr6920_why_at.ml (diff)
The file was addedtestsuite/tests/backtrace/pr6920_why_swallow.reference
The file was removedtestsuite/tests/backtrace/pr6920_why_at.opt.reference
The file was addedtestsuite/tests/backtrace/backtrace3.reference
The file was modifiedtestsuite/tests/backtrace/backtrace.ml (diff)
The file was modifiedtestsuite/tests/backtrace/backtrace3.ml (diff)
The file was removedtestsuite/tests/backtrace/inline_traversal_test.byte.reference
The file was removedtestsuite/tests/backtrace/pr6920_why_swallow.byte.reference
The file was modifiedlambda/translprim.mli (diff)
The file was removedtestsuite/tests/backtrace/backtrace_slots.opt.reference
The file was removedtestsuite/tests/backtrace/pr6920_why_swallow.opt.reference
The file was removedtestsuite/tests/backtrace/backtrace.byte.reference
The file was removedtestsuite/tests/backtrace/backtrace_slots.byte.reference
The file was addedtestsuite/tests/backtrace/raw_backtrace.reference
The file was modifiedtestsuite/tests/backtrace/backtrace_deprecated.ml (diff)
The file was removedtestsuite/tests/backtrace/backtrace_deprecated.byte.reference
The file was modifiedtestsuite/tests/backtrace/pr6920_why_swallow.ml (diff)
The file was modifiedtestsuite/tests/backtrace/inline_test.ml (diff)
The file was removedtestsuite/tests/backtrace/raw_backtrace.byte.reference
The file was modifiedtestsuite/tests/backtrace/backtrace2.ml (diff)
The file was removedtestsuite/tests/backtrace/backtrace3.byte.reference
The file was removedtestsuite/tests/backtrace/backtrace.opt.reference
The file was modifiedtestsuite/tests/backtrace/backtrace_or_exception.ml (diff)
The file was addedtestsuite/tests/backtrace/backtrace.reference
The file was removedtestsuite/tests/backtrace/backtrace2.opt.reference
The file was modifiedlambda/translprim.ml (diff)
The file was modifiedtestsuite/tests/lib-dynlink-initializers/test10_main.byte.reference (diff)
The file was addedtestsuite/tests/backtrace/backtrace_or_exception.reference
The file was removedtestsuite/tests/backtrace/inline_test.opt.reference
The file was removedtestsuite/tests/backtrace/backtrace_or_exception.opt.reference
The file was removedtestsuite/tests/backtrace/backtrace_or_exception.byte.reference
The file was removedtestsuite/tests/backtrace/backtrace3.opt.reference
The file was modifiedtestsuite/tests/tool-toplevel/pr6468.compilers.reference (diff)
The file was removedtestsuite/tests/backtrace/pr6920_why_at.byte.reference
The file was removedtestsuite/tests/backtrace/backtrace_deprecated.opt.reference
The file was addedtestsuite/tests/backtrace/inline_test.reference
The file was removedtestsuite/tests/backtrace/inline_test.byte.reference
The file was removedtestsuite/tests/backtrace/inline_traversal_test.opt.reference
Commit 07d0192b22e5ae3f765392ea4728a6af8427e6bf by sdolan
Generate the same backtraces for method send in bytecode and native
(commit: 07d0192)
The file was modifiedlambda/translcore.ml (diff)
The file was addedtestsuite/tests/backtrace/methods.ml
The file was addedtestsuite/tests/backtrace/methods.reference
The file was modifiedChanges (diff)
Commit c7de9427300ef30a009b72b9bb2cbce23361f765 by noreply
Fix #9344 (#9368)

Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
(commit: c7de942)
The file was modifiedbytecomp/bytelink.ml (diff)
The file was addedtestsuite/tests/output-complete-obj/github9344.ml
The file was addedtestsuite/tests/output-complete-obj/github9344.sh
The file was modifiedChanges (diff)
The file was modifiedruntime/backtrace_byt.c (diff)
The file was modifiedruntime/caml/startup.h (diff)
The file was addedtestsuite/tests/output-complete-obj/github9344.reference
The file was modifiedruntime/startup_byt.c (diff)
Commit a8a3c55b18a6cee6ce45705aa1c3c825cb688393 by leo
fix doc comment for unit type
(commit: a8a3c55)
The file was modifiedstdlib/unit.mli (diff)
Commit 75bc37d4d9887f6f958d51f51afe198989654335 by leo
fix doc comment for seq type
(commit: 75bc37d)
The file was modifiedstdlib/seq.mli (diff)
Commit 16e40ae01f844c4eca45e08a0b8fffea5b6ace68 by leo
fix sockaddr type doc comment
(commit: 16e40ae)
The file was modifiedotherlibs/unix/unix.mli (diff)
The file was modifiedotherlibs/unix/unixLabels.mli (diff)
Commit 058e089a21f669d5dee3557c88a1a6eb16d1777a by leo
fix msg_flag type doc comment
(commit: 058e089)
The file was modifiedotherlibs/unix/unix.mli (diff)
The file was modifiedotherlibs/unix/unixLabels.mli (diff)
Commit bc867cebf88255257585509195519637495baf5d by david.allsopp
Use $AWK not awk

Ensures gawk is used if available.
(commit: bc867ce)
The file was modifiedruntime/Makefile (diff)
The file was modifiedtestsuite/Makefile (diff)
Commit e4f3aa8c8190d6383cffd4123c43d254fda27f9d by david.allsopp
Don't assume . in AWKPATH

Ensure all script invocations explicitly refer to a directory.
(commit: e4f3aa8)
The file was modifiedruntime/Makefile (diff)
The file was modifiedtestsuite/Makefile (diff)
The file was modifiedChanges (diff)
The file was modifiedstdlib/Compflags (diff)
The file was modifiedstdlib/Makefile (diff)
Commit 3196a706710d218a0754d0fc8e83b93d6cfcef1e by noreply
matching: use polymorphic variants to classify general/half_simple/simple patterns (#9361)

Also: these types are now instances of Typedtree.pattern_data.

Co-authored-by: Gabriel Scherer <gabriel.scherer@gmail.com>
(commit: 3196a70)
The file was modifiedlambda/matching.ml (diff)
Commit 466ed635e997fdb13b60b4843e6a67bfc1b35134 by noreply
The manual is now hosted on ocaml.org (#9378)

* Point to ocaml.org for the other versions of the manual
* Remove mentions of caml.inria.fr

ocaml.org is now the only place to go.


* MacOS X is now called macOS; MacOS 9 is no more
* Update availability of dynamic loading of C stubs
* "website" is more common these days than "Web site"
(commit: 466ed63)
The file was modifiedmanual/manual/foreword.etex (diff)
The file was modifiedmanual/manual/cmds/intf-c.etex (diff)
The file was modifiedmanual/manual/manual.inf (diff)
The file was modifiedmanual/manual/allfiles.etex (diff)
The file was modifiedmanual/manual/macros.hva (diff)
The file was modifiedmanual/manual/macros.tex (diff)
Commit 52dc5d793bc626e38b3ad8253835781b5d8e2703 by muskan
[Refactor]: Typing/typeclass.ml
(commit: 52dc5d7)
The file was modifiedChanges (diff)
The file was modifiedtyping/typeclass.ml (diff)
The file was modifiedChanges (diff)
Commit 824ce3549211f9d72ca3c58362f088a4369ebc2e by noreply
Replace caml_int_compare and caml_float_compare with primitives (#2324)

(commit: 824ce35)
The file was modifiedlambda/lambda.mli (diff)
The file was modifiedChanges (diff)
The file was modifiedmiddle_end/convert_primitives.ml (diff)
The file was modifiedlambda/lambda.ml (diff)
The file was modifiedmiddle_end/clambda_primitives.ml (diff)
The file was modifiedruntime/floats.c (diff)
The file was modifiedtestsuite/tests/translprim/comparison_table.compilers.reference (diff)
The file was modifiedmiddle_end/semantics_of_primitives.ml (diff)
The file was modifiedmiddle_end/flambda/simplify_primitives.ml (diff)
The file was modifiedmiddle_end/internal_variable_names.ml (diff)
The file was modifiedasmcomp/cmm_helpers.ml (diff)
The file was modifiedmiddle_end/flambda/simplify_boxed_integer_ops.ml (diff)
The file was modifiedmiddle_end/printclambda_primitives.ml (diff)
The file was modifiedasmcomp/cmm_helpers.mli (diff)
The file was modifiedasmcomp/cmmgen.ml (diff)
The file was modifiedmiddle_end/clambda_primitives.mli (diff)
The file was modifiedbytecomp/bytegen.ml (diff)
The file was modifiedlambda/translprim.ml (diff)
The file was modifiedtestsuite/tests/translprim/module_coercion.compilers.flat.reference (diff)
The file was modifiedlambda/printlambda.ml (diff)
Commit 4019c33aaa226178b609c4b3d125e0945a08f4b5 by noreply
Stdlib: added Printf.ikbprintf, Printf.ibprintf (#9364)

(commit: 4019c33)
The file was modifiedstdlib/printf.ml (diff)
The file was modifiedChanges (diff)
The file was modifiedstdlib/printf.mli (diff)
Commit 3e7de343e73e175166b524407631b170cbb80000 by Florian Angeletti
fix attribute examples in the manual
(commit: 3e7de34)
The file was modifiedmanual/manual/refman/exten.etex (diff)
The file was modifiedChanges (diff)
The file was modifiedChanges (diff)
Commit 49d058009346b4c9b87ea9b505e9bd4105bc5223 by noreply
Remove sudo:false in .travis.yml (#9402)

(commit: 49d0580)
The file was modified.travis.yml (diff)
The file was modifiedChanges (diff)
The file was modifieddune (diff)
Commit 50866e4cbf4bcf642a70b4e30beee2971caa55c6 by muskan
[nitpick]: Added "." at the end of warning descriptions in utils/warnings.ml
(commit: 50866e4)
The file was modifiedutils/warnings.ml (diff)
The file was modifiedman/ocamlc.m (diff)
Commit e831b474575ac5dd2b4d86ad90cc4416498d4f1c by muskan
Added: Warning 67 description.
(commit: e831b47)
The file was modifiedChanges (diff)
The file was modifiedutils/warnings.ml (diff)
Commit e10e2bfa992c977572ce9dda82ba22b449f54e81 by noreply
add optional argument principality examples (#9405)

(commit: e10e2bf)
The file was modifiedtestsuite/tests/typing-misc/labels.ml (diff)
Commit 1cd6e4451f04af4871675d0eecd48b3bac262b67 by gabriel.scherer
Map.filter_map and Set.filter_map
(commit: 1cd6e44)
The file was modifiedutils/identifiable.mli (diff)
The file was modifiedmiddle_end/flambda/build_export_info.ml (diff)
The file was modifiedstdlib/map.mli (diff)
The file was modifiedChanges (diff)
The file was modifiedutils/identifiable.ml (diff)
The file was modifiedstdlib/set.ml (diff)
The file was modifiedtestsuite/tests/lib-set/testmap.ml (diff)
The file was modifiedstdlib/map.ml (diff)
The file was modifiedtestsuite/tests/typing-modules/pr7818.ml (diff)
The file was modifiedmiddle_end/flambda/unbox_specialised_args.ml (diff)
The file was modifiedtestsuite/tests/lib-set/testset.ml (diff)
The file was modifiedtestsuite/tests/typing-implicit_unpack/implicit_unpack.ml (diff)
The file was modifiedtestsuite/tests/typing-modules/aliases.ml (diff)
The file was modifiedmiddle_end/flambda/inline_and_simplify_aux.ml (diff)
The file was modifiedtestsuite/tests/typing-short-paths/short-paths.compilers.reference (diff)
The file was modifiedstdlib/moreLabels.mli (diff)
The file was modifiedstdlib/set.mli (diff)
Commit 1e78d1e10c3a5d42c3ecd7b46812867eb7fe8a16 by noreply
add more principality warnings examples for applications (#9408)

(commit: 1e78d1e)
The file was modifiedtestsuite/tests/typing-misc/labels.ml (diff)
Commit 05c209f5c96397e215696dddcf911f3efda2be70 by Jeremie Dimino
Move changelog entry for #9344's fix in 4.10 section

Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
(commit: 05c209f)
The file was modifiedChanges (diff)
Commit ff6b20098f7f51758d78546af4bb8747cdc8c9f4 by gabriel.scherer
Gc.Memprof.start: take a record instead of 5 optional parameters

The Gc.Memprof module provides a low-level API, that will hopefully be
paired with user libraries that provide high-level instrumentation
choices.

A natural question is: how are the higher-level API going to expose
their choice of instrumentation to their users? With the current
Memprof.start API (before this patch), they would have to either
provide their own `start` function wrapping Memprof.start, or provide
a tuple of callbacks for to their users to pass to Memprof.start
themselves.

    val start : params -> unit
    (* or *)
    val callback : params ->
      ((allocation -> foo option) * (allocation -> bar option) * ... )

With an explicit record, it is easier for libraries to expose an
instrumentation choice (possibility parametrized over
user-provided settings):

    val tracker : params -> (foo, bar) Gc.Memprof.tracker

In addition, providing a record instead of optional parameters makes
it much easier to provide "default settings" (helper functions) that
instantiates the types `'minor` and `'ḿajor`, see for example
`simple_tracker` in this patch (which stores the same information for
the minor and major heap, and does not observe promotion), or to later
define checking predicates that can verify that a given choice of
callbacks is sensible (for example: providing a major-dealloc callback
but no promotion callback (dropping all tracked value on promotion) is
probably not a good idea).

Bootstrap: to avoid requiring an awkward bootstrap, this commit keeps
the (now unused) function caml_memprof_start_byt unchanged -- it is
used in the bootstrap binaries, so removing it would break the
build. The intention is to remove it in the following commit.
(commit: ff6b200)
The file was modifiedtestsuite/tests/statmemprof/blocking_in_callback.ml (diff)
The file was modifiedtestsuite/tests/statmemprof/lists_in_minor.ml (diff)
The file was modifiedtestsuite/tests/statmemprof/intern.ml (diff)
The file was modifiedtestsuite/tests/statmemprof/exception_callback.ml (diff)
The file was modifiedtestsuite/tests/statmemprof/arrays_in_major.ml (diff)
The file was modifiedtestsuite/tests/statmemprof/comballoc.byte.reference (diff)
The file was modifiedtestsuite/tests/statmemprof/exception_callback_minor.ml (diff)
The file was modifiedtestsuite/tests/statmemprof/exception_callback.reference (diff)
The file was modifiedstdlib/gc.mli (diff)
The file was modifiedtestsuite/tests/statmemprof/comballoc.ml (diff)
The file was modifiedstdlib/gc.ml (diff)
The file was modifiedtestsuite/tests/statmemprof/arrays_in_minor.ml (diff)
The file was modifiedruntime/memprof.c (diff)
The file was modifiedtestsuite/tests/statmemprof/exception_callback_minor.reference (diff)
The file was modifiedChanges (diff)
The file was modifiedtestsuite/tests/statmemprof/callstacks.ml (diff)
The file was modifiedtestsuite/tests/statmemprof/callstacks.reference (diff)
The file was modifiedtestsuite/tests/statmemprof/comballoc.opt.reference (diff)
The file was modifiedtestsuite/tests/statmemprof/minor_no_postpone.ml (diff)
Commit 14a4510cb798804d76fbd45c41a215613dd60d12 by gabriel.scherer
memprof: remove caml_unused memprof_start_byt and then bootstrap

Build steps for this commit (from a valid core build for the previous commit):

    make coreall
    make coreboot

(Note: `make core` would not work as we remove a primitive.)
(commit: 14a4510)
The file was modifiedboot/ocamlc (diff)
The file was modifiedboot/ocamllex (diff)
The file was modifiedruntime/memprof.c (diff)
Commit d440079a3e3c5ed8b7b41f49b1022c1ce20e9158 by gabriel.scherer
memprof runtime: keep tracker callbacks in a single value
(commit: d440079)
The file was modifiedruntime/memprof.c (diff)
Commit 89b41c3219350c9f97553e8a08ff99907cd0e56b by gabriel.scherer
testsuite/Makefile: refactor the -promote ocamltest logic

The existing approach requires to set all ocamltest flags at once on
recursive calls. This is very inconvenient if we want to set more than
one flag -- we wish to support choosing both -promote
and -keep-test-dir-on-success.
(commit: 89b41c3)
The file was modifiedtestsuite/Makefile (diff)
Commit 9eadd76ed17d289caefc05d7440169f9d3b3f61a by gabriel.scherer
ocamltest: collect 'summary' information on whether a failure happened
(commit: 9eadd76)
The file was modifiedocamltest/main.ml (diff)
Commit a86943c88968d3781eff5593d93e5e2b296b154f by gabriel.scherer
ocamltest: opt-in -keep-test-dir-on-success to keep test data on success
(commit: a86943c)
The file was modifiedocamltest/main.ml (diff)
The file was modifiedocamltest/options.ml (diff)
The file was modifiedocamltest/options.mli (diff)
Commit 45697b35839c7fb5145fc14b92876dbe6860a645 by gabriel.scherer
testsuite/Makefile: allow users to explicit set KEEP_TEST_DIR_ON_SUCCESS=1
(commit: 45697b3)
The file was modifiedtestsuite/Makefile (diff)
Commit 86066c8a59313505f03dc10fd117e2a9dab9582b by gabriel.scherer
Changes -- and justification.

On my machine, running the whole testsuite generates 1.5Gio of test
data. I have 11 workdirs for the OCaml repository (versions from 4.08
to trunk, plus several experimental workdirs); at any point in time
there can be more than a dozen gibibytes of test data on my disk, and
this is too much.

I use the test data saved by ocamltest when a test fails, to diagnose
the failure. I don't remember ever looking at the test data of
a succesful test.

The present patchset changes ocamltest to, by default, discard the
test directory of succesful tests -- the test artefacts are kept only
when there is a failure.

If one wishes to preserve the test data of succesful tests, one should
explicitly pass the -keep-test-dir-on-success flag. The
testsuite/Makefile is then changed to pass this flag if the user set
the KEEP_TEST_DIR_ON_SUCCESS variable to a non-empty value.
(commit: 86066c8)
The file was modifiedChanges (diff)
Commit 4f9f41e73a5e7ff7502882093ca288ead7256f7a by Florian Angeletti
disambiguation for extension constructors

This commit exposes all extension constructors when looking up for
a construction with a given type in the environment.

This makes constructor disambiguation work for extension constructors.

Going one step further, when the name of an extension constructors
is misspelled, we cannot rely on the type to find all possible
names. However, since we are in an error path, we have some
path at hand.
Thus, this commit alters the "lookup_from_type" function in the
Constructor module to make it scan the whole environment for
extension constructors with the right type.

This commit should not change anything for labels and standard constructors.
(commit: 4f9f41e)
The file was modifiedChanges (diff)
The file was modifiedtyping/typecore.ml (diff)
The file was modifiedtyping/env.ml (diff)
The file was modifiedtyping/env.mli (diff)
The file was addedtestsuite/tests/typing-extensions/disambiguation.ml
Commit 6dd7b42edac61c0eb70d220b2131d8d7d8c6a53f by anil
README: update link to manual pages and reference inbox.ocaml.org
(commit: 6dd7b42)
The file was modifiedREADME.adoc (diff)
Commit 97b9bed89eb94536340f61803b0efa70bf970a1a by anu1999kriti
replaced fib example with gcd in coreexample.etex
(commit: 97b9bed)
The file was modifiedmanual/manual/tutorials/coreexamples.etex (diff)
The file was modifiedChanges (diff)
Commit acd44f90afd8dd9e0c2fa9313ea26460c55e241b by gabriel.scherer
[REVIEW REQUIRED] matching: simplify can_group

review of can_group factorization by @gasche:

> I reviewed the change to `can_group` and believe it is correct.
> (I knew it would be nicer as a binary operation!)
>
> The different treatments of Lazy and Tuple/Record does look a bit odd,
> but I believe that it is actually the right thing to write.
>
> In the Tuple or Record case, the idea is that we can group Any heads
> with the Tuple/Record case and just explode all of them (including the
> Any cases) according to the tuple/record arity.
>
> In the Lazy case, the corresponding choice would be to add Any values
> to the Lazy group, and force all the elements of the group. This is
> not so nice, because intuitively we shouldn't force Lazy values unless
> we have to.
>
> One may expect that in general the argument of the pattern will be
> forced anyway, as long as there is at least one Lazy pattern above in
> the matrix, so it doesn't really matter whether we include the Any
> patterns in the forced group or not. I would argue that (1) even if
> that was true, it would be semantically dubious to handle Any that way
> (see a more precise criterion below), (2) I am not actually sure that
> this is true, what if the first group gets found unreachable by
> splits in following columns?
>
>     # type void = | ;;
>     # match (lazy (print_endline "foo"), (None : void option)) with
>       | lazy (), Some _ -> .
>       | _, None -> false;;
>     - : bool = false
>
> This gives the following decision tree for whether Any is included in
> the group:
>
> - Can the absence of Any be used to generate nice/efficient tests for
>   the heads of the group? In that case, don't include Any.
>   (Not included: all the Constant cases, Array (discriminate on size),
>    String, etc.)
>
> - Is Any always exactly equivalent to a more-defined head for values
>   of this type? In that case, do include Any, otherwise do not.
>   (Included: Variant, Record)
>   (Not included: Lazy)
(commit: acd44f9)
The file was modifiedlambda/matching.ml (diff)
Commit d05f86e13b67f5e69571c5fbca870e04704800b0 by gabriel.scherer
[minor] matching: rename `group_var` into `simple_omega_like`

(Report from Florian Angeletti)
(commit: d05f86e)
The file was modifiedlambda/matching.ml (diff)
Commit 7612a6d9b1a0837cee93cac54e135bc44b8e0bd0 by gabriel.scherer
[minor] fix a Makefile warning by defining undefined variables

Report by Xavier Leroy:
  https://github.com/ocaml/ocaml/pull/9414#issuecomment-610231289
(commit: 7612a6d)
The file was modifiedtestsuite/Makefile (diff)
Commit 2e82c0e843b675b86024f09f6a717a02dca10f77 by gabriel.scherer
Changes entry for the refactoring of the pattern-matching compiler
(commit: 2e82c0e)
The file was modifiedChanges (diff)
Commit d235f167fa91258a32e03623b9aa160b12fdbc28 by noreply
PowerPC, System Z: do not reset backtrace_pos in caml_raise_exception (#9428)

* PowerPC, System Z: do not reset backtrace_pos in caml_raise_exception
* Add Changes entry
(commit: d235f16)
The file was modifiedChanges (diff)
The file was modifiedruntime/s390x.S (diff)
The file was modifiedruntime/power.S (diff)
Commit 61a2be4844fd172031b2f36b572c9a9848cf7a26 by noreply
Fix documentation comment for struct large_free_block (#9399)

Fix the name of the field `isnode` in the struct `large_free_block` in the comment documenting it (was `node` before).

Replace "son" by "child" in the documentation of the struct "large_free_block".
(commit: 61a2be4)
The file was modifiedruntime/freelist.c (diff)
Commit 4d11d1da04e156e59db9ecb0f232fb1e9e81b9e6 by xavier.leroy
extern.c: make sure extern_free_stack() is always called on an exception

In the original code, if `caml_output_value_to_block` raises an exception,
`free_extern_output` does not call `extern_free_stack` because
of the early return on `extern_userprovided_output != NULL`.
(commit: 4d11d1d)
The file was modifiedruntime/extern.c (diff)
Commit 13fbd2ab785070af8716864154a73585aa2aa40d by xavier.leroy
caml_output_value_to_malloc: revise freeing of output buffer

This commit changes caml_output_value_to_malloc to use the same
pattern as caml_output_val and caml_output_value_to_bytes:
the blocks of output are freed in the same loop that copies
them to the final destination.

Originally, caml_output_value_to_malloc calls free_extern_output
to free the blocks of output.  This is correct too, but causes
extern_free_stack to be called twice, once at the end of extern_value
and once in free_extern_output.  This is OK because extern_free_stack
is protected against double free errors.

Still, I find it more elegant, more consistent with the rest of the
code, and less error-prone w.r.t. double free errors to not call
free_extern_output at the end of caml_output_value_to_malloc.

Later, free_extern_output could be renamed to e.g. extern_finalize
to emphasize that it is to be called when something goes wrong and
we are about to raise an exception.
(commit: 13fbd2a)
The file was modifiedruntime/extern.c (diff)
The file was modifiedChanges (diff)
Commit d67c704c4db0ca805a429d5054d80c966320d006 by noreply
In `{expr with ...}`, always evaluate `expr` even if all labels are redefined (#9432)

This commit reverts c1a7ace (originally c545e04), which was a
temporary fix that is no longer needed because it was superseded by
#6608.

The temporary fix caused `{expr with lbl1 = e1; ... }` to not evaluate
`expr` if all labels of its type are overriden.  As reported in #7696
this is not desirable.  Reverting the temporary fix causes `expr` to
be evaluated always.

As a consequence, a corner case of value "let rec" is no longer accepted.
The corresponding test was updated.

Closes: #7696
(commit: d67c704)
The file was modifiedtyping/typecore.ml (diff)
The file was modifiedChanges (diff)
The file was modifiedtestsuite/tests/letrec-check/basic.ml (diff)
The file was modifiedtestsuite/tests/typing-misc/records.ml (diff)
Commit 743ca1baffd35741cdd8c7153bfd0791990ab0ce by xavier.leroy
configure for mingw: GCC optimization options

Require GCC >= 5.0 and use the same GCC optimization options as for
the other ports.
(commit: 743ca1b)
The file was modifiedconfigure (diff)
The file was modifiedconfigure.ac (diff)
Commit c5afa9303d77654921643abae2e0c2dbd3909d8d by xavier.leroy
configure: add GCC option -fexcess-precision=standard

This option forces GCC to follow the ISO C standards concerning
rounding of intermediate FP results.  It avoids some FP issues
with the x86 32 bits ports of OCaml, which can run into
excess precision problems due to the x87 FP unit.

Closes: #7917
(commit: c5afa93)
The file was modifiedconfigure (diff)
The file was modifiedconfigure.ac (diff)
Commit 797698d8b0bb81e6b54b9aae5b0278ab7a05b763 by xavier.leroy
configure: quote [] inside cases of AS_CASE construct

Patterns such as `gcc-[012]-*` are expanded as `gcc-012-*`.
An extra quoting is needed: `gcc-[[012]]-*` is expanded as `gcc-[012]-*`.
(commit: 797698d)
The file was modifiedconfigure (diff)
The file was modifiedconfigure.ac (diff)
Commit e35babe4264819dc96ab2debe78829223e9fd94a by xavier.leroy
configure: use m4_normalize to reformat long messages
(commit: e35babe)
The file was modifiedconfigure (diff)
The file was modifiedconfigure.ac (diff)
The file was modifiedChanges (diff)
The file was addedasmcomp/riscv/scheduling.ml
The file was addedasmcomp/riscv/selection.ml
The file was addedruntime/riscv.S
The file was addedasmcomp/riscv/reload.ml
The file was addedasmcomp/riscv/arch.ml
The file was modifiedMakefile (diff)
The file was modifiedREADME.adoc (diff)
The file was modifiedconfigure (diff)
The file was modifiedruntime/caml/stack.h (diff)
The file was addedasmcomp/riscv/CSE.ml
The file was addedasmcomp/riscv/proc.ml
The file was addedasmcomp/riscv/emit.mlp
The file was modifiedconfigure.ac (diff)
The file was addedtestsuite/tools/asmgen_riscv.S