runtime

package
v0.5.0-beta.3 Latest Latest
Warning

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

Go to latest
Published: Jan 30, 2023 License: Apache-2.0 Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var SharedRuntime = &Runtime{index: sharedIndex}

Functions

func RegisterBuiltin

func RegisterBuiltin(importPath string, f PackageFunc)

Types

type Config added in v0.4.0

type Config struct {
	Runtime    *Runtime
	Filename   string
	ImportPath string

	Counts *stats.Counts

	compile.Config
}

type PackageFunc

type PackageFunc func(ctx adt.Runtime) (*adt.Vertex, errors.Error)

type Runtime

type Runtime struct {
	// contains filtered or unexported fields
}

A Runtime maintains data structures for indexing and resuse for evaluation.

func New

func New() *Runtime

New creates a new Runtime. The builtins registered with RegisterBuiltin are available for

func (*Runtime) AddInst

func (r *Runtime) AddInst(path string, key *adt.Vertex, p *build.Instance)

func (*Runtime) Build

func (x *Runtime) Build(cfg *Config, b *build.Instance) (v *adt.Vertex, errs errors.Error)

Build builds b and all its transitive dependencies, insofar they have not been build yet.

func (*Runtime) BuildData added in v0.4.0

func (r *Runtime) BuildData(b *build.Instance) (x interface{}, ok bool)

func (*Runtime) BuiltinPackagePath added in v0.4.0

func (x *Runtime) BuiltinPackagePath(path string) string

BuiltinPackagePath converts a short-form builtin package identifier to its full path or "" if this doesn't exist.

func (*Runtime) Compile added in v0.4.0

func (r *Runtime) Compile(cfg *Config, source interface{}) (*adt.Vertex, *build.Instance)

func (*Runtime) CompileFile added in v0.4.0

func (r *Runtime) CompileFile(cfg *Config, file *ast.File) (*adt.Vertex, *build.Instance)

func (*Runtime) GetInstanceFromNode

func (r *Runtime) GetInstanceFromNode(key *adt.Vertex) *build.Instance

func (*Runtime) IndexToString

func (r *Runtime) IndexToString(i int64) string

func (*Runtime) Init added in v0.4.0

func (r *Runtime) Init()

func (*Runtime) Label

func (r *Runtime) Label(s string, isIdent bool) adt.Feature

func (*Runtime) LabelStr

func (r *Runtime) LabelStr(l adt.Feature) string

func (*Runtime) LoadImport

func (r *Runtime) LoadImport(importPath string) *adt.Vertex

func (*Runtime) LoadType

func (x *Runtime) LoadType(t reflect.Type) (src ast.Expr, expr adt.Expr, ok bool)

func (*Runtime) NextUniqueID added in v0.5.0

func (r *Runtime) NextUniqueID() uint64

func (*Runtime) ResolveFiles

func (r *Runtime) ResolveFiles(p *build.Instance) (errs errors.Error)

TODO(resolve): this is also done in compile, do we need both?

func (*Runtime) SetBuildData added in v0.4.0

func (r *Runtime) SetBuildData(b *build.Instance, x interface{})

func (*Runtime) StoreType

func (x *Runtime) StoreType(t reflect.Type, src ast.Expr, expr adt.Expr)

func (*Runtime) StrLabel

func (r *Runtime) StrLabel(str string) adt.Feature

func (*Runtime) StringToIndex

func (r *Runtime) StringToIndex(s string) int64

Jump to

Keyboard shortcuts

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