Skip to content

Binding lifecycle

Ethan edited this page Feb 12, 2022 · 3 revisions

Binding generator

  1. The binding generator examines the program base source code. For anything that needs a binding:

    1. Runtime bindings are generated. For a class, runtime bindings are typically a) a bridge class and b) a hot wrapper.
    2. JSON binding descriptors are generated. For a class, this is a description of its type and all of its methods, constructors, and fields.

Compiler

  1. The compiler uses the JSON binding descriptors to figure out how the Eval code can interact with the runtime bindings. It generates a binding map which is included in the packaged DBC module.

Runtime

  1. The runtime uses the binding map to map the available runtime bindings from their default structure (a library ID map of filename maps of binding name maps of bindings) to a simple and performant linear array.

  2. The runtime excutes the program, using the runtime bindings as needed.

Clone this wiki locally