Modules

  • This file implements the expression evaluation part of the stackless bytecode interpreter.
  • This file implements the information needed in the local interpretation context, i.e., the context created and updated when interpreting a single function.
  • This file implements the statement interpretation part of the stackless bytecode interpreter.
  • This file implements the orchestration part of the stackless bytecode interpreter and also provides outside-facing interfaces for the clients of stackless bytecode interpreter. Clients of the interpreter should never directly interact with the statement player (in player.rs) nor the expression evaluator (in evaluator.rs).
  • The type system in move-model is a fat type system that is designed to cover all cases that can possibly appear in the whole bytecode transformation pipeline. Natually, this means that some types are no longer applicable when the Move program reaches the end of the transformation.
  • This file implements several value representations to track values produced and consumed during the statement interpretation and expression evaluation process. The value representations are carefully designed to match the type system. In particular, BaseValue must match BaseType and TypedValue must match Type (by match, we mean each value must have a way to type it, and each type must also have a way to construct a value of this type).