PRs and issues worth looking at (2024--2025)
===
# Zoom Details
https://us06web.zoom.us/j/84811922816?pwd=aElmSVpFejY3eW5uM3NEYjJ4aHlTUT09
Meeting ID: 848 1192 2816
Passcode: 619421
# How to search for non-assignees issues and PRs:
non-assigned bugs: [is:issue is:open label:bug -label:recursive-modules no:assignee](https://github.com/ocaml/ocaml/pulls?q=is%3Aissue+is%3Aopen+label%3Abug+-label%3Arecursive-modules+no%3Aassignee)
non-assigned PRs or issues: [is:open -label:bug -label:feature-wish -label:documentation -label:recursive-modules no:assignee](https://github.com/ocaml/ocaml/issues?q=is%3Aopen+-label%3Abug+-label%3Afeature-wish+-label%3Adocumentation+-label%3Arecursive-modules+no%3Aassignee)
[Non-bug report issues with no assignee](https://github.com/ocaml/ocaml/issues?q=is%3Aissue+is%3Aopen+-label%3Abug+-label%3Afeature-wish+-label%3Adocumentation+-label%3Arecursive-modules+-label%3Asyntax-error-messages+no%3Aassignee+)
Non-assigned pull requests that weren't touched in one month: [is:pr is:open no:assignee updated:<2023-10-20](https://github.com/ocaml/ocaml/pulls?q=is%3Apr+is%3Aopen+no%3Aassignee+updated%3A%3C2023-10-20)
# Current organization
- no per-meeting notes, we just write discussion summaries on relevant github PRs/issues
- meetings every two week on the same time slot (Wednesday 3pm central-european time)
- anyone interested in helping triaging PRs/issues is welcome
# Notes of previous meetings
(At some points we stopped talking notes here and we simply post comments in relevant issues when appropriate.)
# Wednesday November 12th, 2025
# ....
# Feb 5th, 2025
- Gabriel mentions negation in ocamltest again
https://github.com/ocaml/ocaml/pull/13315
- we decided to merge Immutable Arrays
https://github.com/ocaml/ocaml/pull/13097
-
# Jan 8th, 2025
Agenda
- [PRs and issues from last month](https://github.com/ocaml/ocaml/issues?q=is%3Aopen+-label%3Abug+-label%3Afeature-wish+-label%3Adocumentation+-label%3Arecursive-modules+no%3Aassignee+)
Self-serving suggestions from Gabriel:
- merging plan for modular explicits
https://github.com/ocaml/ocaml/pull/13275
- asking for opinions on atomic fields
https://github.com/ocaml/ocaml/pull/13707
(no notes, we posted on github directly)
# Dec 11th, 2024
Agenda
- [PRs and issues from last fortnight](https://github.com/ocaml/ocaml/issues?q=is%3Aopen+-label%3Abug+-label%3Afeature-wish+-label%3Adocumentation+-label%3Arecursive-modules+no%3Aassignee+)
Minutes
- A quick ephemeron primer
- David linked to https://dl.acm.org/doi/10.1145/263700.263733 as the original article
# Nov 27th, 2024
Agenda
- [PRs and issues from last fortnight](https://github.com/ocaml/ocaml/issues?q=is%3Aopen+-label%3Abug+-label%3Afeature-wish+-label%3Adocumentation+-label%3Arecursive-modules+no%3Aassignee+)
- Any 5.3 milestone issues
- Other points
## Notes
- 13619: assigned to Damien
- 13622: assigned to Seb
- 13623: assigned to Damien (docs update)
- 13629: assigned to Damien
- 13632: assigned to Damien (review in progress)
- 13634: assigned to Florian
- 13635: assigned to Olivier
- 13636: assigned to Florian
- 13637: try to avoid silently dropping CLI arguments, then add the feature, assigned to David
- 13638: assigned to Damien
- 13641: assigned to Vincent
# Nov 13th, 2024
Agenda
- Discuss the current milestone?
- Looking at unassigned PRs less than 2 weeks old
- Other points
## Looking at unassigned PRs less than 2 weeks old
- [Use the Windows CSPRNG to get a random seed for Stdlib.Random](https://github.com/ocaml/ocaml/pull/13578): assigned dra27.
- Use correct CFA register on ARM64 #13595: gasche approved.
- Use explicit units in time quantities, Unix.select fix on Windows #13576: damiendoligez assigned himself.
- Enable software prefetching support for ARM64, s390x, PPC64 and Riscv #13582: NickBarnes has already approved, assigned him for bookkeeping.
- Fix side-effect of removal of equation_generation #13585: Asked Octachron whether the PR should be on the 5.3 milestone and assigned him.
- Enable native backend on x86_64 GNU/Hurd #13587: shindere has already reviewed, assigned him and marked as merge-me
- Propagate physical comparison operators to lambda #13588: OlivierNicole assigned himself.
- Stdlib: Mirror IO_BUFFER_SIZE and UNIX_BUFFER_SIZE in the stdlib and unix lib #13589: old feature request, implementation looks reasonable. dra27 points out that it would look better in one of the `{In,Out}_channel` modules but then it feels weird to pick one of the two. OlivierNicole assigned himself.
- Add note about args wildcard expansion on Windows #13590: dra27 assigned himself.
- Audit the installed headers for C++ compatibility #13591: NickBarnes has started reviewing, assigned him.
- Fix #13598 by protecting partial_pred #13600: This is the object of vivid discussions among gasche, garrigue and goldfirere already, nothing to do.
- Enable natdynlink on x86_64 GNU/Hurd #13601: assigned shindere as he has reviewed the similar PR #13587.
- adds data_types to dune configuration #13602: looks fine, gasche merged it.
- `-dsource`: \#mod is not an operator in type context #13604: we assigned gasche.
- Added an error detection when generating typing constraints #13605: gasche added it to the agenda of the next typing meeting.
- Added an error detection when generating typing constraints #13605: assigned NickBarnes as with similar PR above.
## Other
# Oct 30th, 2024
# Oct 16th, 2024
## Looking at unassigned issues less than 2 weeks old
- https://github.com/ocaml/ocaml/pull/13339: This seems to have somewhat stalled, Olivier posted asking whether we may consider @dra27’s current proposal as good enough in the absence of more involvement, and @NickBarnes a more informed opinion about the technical content.
- https://github.com/ocaml/ocaml/issues/13495: Assigned to @garrigue as he has opened a fix PR.
- https://github.com/ocaml/ocaml/issues/13503: Assigned @shindere as the person responsible for the change that prompted the issue and as the most informed dev on the topic.
- https://github.com/ocaml/ocaml/issues/13509: @NickBarnes would be OK to review the partial fix PR #13518.
- https://github.com/ocaml/ocaml/issues/13511: needs more discussion. Maybe for the developer meeting? @goldfirere feared that it would take too much of an already scarce time, but @dra27 is in favor of adding it to a time slot dedicated for issues which is supposed to be limited in time.
## Other matters
Olivier raised an old documentation PR of his that fell between the cracks https://github.com/ocaml/ocaml/pull/12912. @dra27 agreed to be assigned.
# Oct 2nd, 2024
Looking at PRs from the last month not yet assigned:
- https://github.com/ocaml/ocaml/pull/13431 (Simplify Parsetree change action and add ppxlib maintainers mention): assignee Florian.
- https://github.com/ocaml/ocaml/pull/13433 : will be merged or closed soon
- https://github.com/ocaml/ocaml/pull/13441: Name the explicit constants used with caml_verb_gc, ready-to-merge
- https://github.com/ocaml/ocaml/pull/13443: Add an argument to Arg.parse_* to allow the user to reject bare option arguments that start with hyphens, assigned to Damien,
- https://github.com/ocaml/ocaml/pull/13438: keep some optimization hints from lambda, wait for the dev meeting
- https://github.com/ocaml/ocaml/pull/13444: Long path for windows
assigned to David
- https://github.com/ocaml/ocaml/pull/13447: Symmetrize shared Sys and Unix functions, assigned to David
- https://github.com/ocaml/ocaml/pull/13450: assigned to David
- [refactor] typing/predef: introduce a variant of predefined type constructors #13460 : assigned to Florian
- https://github.com/ocaml/ocaml/pull/13465, Always define caml_startup et al in bytecode, as already done in native code: assigned to Damien
- https://github.com/ocaml/ocaml/pull/13471, Add a -keywords <version?+list> flag, opinions:
- https://github.com/ocaml/ocaml/pull/13474, agreement that this is a better specification, but it is not worth breaking any code.
# Sep 18th, 2024
Looking at issues from the last month not yet assigned:
- https://github.com/ocaml/ocaml/issues/13335 - Nick / Miod able to have a look?
- https://github.com/ocaml/ocaml/issues/13347 - documentation update PR - considerable chunk of work, which isn't likely to be taken on as "core dev".
- https://github.com/ocaml/ocaml/issues/13358 - Seb to discuss with @fabbing as to whether this might be of interest
# July 24th, 2024
Sébastien: we have an upcoming PR on arm64 frame-pointers.
We look at stale issues:
https://github.com/ocaml/ocaml/issues?q=is%3Aissue+is%3Aopen+label%3AStale
# July 10th, 2024
- Possible 5.3 late pass for https://github.com/ocaml/ocaml/pull/12964 (unloadable runtime - affected by the recent merge of dynamic Max_domains) if needed?
## Pass over issues marked as stale by the bot
- Enlarge the use of [@@untagged] #12367. @OlivierNicole asked today whether the issue could be closed as solved by a PR, let’s wait for an answer.
- Missing \*.cmxs in the installation #12250. : this will be a good idea once compiler-libs is properly packaged. will comment.
- Presence of format strings defeats Warning 20 (ignored-extra-argument) #12262. commented
- "Unbound value" error message can hide relevant module type mismatches with interface file error-messages #12272
@Octachron will take time to answer the issue and probably close it at least temporarily, because it’s a very complicated matter.
- Misleading syntax error message #12280. Unmarked as we hope to fix it once we switch to the new Menhir error reporting mechanism.
- Cannot easily change warnings in type declaratino #12301. Unmarked and labelled as a good newcomer job.
- running the testsuite after a rebuild fails with inconsistent assumptions #11970. @dra27 closed as probably addressed (should reopen otherwise).
- Safe-to-marshall annotation #7448. Unclear why it’s still labeled as stale. @octachron asigned Gabriel and we shall see what happens to it in a little while.
- Missing documentation: meaning of warning letters #11285. @Octachron proposed to close the issue for now (and did). On this topic, we probably want to deprecate the mechanism of letter identifiers for warnings.
## Pass over recently opened issues
- Printing issue of reserved keywords #13263. @Octachron: it’s probably a misclassification of the keyword. He will assign himself as he has a good idea of where the problem is.
- Abnormally slow loop (25x) under OCaml 5 / macOS / arm64 #13262. Assigning @kayceesrk as it is mostly about how to best compile the memory model for ARM64 processors.
- Warning 34 (unused type) no longer fires on unused locally-abstract types #13254. @Octachron closed it as recently fixed by a merged PR.
## Discussion
- @shindere: We may want to discuss which are the things to consider for merge in 5.3.
- @voodoos will open a couple of small PRs that improves the performance of whole-project occurrences, which may be relevant to merge.
- Should we cancel part of the meeting during the summer? Agreed to cancel all the meeting in August and resume after ICFP.
- @shindere: Do we have natural reviewers for them?
- @voodoos planned to ping the reviewers of the previous PRs (like @Octachron). Might ping Nathanaël as well.
- Discusion between @voodoos and @goldfirere about what the changes will imply for Jane Street.
- @shindere: At Tarides we have ongoing work about the unloadable runtime, and @MisterDA has a couple of PRs to get rid of winpthreads.
- @dra27: Unclear whether it will be ready for review by Aug 15. Would it be a big problem if feature parity was pushed to 5.4? According to @Octachron, it’s probably fine because there are a few other performance problems and other things still lingering around, so we may have to consider 5.3 as experimental as well.
- @Octachron intends to open an RFC shortly about a computer-readable format for all of the compiler output (error messages, debug dumps, etc.) such as S-expressions.
- What of @MisterDA’s winpthreads PRs? Do they meet the required expectactions? A pain point is that they conflict with other PRs by @gadmm.
- @Octachron: maybe we will have to wait for @gasche’s opinion on them, he has been busy lately.
- @shindere suggests to also explain the situation on @gadmm's PR and ask for feedback from there.
# June 26th, 2024
## Going through less-than-one-month-old PRs without comments
- #13255: self-assigned by
- #13246: self-assigned by @OlivierNicole. will comment.
## Going through less-than-one-month-old issues without comments
- [#13253](https://github.com/ocaml/ocaml/issues/13253):
self-assigned. Maybe we could try to have a better specification?
# June 12th, 2024
# May 29th, 2024
We look at: [issues that are not assigned](https://github.com/ocaml/ocaml/issues?q=is%3Aissue+is%3Aopen+no%3Aassignee), going back 1 month.
- developer meeting: do we want to colocate with ICFP?
consensus: probably not, ICFP is too busy
Gabriel encourages people to write RFCs.
# May 15th, 2024
## Pre-meeting decisions to review
- assign https://github.com/ocaml/ocaml/pull/13132 to @dra27
- pre-assign https://github.com/ocaml/ocaml/pull/13133 to Xavier or Damien
- assign https://github.com/ocaml/ocaml/pull/13135 to @lthls
- assign https://github.com/ocaml/ocaml/pull/13139 to @xavierleroy
## Looking at 5.3 milestone
- Who could review https://github.com/ocaml/ocaml/pull/11996? Damien agrees to.
- https://github.com/ocaml/ocaml/pull/13050
- Ambiguity issue raised by @xavierleroy with decimal escape: it should be possible to disambiguate.
- @NickBarnes has a design for this. Assigning him alongside @xavierleroy.
- The PR should be reviewed in time for 5.3.
- Immutable arrays PR
- @gasche is of the opinion that if the point of immutable arrays is performance, there should be numbers to back it.
- @damiendoligez points out that we should try to use them in Menhir and see if it improves the parser startup time.
- https://github.com/ocaml/ocaml/pull/12964 "Memory cleanup at exit"
- @gasche asks for opinions on @gadmm's comment at https://github.com/ocaml/ocaml/pull/13010#issuecomment-2042897978, but it will require looking at it off-line.
## Recent unassigned issues
- https://github.com/ocaml/ocaml/issues/13159: Assigned to @OlivierNicole
- https://github.com/ocaml/ocaml/issues/13155: @shindere will come up with an example on the issue.
-
# May 5th, 2024
- PR #12964: Memory cleanup at exit
We need to find a shepherd or reviewer for this PR.
# April 17th, 2024
We are now trying out a new format for these meetings, namely:
- First talking about the remaining items on the next milestone
- Then discuss the recently opened (in the last 2 weeks) issues and PRs
- Then have a free discussion if there is time.
We also try to keep the meeting under 45 mins.
## Remaining items on the 5.2 milestone
- PR #13100 "Fix detection of zstd when compiling with musl-gcc".
Assigned to Seb.
- Issue #12738 "Regression in printing of shadow predef types"
Already assigned to Florian. Nothing to do here.
- Issue #11905 "improve the Domain.DLS documentation"
Most people present agree with Florian's comment on the PR that it would be
more efficient to document the TLS version once it is merged.
Discussion about concerns expressed by Vesa that we may want to keep DLS. We
will go over his arguments again and decide whether there should be more
discussion with him on the topic.
## Recently opened PRs and issues
- #13070 Don't add the flexdll object directory to the linker path with -nostdlib
David should be done taking care of it soon.
- #13073 Restore the caravan on AppVeyor
David is on it
- #13076 The Pattern-Matching Bug: special handling of final exits
Assign to trefis? Unclear whether trefis is still involved in OCaml
maintenance (not in the near future). We should also assign to @maranget.
- #13083 Use macros from limits.h to prevent signed integer wrap-around warnigns
Having UB is not always an issue but here it makes for better code. Assigning
Nick to this one.
- #13086 Fix spurious major GC slices. by Damien
Already approved, will be ready to merge after a rebase.
- #13087 Clarify ocamldebug availability
Already labelled as `merge-me`—merging.
- #13088 Make [list_labels] pure
An issue came up raised by @gasche, @goldfirere and him will work on it and we
can discuss it again later if needed.
- #13091 Fix some memory bugs in runtime_events_consumer.c
Assigned to @NickBarnes.
- #13093 Allow building with clang-cl
Assigned to Seb as the person best knowledgeable about this PR in the room.
- #13095 Improve Autoconf C compiler feature detection
Also assigned to Seb as a configure-script-related PR.
- #13097 Immutable arrays
This needs more discussion. Richard will probably send an email to caml-devel
to raise attention to this PR. Richard points out that adding support for
custom, rebindable syntax for collections would suppress the issue of "syntax
stealing" that comes with the change.
- #13100 Fix detection of zstd when compiling with musl-gcc
Discussed in the first part of the meeting.
We ran out of time before discussing the recently opened issues. We should start
with them next time—and probably go back more than 2 weeks.
# April 3rd 2024
15:00 Paris time
## Meta-discussions
Discussion of the form and chairing of the meeting. Gabriel: for me the important aspect is how to make these meetings fun and interesting (not really who is chairing). We can try rotating the chair to see if that works better.
Florian: the initial goal of this meeting, avoiding unassigned issues, has been achieved. Now we have a lot of assigned issue backlog.
Sébastien: maybe the meetings are too slow, this is feedback I got privately. But I'm not sure.
Florian: faster pace is probably possible if I spent more time preparing the meeting.
Damien: if we achieved the goal with the meeting, we can increase the frequency.
Sébastien: let's meet only if we have something to tell each other. But then if we do that we will just stop meeting.
Damien, David: we usually have things to say. David: we can go through the list of recent issues and PRs, and that is ten minutes, and then we discuss whatever.
Sébastien: every two weeks we do a roundtable, tell each other about what we did on the compiler. Olivier: but this takes almost one hour.
Gabriel: for me the value of the meeting is to send work to other people than {me, David, Florian, Xavier, Nicolás}, and then to share knowledge/expertise on the technical stuff and also on our way of doing things and our processes.
Florian: let's go over the list of things done in the last two weeks.
Sébastien: I want to ask, how much would it be to have the list of PRs in textual format, not on Github.
Florian: 10 minutes of milestone, 20mn of the last two weeks, then 30mn of open discussion if there is a need.
Gabriel: Olivier, you are a new maintainer, surely you have questions about the process, please ask them now or in following meetings.
## Issues and PRs
### nonblock_{read, write}
https://github.com/ocaml/ocaml/pull/13024
Damien is assigned, with a mission to discuss it with Xavier.
David: maybe this does not need to be in the standard library, it could go to a separate library.
### 1st of April
https://github.com/ocaml/ocaml/pull/13062
In favor:
- this is fun
- this is cute
Against:
- Ascii art.
- A new line in the log for each file.
- "not touched in three years" is useful info
- will make more work for Jane Street
- the Camel is not *that* cute
### CI builds
https://github.com/ocaml/ocaml/pull/13065
=> MisterDA
Manpage alignment:
https://github.com/ocaml/ocaml/pull/13005
### Questions on maintenance
Olivier: should the merger be different from the approver?
Answer:
- no need
- when you approve, be clear about what are the next steps ("merge if CI passes", or "waiting on ...", for example "waiting on a second maintainer approval")
- the label `merge-me` means that we are waiting for the CI to pass before merging, feel free to merge any green PR
- avoiding same-day merges, especially during the weekend
# March 20th 2024
15:00 Paris time
# March 6th 2024
15:00 Paris time
# February 21st 2024
15:00 Paris time
## Ppxlib, backward compatibility for contexts
Florian: the result of my discussion on Monday was that they were content implementing a backward-compatibility fix on their side.
https://github.com/ocaml/ocaml/pull/12246#issuecomment-1955111836
## 4.14.2 release candidate
Milestoned issues: https://github.com/ocaml/ocaml/milestone/42
- https://github.com/ocaml/ocaml/pull/12518
- https://github.com/ocaml/ocaml/issues/12166
- https://github.com/ocaml/ocaml/pull/12354
- https://github.com/ocaml/ocaml/pull/12322
- https://github.com/ocaml/ocaml/issues/12641
## Other PRs we looked at
- Statmemprof
- runtime PRs from Mark Shinwell
- https://github.com/ocaml/ocaml/pull/12931
# February 7th 2024
15:00 Paris time
Damien: I want to unblock this PR for 4.14:
- backport GC speed fix
https://github.com/ocaml/ocaml/pull/12322
=> Florian will benchmark and decide whether this is too risky for 4.14
# January 24th 2024
## Decision for 5.2 PR with extended review time:
https://github.com/ocaml/ocaml/pulls?q=is%3Apr+is%3Aopen+milestone%3A5.2
## Looking at stale issue
# January 10th 2024
## Reviews for the 5.2 milestione
- https://github.com/ocaml/ocaml/milestone/44
we assigned everything, and pinged people already assigned
## Issues
Gabriel is look for reviewers for unboxed dynarrays ( https://github.com/ocaml/ocaml/pull/12885 ) and thread-safe DLS ( https://github.com/ocaml/ocaml/pull/12889 ).
We look at this list:
https://github.com/ocaml/ocaml/issues?q=is%3Aissue+is%3Aopen+is%3Aopen+-label%3Abug+-label%3Afeature-wish+-label%3Adocumentation+-label%3Arecursive-modules+no%3Aassignee+sort%3Aupdated-desc+
- PRs awaiting "late passes" have until 24 January
- 4.14.2 release in February
# December 13th 2023
(Last meeting of the year!)
A large group of people (INRIA and Tarides) are attending the meeting in-person from INRIA on the occasion of a joint INRIA-Tarides meeting day.
Florian: we should look at PRs that we want to target for the 5.2 milestone.
- 12596: compilation of recursive values
https://github.com/ocaml/ocaml/pull/12596
=> Gabriel ? Xavier ?
(summary comment: https://github.com/ocaml/ocaml/pull/12596#issuecomment-1845738098 )
- Merlin-occurences PR
https://github.com/ocaml/ocaml/pull/12508
=> Florian
- Digest
https://github.com/ocaml/ocaml/pull/12307
=> still Olivier
- compressed marshalling
https://github.com/ocaml/ocaml/pull/12758
?
- dynlink startup
https://github.com/ocaml/ocaml/pull/12599
=> David, Xavier
- Format_string module
https://github.com/ocaml/ocaml/pull/12670
we don't like the name
Format_type ? Frmt ? F ?
- TSan for arm64
https://github.com/ocaml/ocaml/pull/12810
- boring header stuff
https://github.com/ocaml/ocaml/pull/12764
- TSan cleanup
https://github.com/ocaml/ocaml/pull/12746
# November 29 2023
## Left-over from November Dev meeting
- [#12084](https://github.com/ocaml/ocaml/pull/12084): Check link order when creating archive and when using ocamlopt
(make sure we are happy with it and it gets properly reviewed)
- @shindere seeking an additional reviewer
- A previous version was reviewed by @smuenzel (@gasche happy to approve on his behalf)
- [#12307](https://github.com/ocaml/ocaml/pull/12307): Evolving the Digest module
- @gasche shepherding; @dra27 broadly keen on the feature; @oliviernicole may have time to review
- [#10653](https://github.com/ocaml/ocaml/pull/10653), [#12720](https://github.com/ocaml/ocaml/pull/12720): Semantics and compilation of optional arguments now that the syntactic arity proposal is merged: can we agree on the right semantics to implement?
- Ongoing disagreement between Jacques and Vincent over evaluation order :) @lpw25 assigned to #10653
- [#12719](https://github.com/ocaml/ocaml/pull/12719), [#12724](https://github.com/ocaml/ocaml/pull/12724): From DLS to TLS: what is the proper design?
- [#12579](https://github.com/ocaml/ocaml/pull/12579) : OS-based Synchronisation for Stop-the-World Sections.
Where is the performance gain? in the uncontended case? in the contended case?
Is it worth going straight to futexes, or could we accept to use only POSIX
threads primitives?
- ~~[#12459](https://github.com/ocaml/ocaml/pull/12459): Random.int_in_range~~
- [#12407](https://github.com/ocaml/ocaml/pull/12407): Resource-safe C interface: caml/fail.h
Should we bless and document the encoding of exceptions as values with bit 1 set?
- [#12209](https://github.com/ocaml/ocaml/pull/12209): stdlib documentation: superscript fixes
- [#11619](https://github.com/ocaml/ocaml/pull/11619): Apply Cmm peephole optimizations to the final results of expressions (take 2)
- [#12500](https://github.com/ocaml/ocaml/pull/12500): Bigarray: do not change GC pace when creating sub-arrays
Commit to fixing [#12460](https://github.com/ocaml/ocaml/issues/12460) for 5.2?
- ~~[#12423](https://github.com/ocaml/ocaml/pull/12423): Fix `Buffer.add_substitute` by damiendoligez needs a reviewer~~
David: the problem that futex solve is not necessarily contended systems (too many domains), but the fact that sleeping is broken on some systems (Windows), very small sleeps become very long.
Gabriel: memory-model/, what is the actual code fragment that gets improved by this PR? I assumed it was the busy-waiting in barrier.ml.
Gabriel: does someone understand the change enough to write a new somewhat-realistic program that gets improved by this PR?
Nick: half of the new code is adding new capabilities in the runtime that we could add elsewhere, maybe even at some point exposed to OCaml libraries. In terms of the types of programs that get improved by it, it's the one that previously did a lot of sleeping, which are the ones which contend at those places on those critical sections (entering the gc, etc.). Maybe programs where you have several domains...
Nick: sleeping is bad when what we really want is a condition variable. The right way of doing that is a condition variable.
Nick: the actual work is very high-quality.
# November 1 2023
- [#11619](https://github.com/ocaml/ocaml/pull/11619): Apply Cmm peephole optimizations to the final results of expressions (take 2)
# October 18 2023
- https://github.com/ocaml/ocaml/pull/11974 (loongarch) - can we communicate a decision, or at least what's likely to happen? _Xavier has already replied on the PR today_
- https://github.com/ocaml/ocaml/issues/8907 - bring up at type checker meeting
- https://github.com/ocaml/ocaml/issues/9116 - assigned to Florian
- https://github.com/ocaml/ocaml/issues/9291 - @dra27 did a small bit of work towards this Aug this year; still ticking over
- https://github.com/ocaml/ocaml/issues/9301 - attributes on monadic operators; assigned to @gasche (as he's reviewing the WIP PR)
- https://github.com/ocaml/ocaml/issues/9504 - another issue for the type system meeting
- https://github.com/ocaml/ocaml/issues/10076 - ocamllex tweak; @dra27 wondered if it's a reasonable first issue, but @Octachron concerned it could balloon into too large a fix!
- https://github.com/ocaml/ocaml/issues/10652 - syntactic arity is a good time to decide on changes here?
- Got as far as https://github.com/ocaml/ocaml/issues/11016 for labelling
# October 4 2023
## Presence in London for POPL?
David, Damien, Richard will be around for (some of) POPL.
TODO:
- ask POPL organizers for venue space
- send a poll among developers to sense availability
Gabriel:
- I will adopt the "recursive value compilation" PRs from Vincent
- Richard agreed to have Jane Street review The Pattern-Matching Bug PRs
- are there pressing/important runtime issues to consider?
My list:
+ [#12345](https://github.com/ocaml/ocaml/issues/12345): incorrect Multicore implementation of OCaml finalisers
+ [#12460](https://github.com/ocaml/ocaml/issues/12460): unknown scalability regression in 5.1
(Green light to merge Dynarrays: "a pyrrhic victory".)
# September 20 2023
Recent janestreet PRs:
* #12451 : assign octachron
* #12246 : assign gasche
* #12195 : is already assigned to octachron
test suite:
* #11594 and its "duplicate" #12588: both assigned to damiendoligez
non-assigned pull requests:
* #12508 : assigned to damiendoligez
* #12496 : assigned to goldfirere
* #12485 : set milestone, lthls will manage this PR
* #12478 and #12474 : ping xavierleroy and dbuenzli
* #12467 : assigned to shindere
* #12466 : assigned to mshinwell
* #12462 : assigned to octachron
* #12461 : assigned to octachron
* #12458 : addded stdlib label
* #12455 : assigned to gasche
* #12452 : assigned to octachron
reminder: add zoom link and hackMD to reminder email
decision : move this document to hackMD, which is more accessible and add a link to it in the description of the github organisation
# July 12 2023
## milestone: 5.1
* #12372: requested review from damiendoligez
* #11905: moved to 5.2
* #11992: moved to long-term
* #11426: moved to long-term
## other PRs
looking at non-labelled PRs, oldest first
* #12314: rebase and merge
* #102: archived (closed)
* #293: archived (closed)
* #389: to be discussed at next dev meeting
* #1955: labelled "feature-wish", ask for volunteers
* #2170: assigning lpw25, as this is blocked on #10979
* #2300: closed (replaced by #12154)
* #2304: labelled "feature-wish", closed as incomplete and inactive
* #8618: assigned to octachron
# June 28 2023
Working through "Non-bug report issues with no assignee"
* Closed #12115 without further input from submitter.
* Discussed and labeled #12334; will let the conversation unfold; in the meantime, assigned to garrigue
* #12330: assigned to submitter, as requested
* #12329: Cannot repro; assigned to Florian to follow up
* #12317: Wait for the associated PR to be resolved
* #12305: assigned to gasche
* #12280: agreed not to consider syntax-error-messages bugs (and updated the query to exclude these)
* #12250: assigned to octachron
* #12241: assigned to gasche
* #12232: assigned to lthls
* #12230: asked for volunteers
* #12207: assigned to lthls
* #12204: assigned to goldfirere
* #12175: assigned to gasche
# June 14 2023
# May 31 2023
## General platform discussion
* Anil: Who needs PowerPC account?
+ Damien: I don't need one.
+ KC: Planning to review the PR and would like to have an account.
* Anil: Readiness issue for 5.1
+ https://github.com/ocaml/opam-repository/issues/23669
+ It is getting really hard to use trunk on opam.
+ With LSP server, options packages, Windows testing getting complex.
+ Anil: What do we need for 5.1 release?
+ Florian: Change in the parsetree incoming in alpha2. This is going to be the challenging issue.
+ Anil: Can we ask Merlin maintainers to keep a trunk version working?
+ Florian: can be painful.
+ Richard: JS runs into exactly this problem.
+ Idea: Put Merlin inside OCaml and set up the CI to raise failure when Merlin doesn't compile and run tests.
+ Damien: It might be interesting to set up a parallel CI which tests Merlin.
+ How do we set it up?
+ Anil: ocaml-ci can already do this! Can use deploy.ci.ocaml.org or another ocurrent-ci to do a merge of the OCaml PR with merlin sources and see if type changer changes break anything.
+ Anil: Help from Tarides CI and Merlin developers to do this on the Merlin tree.
+ Bulk builds after the beta release of 5.1.
## Triaging
* Looking at 5.1 milestone
+ Issue #10992.
+ PR #12030 making some progress on this.
+ Discussion on mixed-mode accesses: https://github.com/ocaml/ocaml/pull/12030#issuecomment-1570236497
+ Issue #11702
+ Not critical for 5.1
+ Issue #11905
+ Florian to look at this.
+ Issue #12114
+ Too big a change for 5.1. Can merge after 5.1.
+ Issue #11979.
+ Florian will add a breaking change note.
+ Issue #12253.
+ KC to review #11307.
* KC to help run the Sandmark benchmarks comparing 5.0 and 5.1.
* KC reported that statmemprof prototype will be ready in the next few days.
* Distinguish between features that are being restored and new features.
+ Compaction, Statmemprof are broken and are being restored.
+ TSAN are newer features.
* Anil: Can we have quicker release?
* Florian: Shorter release cycle are harder.
* Anil's Idea: 5.2+alpha0 with compaction, TSAN?
* Discussion on #12264.
+ Bug report on 4.14.1 performance regression.
+ Is there a plan to do another 4.14.1 release?
+ Florian: Possibly. If there is an easy bug fix, then willing to have a 4.14.2.
# May 5 2023
- From Anil:
- I hosted WG2.8 and there was a lot of information from users of OCaml who were blocked on 5.x. The three major PRs holding them back are:
- https://github.com/ocaml/ocaml/pull/12193 (compactor) - due to high RSS from programs that allocate at start of day and then compact and run for a long time. (blocking Meta). Sadiq happy to address review items quicky if so.
- https://github.com/ocaml/ocaml/pull/11903 the idle domain PR (blocking Tezos). Has been approved for 5.1
- https://github.com/ocaml/ocaml/pull/12023 changing API of GC.stat. Various bad uses of this have caused "mysterious slowdown" in some codebases.
- So my question is: should we consider how to get the compactor into 5.1? It also helps with locking down the specification of what is movable and what isn't, which in turn helps the design of eio and other libraries that could use non-moving `bytes` of a length >1K.
- Florian: aim for 5.2 for the compactor, get it into trunk asap
- Anil: then we could put a 5.1+compactor+free variant into opam
- Richard: JS cant test this yet as they are still on 4.14.
- Anil: representative test suite benchmarks would be extremely useful (even more so than a review).
- Richard: if we can find an open source project that is representative enough, then that could be something that works.
- Anil: will take this back to Sadiq/KC and come up with a way to test the performance of the compactor in a more focussed way.
- Florian: if there is a list of type system bugfixes in JS that would be good to have in 4.14 then please send it. Planning a 4.14.2 release at some point in the LTS series. Richard: JS will likely hop to 5.x from their current 4.x tree.
- https://github.com/ocaml/ocaml/issues/12189
and
Onto issues:
- https://github.com/ocaml/ocaml/issues/12216
- Vincent: we dont have any architectures that need a scheduling pass any more, so it might not be worth needing. Nothing urgent here
- https://github.com/ocaml/ocaml/issues/12215. Vincent has a quick look and might be a macro hygiene issue with newer glibc.
- https://github.com/ocaml/ocaml/issues/12207
- vincent has submitted pr for this. Not a blocker for 5.1, has been around for a long time.
- Need to create a ocaml-dev-maintainers team with maintain and then Richard (and any others) can be assigned/review PRs more easily. Anil to look with Florian
- https://github.com/ocaml/ocaml/pull/12221 - arm64/openbsd fix, could be ok for 5.1 but needs to get into trunk first.
- https://github.com/ocaml/ocaml/issues/12189 -- florian needs an opinion from this from other type system people to decide to get into 5.1 or not.
- Jane Street folks can also look at the fix PR (https://github.com/ocaml/ocaml/pull/12211)
- https://github.com/ocaml/ocaml/issues/12188
- Jane Street folks can look at the fix (https://github.com/ocaml/ocaml/pull/12191)
# April 21 2023
- https://github.com/ocaml/ocaml/pull/11782 Is it still a 5.1 target? It needs one more review.
- https://github.com/ocaml/ocaml/pull/12185 : new syntax for test scripts
# April 7 2023
Pre-meeting agenda: don't hesitate to add PRs or issues that
would be worth looking at during the meeting.
## Looking at issues from the last week with no assignee.
- https://github.com/ocaml/ocaml/issues/12167
- Seems related to Ancient, Gabriel was assigned to shepherd it.
- https://github.com/ocaml/ocaml/issues/12166
- Maybe close it in wontfix: 32bits codegen is not important?
- Vincent was assigned: will maybe look into it.
- https://github.com/ocaml/ocaml/issues/12161
- Missing cleanup at exit. Can close and link cleanup at exit issue at https://github.com/ocaml/ocaml/issues/10865
- Tarides plans to work on it.
- https://github.com/ocaml/ocaml/issues/12152
- Will assign to Julow: he seemed keen to work on it.
- https://github.com/ocaml/ocaml/issues/12146
- Already a PR at 12147.
- Awaiting for an answer to fix a CI issue after Damien's approval.
- Gabriel answered on 12147 to help fix the CI run: https://github.com/ocaml/ocaml/pull/12147
- https://github.com/ocaml/ocaml/issues/12145
- Assigned Jacques Garrigue.
- Gabriel commented as well.
(We also assigned shephers for various PRs from last week.)
Meta discussion:
- the time is not great for UK people, it coincides with their lunch; maybe move the time again?
- it would be nice to send reminder a bit before each meeting (~24h before)
## Misc
- https://github.com/ocaml/ocaml/issues/12136
- Not urgent: put the typing label.
## Recent PR with no assignees.
- https://github.com/ocaml/ocaml/pull/12162
- No internal review.
- Gabriel to approve on behalf of Stefen Muenzel.
- https://github.com/ocaml/ocaml/pull/12134
- Gabriel already reviewed it. Will resolve the conflict and merge it.
- https://github.com/ocaml/ocaml/pull/12168
- Sebastien was reviewing the previous version. Assigned Sebastien.
- https://github.com/ocaml/ocaml/pull/12163
- Nice proposal
- Gabriel to approve and merge.
- https://github.com/ocaml/ocaml/pull/12160
- Florian to be assigned: he already reviewed it.
- https://github.com/ocaml/ocaml/pull/12158
- Superseeded by 12165? Assigned to Octachron. Let the author decide to close or not the PR themselves.
- https://github.com/ocaml/ocaml/pull/12154
- Need answer from the author: tagged as submitter-action-need
- https://github.com/ocaml/ocaml/pull/12151
- Assigned to Gabriel
- https://github.com/ocaml/ocaml/pull/12150
- Complicated typing PR by Leo.
- Assigned to Jacques Garrigue. (maybe Thomas can look at it?)
- https://github.com/ocaml/ocaml/pull/12140
- Blocked on waiting for Antonin and David.
- https://github.com/ocaml/ocaml/pull/12142
- Ulysse is discussing with Leo.
- Assigned Leo.
- https://github.com/ocaml/ocaml/pull/12144
- (Gabriel) Is it too many codechanges? Can we change the thing in the typetree without touching the parsetree.
- (Vincent) Do we really want to forbid empty records?
- (Gabriel) If we want to later allow empty record: we can revert the changes.
- Maybe too much churn for a non-essential feature.
- Linked to https://github.com/ocaml/ocaml/pull/11148
- Added a few remarks by Basile and Gabriel.
# March 24 2023
## Issues
https://github.com/ocaml/ocaml/issues
- new issues
# March 10 2023
## PRs
- Look at old PRs
[PRs sorted by oldest](https://github.com/ocaml/ocaml/pulls?q=is%3Apr+is%3Aopen+sort%3Acreated-asc)
The goal is not really to close PRs, but maybe we could suggest closing PRs.
(David: some could be converted back to drafts.)
- https://github.com/ocaml/ocaml/pull/102 (improved error messages)
- Suggestion to close this PR
- @Octachron to look through the paper and determine if there are ideas which can be put as issues
- https://github.com/ocaml/ocaml/pull/285
- Should be easy to rebase
- Awaiting feedback from Jacques
- https://github.com/ocaml/ocaml/pull/293
- Turn the proposal into an RFC
- https://github.com/ocaml/ocaml/pull/389, Bigarray.free
- In 4.x, this PR is potentially unsafe in the face of optimisations
- In 5.x, what is the implication for the memory model?
- https://github.com/ocaml/ocaml/pull/717
- Still interest in moving this PR forwards
- Discussion
- Enable -strict-sequence by default #1971
- opam-wide test
- enable if no breakages
## Issues
## Random notes
The github issue bot, when it closes issues, should close them as "won't fix" rather than "solved".
# February 23 2023
## PRs
- https://github.com/ocaml/ocaml/pull/12031 CMO format: store identifiers with standard types rather than Ident.t #12031
- https://github.com/ocaml/ocaml/pull/11900, typecore: clarify the backtracking logic of type_label_exp
- https://github.com/ocaml/ocaml/pull/10775, Half-precision floating-point elements in Bigarray
- https://github.com/ocaml/ocaml/pull/11593, ocamldep: add -strict (error if input doesnt exist)
- https://github.com/ocaml/ocaml/pull/1408 Windows Console Unicode Support
- https://github.com/ocaml/ocaml/pull/8797 Fix use of FILE_FLAG_BACKUP_SEMANTICS in win32unix
- https://github.com/ocaml/ocaml/pull/126 Automatically insert source location
## Issues
- https://github.com/ocaml/ocaml/issues/12032, Segmentation fault on non-exhaustive pattern-matching in let rec
- https://github.com/ocaml/ocaml/issues/12014, Internal error in ocamlc on extreme code: Ctype.Nondep_cannot_erase
- https://github.com/ocaml/ocaml/issues/11922, Uncaught Unify exception with existentials, row variables, and an or-pattern
- https://github.com/ocaml/ocaml/issues/11934, Crash on parallel usage of Weak HashSet
- https://github.com/ocaml/ocaml/issues/9504 Development request: integrate the -short-paths implementation of Merlin
- https://github.com/ocaml/ocaml/issues/10080 Raising Parse_error in ocamlyacc parser action can induce segfault
## RFCs
## Notes
------------------------
# February 6 2023
## RFCs
- Processes for RFCs in the next meeting.
- https://github.com/ocaml/RFCs/pull/26
unit headers for OCaml source files
- https://github.com/ocaml/RFCs/pull/23
compress cmt/cmti files
good experimental results, needs a decision
- https://github.com/ocaml/RFCs/pull/11
functor units and functor packs
and recursive packs:
https://github.com/ocaml/RFCs/pull/20
- https://github.com/ocaml/RFCs/pull/5
Track the purity of expressions to avoid the value restriction
()
- https://github.com/ocaml/RFCs/pull/4
nominal abstract types
- https://github.com/ocaml/RFCs/pull/32
syntactic function arity
## PRs
* https://github.com/ocaml/ocaml/pull/2170
let operators in stdlib
(open for adoption)
* https://github.com/ocaml/ocaml/pull/11877
## Issues
* https://github.com/ocaml/ocaml/issues/11414
Typechecker bug related to include and modules
------------------------
## Notes
Xavier: I like the suggestion to compress artifacts, I think we should look into integrating compression with the Marshaller. Not until April.
Gabriel: should we consider a formal reviewing process for RFCs?
- for each RFC, assign two reviewers
- it's a formal responsibility to review the RFC in full and provide detailed feedback, *and* make an assessment (positive or negative) at the end
- depending on the reviewers feedback, we accept, close the RFC, or ask for a new writing iteration
KC: what is the problem with the current process?
Gabriel: we never look at them and don't take decisions.
Florian: so we need to find an editor/shepherd for each RFC.
David: note that the original RFC author is implicitly volunteering to implement things, so maybe we should check first whether the original author is still interested.
TODO: add Richard @golfirere as a collaborator of github/ocaml/ocaml of some sort so that we can assign him.
Binding operators in the standard library? We should probably consider EduardoRFS's proposal to allow `let*.option` first, as it may influence the naming choices in the standard library.
Leo: I'm not sure what is the current policy regarding labelling and assigning.
# January 13 2023
## PRs
- [11736](https://github.com/ocaml/ocaml/pull/11736)
Modest support for Unicode letters in identifiers
(assigned Florian)
- https://github.com/ocaml/ocaml/pull/11252
Support 'raw identifier' syntax
- https://github.com/ocaml/ocaml/pull/10979
named let syntax
- https://github.com/ocaml/ocaml/pull/11872
Fix #11287 by cleaning up "reserved header bits" in the runtime
- https://github.com/ocaml/ocaml/pull/11474
Custom events for eventring
- small ocamllex/ocamlyacc PRs by DemiMarie:
(who cares? well at least they tend to be quality contributions)
https://github.com/ocaml/ocaml/pull/11718
https://github.com/ocaml/ocaml/pull/11728
https://github.com/ocaml/ocaml/pull/11716
- https://github.com/ocaml/ocaml/pull/11782
Attribute locations of names to uids instead of whole nodes #11782
- https://github.com/ocaml/ocaml/pull/11456
Explicit representation of generative functor application #11456
Note: this PR needs an *adopter* in addition to reviewers
- https://github.com/ocaml/ocaml/pull/10995
Explain mapping between OCaml memory model and C #10995
We probably want the end result of this PR merged, but what is it? Can we trust Stephen to do it eventually, or should someone adopt it? who?
- https://github.com/ocaml/ocaml/pull/10066
Add Printexc.return_address_of_raw_entry
This PR was against 4.x, does it need a rebase? (If so, probably from someone else.)
For review we probably need someone with runtime experience.
- https://github.com/ocaml/ocaml/pull/10787
using local scopes to detect univar escape
- https://github.com/ocaml/ocaml/pull/11232
Ident.compare: remove verbose compare logic
-
## Issues
- https://github.com/ocaml/ocaml/issues/8701
Variance of constrained parameters causes principality issues #8701
Contains a medium-sized proposal for how to change the inference of variance for constrained type parameters, that would fix some bugs and improve variance inference.
(Long term issue)
### Bugs
- https://github.com/ocaml/ocaml/issues/10027
Compiler crash instead of error (with exception using inline record, and rectypes on)
The problematic example seems fixed in trunk
TODO: check that the issue is indeed really fixed by the suspected PR, or determine what change fixed it, and close the issue.
- https://github.com/ocaml/ocaml/issues/7826
a regression in type-checking time caused by
https://github.com/ocaml/ocaml/commit/15e8f62b851a8cf5e4a88d6d674f7c171cc1ae35
that negatively affects Coq-extracted code
(assigned Leo)
- https://github.com/ocaml/ocaml/issues/4134
A tiny bug in type checking recursive modules #4134
(long-term issue)
- https://github.com/ocaml/ocaml/pull/717
Pattern matching with mutable and lazy patterns is unsound
the proposed bugfix needs a rebase,
and we need a volunter for a long discussion session
with Luc to understand the proposed fix
### Feature requests
## RFCs
- Processes for RFCs in the next meeting.
- https://github.com/ocaml/RFCs/pull/26
unit headers for OCaml source files
- https://github.com/ocaml/RFCs/pull/23
compress cmt/cmti files
good experimental results, needs a decision
- https://github.com/ocaml/RFCs/pull/11
functor units and functor packs
and recursive packs:
https://github.com/ocaml/RFCs/pull/20
- https://github.com/ocaml/RFCs/pull/5
Track the purity of expressions to avoid the value restriction
- https://github.com/ocaml/RFCs/pull/4
nominal abstract types
- https://github.com/ocaml/RFCs/pull/32
syntactic function arity