package core_kernel

  1. Overview
  2. Docs
Industrial strength alternative to OCaml's standard library

Install

dune-project
 Dependency

Authors

Maintainers

Sources

v0.14.2.tar.gz
sha256=66f5353964d35a994ec7fdc88fe60ae5d497ac89a8042786f3e37d9e2202ce4b
md5=ede2f6d22eaa8320f88bac67d41b5cff

doc/core_kernel.weak_array/Weak_array/index.html

Module Weak_arraySource

Module for dealing with weak pointers, i.e., pointers that don't prevent garbage collection of what they point to.

This module is like the OCaml standard library module of the same name, except that it requires that the values in the weak set are heap blocks.

Sourcetype 'a t
Sourceval sexp_of_t : ('a -> Ppx_sexp_conv_lib.Sexp.t) -> 'a t -> Ppx_sexp_conv_lib.Sexp.t
Sourceval create : len:int -> _ t
Sourceval length : _ t -> int
Sourceval set : 'a t -> int -> 'a Core_kernel.Heap_block.t option -> unit
Sourceval set_exn : 'a t -> int -> 'a option -> unit

set_exn raises an exception if given Some x with x not being a heap block. This is in addition to raising exceptions on bounds violation as set does.

Sourceval get : 'a t -> int -> 'a Core_kernel.Heap_block.t option
Sourceval is_some : _ t -> int -> bool
Sourceval is_none : _ t -> int -> bool
Sourceval iter : 'a t -> f:('a -> unit) -> unit
Sourceval iteri : 'a t -> f:(int -> 'a -> unit) -> unit
Sourceval blit : src:'a t -> src_pos:int -> dst:'a t -> dst_pos:int -> len:int -> unit

Warning! blit often takes time linear in the size of the arrays, not in the size of the range being copied. This issue is being tracked in https://github.com/ocaml/ocaml/issues/9258.

Other than that, blit is generally preferred over get followed by set because, unlike get, it doesn't have to make the value strongly-referenced. Making a value strongly-referenced, even temporarily, may result in delaying its garbage collection by a whole GC cycle.