Liking cljdoc? Tell your friends :D

hive-hot.plan

Portable reload planning: what a set of namespaces requires, the order that loads each after its requirements, the require cycles no order can place, and the dependents a change drags in.

Pure data in, plans as data out. No file reading, no classpath, no clj-reload and no host interop live here, so the same namespace runs on the JVM (hive-hot.core, over clj-reload's parsed state) and on cljrs (dirge's embedded addon host, over ns forms it read itself). Readers and loaders are the adapters' business.

Ubiquitous language: ns form - an unevaluated (ns name ...) list, as read-string gives it source - {:ns name :requires #{name}}, what an ns form declares graph - {name {:requires #{name}}}, sources keyed by namespace plan - {:order [source] :cycle [source]}, what load-order answers

Portable reload planning: what a set of namespaces requires, the order
that loads each after its requirements, the require cycles no order can
place, and the dependents a change drags in.

Pure data in, plans as data out. No file reading, no classpath, no
clj-reload and no host interop live here, so the same namespace runs on
the JVM (hive-hot.core, over clj-reload's parsed state) and on cljrs
(dirge's embedded addon host, over ns forms it read itself). Readers and
loaders are the adapters' business.

Ubiquitous language:
  ns form  - an unevaluated `(ns name ...)` list, as `read-string` gives it
  source   - {:ns name :requires #{name}}, what an ns form declares
  graph    - {name {:requires #{name}}}, sources keyed by namespace
  plan     - {:order [source] :cycle [source]}, what load-order answers
raw docstring

dependeesclj/s

(dependees sources)

The require graph of sources inverted: {name #{name that requires it}}. Every source has a key; a require of a name no source declares adds no edge.

The require graph of `sources` inverted: {name #{name that requires it}}.
Every source has a key; a require of a name no source declares adds no
edge.
sourceraw docstring

dependents-closureclj/s

(dependents-closure dependees starts)

Every namespace a change to starts reaches through dependees ({name #{dependent}}), the starts included: #{name}.

Every namespace a change to `starts` reaches through `dependees`
({name #{dependent}}), the starts included: #{name}.
sourceraw docstring

graph->sourcesclj/s

(graph->sources graph)

A graph ({name {:requires #{name}}}, the shape clj-reload keeps under :namespaces) as sources, sorted by name so plans over it are deterministic.

A graph ({name {:requires #{name}}}, the shape clj-reload keeps under
:namespaces) as sources, sorted by name so plans over it are
deterministic.
sourceraw docstring

load-orderclj/s

(load-order sources)

sources ({:ns name :requires #{name}}) ordered so each follows the sources it requires, ties in input order: {:order [source] :cycle [source]}. :cycle holds, in input order, the sources no order can place: those in a require cycle and those requiring one. A require of a name no source declares is outside the plan and never blocks.

`sources` ({:ns name :requires #{name}}) ordered so each follows the
sources it requires, ties in input order: {:order [source] :cycle
[source]}. :cycle holds, in input order, the sources no order can place:
those in a require cycle and those requiring one. A require of a name no
source declares is outside the plan and never blocks.
sourceraw docstring

LoadPlanclj/s

What load-order answers. :order loads each source after those it requires; :cycle holds the sources no order can place.

What load-order answers. :order loads each source after those it
requires; :cycle holds the sources no order can place.
sourceraw docstring

ns-depsclj/s

(ns-deps form)

What an ns form declares: {:ns name :requires #{name}}, :requires being the namespaces its :require and :use clauses name. nil for any other form.

What an ns form declares: {:ns name :requires #{name}}, :requires being
the namespaces its :require and :use clauses name. nil for any other
form.
sourceraw docstring

NsFormclj/s

An unevaluated ns form: (ns name docstring? attr-map? clause*), a clause being (:require spec*), (:use spec*) or any other list.

An unevaluated ns form: `(ns name docstring? attr-map? clause*)`, a clause
being `(:require spec*)`, `(:use spec*)` or any other list.
sourceraw docstring

NsNameclj/s

A namespace name.

A namespace name.
sourceraw docstring

require-targetsclj/s

(require-targets spec)

The namespaces one :require or :use spec names: a symbol, a vector headed by one, or a prefix list.

The namespaces one :require or :use spec names: a symbol, a vector
headed by one, or a prefix list.
sourceraw docstring

Sourceclj/s

What an ns form declares: its name and the namespaces it requires.

What an ns form declares: its name and the namespaces it requires.
sourceraw docstring

cljdoc builds & hosts documentation for Clojure/Script libraries

Keyboard shortcuts
Ctrl+kJump to recent docs
←Move to previous article
→Move to next article
Ctrl+/Jump to the search field
× close