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.14.3.tar.gz
sha256=e34dc0dd052a386c84f5f67e71a90720dff76e0edd01f431604404bee86ebe5a
doc/CHANGES.html
git version
- Renamed
Result.ok_fsttoResult.to_either(old name remains as deprecated alias). Added analogousResult.of_eitherfunction. - Removed deprecated values
Array.truncate,{Obj_array, Uniform_array}.unsafe_truncate,Result.ok_unit,{Result, Or_error}.ignore. - Changed the signature of
Hashtbl.equalto take the data equality function first, allowing it to be used with[%equal: t]. - Remove deprecated function
List.dedup. - Remove deprecated string mutation functions from the
Stringmodule. - Removed deprecated function
Monad.all_ignorein favor ofMonad.all_unit. - Deprecated
Or_error.ignoreandResult.ignorein favor ofOr_error.ignore_mandResult.ignore_m. 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_stringand 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.- Exposed module
Int_math.
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 wasInt.absbut 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