Liking cljdoc? Tell your friends :D

clojure.core.rrb-vector.debug


all-vector-tree-nodesclj/s

(all-vector-tree-nodes v)
source (clj)source (cljs)

basic-node-errorsclj/s

(basic-node-errors v)
source (clj)source (cljs)

check-catvecclj/s

(check-catvec extra-checks? & counts)

Perform a sequence of calls to catvec or checking-catvec on one or more core.rrb-vector vectors. Return true if Clojure's built-in concat function give the same results, otherwise false. Intended for use in tests of this library.

Perform a sequence of calls to catvec or checking-catvec on one or
more core.rrb-vector vectors.  Return true if Clojure's built-in
concat function give the same results, otherwise false.  Intended
for use in tests of this library.
source (clj)source (cljs)raw docstring

check-subvecclj/s

(check-subvec extra-checks? init & starts-and-ends)

Perform a sequence of calls to subvec an a core.rrb-vector vector, as well as a normal Clojure vector, returning true if they give the same results, otherwise false. Intended for use in tests of this library.

Perform a sequence of calls to subvec an a core.rrb-vector vector,
as well as a normal Clojure vector, returning true if they give the
same results, otherwise false.  Intended for use in tests of this
library.
source (clj)source (cljs)raw docstring

checking-catvecclj/s

(checking-catvec & args)

checking-catvec is similar to checking-pop, with the differences summarized below. See checking-pop documentation for details.

Note that (get @d/debug-otps :catvec) is used to control tracing, validating, and return value sanity checks for checking-catvec as a whole. This includes controlling those options for the function checking-splice-rrbts, which is used to concatenate pairs of vectors when you call checking-catvec with 3 or more vectors. This takes a bit longer to do the checking on every concatenation, but catches problems closer to the time they are introduced.

opts map: (get @d/debug-opts :catvec)
function called if (:validating opts) is logical true:
    validating-catvec
checking-catvec is similar to checking-pop, with the
differences summarized below.  See checking-pop documentation for
details.

Note that (get @d/debug-otps :catvec) is used to control tracing,
validating, and return value sanity checks for checking-catvec as a
whole.  This includes controlling those options for the function
checking-splice-rrbts, which is used to concatenate pairs of vectors
when you call checking-catvec with 3 or more vectors.  This takes a
bit longer to do the checking on every concatenation, but catches
problems closer to the time they are introduced.

    opts map: (get @d/debug-opts :catvec)
    function called if (:validating opts) is logical true:
        validating-catvec
source (clj)source (cljs)raw docstring

checking-catvec-implclj/s

(checking-catvec-impl)
(checking-catvec-impl v1)
(checking-catvec-impl v1 v2)
(checking-catvec-impl v1 v2 v3)
(checking-catvec-impl v1 v2 v3 v4)
(checking-catvec-impl v1 v2 v3 v4 & vn)

checking-catvec-impl is identical to catvec, except that it calls checking-splicev instead of splicev, for configurable additional checking on each call to checking-splicev.

checking-catvec-impl is identical to catvec, except that it calls
checking-splicev instead of splicev, for configurable additional
checking on each call to checking-splicev.
source (clj)source (cljs)raw docstring

checking-popclj/s

(checking-pop coll)

These two namespace aliases will be used later in this documentation:

