Skip to content

Commit

Permalink
io: Announce support for enum class with non default undelying size.
Browse files Browse the repository at this point in the history
Also announce increase of `TStreamerInfo` version to 10
  • Loading branch information
pcanal committed Jan 30, 2025
1 parent 523c38f commit c3ad9e9
Showing 1 changed file with 3 additions and 0 deletions.
3 changes: 3 additions & 0 deletions README/ReleaseNotes/v636/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,9 @@ The following people have contributed to this new version:
[RNTupleMergeOptions](https://root.cern/doc/v634/structROOT_1_1Experimental_1_1Internal_1_1RNTupleMergeOptions.html));
* "rntuple.ErrBehavior=(Abort|Skip)": RNTuple-specific option that specifies the behavior of the RNTupleMerger on error (see link above);
* "rntuple.ExtraVerbose": RNTuple-specific option that tells the RNTupleMerger to emit more information during the merge process.
* Added support for `enum class` with a non default underlying size, for example `enum smallenum: std::int16_t`. The default is 32 bits. All enums, independently of their in memory size are stored on file using 32 bits to enable forward compatibility of the file; files created with a `enum class` with a non default underlying size can be read with old version of ROOT into a `enum` type of default size.
* * Note: `enum class` with an underlying size strictly greater than 32 bits are not supported since they would be truncated when stored on file.
* The version number of `TStreamerInfo` has been increase to 10 to encoded the addition of the support for `enum class` with a non default underlying size. This allows the opportunity to detect files written by old version of ROOT (`v9` and older of `TStreamerInfo`) where `enum class` with a non default underlying size where stored incorrectly but recoverably. Those files can be recover by using I/O customization rules that takes in consideration their size at the time of writing (this information is not recorded in the `ROOT` file). See https://github.com/root-project/root/pull/17009#issuecomment-2522228598 for some examples.
* New attribute for I/O customization rules: `CanIgnore`. When using this attribute the rule will be ignored if the input is missing from the schema/class-layout they apply to instead of issue a `Warning`

## RDataFrame
Expand Down

0 comments on commit c3ad9e9

Please sign in to comment.