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.15.1.tar.gz
    
    
        
    
  
  
  
    
  
        sha256=755e303171ea267e3ba5af7aa8ea27537f3394d97c77d340b10f806d6ef61a14
    
    
  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 an- Or_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 a- List.Or_unequal_lengths.tinstead of an- option.
- Remove functions from the Sequencemodule that were deprecated in 2015.
- Container.Makeand- Container.Make0now require callers to either provide a custom- lengthfunction or request that one be derived from- fold.- Container.to_array's signature is also changed to accept- lengthand- iterinstead of- fold.
- 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