Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
130 commits
Select commit Hold shift + click to select a range
6f73ab7
Guideline for LLM usage in bug reports
Octachron Jun 9, 2026
e94050d
review: improve linking
Octachron Jul 2, 2026
700894c
review: typos
Octachron Jul 2, 2026
4fcef97
Require autoconf 2.72
dra27 Jul 22, 2026
8d66b42
Temporarily force Ubuntu 26.04 in CI
dra27 Jul 22, 2026
c0f8c8c
Merge pull request #14953 from dra27/autoconf-2.72
dra27 Aug 4, 2026
c106731
Test effect cases in is_nonexpansive
yallop Aug 4, 2026
e8dbfe6
Add Uchar.{is_ascii,ascii_to_char,is_latin1,latin1_to_char}
copy Aug 3, 2026
8181ee3
runtime: Fix sigaltstack call with musl on certain Intel CPUs
nmote Jul 31, 2026
7832b03
Merge pull request #14933 from semgrep/nmote/sigstksz
Octachron Aug 5, 2026
5041a11
Changes
copy Aug 3, 2026
7c281df
Weak.get_copy: copying continuations is unsafe, so don't copy them.
yallop Aug 5, 2026
46a45b2
On POWER reserve outgoing-argument space in Istackoffset
tmcgilchrist Jul 2, 2026
f11d974
Move allocation pointer to r23.
tmcgilchrist Dec 19, 2025
a4379d0
Enable frame pointers configuration for Power architecture
tmcgilchrist Jan 21, 2026
c40e356
Makefile: fix race with otherlibs str + unix.cmi/.cmx
bmwiedemann Aug 6, 2026
a27ea40
printast: missing newline after Pexp_unreachable
dra27 Jul 30, 2026
5d86df7
Merge pull request #14992 from dra27/printast-fix
dra27 Aug 6, 2026
5618e3b
Merge pull request #14989 from bmwiedemann/fixrace
dra27 Aug 6, 2026
29b11cc
Update Changes
dra27 Aug 6, 2026
2167214
Merge pull request #14981 from copy/trunk
dra27 Aug 6, 2026
4d98e5d
Changes entry for #14988
yallop Aug 5, 2026
cf93695
Update comment in ephe_get_field_copy
smuenzel Aug 6, 2026
653debf
Don't assume abstract types defined in the current module are injecti…
yallop Aug 7, 2026
0dc5964
let-rec check: give generic arrays dynamic size (#14993)
yallop Aug 7, 2026
8cdc85c
Fix changes entry: 14892 ↝ 14982 (#14994)
yallop Aug 7, 2026
f76ebe8
configure: fix use of AC_CHECK_PROGS when no diff tool is found
MisterDA Jul 8, 2026
4d5ec34
configure: Cygwin targets also need _WIN32_WINNT=0x602
MisterDA Jul 8, 2026
73e79cf
cygwin: use relative instead of absolute include path to <io.h>
MisterDA Jul 8, 2026
3f43760
configure: update OCaml website URL
MisterDA Aug 8, 2026
5f163fe
configure: suggest regenerating w/ Docker under the current user
MisterDA Aug 8, 2026
121b328
Implement frame pointer support for Power architecture
tmcgilchrist Jan 21, 2026
3ed6fa5
Add changes entry
tmcgilchrist Jul 8, 2026
8b74d52
Merge pull request #14505 from tmcgilchrist/power_frame_pointers
OlivierNicole Aug 12, 2026
0b6f59a
Make Runtime_events.User.write non-allocating (#14984)
avsm Aug 12, 2026
44c3e7d
mlvalues.h: caml_result_find_exception (#14814)
gasche Aug 13, 2026
7c6c082
testsuite: add a test that fragments the sizeclass pools (#14818)
edwintorok Aug 14, 2026
f5ff6fd
Remove unneeded line continuations between C string literals (#15004)
MisterDA Aug 15, 2026
7e24e18
Default to and recommend large file and year 2038 support on 32-bit (…
MisterDA Aug 19, 2026
a14450c
Emit fsqrt.d for square root on riscv (#15005)
Zaneham Aug 19, 2026
96f3a66
Add a test for float square root (#15007)
Zaneham Aug 19, 2026
6b8ceeb
Fix Changes
nojb Aug 19, 2026
e938159
Generate native square root and byte swap on s390x (#15002)
Zaneham Aug 19, 2026
1bf0e7e
Emit the fused multiply-add for Float.fma on arm64, power, riscv and …
Zaneham Aug 19, 2026
7ed5cf7
Bytecode loading: guard against overflow in `caml_read_section_descri…
xavierleroy Aug 20, 2026
d03f0e4
Add Sys.filepath_exists and improve clarity of Sys.file_exists (#14974)
khalidbelk Aug 21, 2026
4472c13
arm64, power: emit native round, trunc, ceil and floor
Zaneham Aug 23, 2026
6f5ac70
testsuite: add float rounding test
Zaneham Aug 23, 2026
d24fb64
Changes: rounding entry
Zaneham Aug 23, 2026
b660ea3
Changes: fill in the reviewers
Zaneham Aug 25, 2026
21ed908
Unmarshaling: guard against overflow when computing header_len + data…
xavierleroy Aug 25, 2026
c9160dd
Extract Utf8_lexeme out of Misc into utils/utf8_lexeme.ml(i) (#15023)
trefis Aug 26, 2026
b1c7ed2
Make ring buffer file size a size_t to avoid integer overflow (#15000)
tmcgilchrist Aug 27, 2026
c7f685c
Merge pull request #14899 from Octachron/bug_reports_and_llm
gasche Aug 28, 2026
7d88cf6
headers: fix creation date for Utf8_lexeme
Octachron Aug 31, 2026
3f03549
Add missing EV_MINOR_EPHE_CLEAN constructor to runtime_phase
tmcgilchrist Jul 28, 2026
ccc192e
POWER fix assembler errors when offset exceeds a 16-bit immediate (#1…
tmcgilchrist Sep 1, 2026
8a4772b
Merge pull request #14966 from tmcgilchrist/fix-ev-minor-ephe-clean
Octachron Sep 1, 2026
06271c6
Fix minor_allocated_bytes conversion.
tmcgilchrist Jul 3, 2026
92a6ebd
Add EV_C_MAJOR_DIRECT_ALLOCATED_WORDS counter
tmcgilchrist Aug 13, 2026
3425bc7
Add runtime events for GC ramp-up
tmcgilchrist Aug 27, 2026
f95405a
Merge pull request #14969 from tmcgilchrist/fix-minor-allocated-words
Octachron Sep 1, 2026
a0f52c3
Fixes #14765 (#15026)
OlivierNicole Sep 1, 2026
a6e23d9
discourage slop in the github issue template
gasche Aug 29, 2026
887d2f6
Merge pull request #15031 from gasche/discourage-slop-in-issue-template
gasche Sep 1, 2026
ccf54a3
Merge pull request #15017 from Zaneham/float-round
gasche Sep 1, 2026
3186b25
testsuite: handle variation in libc error messages (#15032)
Octachron Sep 1, 2026
dff3b02
Fix two bugs in the Win32 implementation of `Unix.select` (#15025)
nojb Sep 1, 2026
e8fce84
testsuite: gadt, partial match, and typeopt
Octachron Sep 1, 2026
2a78530
[trunk] Fix handling of backup thread on Win32 (#15029) (#15034)
nojb Sep 2, 2026
928e7c8
Unmarshaling: guard against overflow when computing header_len + data…
xavierleroy Sep 2, 2026
26505cb
lambda: do not trust partial GADT specialization
Octachron Sep 1, 2026
801e391
lambda: only freeze new local constraints on partial match
Octachron Sep 1, 2026
ea0a15b
gadt and typeopt: disable native test on flambda
Octachron Sep 2, 2026
73ef089
review: Translate don't trust default equations too
Octachron Sep 3, 2026
9894fbd
Fix typos in doc comment
OlivierNicole Sep 3, 2026
8b0ee33
[Haiku] Unix socket test+single-thread setlocale+signals (#14773)
Sylvain78 Sep 3, 2026
402e9c5
Enable KVM for faster Android emulation in CI (#15003)
MisterDA Sep 3, 2026
d7f0f2a
review: use canonical ids for lambda output
Octachron Sep 3, 2026
70165ff
Merge pull request #15038 from OlivierNicole/typos
Octachron Sep 4, 2026
7feb7c6
remove instructions for `opam custom-install`
raphael-proust Sep 4, 2026
ab17b51
Use caml_copy_string instead of undefined copy_string
MisterDA Apr 13, 2026
3415b35
Simpler macro conditionals
MisterDA Apr 13, 2026
5d132f4
Fix missing GC root registration in `caml_unix_rename`
MisterDA Apr 13, 2026
493234e
Add missing blocking section around realpath
MisterDA Apr 13, 2026
22c422b
Fix broken compilation without `HAS_IPV6`
MisterDA Apr 13, 2026
336ccde
Correct wrong error string in `clear_close_on_exec`
MisterDA Apr 13, 2026
88f5611
Fix passing OCaml `value` as ` const char*` via variadic
MisterDA Apr 13, 2026
b945e9c
Fix OCaml value accessed in blocking section / missing registration
MisterDA Apr 13, 2026
d189bf5
Fix missing blocking section in lockf fallback
MisterDA Apr 13, 2026
9618afd
Simpler macro conditionals
MisterDA Apr 13, 2026
3ef18ac
Fix `lseek` return truncated to `int`
MisterDA Apr 13, 2026
266108d
Use `SEEK_CUR` instead of magic number `1`
MisterDA Apr 13, 2026
4396893
Update changes
MisterDA Apr 17, 2026
2e04c02
Revert "lambda: only freeze new local constraints on partial match"
Octachron Sep 7, 2026
af6fc91
update Changes
Octachron Sep 7, 2026
397b67e
review: more test documentation
Octachron Sep 7, 2026
a8008b3
Emit fsqrt for square root on power (#15006)
Zaneham Sep 8, 2026
857f4e3
Merge pull request #14740 from MisterDA/other-unix-fixes
OlivierNicole Sep 8, 2026
110baaa
Merge pull request #14921 from MisterDA/build-fixes
MisterDA Sep 8, 2026
79917f2
contributing: mention possibility to RFC; flatter alt contrib list
raphael-proust Sep 9, 2026
2497f61
Report an overwritten ring slot as lost events, not a corrupt stream
tmcgilchrist Aug 13, 2026
094e351
Publish the ring head advance before overwriting released slots
tmcgilchrist Aug 20, 2026
0c3daf3
Order the header read before the overwrite re-check
tmcgilchrist Aug 20, 2026
368fbd1
Add changes entry
tmcgilchrist Aug 23, 2026
b66805e
add Stefan Muenzel as maintainer
gasche Sep 10, 2026
8f88dc8
add OSEC advisory reference
hannesm Sep 10, 2026
da7ef56
Merge pull request #15061 from hannesm/osec
Octachron Sep 10, 2026
4846123
further small improvements to CONTRIBUTING.md
raphael-proust Sep 10, 2026
1672795
`Set.{union,inter,diff}`: better complexity for sets with sharing (#1…
nojb Sep 10, 2026
90b7424
Merge pull request #15055 from ahrefs/contributing-mentions-rfcs
gasche Sep 10, 2026
80a4f5d
Merge pull request #15016 from tmcgilchrist/runtime-events-corrupt-st…
sadiqj Sep 11, 2026
16075e0
Merge pull request #15001 from tmcgilchrist/expose-allocated-words-di…
sadiqj Sep 11, 2026
a089e72
Merge pull request #15035 from Octachron/lambda_and_gadts
Octachron Sep 11, 2026
09ac230
Merge pull request #15041 from raphael-proust/remove-stale-instructio…
Octachron Sep 11, 2026
c68cf28
Merge pull request #15057 from gasche/add-maintainer-smuenzel
Octachron Sep 11, 2026
37b83d4
Merge branch 'trunk' into expansive-effects
gasche Sep 11, 2026
9ad42b1
Merge pull request #14986 from yallop/expansive-effects
gasche Sep 11, 2026
60bd1ed
Merge branch 'trunk' into weak-copy-continuation
gasche Sep 11, 2026
9eda4c4
Merge pull request #14988 from yallop/weak-copy-continuation
gasche Sep 11, 2026
5087cbb
Unix.realpath: better normalization of Win32 UNC paths (#15056)
nojb Sep 11, 2026
e9dd381
Fix with module type precedence
314eter Jun 28, 2026
c61665b
Improve with module type example
314eter Aug 1, 2026
c48555d
Update Changes
314eter Sep 12, 2026
50e589f
Add example to Changes
314eter Sep 12, 2026
774a05d
Merge pull request #14978 from 314eter/with-module-type-precedence
Octachron Sep 14, 2026
d0c6254
Record treatment of `_` in expression positions
dra27 Jul 30, 2026
6de9dc6
Record treatment of `_` in module positions
dra27 Aug 7, 2026
84b076d
Add Pexp_hole and Pmod_hole to the parsetree
dra27 Jul 30, 2026
a93cc68
Store `_` in the parsetree
dra27 Jul 30, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 23 additions & 8 deletions .depend
Original file line number Diff line number Diff line change
Expand Up @@ -155,11 +155,13 @@ utils/local_store.cmx : \
utils/local_store.cmi
utils/local_store.cmi :
utils/misc.cmo : \
utils/utf8_lexeme.cmi \
utils/format_doc.cmi \
utils/config.cmi \
utils/build_path_prefix_map.cmi \
utils/misc.cmi
utils/misc.cmx : \
utils/utf8_lexeme.cmx \
utils/format_doc.cmx \
utils/config.cmx \
utils/build_path_prefix_map.cmx \
Expand Down Expand Up @@ -216,6 +218,11 @@ utils/terminfo.cmo : \
utils/terminfo.cmx : \
utils/terminfo.cmi
utils/terminfo.cmi :
utils/utf8_lexeme.cmo : \
utils/utf8_lexeme.cmi
utils/utf8_lexeme.cmx : \
utils/utf8_lexeme.cmi
utils/utf8_lexeme.cmi :
utils/warnings.cmo : \
utils/misc.cmi \
utils/format_doc.cmi \
Expand Down Expand Up @@ -414,6 +421,7 @@ parsing/docstrings.cmi : \
parsing/location.cmi
parsing/lexer.cmo : \
utils/warnings.cmi \
utils/utf8_lexeme.cmi \
parsing/parser.cmi \
utils/misc.cmi \
parsing/location.cmi \
Expand All @@ -422,6 +430,7 @@ parsing/lexer.cmo : \
parsing/lexer.cmi
parsing/lexer.cmx : \
utils/warnings.cmx \
utils/utf8_lexeme.cmx \
parsing/parser.cmx \
utils/misc.cmx \
parsing/location.cmx \
Expand Down Expand Up @@ -567,13 +576,15 @@ parsing/syntaxerr.cmi : \
parsing/location.cmi
parsing/unit_info.cmo : \
utils/warnings.cmi \
utils/utf8_lexeme.cmi \
utils/misc.cmi \
parsing/location.cmi \
utils/load_path.cmi \
utils/config.cmi \
parsing/unit_info.cmi
parsing/unit_info.cmx : \
utils/warnings.cmx \
utils/utf8_lexeme.cmx \
utils/misc.cmx \
parsing/location.cmx \
utils/load_path.cmx \
Expand Down Expand Up @@ -731,6 +742,7 @@ typing/datarepr.cmi : \
typing/data_types.cmi
typing/env.cmo : \
utils/warnings.cmi \
utils/utf8_lexeme.cmi \
parsing/unit_info.cmi \
typing/typing_recovery.cmi \
typing/types.cmi \
Expand Down Expand Up @@ -758,6 +770,7 @@ typing/env.cmo : \
typing/env.cmi
typing/env.cmx : \
utils/warnings.cmx \
utils/utf8_lexeme.cmx \
parsing/unit_info.cmx \
typing/typing_recovery.cmx \
typing/types.cmx \
Expand Down Expand Up @@ -1137,17 +1150,17 @@ typing/mtype.cmi : \
typing/ident.cmi \
typing/env.cmi
typing/oprint.cmo : \
utils/utf8_lexeme.cmi \
parsing/pprintast.cmi \
typing/outcometree.cmi \
utils/misc.cmi \
parsing/lexer.cmi \
utils/format_doc.cmi \
parsing/asttypes.cmi \
typing/oprint.cmi
typing/oprint.cmx : \
utils/utf8_lexeme.cmx \
parsing/pprintast.cmx \
typing/outcometree.cmi \
utils/misc.cmx \
parsing/lexer.cmx \
utils/format_doc.cmx \
parsing/asttypes.cmx \
Expand Down Expand Up @@ -4072,10 +4085,12 @@ asmcomp/selection.cmx : \
asmcomp/stackframe.cmo : \
asmcomp/stackframegen.cmi \
asmcomp/mach.cmi \
utils/config.cmi \
asmcomp/stackframe.cmi
asmcomp/stackframe.cmx : \
asmcomp/stackframegen.cmx \
asmcomp/mach.cmx \
utils/config.cmx \
asmcomp/stackframe.cmi
endif # ifeq "$(ARCH)" "power"
ifeq "$(ARCH)" "s390x"
Expand Down Expand Up @@ -8547,11 +8562,11 @@ debugger/debugger_config.cmx : \
debugger/debugger_config.cmi
debugger/debugger_config.cmi :
debugger/debugger_lexer.cmo : \
utils/misc.cmi \
utils/utf8_lexeme.cmi \
debugger/debugger_parser.cmi \
debugger/debugger_lexer.cmi
debugger/debugger_lexer.cmx : \
utils/misc.cmx \
utils/utf8_lexeme.cmx \
debugger/debugger_parser.cmx \
debugger/debugger_lexer.cmi
debugger/debugger_lexer.cmi : \
Expand Down Expand Up @@ -9577,20 +9592,20 @@ ocamldoc/odoc_latex_style.cmx : \
ocamldoc/odoc_latex_style.cmi
ocamldoc/odoc_latex_style.cmi :
ocamldoc/odoc_lexer.cmo : \
utils/utf8_lexeme.cmi \
otherlibs/str/str.cmi \
ocamldoc/odoc_parser.cmi \
ocamldoc/odoc_messages.cmi \
ocamldoc/odoc_global.cmi \
ocamldoc/odoc_comments_global.cmi \
utils/misc.cmi \
ocamldoc/odoc_lexer.cmi
ocamldoc/odoc_lexer.cmx : \
utils/utf8_lexeme.cmx \
otherlibs/str/str.cmx \
ocamldoc/odoc_parser.cmx \
ocamldoc/odoc_messages.cmx \
ocamldoc/odoc_global.cmx \
ocamldoc/odoc_comments_global.cmx \
utils/misc.cmx \
ocamldoc/odoc_lexer.cmi
ocamldoc/odoc_lexer.cmi : \
ocamldoc/odoc_parser.cmi
Expand Down Expand Up @@ -9732,12 +9747,12 @@ ocamldoc/odoc_name.cmi : \
parsing/longident.cmi \
typing/ident.cmi
ocamldoc/odoc_ocamlhtml.cmo : \
utils/utf8_lexeme.cmi \
otherlibs/str/str.cmi \
utils/misc.cmi \
ocamldoc/odoc_ocamlhtml.cmi
ocamldoc/odoc_ocamlhtml.cmx : \
utils/utf8_lexeme.cmx \
otherlibs/str/str.cmx \
utils/misc.cmx \
ocamldoc/odoc_ocamlhtml.cmi
ocamldoc/odoc_ocamlhtml.cmi :
ocamldoc/odoc_parameter.cmo : \
Expand Down
3 changes: 2 additions & 1 deletion .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -122,11 +122,12 @@ otherlibs/unix/stat_win32.c typo.long-line
otherlibs/unix/symlink_win32.c typo.long-line

# Some Unicode characters here and there
utils/misc.ml typo.non-ascii
utils/utf8_lexeme.ml typo.non-ascii
runtime/sak.c typo.non-ascii
tools/opam/process.sh typo.non-ascii

testsuite/tests/** typo.missing-header typo.long-line=may
testsuite/tests/basic-manyargs/outgoing_stack_args_.c typo.missing-header=false
testsuite/tests/lib-bigarray-2/bigarrf.f typo.tab linguist-language=Fortran
testsuite/tests/lib-unix/win-stat/fakeclock.c typo.missing-header=false
testsuite/tests/misc-unsafe/almabench.ml typo.long-line
Expand Down
2 changes: 2 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ Welcome to OCaml's Issue tracker!
OCaml's developers use this tracker for bugs and feature requests only, rather
than user support.

**Note**: please do not include AI-generated text in your issue description or further comments. For more details, see our [guidelines relevant to AI-assisted bug reports](https://github.com/ocaml/ocaml/blob/trunk/AI.md#guidelines-relevant-to-ai-assisted-bug-reports).

If you have questions about *using* OCaml, please ask at
https://discuss.ocaml.org (more people read Discuss than this tracker, and
you'll get confirmation of whether you've really found a bug or need a new
Expand Down
5 changes: 5 additions & 0 deletions .github/workflows/build-cross.yml
Original file line number Diff line number Diff line change
Expand Up @@ -277,6 +277,11 @@ jobs:
cat example.ml
$HOME/cross/bin/ocamlopt.opt example.ml -o example -verbose
file example
- name: Enable KVM group perms
run: |
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
sudo udevadm control --reload-rules
sudo udevadm trigger --name-match=kvm
- name: Run example
uses: reactivecircus/android-emulator-runner@v2
with:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/hygiene.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ concurrency:
jobs:
hygiene:
name: Checks
runs-on: ubuntu-latest
runs-on: ubuntu-26.04
steps:
- name: GitHub Context
run: echo $GITHUB_CONTEXT
Expand Down
27 changes: 27 additions & 0 deletions AI.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,3 +29,30 @@ a direct counterpart, with entirely human-produced content.
of code that contributors do not understand; plagiarised works; hallucinated
security reports; or experiments involving humans without their advance
consent.

## Guidelines relevant to AI-assisted bug reports

Our advice is to avoid adding LLM-generated contents or explanations to
your initial bug report: a bug report should be to the point and
contain only human-verified information. Adding LLM-generated contents
runs counter to those objectives, even if the generated contents
looks useful to you.

Indeed, judging the quality of a LLM-generated content about an
unknown code base requires a lot of effort. Simultaneously, estimating
the faithfulness of LLM-generated contents without knowing your prior
understanding of the code base, nor your prompt, nor the model context
also requires a lot of effort. Such efforts are in most cases better
spent investigating the bug itself.

Moreover, mixing human and LLM-generated contents in the same report
without a clear separation should be imperatively avoided. Indeed,
the absence of a clear delineation between the two contents makes it
very hard to ascertain the reliability of any part of the mixed
contents.

We also advise some caution when shrinking reproduction case with
LLMs. If you have any doubts about the LLM-shrinked reproduction case,
please report both the original reproduction case and the shrinked
one. In extreme cases, we have witnessed LLMs convincing people to
reduce their bug report to a hallucination.
45 changes: 33 additions & 12 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,21 +7,15 @@ OCaml distribution. These are just guidelines, not rules, use your
best judgment and feel free to propose changes to this document itself
in a pull request.

This document assumes that you have a patch against the sources of the
compiler distribution, that you wish to submit to the OCaml
maintainers upstream. See [INSTALL.adoc](INSTALL.adoc) for details on
how to build the compiler distribution from sources. See
[HACKING.adoc](HACKING.adoc) for details on how to modify the sources.

## Contribution

Modifying the sources is far from the only way to contribute to the
OCaml distribution. Bug reports (in particular when they come with
a reproducible example), simple typos or clarifications in the
documentation also help, and help evaluating and integrating existing
change proposals also helps. Providing good answers on the discussion
forums, or asking the good questions that highlight deficiencies in
existing documentations, also help.
OCaml distribution. Other contributions include:
- Bug reports (in particular when they come with a reproducible example).
- Simple typos or clarifications in the documentation
- Help evaluating and integrating existing change proposals.
- Providing good answers on the discussion forums
- Asking questions that highlight deficiencies in existing documentations.

There are also many valuable ways to contribute to the wider OCaml
ecosystem that do not involve changes to the OCaml distribution.
Expand All @@ -31,6 +25,13 @@ proposals against the OCaml distribution. (Code changes, but also
improvement to documentation or implementation comments, which are
valuable changes on their own.)

This document assumes that you have a patch against the sources of the
compiler distribution or an idea for such a patch.

This document is concerned with the process of getting your work merged
upstream. For advice on how to build the compiler from sources
see [INSTALL.adoc](INSTALL.adoc) and [HACKING.adoc](HACKING.adoc) instead.

## Workflow

All changes to the OCaml distribution need to be processed through the
Expand Down Expand Up @@ -84,6 +85,7 @@ The current list of maintainers is as follows:
- @OlivierNicole Olivier Nicole
- @sadiqj Sadiq Jaffer
- @shindere Sébastien Hinderer
- @smuenzel Stefan Muenzel
- @stedolan Stephen Dolan
- @trefis Thomas Refis
- @xavierleroy Xavier Leroy
Expand Down Expand Up @@ -114,6 +116,25 @@ the PR or issue.

For more information about when and how new releases are published, see [the release introduction](release-info/introduction.md).

## Pull-Request guideline

You should open a pull request as a way to discuss the changes you are
proposing. In some cases, you can open a pull request which contains proposed
changes directly. In other cases, you should first open a pull request on the
https://github.com/ocaml/RFCs repository to discuss some aspects of your changes.

Chose the pull request route if you have a mature implementation, if you have
already discussed the changes in advance, if your changes are purely
implementation details without wider implications, or some such situation.

Chose the RFC route if you merely have a prototype, if you haven't discussed or
iterated on your design much, if your changes may impact the ecosystem at large
(the users, the libraries, the build systems, etc.). Basically, use the RFC route
to get more feedback on the earlier stages of your work.

The rest of this document is concerned only with the pull request route. For
the RFC route, you can find some documentation on the RFC repository directly.

## Coding guidelines

You should not leave trailing whitespace; not have line longer than 80
Expand Down
Loading
Loading