PtcRunner.Lisp.Eval.ParallelCall (PtcRunner v0.14.0)

Copy Markdown View Source

Dispatches indirect pmap and pcalls calls to the parallel evaluator.

The adapter accepts already-evaluated arguments. Once a special builtin has been selected, it must not be resolved through the user namespace again: saved and namespace-qualified builtin values remain the builtin even when a same-named user definition exists.

Summary

Types

do_eval()

@type do_eval() :: (term(), PtcRunner.Lisp.Eval.Context.t() ->
                {:ok, term(), PtcRunner.Lisp.Eval.Context.t()}
                | {:error, term()})

operation()

@type operation() :: :pmap | :pcalls

Functions

invoke(atom, functions, context, do_eval)

@spec invoke(operation(), [term()], PtcRunner.Lisp.Eval.Context.t(), do_eval()) ::
  {:ok, term(), PtcRunner.Lisp.Eval.Context.t()} | {:error, term()}