package base
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
On This Page
Full standard library replacement for OCaml
Install
dune-project
Dependency
Authors
Maintainers
Sources
v0.12.2.tar.gz
sha256=0aa8fa8778412c67c38d40e9859bfa5871c4f9c25991f09fea201ae6aaf1d0d9
md5=7150e848a730369a2549d01645fb6c72
doc/CHANGES.html
git version
Ordered_collection_common.get_pos_lennow returns anOr_error.t- Added
Bool.Non_short_circuiting. - Added
Float.square. - Remove module
Or_error.Ok. - module
Refdoesn't implementContainer.S1anymore. - Rename parameter of
Sequence.mergefromcmptocompare. - Added
Info.of_lazy_t - Added
List.partition_resultfunction, to partition a list ofResult.tvalues - Changed the signature of
equalfrom'a t -> 'a t -> equal:('a -> 'a -> bool) -> boolto('a -> 'a -> bool) -> 'a t -> 'a t -> bool. - Optimized
Lazy.compareto check physical equality before forcing the lazy values. - Deprecated
Argsin theApplicativeinterface in favor of usingppx_let. - Deprecated
Array.replace arr i ~fin favor of usingarr.(i) <- (f (arr.(i))) - Rename collection length parameter of
Ordered_collection_commonfunctions fromlengthtototal_length, and add a unit argument toget_pos_lenandget_pos_len_exn. - Removed functions that were deprecated in 2016 from the
ArrayandSetmodules. - [Int.Hex.of_string] and friends no longer silently ignore a suffix of non-hexadecimal garbage.
- Added
?backtraceargument toOr_error.of_exn_result. List.zipnow returns aList.Or_unequal_lengths.tinstead of anoption.- Remove functions from the
Sequencemodule that were deprecated in 2015. Container.MakeandContainer.Make0now require callers to either provide a customlengthfunction or request that one be derived fromfold.Container.to_array's signature is also changed to acceptlengthanditerinstead offold.
v0.11
- Deprecated
Not_found, people who need it can useCaml.Not_found, but its use isn't recommended. - Added the
Sexp.Not_found_sexception which will replaceCaml.Not_foundas the default exception in a future release. - Document that
Array.find_exn,Array.find_map_exn, andArray.findi_exnmay throwCaml.Not_foundorNot_found_s. - Document that
Hashtbl.find_exnmay throwCaml.Not_foundorNot_found_s. - Document that
List.find_exn, andList.find_map_exnmay throwCaml.Not_foundorNot_found_s. - Document that
List.find_exnmay throwCaml.Not_foundorNot_found_s. - Document that
String.lsplit2_exn, andString.rsplit2_exnmay throwCaml.Not_foundorNot_found_s. - Added
Sys.backend_type. - Removed unnecessary unit argument from
Hashtbl.create. - Removed deprecated operations from
Hashtbl. - Removed
Hashable.tconstructors fromHashtblandHash_set, instead favoring the first-class module constructors. - Removed
Containeroperations fromEither.FirstandEither.Second. - Changed the type of
fold_untilin theContainerinterfaces. Rather than returning aFinished_or_stopped_early.t(which has also been removed), the function now takes afinishfunction that will be applied the result iffnever returned aStop _. - Removed the
String_dictmodule. - Added a
Queuemodule that is backed by anOption_arrayfor efficient and (non-allocating) implementations of most operations. - Added a
Polysubmodule toMapandSetthat exposes constructors that use polymorphic compare. - Deprecated
all_ignorein theMonadandApplicativeinterfaces in favor ofall_unit. - Deprecated
Array.replace_allin favor ofArray.map_inplace, which is the standard name for that sort of operation within Base. - Document that
List.find_exn, andList.find_map_exnmay throwCaml.Not_foundorNot_found_s. - Make
~comparea required argument toList.dedup_and_sort,List.dedup,List.find_a_dup,List.contains_dup, andList.find_all_dups. - Removed
List.exn_if_dup. It is still available in core_kernel. - Removed "normalized" index operation
List.slice. It is still available in core_kernel. - Remove "normalized" index operations from
Array, which inclucedArray.normalize,Array.slice,Array.ngetandArray.nset. These operations are still available in core_kernel. - Added
Uniform_arraymodule that is just like anArrayexcept guarantees that the representation array is not tagged withDouble_array_tag, the tag for float arrays. - Added
Option_arraymodule that allows for a compact representation of'a optoin array, which avoids allocating heap objects representingSome a. - Remove "normalized" index operations from
String, which inclucedString.normalize,String.slice,String.ngetandString.nset. These operations are still available in core_kernel. - Added missing conversions between
Int63and other integer types, specifically, the versions that return options. - Added truncating versions of integer conversions, with a suffix of
_trunc. These allow fast conversions via bit arithmetic without any conditional failure; excess bits beyond the width of the output type are simply dropped. - Added
Sequence.group, similar toList.group. - Reimplemented
String.Caseless.compareso that it does not allocate. - Added
String.is_substring_at string ~pos ~substring. Used it as back-end foris_suffixandis_prefix. - Moved all remaining
Replace_polymorphic_comparesubmodules from Base types and consolidated them in one place withinImport0. - Removed
(<=.)and its friends. - Added
Sys.argv. - Added a infix exponentation operator for int.
- Added a
Formattermodule to reexport theFormat.formattertype and updated the deprecation message forFormat.
v0.10
(Changes that can break existing programs are marked with a "*")
Bugfixes
- Generalized the type of
Printf.ifprintfto reflect OCaml's stdlib. - Made
Sequence.fold_manditer_mrespectSkipsteps and explicitly bind when they occur. - Changed
Float.is_negativeandis_non_positiveonNaNto returnfalserather thantrue. - Fixed the
Validate.protectfunction, which was mistakenly raising exceptions.
API changes
- Renamed
Map.addasset, and deprecatedadd. A later feature will addaddandadd_exnin the style ofHashtbl. - A different hash function is used to implement [Base.Int.hash]. The old implementation was [Int.abs] but collision resistance is not enough, we want avalanching as well. The new function is an adaptation of one of the Thomas Wang hash functions to OCaml (63-bit integers), which results in reasonably good avalanching.
- Made
open Baseexpose infix float operators (+., -., etc.).
- Renamed
List.deduptoList.dedup_and_sort, to better reflect its existing behavior.
- Added
Hashtbl.find_multiandMap.find_multi. - Added function
Map.of_increasing_sequencefor constructing aMap.tfrom an orderedSequence.t - Added function
List.chunks_of : 'a t -> length : int -> 'a t t, for breaking a list into chunks of equal length. - Add to module
Randomnumeric functions that take upper and lower inclusive bounds, e.g.Random.int_incl : int -> int -> int.
- Replaced
Exn.Never_elide_backtracewithBacktrace.elide, arefcell that determines whetherBacktrace.to_stringandBacktrace.sexp_of_telide backtraces.
- Exposed infix operator
Base.( @@ ). - Exposed modules
Base.Continue_or_stopandFinished_or_stopped_early, used with theContainer.fold_untilfunction. - Exposed module types Base.T, T1, T2, and T3.
- Added
Sequence.Expertfunctionsnext_stepanddelayed_fold_step, for clients that want to explicitly handleSkipsteps. - Added
Bytesmodule. This includes the submodulesFrom_stringandTo_stringwith blit functions. N.B. the signature (and name) ofunsafe_to_stringandunsafe_of_stringare different from the one in the standard library (and hopefully more explicit). - Add bytes functions to
Buffer. Also addedBuffer.content_bytes, the analog ofcontentsbut that returnsbytesrather thanstring.
- Enabled
-safe-string.
- Added function
Int63.of_int32, which was missing.
- Deprecated a number of
Stringmutating functions.
- Added module
Obj_array, moved in fromCore_kernel.
- In module type
Hashtbl.Accessors, removed deprecated functions, moving them into a new module type,Deprecated.
- Exported
sexp_*types that are recognized byppx_sexp_*converters:sexp_array,sexp_list,sexp_opaque,sexp_option.
- Reworked the
Or_errormodule's interface, moving theContainer.Sinterface to anOksubmodule, and adding functionsis_ok,is_error, andokto more closely resemble the interface of theResultmodule.
- Removed
Int.O.of_int_exn. - Exposed
Base.forcefunction. - Changed the deprecation warning for
modto recommend( % )rather thanCaml.( mod ).
Performance related changes
- Optimized
List.compare, removing its closure allocation. - Optimized
String.memto not allocate. - Optimized
Float.is_negative,is_non_negative,is_positive, andis_non_positiveto avoid some boxing. - Changed
Hashtbl.mergeto relax its equality check on the input tables'Hashable.trecords, checking physical equality componentwise if the records aren't physically equal. - Added
Result.combine_errors, similar toOr_error.combine_errors, with a slightly different type. - Added
Result.combine_errors_unit, similar toOr_error.combine_errors_unit. - Optimized the
With_return.returntype by adding the[@@unboxed]attribute. - Improved a number of deprecation warnings.
v0.9
Initial release.
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
On This Page