compiler packages for the OCaml 5.3.0~beta1 #26822
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR adds three packages for the first beta release of OCaml 5.3.0:
ocaml-base--compiler
andocaml-variants
packagesocaml-compiler
packageCompared to the first alpha, this beta includes 3 runtime fixes, 2 type system fix and a handful numbers of fixes for the runtime event library. This beta also adds a new
-keywords
compatibility flag in order to help compiling old code that are using the new keywordeffect
as a standard identifier.Changes compared to the first alpha:
Runtime bug fixes
(13502): Fix misindexing related to
Gc.finalise_last
that could preventfinalisers from being run.
(Nick Roberts, review by Mark Shinwell)
(13402), (13512), (13549), (13553): Revise bytecode implementation of callbacks
so that it no longer produces dangling registered bytecode fragments.
(Xavier Leroy, report by Jan Midtgaard, analysis by Stephen Dolan,
review by Miod Vallat)
(13520): Fix compilation of native-code version of systhreads. Bytecode fields
were being included in the thread descriptors.
(David Allsopp, review by Sébastien Hinderer and Miod Vallat)
Type system bug fixes
(13579), (13583): Unsoundness involving non-injective types + gadts
(Jacques Garrigue, report by @v-gb,
review by Richard Eisenberg and Florian Angeletti)
(13388), (13540): raises an error message (and not an internal compiler error)
when two local substitutions are incompatible (for instance
module type S:=sig end type t:=(module S)
)(Florian Angeletti, report by Nailen Matschke, review by Gabriel Scherer, and
Leo White)
Compiler CLI
-keywords <version?+list>
flag to define the list of keywordsrecognized by the lexer, for instance
-keywords 5.2
disable theeffect
keyword.
(Florian Angeletti, review by Gabriel Scherer)
Runtime event library fixes
(13419): Fix memory bugs in runtime events system.
(B. Szilvasy and Nick Barnes, review by Miod Vallat, Nick Barnes,
Tim McGilchrist, and Gabriel Scherer)
(13407): Add Runtime_events.EV_EMPTY_MINOR
(Thomas Leonard)
(13522): Confirm runtime events ring is still active after callback.
(KC Sivaramakrishnan, review by Sadiq Jaffer and Miod Vallat)
(13529): Do not write to event ring after going out of stw participant set.
(KC Sivaramakrishnan, review by Sadiq Jaffer)
Documentation
(13424): Fix
Gc.quick_stat
documentation to clarify that returned fieldslive_words
,live_blocks
,free_words
, andfragments
are not zero.(Jan Midtgaard, review by Damien Doligez and KC Sivaramakrishnan)
(13440): Update documentation of
Gc.{control,get,set}
to reflect fieldsnot currently supported on OCaml 5.
(Jan Midtgaard, review by Gabriel Scherer)
(13469), (13474), (13535): Document that [Hashtbl.create n] creates a hash table
with a default minimal size, even if [n] is very small or negative.
(Antonin Décimo, Nick Bares, report by Nikolaus Huber and Jan Midtgaard,
review by Florian Angeletti, Anil Madhavapeddy, Gabriel Scherer,
and Miod Vallat)
Standard library internal fix
with js_of_ocaml
(Hugo Heuzard, review by Gabriel Scherer)
Toplevel bug fix
messages (no more unexpected #true)
(Florian Angeletti, report by Samuel Vivien, review by Gabriel Scherer)
Compiler internals
-dsource
when usingraw literal inside a locally abstract type constraint
(i.e.
let f: type \#for. ...
)(Florian Angeletti, report by Nick Roberts, review by Richard Eisenberg)