package core
Install
Dune Dependency
Authors
Maintainers
Sources
md5=743a141234e04210e295980f7a78a6d9
sha512=61b415f4fb12c78d30649fff1aabe3a475eea926ce6edb7774031f4dc7f37ea51f5d9337ead6ec73cd93da5fd1ed0f2738c210c71ebc8fe9d7f6135a06bd176f
CHANGES.md.html
Release v0.17.0
Bool.Stable.V1
:Add
hash
.Expose a comparator, type-equal to the unstable one.
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
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_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.
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
Release v0.16.0
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.
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
.
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
.
Comparable
:Renamed
Polymorphic_compare
toComparisons
.Added
Stable.V1.With_stable_witness.Make
.
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
.
Day_of_week
:Add deriving
sexp_grammar
andtyperep
.Add deriving
sexp_grammar
toStable.V1
.
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
.
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
.
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
.
Maybe_bound
:Added deriving
equal
andhash
tot
,As_lower_bound.t
, andAs_upper_bound.t
.
Option
:Added deriving
equal
andhash
toStable.V1
.
Or_error
:Deprecated
Expect_test_config_with_unit_expect
, as[%expect]
now always has type unit.
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
.
Addressed precision issues.
Added
*_slow_more_accurate
versions ofof_percentage
,to_percentage
,of_bp
, andto_bp
.Documented caveats on the original versions.
Added
t_sexp_grammar
,one_hundred_percent
.
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
.
Set_once
:Added documentation of
equal
semantics.Added deriving
compare
andequal
.
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
.
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
.
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
.