-
Bool.Stable.V1
:- Add
hash
. - Expose a comparator, type-equal to the unstable one.
- Add
-
Timezones can be used from javascript targets without needing to bundle and serve a copy of the unix timezone database.
-
Add support for
@@deriving diff
to core. -
Bigstring
:- Remove
max_mem_waiting_gc_in_bytes
parameter fromBigstring.create
- Add functions:
Bigstring.unsafe_memset
for filling a range with a character without bounds checksBigstring.memcmp_string
for efficient comparison betweenBigstring
andstring
dataBigstring.get_string
and some variants of it, as alternatives toBigstring.to_string
. These are nice because they follow the convention of theBigstring.get_int*
functions, and in particular avoid optional arguments.
- Remove
-
Remove
Diffable_comparable
from core. It is no longer necessary now thatMap
andSet
includeDiffable.S
. -
Make
Map
andSet
implementDiffable.S
. -
Updated
Container.Generic
to allow two phantom type parameters. -
Make
Error
,Result
,Or_error
,Percent
,String_id.S
,Date
,Span
andOfday
implementDiffable.S
. -
Added
Utf8
,Utf16le
,Utf16be
,Utf32le
andUtf32be
submodules toUchar
andString
for Unicode encoding support. -
Add a
Binary
submodule toInt
,Int32
, etc, which provideto_string
andsexp_of_t
with syntax matching the OCaml binary int literal syntax. -
Add Quickcheck generator to
Uchar.t
and add Quickcheck generators toString
for generating valid Unicode strings in different encodings. -
Update the type of
Quickcheck.Generator.create
andQuickcheck.Generator.generate
to useSplittable_random.t
instead ofSplittable_random.State.t
. The former is simply a shorter alias for the latter. -
Byte_units
:- Add
[@@deriving typerep]
- Add quickcheck
gen_incl
andgen_uniform_incl
.
- Add
-
Add
add_validate_parsing_flag
parameter toCommand.run
, enabling a-validate-parsing
flag in all subcommands. The command immediately exits with a return code of 0 if argument parsing is successful. -
Add
Bin_prot
support for writing locally-allocated values inArray
,Bigstring
,Blang
,Bool
,Bytes
,Char
,Date
,Either
,Filename
,Float
,Int
,Int32
,Int64
,Lazy
,List
,Maybe_bound
,Nativeint
,Option
,Ref
,Result
,String
,Unit
-
Add
Bin_prot.Writer.to_bigstring
andBin_prot.Reader.of_bigstring
, for converting directly between a value and a buffer containing precisely the serialization of that value. -
Add
Binable.S_local
interface, reflecting support for writing locally-allocated values. -
Add
Comparable
support for locally-allocated values inLazy
-
Add
[@@deriving equal]
to a number of stable types:Byte_units.Stable.V2
,Day_of_week.Stable.V1
,Either.Stable.V1
,Fdeque.Stable.V1
,Fqueue.Stable.V1
,Int63.Stable.V1
,List.Stable.V1
,Md5.Stable.V1
,Nothing.Stable.V1
,Percent.Stable.V3
,Pid.Stable.V1
,Queue.Stable.V1
,Result.Stable.V1
,Set_once.Stable.V1
,Source_code_position.Stable.V1
,Unit.Stable.V2
-
Add
[@@deriving equal]
to types exposed byPerms
. -
Expose the fact that
Pid.t
is an immediate. -
Add
Char.Stable
. -
Add
Comparable.Extend_plain
, which is likeComparable.Extend
but only requiressexp_of_t
and nott_of_sexp
. -
Remove or limit usage of
[@@deriving fields]
to reduce bloat in:Command.Shape
,Gc
,Source_code_position
-
Add
Float.Stable.V1.globalize
-
Changes in
Gc
to support the OCaml 5 runtime:- In documentation for
Gc.Stat
, indicateheap_words
,heap_chunks
,free_blocks
,largest_free
,top_heap_words
, andstack_size
metrics are not available in OCaml 5 runtime, defaulting to0
. - In documentation for
Gc.Control
:- Include behavior under OCaml 5 runtime for
minor_heap_size
, detailing the total size of the minor heap across active domains. - Update default
space_overhead
value documentation to reflect differences between OCaml 4 and OCaml 5 runtimes. - Add new flag
0x400
toControl.verbose
for outputting GC statistics at program exit in OCaml 5 runtime. - Update
Gc.stat
andquick_stat
function documentation to reflect behavior differences between OCaml 4 and OCaml 5 runtimes, emphasizing approximation of GC statistics in OCaml 5 due to per-domain buffers. - Clarify
counters
function's return values may differ betweenquick_stat
and itself under OCaml 5 runtime, detailing accuracy in single-domain scenarios. - Note potential overflow of integers returned by GC statistics functions on 32-bit machines and clarify accuracy of
minor_words
in byte-code versus native code programs.
- Include behavior under OCaml 5 runtime for
- In documentation for
-
Additional
Gc
support for locally-allocated values. -
Add
Sexp_grammar
support toChar.Stable.V1
,Filename.Stable.V1
,Host_and_port
,Maybe_bound.Stable.V1
,Nothing.Stable.V1
Time_ns.Ofday.Stable.V1
,Result.Stable.V1
,Time_ns.Ofday.Stable.V1
,Time_ns.Span.Stable.V1
-
Add
Host_and_port.Hide_port_in_tests
, re-exposing the type with test-friendly serialization which elides the port. -
Deprecate
List.stable_dedup_staged
andSet.stable_dedup_list
in favor ofList.stable_dedup
-
Deprecate
Map.comparator
in favor ofMap.Comparator.Module.t
-
Add new
Map
functions:Map.of_list_with_key_fold
to resolve duplicate keys by folding values.Map.of_list_with_key_reduce
to resolve duplicate keys by reducing values.Map.unzip
to transform a map of tuples into a tuple of maps.Map.merge_disjoint_exn
to merge two maps with disjoint keys, raising an exception if any keys overlap.Map.sum
andMap.sumi
for summing values with a provided summable type and function.
-
Add
[@@deriving sexp_of]
toSubstring
. -
Improve
Time.to_sec_string
documentation. -
Add fast, approximate rounding functions to
Time_ns.Span
. -
Add
Time_ns.O
andTime_ns.Span.O
, containing infix operators. -
Improve
Time_ns.next_multiple
andTime_ns.prev_multiple
documentation. -
Add
For_testing.reset_counter
toUnique_id.Id
. -
Add support for validating locally-allocated values to
Validated
. -
Add new functions to
Univ_map
:key_id_set
, exposing the set of rawUid
keysfind_packed_by_id
andfind_packed_by_id_exn
, allowing lookup by rawUid
key
Changes that affect multiple modules:
-
Replaced references to
Caml
withStdlib
. -
Added
stable_witness
values to many stable-version submodules. -
Added support for locally-allocated values.
- Added
[@local]
to many function arguments, especially closures. - Added
[@local_opt]
to primitives, and exported more primitives explicitly. - Added deriving
globalize
to some types.
- Added
Changes to individual modules:
-
Array
: Addedfold_map
andfold_mapi
. -
Bigstring
:- Added
get_head_padded_fixed_string_local
,get_tail_padded_fixed_string_local
, andwrite_bin_prot_known_size
. - Updated documentation for
unsafe_destroy
.
- Added
-
Binable
: Removed deprecated functor aliases. -
Binary_searchable
: AddedS0_permissions
signature. -
Bounded_index
: Addedzero_based_index
andnum_indexes
. -
Byte_units
: Addabs
,sign
, andneg
. -
Command
:- Moved to its own library. Still re-exported from
Core
. - Removed references to
Core
-dependent types. - No longer exports process-management functions.
- Added
Command.basic_or_error
. - Added
Arg_type.parse
andArg_type.autocomplete
. - Added
Flag.escape_with_autocomplete
,Flag.no_arg_required
, andFlag.no_arg_abort
. - Removed deprecated function
Flag.one_or_more
. - Added
Param.choose_one_non_optional
,Param.optional_to_required
, andParam.parse
.
- Moved to its own library. Still re-exported from
-
Comparable
:- Renamed
Polymorphic_compare
toComparisons
. - Added
Stable.V1.With_stable_witness.Make
.
- Renamed
-
Container
: AddedS0_permissions
andS1_with_creators_permissions
. -
Date
:- Document caveats for functions based on
is_weekday
oris_weekend
. - Add
round_forward_to_weekday
,round_backward_to_weekday
,round_forward_to_business_day
, andround_backward_to_business_day
. - Add
Stable.V1.Option.to_int
andStable.V1.Option.of_int_exn
.
- Document caveats for functions based on
-
Day_of_week
:- Add deriving
sexp_grammar
andtyperep
. - Add deriving
sexp_grammar
toStable.V1
.
- Add deriving
-
Doubly_linked
: Addfirst_exn
andlast_exn
. -
Filename
: split outFilename_base
library for parts not dependent onCore
. -
Float
: addStable.V1
. -
Gc
:- Add
Stat.add
. - Add
stat_size
. - Remove
prepare_heap_to_count_minor_allocation
.
- Add
-
Hashable
: AddStable.V1.With_stable_witness
. -
Hashtbl
: AddMake_stable
andMake_stable_with_hashable
. -
Hash_queue
: Addto_alist
,replace_or_enqueue
,replace_or_enqueue_front
, andreplace_or_enqueue_back
. -
Hash_set
: AddMake_stable
andMake_stable_with_hashable
. -
Heap_block
: Moved to its ownHeap_block
library. -
Identifiable
: AddMake_plain_using_comparator
. -
Indexed_container
: Added this module. It exportsS1_permissions
andS1_with_creators_permissions
, defined by analogy to the same names inContainer
. -
Info
: AddedStable.V2.t_sexp_grammar
. -
Int
: Exportedcomparator_witness
equivalence withBase.Int
. -
Int63
:- Exported
comparator_witness
equivalence withBase.Int
. - Added
Stable.V1
.
- Exported
-
Lazy
: Exportedt_stable_witness
. -
List
: remove deprecated functionstable_dedup
. -
Map
:- Removed creator/accessor signatures except
*_generic
versions. - Made
t
injective in all three type parameters. - Replaced references to
comparator
type withComparator.Module.t
. - Removed deprecated type alias
comparator
. - Reworded documentation on Tree types.
- Added
quickcheck_observer
andquickcheck_shrinker
toS_plain
. - Added
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
, andtranspose_keys
. - Added
Make_applicative_traversals
, providingmapi
andfilter_mapi
that operate lazily inside an applicative. - Added
Stable.V1.With_stable_witness
.
- Removed creator/accessor signatures except
-
Maybe_bound
:- Added deriving
equal
andhash
tot
,As_lower_bound.t
, andAs_upper_bound.t
.
- Added deriving
-
Option
:- Added deriving
equal
andhash
toStable.V1
.
- Added deriving
-
Or_error
:- Deprecated
Expect_test_config_with_unit_expect
, as[%expect]
now always has type unit.
- Deprecated
-
Percent
:- Addressed round-trippability via strings and sexps.
- Added
to_string_round_trippable
. - Documented caveats about
Stringable
andSexpable
implementations. - Documented caveats on
Stable.V1
. - Added
Stable.V2
based ont_of_sexp
/sexp_of_t
and documented caveats. - Added
Stable.V3
as a fully round-trippable version. - Made similar updates to
Option.Stable
. - Documented caveats on
Always_percentage
. - Added
Almost_round_trippable
as a more human-readable format thanStable.V3
.
- Added
- Addressed precision issues.
- Added
*_slow_more_accurate
versions ofof_percentage
,to_percentage
,of_bp
, andto_bp
. - Documented caveats on the original versions.
- Added
- Added
t_sexp_grammar
,one_hundred_percent
.
- Addressed round-trippability via strings and sexps.
-
Pid
: Added derivingquickcheck
. -
Quickcheck
: Updated implementation and documentation ofgeometric
. Swapped argument order. -
Sequence
: Added inlined records toStep.t
. -
Set
:- Removed creator/accessor signatures except
*_generic
versions. - Replaced references to
comparator
type withComparator.Module.t
. - Added
comparator_s
. - Updated documentation of
split
. - Added
split_le_gt
andsplit_lt_ge
. - Added
Stable.V1.With_Stable_Witness
.
- Removed creator/accessor signatures except
-
Set_once
:- Added documentation of
equal
semantics. - Added deriving
compare
andequal
.
- Added documentation of
-
Sexp
: Added derivingequal
andsexp_grammar
toStable.V1.t
. -
String_id
:- Documented shared bin shape for all modules created by
Make
. - Added
Make_with_distinct_bin_shape
.
- Documented shared bin shape for all modules created by
-
Time_float
: Updated deprecation messages to mentionTime_float_unix
instead ofTime_unix
. -
Time_ns
:- Added deriving
equal
andhash
toStable.V1.Ofday
. - Added more
of_int_*
conversions toSpan
. - Added optional
Random.State
argument toSpan.randomize
. - Removed deprecated submodules from
Stable
. - Exported
Option
submodule. - Exported
Stable
submodule. - Exported
V1
,Option.V1
, andOption.V2
fromSpan.Stable
. - Added deriving
hash
,equal
, andsexp_grammar
toSpan.Stable.V2
.
- Added deriving
-
Tuple
: AddedT2.map_both
andT3.map_all
. -
Unit
: AddedStable.V2
with zero-width bin-io. -
Univ_map
: Moved to its ownUniv_map
library. -
Validated
: AddedS_allowing_substitution
.