(require '[clojure.core.rrb-vector.debug :as d])
(require '[clojure.core.rrb-vector.debug-platform-dependent :as pd])

checking-pop passes its argument to clojure.core/pop, and if it returns, it returns whatever clojure.core/pop does. If checking-pop detects any problems, it will record information about the problems found in one or both of the global atoms 'd/failure-data' and 'd/warning-data', and optionally throw an exception.

If coll is not a vector type according to pd/is-vector?, then checking-pop simply behaves exactly like clojure.core/pop, with no additional checks performed. All of checking-pop's extra checks are specific to vectors.

If coll is a vector, then checking-pop looks up the key :pop in a global atom 'd/debug-opts'. The result of that lookup is a map we will call 'opts' below.

opts map: (get @d/debug-opts :pop)
function called if (:validating opts) is logical true:
    validating-pop

If (:trace opts) is true, then a debug trace message is printed to out.

If (:validate opts) is true, then validating-pop is called, using clojure.core/pop to do the real work, but validating-pop will check whether the return value looks correct relative to the input parameter value, i.e. it is equal to a sequence of values containing all but the last element of the input coll's sequence of values. See validating-pop documentation for additional details. This step records details of problems found in the atoms d/failure-data.

(:return-value-checks opts) should be a sequence of functions that each take the vector returned from calling clojure.core/pop, and return data about any errors or warnings they find in the internals of the vector data structure. Errors or warnings are appended to atoms d/failure-data and/or d/warning-data.

If either the validate or return value checks steps find an error, they throw an exception if (:continue-on-error opts) is logical false.

If the return value checks step finds no error, but does find a warning, it throws an exception if (:continue-on-warning opts) is logical false.

These two namespace aliases will be used later in this
documentation:

    (require '[clojure.core.rrb-vector.debug :as d])
    (require '[clojure.core.rrb-vector.debug-platform-dependent :as pd])

checking-pop passes its argument to clojure.core/pop, and if it
returns, it returns whatever clojure.core/pop does.  If checking-pop
detects any problems, it will record information about the problems
found in one or both of the global atoms 'd/failure-data' and
'd/warning-data', and optionally throw an exception.

If coll is not a vector type according to pd/is-vector?, then
checking-pop simply behaves exactly like clojure.core/pop, with no
additional checks performed.  All of checking-pop's extra checks are
specific to vectors.

If coll is a vector, then checking-pop looks up the key :pop in a
global atom 'd/debug-opts'.  The result of that lookup is a map we
will call 'opts' below.

    opts map: (get @d/debug-opts :pop)
    function called if (:validating opts) is logical true:
        validating-pop

If (:trace opts) is true, then a debug trace message is printed to
*out*.

If (:validate opts) is true, then validating-pop is called, using
clojure.core/pop to do the real work, but validating-pop will check
whether the return value looks correct relative to the input
parameter value, i.e. it is equal to a sequence of values containing
all but the last element of the input coll's sequence of values.
See validating-pop documentation for additional details.  This step
records details of problems found in the atoms d/failure-data.

(:return-value-checks opts) should be a sequence of functions that
each take the vector returned from calling clojure.core/pop, and
return data about any errors or warnings they find in the internals
of the vector data structure.  Errors or warnings are appended to
atoms d/failure-data and/or d/warning-data.

If either the validate or return value checks steps find an error,
they throw an exception if (:continue-on-error opts) is logical
false.

If the return value checks step finds no error, but does find a
warning, it throws an exception if (:continue-on-warning opts) is
logical false.
source (clj)source (cljs)raw docstring

checking-pop!clj/s

(checking-pop! coll)

checking-pop! is similar to checking-pop, with the differences summarized below. See checking-pop documentation for details.

opts map: (get @d/debug-opts :pop!)
function called if (:validating opts) is logical true:
    validating-pop!
checking-pop! is similar to checking-pop, with the differences
summarized below.  See checking-pop documentation for details.

    opts map: (get @d/debug-opts :pop!)
    function called if (:validating opts) is logical true:
        validating-pop!
source (clj)source (cljs)raw docstring

checking-slicevclj/s

(checking-slicev & args)

checking-slicev is similar to checking-pop, with the differences summarized below. See checking-pop documentation for details.

Unlike checking-pop, it seems unlikely that a user of core.rrb-vector would want to call this function directly. See checking-subvec. checking-slicev is part of the implementation of checking-subvec.

opts map: (get @d/debug-opts :subvec)  ;; _not_ :slicev
function called if (:validating opts) is logical true:
    validating-slicev
checking-slicev is similar to checking-pop, with the differences
summarized below.  See checking-pop documentation for details.

Unlike checking-pop, it seems unlikely that a user of
core.rrb-vector would want to call this function directly.  See
checking-subvec.  checking-slicev is part of the implementation of
checking-subvec.

    opts map: (get @d/debug-opts :subvec)  ;; _not_ :slicev
    function called if (:validating opts) is logical true:
        validating-slicev
source (clj)source (cljs)raw docstring

checking-splice-rrbtsclj/s

(checking-splice-rrbts & args)

checking-splice-rrbts is similar to checking-pop, with the differences summarized below. See checking-pop documentation for details.

Unlike checking-pop, it seems unlikely that a user of core.rrb-vector would want to call this function directly. See checking-catvec. checking-splice-rrbts is part of the implementation of checking-catvec.

opts map: (get @d/debug-opts :catvec)  ;; _not_ :splice-rrbts
function called if (:validating opts) is logical true:
    validating-splice-rrbts
checking-splice-rrbts is similar to checking-pop, with the
differences summarized below.  See checking-pop documentation for
details.

Unlike checking-pop, it seems unlikely that a user of
core.rrb-vector would want to call this function directly.  See
checking-catvec.  checking-splice-rrbts is part of the
implementation of checking-catvec.

    opts map: (get @d/debug-opts :catvec)  ;; _not_ :splice-rrbts
    function called if (:validating opts) is logical true:
        validating-splice-rrbts
source (clj)source (cljs)raw docstring

checking-splice-rrbts-mainclj/s

(checking-splice-rrbts-main & args)

checking-splice-rrbts-main is similar to checking-pop, with the differences summarized below. See checking-pop documentation for details.

Unlike checking-pop, it seems unlikely that a user of core.rrb-vector would want to call this function directly. See checking-catvec. checking-splice-rrbts-main is part of the implementation of checking-catvec.

opts map: (get @d/debug-opts :catvec)  ;; _not_ :splice-rrbts-main
function called if (:validating opts) is logical true:
    validating-splice-rrbts-main
checking-splice-rrbts-main is similar to checking-pop, with the
differences summarized below.  See checking-pop documentation for
details.

Unlike checking-pop, it seems unlikely that a user of
core.rrb-vector would want to call this function directly.  See
checking-catvec.  checking-splice-rrbts-main is part of the
implementation of checking-catvec.

    opts map: (get @d/debug-opts :catvec)  ;; _not_ :splice-rrbts-main
    function called if (:validating opts) is logical true:
        validating-splice-rrbts-main
source (clj)source (cljs)raw docstring

checking-splicevclj/s

(checking-splicev v1 v2)

checking-splicev is identical to splicev, except that it calls checking-splice-rrbts instead of splice-rrbts, for configurable additional checking on each call to checking-splice-rrbts.

It is more likely that a core.rrb-vector library user will want to call checking-catvec rather than this one. checking-splicev is part of the implementation of checking-catvec.

checking-splicev is identical to splicev, except that it calls
checking-splice-rrbts instead of splice-rrbts, for configurable
additional checking on each call to checking-splice-rrbts.

It is more likely that a core.rrb-vector library user will want to
call checking-catvec rather than this one.  checking-splicev is part
of the implementation of checking-catvec.
source (clj)source (cljs)raw docstring

checking-subvecclj/s

(checking-subvec v start)
(checking-subvec v start end)

checking-subvec is similar to checking-pop, with the differences summarized below. See checking-pop documentation for details.

opts map: (get @d/debug-opts :subvec)
function called if (:validating opts) is logical true:
    validating-slicev
checking-subvec is similar to checking-pop, with the differences
summarized below.  See checking-pop documentation for details.

    opts map: (get @d/debug-opts :subvec)
    function called if (:validating opts) is logical true:
        validating-slicev
source (clj)source (cljs)raw docstring

checking-transientclj/s

(checking-transient coll)

checking-transient is similar to checking-pop, with the differences summarized below. See checking-pop documentation for details.

opts map: (get @d/debug-opts :transient)
function called if (:validating opts) is logical true:
    validating-transient
checking-transient is similar to checking-pop, with the differences
summarized below.  See checking-pop documentation for details.

    opts map: (get @d/debug-opts :transient)
    function called if (:validating opts) is logical true:
        validating-transient
source (clj)source (cljs)raw docstring

children-summaryclj/s

(children-summary node shift get-array get-ranges regular? opts)
source (clj)source (cljs)

clear-failure-data!clj/s

(clear-failure-data!)
source (clj)source (cljs)

copying-seqclj/s

(copying-seq v)
source (clj)source (cljs)

cvecclj/s

(cvec coll)
source (clj)source (cljs)

dbg-vecclj/s

(dbg-vec v)
(dbg-vec v opts)
source (clj)source (cljs)

edit-nodes-errorsclj/s

(edit-nodes-errors v)
source (clj)source (cljs)

failure-dataclj/s

source (clj)source (cljs)

filter-indexesclj/s

(filter-indexes pred coll)

Return a sequence of all indexes of elements e of coll for which (pred e) returns logical true. 0 is the index of the first element.

Return a sequence of all indexes of elements e of coll for
which (pred e) returns logical true.  0 is the index of the first
element.
source (clj)source (cljs)raw docstring

first-diffclj/s

(first-diff xs ys)

Compare two sequences to see if they have = elements in the same order, and both sequences have the same number of elements. If all of those conditions are true, and no exceptions occur while calling seq, first, and next on the seqs of xs and ys, then return -1.

If two elements at the same index in each sequence are found not = to each other, or the sequences differ in their number of elements, return the index, 0 or larger, at which the first difference occurs.

If an exception occurs while calling seq, first, or next, throw an exception that contains the index at which this exception occurred.

Compare two sequences to see if they have = elements in the same
order, and both sequences have the same number of elements.  If all
of those conditions are true, and no exceptions occur while calling
seq, first, and next on the seqs of xs and ys, then return -1.

If two elements at the same index in each sequence are found not =
to each other, or the sequences differ in their number of elements,
return the index, 0 or larger, at which the first difference occurs.

If an exception occurs while calling seq, first, or next, throw an
exception that contains the index at which this exception occurred.
source (clj)source (cljs)raw docstring

fraction-fullclj/s

(fraction-full v)
source (clj)source (cljs)

full-debug-optsclj/s

source (clj)source (cljs)

generative-check-catvecclj/s

(generative-check-catvec extra-checks? iterations max-vcnt min-cnt max-cnt)

Perform many calls to check-catvec with randomly generated inputs. Intended for use in tests of this library. Returns true if all tests pass, otherwise throws an exception containing data about the inputs that caused the failing test.

Perform many calls to check-catvec with randomly generated inputs.
Intended for use in tests of this library.  Returns true if all
tests pass, otherwise throws an exception containing data about the
inputs that caused the failing test.
source (clj)source (cljs)raw docstring

generative-check-subvecclj/s

(generative-check-subvec extra-checks? iterations max-init-cnt slices)

Perform many calls to check-subvec with randomly generated inputs. Intended for use in tests of this library. Returns true if all tests pass, otherwise throws an exception containing data about the inputs that caused the failing test.

Perform many calls to check-subvec with randomly generated inputs.
Intended for use in tests of this library.  Returns true if all
tests pass, otherwise throws an exception containing data about the
inputs that caused the failing test.
source (clj)source (cljs)raw docstring

leaves-with-internal-node-typeclj/s

(leaves-with-internal-node-type node-infos)
source (clj)source (cljs)

max-capacity-divided-by-1024clj/s

(max-capacity-divided-by-1024 root-shift)
source (clj)source (cljs)

non-leaves-not-internal-node-typeclj/s

(non-leaves-not-internal-node-type node-infos)
source (clj)source (cljs)

non-regular-node-errorsclj/s

(non-regular-node-errors node get-ranges children)
source (clj)source (cljs)

objects-in-slot-32-of-obj-arraysclj/s

(objects-in-slot-32-of-obj-arrays v)

Function to look for errors of the form where a node's node.array object, which is often an array of 32 or 33 java.lang.Object's, has an element at index 32 that is not nil, and refers to an object that is of any type except an array of ints. There appears to be some situation in which this can occur, but it seems to almost certainly be a bug if that happens, and we should be able to detect it whenever it occurs.

Function to look for errors of the form where a node's node.array
object, which is often an array of 32 or 33 java.lang.Object's, has
an element at index 32 that is not nil, and refers to an object that
is of any type _except_ an array of ints.  There appears to be some
situation in which this can occur, but it seems to almost certainly
be a bug if that happens, and we should be able to detect it
whenever it occurs.
source (clj)source (cljs)raw docstring

ranges-errorsclj/s

(ranges-errors v)
source (clj)source (cljs)

record-failure-dataclj/s

(record-failure-data d)
source (clj)source (cljs)

record-warning-dataclj/s

(record-warning-data d)
source (clj)source (cljs)

regular-node-errorsclj/s

(regular-node-errors root-node? root-node-cnt children)
source (clj)source (cljs)

sanity-check-vector-internalsclj/s

(sanity-check-vector-internals err-desc-str ret args opts)

This function is called by all of the checking-* variants of functions in the debug namespace. It calls all of the functions in (:return-value-checks opts) in the order given, passing each of those functions a return value 'ret'. Each function performs sanity checks on the 'ret' data structure used to represent the vector.

Those functions should return a map with key :error having a logical true value if any errors were found, or a key :warning having a logical true value if any warnings were found, otherwise both of those values must be logical false in the returned map (or no such key is present in the returned map at all).

Three examples of such functions are included in core.rrb-vector's debug namespace.

  • edit-nodes-errors
  • basic-node-errors
  • ranges-errors

They each look for different problems in the vector data structure internals. They were developed as separate functions in case there was ever a significant performance advantage to configuring only some of them to be called, not all of them, for long tests.

If any errors are found, this function calls record-failure-data, to record the details in a global atom. It prints a message to out, and if (:continue-on-error opts) is logical false, it throws a data conveying exception using ex-info containing the same message, and the same error details map passed to record-failure-data.

If no exception is thrown due to an error, then repeat the same checks for a warning message, recording details via calling record-warning-data, and throwing an exception if (:continue-on-warning opts) is logical false.

This function is called by all of the checking-* variants of
functions in the debug namespace.  It calls all of the functions
in (:return-value-checks opts) in the order given, passing each of
those functions a return value 'ret'.  Each function performs sanity
checks on the 'ret' data structure used to represent the vector.

Those functions should return a map with key :error having a logical
true value if any errors were found, or a key :warning having a
logical true value if any warnings were found, otherwise both of
those values must be logical false in the returned map (or no such
key is present in the returned map at all).

Three examples of such functions are included in core.rrb-vector's
debug namespace.

* edit-nodes-errors
* basic-node-errors
* ranges-errors

They each look for different problems in the vector data structure
internals.  They were developed as separate functions in case there
was ever a significant performance advantage to configuring only
some of them to be called, not all of them, for long tests.

If any errors are found, this function calls record-failure-data, to
record the details in a global atom.  It prints a message to *out*,
and if (:continue-on-error opts) is logical false, it throws a data
conveying exception using ex-info containing the same message, and
the same error details map passed to record-failure-data.

If no exception is thrown due to an error, then repeat the same
checks for a warning message, recording details via calling
record-warning-data, and throwing an exception
if (:continue-on-warning opts) is logical false.
source (clj)source (cljs)raw docstring

set-debug-opts!clj/s

(set-debug-opts! opts)

set-debug-opts! modified the debug-opts atom of the core.rrb-vector library, which configures what kinds of extra checks are performed when calling the checking-* versions of functions defined in the library's debug namespace.

Example call:

(require '[clojure.core.rrb-vector.debug :as d]) (d/set-debug-opts! d/full-debug-opts)

This call enables as thorough of extra verification checks as is supported by existing code, when you call any of the checking-* variants of the functions in this namespace, e.g. checking-catvec, checking-subvec.

It will also slow down your code to do so. checking-* functions return the same values as their non checking-* original functions they are based upon, so you can write application code that mixes calls to both, calling the checking-* versions only occasionally, if you have a long sequence of operations that you want to look for bugs within core.rrb-vector's implementation of.

set-debug-opts! modified the debug-opts atom of the core.rrb-vector
library, which configures what kinds of extra checks are performed
when calling the checking-* versions of functions defined in the
library's debug namespace.

Example call:

  (require '[clojure.core.rrb-vector.debug :as d])
  (d/set-debug-opts! d/full-debug-opts)

This call enables as thorough of extra verification checks as is
supported by existing code, when you call any of the checking-*
variants of the functions in this namespace, e.g. checking-catvec,
checking-subvec.

It will also slow down your code to do so.  checking-* functions
return the same values as their non checking-* original functions
they are based upon, so you can write application code that mixes
calls to both, calling the checking-* versions only occasionally, if
you have a long sequence of operations that you want to look for
bugs within core.rrb-vector's implementation of.
source (clj)source (cljs)raw docstring

slow-intoclj/s

(slow-into to from)
source (clj)source (cljs)

validating-catvecclj/s

(validating-catvec err-desc-str & vs)

validating-catvec behaves similarly to validating-pop, but note that it does not allow you to pass in a function f on which to concatenate its arguments. It hardcodes d/checking-catvec-impl for that purpose. See validating-pop for more details.

opts map: (get @d/debug-opts :catvec)

If no exception is thrown, the return value is (apply checking-catvec-impl vs).

validating-catvec behaves similarly to validating-pop, but note
that it does not allow you to pass in a function f on which to
concatenate its arguments.  It hardcodes d/checking-catvec-impl for
that purpose.  See validating-pop for more details.

    opts map: (get @d/debug-opts :catvec)

If no exception is thrown, the return value is (apply
checking-catvec-impl vs).
source (clj)source (cljs)raw docstring

validating-popclj/s

(validating-pop f err-desc-str coll)

validating-pop is not really designed to be called from user programs. checking-pop can do everything that validating-pop can, and more. See its documentation.

A typical way of calling validating-pop is:

(require '[clojure.core.rrb-vector.debug :as d])
(d/validating-pop clojure.core/pop "pop" coll)

Most of the validating-* functions behave similarly. This one contains the most complete documentation, and the others refer to this one. They all differ in the function that they are intended to validate, and a few other details, which will be collected in one place here for function validating-pop so one can quickly see the differences between validating-pop and the other validating-* functions.

good example f: clojure.core/pop
opts map: (get @d/debug-opts :pop)

The first argument can be any function f. f is expected to take arguments and return a value equal to what clojure.core/pop would, given the argument coll.

validating-pop will first make a copy of the seq of items in coll, as a safety precaution, because some kinds of incorrect implementations of pop could mutate their input argument. That would be a bug, of course, but aiding a developer in detecting bugs is the reason validating-pop exists. It uses the function copying-seq to do this, which takes at least linear time in the size of coll.

It will then calculate a sequence that is = to the expected return value, e.g. for pop, all items in coll except the last one.

Then validating-pop will call (f coll), then call copying-seq on the return value.

If the expected and returned sequences are not =, then a map containing details about the arguments and actual return value is created and passed to d/record-failure-data, which appends the map to the end of a vector that is the value of an atom named d/failure-data. An exception is thrown if (:continue-on-error opts) is logical false, with ex-data equal to this same map of error data.

If the expected and actual sequences are the same, no state is modified and no exception is thrown.

If validating-pop does not throw an exception, the return value is (f coll).

validating-pop is not really designed to be called from user
programs.  checking-pop can do everything that validating-pop can,
and more.  See its documentation.

A typical way of calling validating-pop is:

    (require '[clojure.core.rrb-vector.debug :as d])
    (d/validating-pop clojure.core/pop "pop" coll)

Most of the validating-* functions behave similarly.  This one
contains the most complete documentation, and the others refer to
this one.  They all differ in the function that they are intended to
validate, and a few other details, which will be collected in one
place here for function validating-pop so one can quickly see the
differences between validating-pop and the other validating-*
functions.

    good example f: clojure.core/pop
    opts map: (get @d/debug-opts :pop)

The first argument can be any function f.  f is expected to take
arguments and return a value equal to what clojure.core/pop would,
given the argument coll.

validating-pop will first make a copy of the seq of items in coll,
as a safety precaution, because some kinds of incorrect
implementations of pop could mutate their input argument.  That
would be a bug, of course, but aiding a developer in detecting bugs
is the reason validating-pop exists.  It uses the function
copying-seq to do this, which takes at least linear time in the size
of coll.

It will then calculate a sequence that is = to the expected return
value, e.g. for pop, all items in coll except the last one.

Then validating-pop will call (f coll), then call copying-seq on the
return value.

If the expected and returned sequences are not =, then a map
containing details about the arguments and actual return value is
created and passed to d/record-failure-data, which appends the map
to the end of a vector that is the value of an atom named
d/failure-data.  An exception is thrown if (:continue-on-error opts)
is logical false, with ex-data equal to this same map of error data.

If the expected and actual sequences are the same, no state is
modified and no exception is thrown.

If validating-pop does not throw an exception, the return value is
(f coll).
source (clj)source (cljs)raw docstring

validating-pop!clj/s

(validating-pop! f err-desc-str coll)

validating-pop! behaves the same as validating-pop, with the differences described here. See validating-pop for details.

good example f: clojure.core/pop!
opts map: (get @d/debug-opts :pop!)

If no exception is thrown, the return value is (f coll).

validating-pop! behaves the same as validating-pop, with the
differences described here.  See validating-pop for details.

    good example f: clojure.core/pop!
    opts map: (get @d/debug-opts :pop!)

If no exception is thrown, the return value is (f coll).
source (clj)source (cljs)raw docstring

validating-slicevclj/s

(validating-slicev err-desc-str coll start)
(validating-slicev err-desc-str coll start end)

validating-slicev behaves similarly to validating-pop, but note that it does not allow you to pass in a function f to call. It hardcodes slicev for that purpose. See validating-pop for more details.

opts map: (get @d/debug-opts :subvec)  ;; _not_ :slicev
validating-slicev behaves similarly to validating-pop, but note
that it does not allow you to pass in a function f to call.  It
hardcodes slicev for that purpose.  See validating-pop for more
details.

    opts map: (get @d/debug-opts :subvec)  ;; _not_ :slicev
source (clj)source (cljs)raw docstring

validating-splice-rrbts-mainclj/s≠

clj
(validating-splice-rrbts-main err-desc-str nm am v1 v2)
cljs
(validating-splice-rrbts-main err-desc-str v1 v2)

validating-splice-rrbts-main behaves the same as validating-pop, with the differences described here. See validating-pop for details.

good example f: clojure.core.rrb-vector.rrbt/splice-rrbts-main
opts map: (get @d/debug-opts :catvec)  ;; _not_ :splice-rrbts-main

Given that splice-rrbts-main is an internal implementation detail of the core.rrb-vector library, it is expected that it is more likely you would call validating-catvec instead of this function.

If no exception is thrown, the return value is (f v1 v2).

validating-splice-rrbts-main behaves the same as validating-pop, with
the differences described here.  See validating-pop for details.

    good example f: clojure.core.rrb-vector.rrbt/splice-rrbts-main
    opts map: (get @d/debug-opts :catvec)  ;; _not_ :splice-rrbts-main

Given that splice-rrbts-main is an internal implementation detail of
the core.rrb-vector library, it is expected that it is more likely
you would call validating-catvec instead of this function.

If no exception is thrown, the return value is (f v1 v2).
source (clj)source (cljs)raw docstring

validating-transientclj/s

(validating-transient f err-desc-str coll)

validating-transient behaves the same as validating-pop, with the differences described here. See validating-pop for details.

good example f: clojure.core/transient
opts map: (get @d/debug-opts :transient)

If no exception is thrown, the return value is (f coll).

validating-transient behaves the same as validating-pop, with the
differences described here.  See validating-pop for details.

    good example f: clojure.core/transient
    opts map: (get @d/debug-opts :transient)

If no exception is thrown, the return value is (f coll).
source (clj)source (cljs)raw docstring

validation-failureclj/s

(validation-failure err-msg-str failure-data opts)
source (clj)source (cljs)

warning-dataclj/s

source (clj)source (cljs)

cljdoc is a website building & hosting documentation for Clojure/Script libraries

× close