A compilation method for graphs that avoids maps for speed.
Prone to failure for graphs with more nodes than max-graph-size
.
A compilation method for graphs that avoids maps for speed. Prone to failure for graphs with more nodes than `max-graph-size`.
(def-graph-record g)
(def-graph-record g record-type-name)
Define a record for the output of a graph. It is usable as a function to be as close to a map as possible. Return the typename.
Define a record for the output of a graph. It is usable as a function to be as close to a map as possible. Return the typename.
(eval-bound form bindings)
Evaluate a form with some symbols bound to some values.
Evaluate a form with some symbols bound to some values.
(graph-form g arg-keywords)
Construct [body-form bindings-needed-for-eval] for a positional graph.
Construct [body-form bindings-needed-for-eval] for a positional graph.
(graph-let-bindings g g-value-syms)
Compute the bindings for functions and intermediates needed to form the body
of a positional graph, E.g.
[[[f-3 ~some-function]]
[[intermediate-3 (f-3 intermediate-1 intermediate-2)]]]
Compute the bindings for functions and intermediates needed to form the body of a positional graph, E.g. [`[[f-3 ~some-function]] `[[intermediate-3 (f-3 intermediate-1 intermediate-2)]]]
The positional compilation algorithm provided by this namespace
reliably succeeds only with graphs with max-graph-size
or less nodes.
The basic strategy is to generate a defrecord field for each node (of which there is a limit of around 120) and then generate a constructor function (whose code size grows linearly in the number of nodes).
The positional compilation algorithm provided by this namespace reliably succeeds only with graphs with `max-graph-size` or less nodes. The basic strategy is to generate a defrecord field for each node (of which there is a limit of around 120) and then generate a constructor function (whose code size grows linearly in the number of nodes).
(positional-flat-compile g)
Positional compile for a flat (non-nested) graph.
Positional compile for a flat (non-nested) graph.
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close