Changes that affect multiple modules:
Caml with Stdlib.stable_witness values to many stable-version submodules.Added support for locally-allocated values.
[@local] to many function arguments, especially closures.[@local_opt] to primitives, and exported more primitives explicitly.globalize to some types.Changes to individual modules:
Array: Added fold_map and fold_mapi.Bigstring:
get_head_padded_fixed_string_local, get_tail_padded_fixed_string_local, and write_bin_prot_known_size.unsafe_destroy.Binable: Removed deprecated functor aliases.Binary_searchable: Added S0_permissions signature.Bounded_index: Added zero_based_index and num_indexes.Byte_units: Add abs, sign, and neg.Command:
Core.Core-dependent types.Command.basic_or_error.Arg_type.parse and Arg_type.autocomplete.Flag.escape_with_autocomplete, Flag.no_arg_required, and Flag.no_arg_abort.Flag.one_or_more.Param.choose_one_non_optional, Param.optional_to_required, and Param.parse.Comparable:
Polymorphic_compare to Comparisons.Stable.V1.With_stable_witness.Make.Container: Added S0_permissions and S1_with_creators_permissions.Date:
is_weekday or is_weekend.round_forward_to_weekday, round_backward_to_weekday, round_forward_to_business_day, and round_backward_to_business_day.Stable.V1.Option.to_int and Stable.V1.Option.of_int_exn.Day_of_week:
sexp_grammar and typerep.sexp_grammar to Stable.V1.Doubly_linked: Add first_exn and last_exn.Filename: split out Filename_base library for parts not dependent on Core.Float: add Stable.V1.Gc:
Stat.add.stat_size.prepare_heap_to_count_minor_allocation.Hashable: Add Stable.V1.With_stable_witness.Hashtbl: Add Make_stable and Make_stable_with_hashable.Hash_queue: Add to_alist, replace_or_enqueue, replace_or_enqueue_front, and replace_or_enqueue_back.Hash_set: Add Make_stable and Make_stable_with_hashable.Heap_block: Moved to its own Heap_block library.Identifiable: Add Make_plain_using_comparator.Indexed_container: Added this module. It exports S1_permissions and S1_with_creators_permissions, defined by analogy to the same names in Container.Info: Added Stable.V2.t_sexp_grammar.Int: Exported comparator_witness equivalence with Base.Int.Int63:
comparator_witness equivalence with Base.Int.Stable.V1.Lazy: Exported t_stable_witness.List: remove deprecated function stable_dedup.Map:
*_generic versions.t injective in all three type parameters.comparator type with Comparator.Module.t.comparator.quickcheck_observer and quickcheck_shrinker to S_plain.of_list_with_key, of_list_with_key_or_error, of_list_with_key_exn, of_list_with_key_multi, split_le_gt, split_lt_ge, and transpose_keys.Make_applicative_traversals, providing mapi and filter_mapi that operate lazily inside an applicative.Stable.V1.With_stable_witness.Maybe_bound:
equal and hash to t, As_lower_bound.t, and As_upper_bound.t.Option:
equal and hash to Stable.V1.Or_error:
Expect_test_config_with_unit_expect, as [%expect] now always has type unit.Percent:
Addressed round-trippability via strings and sexps.
to_string_round_trippable.Stringable and Sexpable implementations.Stable.V1.Stable.V2 based on t_of_sexp / sexp_of_t and documented caveats.Stable.V3 as a fully round-trippable version.Option.Stable.Always_percentage.Almost_round_trippable as a more human-readable format than Stable.V3.Addressed precision issues.
*_slow_more_accurate versions of of_percentage, to_percentage, of_bp, and to_bp.t_sexp_grammar, one_hundred_percent.Pid: Added deriving quickcheck.Quickcheck: Updated implementation and documentation of geometric. Swapped argument order.Sequence: Added inlined records to Step.t.Set:
*_generic versions.comparator type with Comparator.Module.t.comparator_s.split.split_le_gt and split_lt_ge.Stable.V1.With_Stable_Witness.Set_once:
equal semantics.compare and equal.Sexp: Added deriving equal and sexp_grammar to Stable.V1.t.String_id:
Make.Make_with_distinct_bin_shape.Time_float: Updated deprecation messages to mention Time_float_unix instead of Time_unix.Time_ns:
equal and hash to Stable.V1.Ofday.of_int_* conversions to Span.Random.State argument to Span.randomize.Stable.Option submodule.Stable submodule.V1, Option.V1, and Option.V2 from Span.Stable.hash, equal, and sexp_grammar to Span.Stable.V2.Tuple: Added T2.map_both and T3.map_all.Unit: Added Stable.V2 with zero-width bin-io.Univ_map: Moved to its own Univ_map library.Validated: Added S_allowing_substitution.