eval

package
v0.0.0-...-dc6f9f8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 8, 2018 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Overview

Package eval provides evaluation of Ko circuits.

Index

Constants

View Source
const EvalIdiomSrc = `` /* 1114-byte string literal not displayed */

Variables

View Source
var EvalIdiomRepo = compileIdiomRepo()

Functions

func EvalFaculty

func EvalFaculty() eval.Faculty

func NewEvalRuntimeContext

func NewEvalRuntimeContext(span *model.Span) *runtime.Context

func RegisterEvalGate

func RegisterEvalGate(stub interface{})

RegisterEvalGate registers an evaluation gate in the default registry with the name and package of the given stub.

func RegisterEvalGateAt

func RegisterEvalGateAt(pkg, name string, stub interface{})

RegisterEvalGateAt registers an evaluation gate in the default registry with given name in the given package.

func RegisterEvalMacro

func RegisterEvalMacro(name string, macro eval.Macro)

func RegisterEvalPkgMacro

func RegisterEvalPkgMacro(pkg, name string, macro eval.Macro)

func RegisterNamedEvalGate

func RegisterNamedEvalGate(name string, stub interface{})

RegisterNamedEvalGate registers an evaluation gate in the default registry with the given name in the package of the given stub.

Types

type EvalBoundary

type EvalBoundary struct{}

func (EvalBoundary) Enter

func (EvalBoundary) Enter(span *model.Span, arg eval.Arg) (eval.Shape, eval.Effect, error)

func (EvalBoundary) Figure

func (EvalBoundary) Figure(span *model.Span, figure eval.Figure) (eval.Shape, eval.Effect, error)

func (EvalBoundary) Leave

func (EvalBoundary) Leave(span *model.Span, shape eval.Shape) (eval.Return, eval.Effect, error)

type EvalCallMacro

type EvalCallMacro struct {
	Gate gate.Gate `ko:"name=gate"`
}

EvalCallMacro is a macro that calls a Gate.

func (*EvalCallMacro) Doc

func (m *EvalCallMacro) Doc() string

Doc returns the usage documentation of the macro

func (*EvalCallMacro) Help

func (m *EvalCallMacro) Help() string

Help returns the a short help message of the macro

func (*EvalCallMacro) Invoke

func (call *EvalCallMacro) Invoke(span *model.Span, arg eval.Arg) (returns eval.Return, effect eval.Effect, err error)

func (*EvalCallMacro) Label

func (m *EvalCallMacro) Label() string

func (*EvalCallMacro) MacroID

func (m *EvalCallMacro) MacroID() string

func (*EvalCallMacro) MacroSheathString

func (m *EvalCallMacro) MacroSheathString() *string

func (*EvalCallMacro) Splay

func (m *EvalCallMacro) Splay() tree.Tree

type EvalCombiner

type EvalCombiner struct{}

func (EvalCombiner) Combine

func (EvalCombiner) Combine(
	span *model.Span,
	f *model.Func,
	arg eval.Arg,
	returned eval.Return,
	stepResidue eval.StepResidues,
) (eval.Effect, error)

func (EvalCombiner) Interpret

func (EvalCombiner) Interpret(eval eval.Evaluator, f *model.Func) eval.Macro

type EvalInterpretMacro

type EvalInterpretMacro struct {
	Evaluator eval.Evaluator `ko:"name=evaluator"`
	Func      *model.Func    `ko:"name=func"`
}

func (*EvalInterpretMacro) Doc

func (m *EvalInterpretMacro) Doc() string

func (*EvalInterpretMacro) Help

func (m *EvalInterpretMacro) Help() string

func (*EvalInterpretMacro) InterpretFunc

func (m *EvalInterpretMacro) InterpretFunc() (pkgPath, funcName string)

InterpretFunc communicates to Variety.Disassemble the underlying function identity.

func (*EvalInterpretMacro) Invoke

func (m *EvalInterpretMacro) Invoke(span *model.Span, arg eval.Arg) (eval.Return, eval.Effect, error)

func (*EvalInterpretMacro) InvokePar

func (m *EvalInterpretMacro) InvokePar(span *model.Span, arg eval.Arg) (eval.Return, eval.Effect, error)

func (*EvalInterpretMacro) InvokeSeq

func (m *EvalInterpretMacro) InvokeSeq(span *model.Span, arg eval.Arg) (eval.Return, eval.Effect, error)

func (*EvalInterpretMacro) Label

func (m *EvalInterpretMacro) Label() string

func (*EvalInterpretMacro) MacroID

func (m *EvalInterpretMacro) MacroID() string

func (*EvalInterpretMacro) MacroSheathString

func (m *EvalInterpretMacro) MacroSheathString() *string

func (*EvalInterpretMacro) Splay

func (m *EvalInterpretMacro) Splay() tree.Tree

type EvalPanic

type EvalPanic struct {
	Origin *model.Span   `ko:"name=origin"`
	Panic  symbol.Symbol `ko:"name=panic"`
}

func NewEvalPanic

func NewEvalPanic(origin *model.Span, panik symbol.Symbol) *EvalPanic

type EvalRegistry

type EvalRegistry struct {
	Registry *eval.Registry `ko:"name=registry"`
}

func NewEvalRegistry

func NewEvalRegistry() *EvalRegistry

func (*EvalRegistry) RegisterEvalGate

func (r *EvalRegistry) RegisterEvalGate(stub interface{})

RegisterEvalGate registers an evaluation gate with the name and package of the given stub.

func (*EvalRegistry) RegisterEvalGateAt

func (r *EvalRegistry) RegisterEvalGateAt(pkg, name string, stub interface{})

RegisterEvalGateAt registers an evaluation gate with given name in the given package.

func (*EvalRegistry) RegisterEvalMacro

func (r *EvalRegistry) RegisterEvalMacro(name string, macro eval.Macro)

func (*EvalRegistry) RegisterEvalPkgMacro

func (r *EvalRegistry) RegisterEvalPkgMacro(pkg, name string, macro eval.Macro)

func (*EvalRegistry) RegisterNamedEvalGate

func (r *EvalRegistry) RegisterNamedEvalGate(name string, stub interface{})

RegisterNamedEvalGate registers an evaluation gate with the given name in the package of the given stub.

func (*EvalRegistry) Snapshot

func (r *EvalRegistry) Snapshot() eval.Faculty

type Evaluate

type Evaluate struct {
	Repo    model.Repo   `ko:"name=repo"`
	Program eval.Program `ko:"name=program"`
}

func NewEvaluator

func NewEvaluator(faculty eval.Faculty, repo model.Repo) *Evaluate

func (*Evaluate) AssembleMacro

func (eval *Evaluate) AssembleMacro(span *model.Span, pkgPath, funcName string) (eval.Macro, error)

func (*Evaluate) Eval

func (eval *Evaluate) Eval(span *model.Span, f *model.Func, arg symbol.Symbol) (returned symbol.Symbol, panicked symbol.Symbol, eff eval.Effect, err error)

Directories

Path Synopsis
proto
Package proto is a generated protocol buffer package.
Package proto is a generated protocol buffer package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL