Rename vm.VMI to vm.Interface

This commit is contained in:
Aayush 2022-03-15 18:46:56 -04:00
parent 6c51adc334
commit 673f558ba5
7 changed files with 18 additions and 14 deletions

View File

@ -95,7 +95,7 @@ func (t *TipSetExecutor) ApplyBlocks(ctx context.Context, sm *stmgr.StateManager
}() }()
ctx = blockstore.WithHotView(ctx) ctx = blockstore.WithHotView(ctx)
makeVmWithBaseStateAndEpoch := func(base cid.Cid, e abi.ChainEpoch) (vm.VMI, error) { makeVmWithBaseStateAndEpoch := func(base cid.Cid, e abi.ChainEpoch) (vm.Interface, error) {
vmopt := &vm.VMOpts{ vmopt := &vm.VMOpts{
StateBase: base, StateBase: base,
Epoch: e, Epoch: e,
@ -122,7 +122,7 @@ func (t *TipSetExecutor) ApplyBlocks(ctx context.Context, sm *stmgr.StateManager
return sm.VMConstructor()(ctx, vmopt) return sm.VMConstructor()(ctx, vmopt)
} }
runCron := func(vmCron vm.VMI, epoch abi.ChainEpoch) error { runCron := func(vmCron vm.Interface, epoch abi.ChainEpoch) error {
cronMsg := &types.Message{ cronMsg := &types.Message{
To: cron.Address, To: cron.Address,
From: builtin.SystemActorAddr, From: builtin.SystemActorAddr,

View File

@ -166,7 +166,7 @@ func TestForkHeightTriggers(t *testing.T) {
inv := filcns.NewActorRegistry() inv := filcns.NewActorRegistry()
inv.Register(nil, testActor{}) inv.Register(nil, testActor{})
sm.SetVMConstructor(func(ctx context.Context, vmopt *vm.VMOpts) (vm.VMI, error) { sm.SetVMConstructor(func(ctx context.Context, vmopt *vm.VMOpts) (vm.Interface, error) {
nvm, err := vm.NewLotusVM(ctx, vmopt) nvm, err := vm.NewLotusVM(ctx, vmopt)
if err != nil { if err != nil {
return nil, err return nil, err
@ -281,7 +281,7 @@ func testForkRefuseCall(t *testing.T, nullsBefore, nullsAfter int) {
inv := filcns.NewActorRegistry() inv := filcns.NewActorRegistry()
inv.Register(nil, testActor{}) inv.Register(nil, testActor{})
sm.SetVMConstructor(func(ctx context.Context, vmopt *vm.VMOpts) (vm.VMI, error) { sm.SetVMConstructor(func(ctx context.Context, vmopt *vm.VMOpts) (vm.Interface, error) {
nvm, err := vm.NewLotusVM(ctx, vmopt) nvm, err := vm.NewLotusVM(ctx, vmopt)
if err != nil { if err != nil {
return nil, err return nil, err
@ -500,7 +500,7 @@ func TestForkPreMigration(t *testing.T) {
inv := filcns.NewActorRegistry() inv := filcns.NewActorRegistry()
inv.Register(nil, testActor{}) inv.Register(nil, testActor{})
sm.SetVMConstructor(func(ctx context.Context, vmopt *vm.VMOpts) (vm.VMI, error) { sm.SetVMConstructor(func(ctx context.Context, vmopt *vm.VMOpts) (vm.Interface, error) {
nvm, err := vm.NewLotusVM(ctx, vmopt) nvm, err := vm.NewLotusVM(ctx, vmopt)
if err != nil { if err != nil {
return nil, err return nil, err

View File

@ -84,7 +84,7 @@ type StateManager struct {
compWait map[string]chan struct{} compWait map[string]chan struct{}
stlk sync.Mutex stlk sync.Mutex
genesisMsigLk sync.Mutex genesisMsigLk sync.Mutex
newVM func(context.Context, *vm.VMOpts) (vm.VMI, error) newVM func(context.Context, *vm.VMOpts) (vm.Interface, error)
Syscalls vm.SyscallBuilder Syscalls vm.SyscallBuilder
preIgnitionVesting []msig0.State preIgnitionVesting []msig0.State
postIgnitionVesting []msig0.State postIgnitionVesting []msig0.State
@ -347,12 +347,12 @@ func (sm *StateManager) ValidateChain(ctx context.Context, ts *types.TipSet) err
return nil return nil
} }
func (sm *StateManager) SetVMConstructor(nvm func(context.Context, *vm.VMOpts) (vm.VMI, error)) { func (sm *StateManager) SetVMConstructor(nvm func(context.Context, *vm.VMOpts) (vm.Interface, error)) {
sm.newVM = nvm sm.newVM = nvm
} }
func (sm *StateManager) VMConstructor() func(context.Context, *vm.VMOpts) (vm.VMI, error) { func (sm *StateManager) VMConstructor() func(context.Context, *vm.VMOpts) (vm.Interface, error) {
return func(ctx context.Context, opts *vm.VMOpts) (vm.VMI, error) { return func(ctx context.Context, opts *vm.VMOpts) (vm.Interface, error) {
return sm.newVM(ctx, opts) return sm.newVM(ctx, opts)
} }
} }

View File

@ -31,7 +31,7 @@ import (
"github.com/ipfs/go-cid" "github.com/ipfs/go-cid"
) )
var _ VMI = (*FVM)(nil) var _ Interface = (*FVM)(nil)
var _ ffi_cgo.Externs = (*FvmExtern)(nil) var _ ffi_cgo.Externs = (*FvmExtern)(nil)
type FvmExtern struct { type FvmExtern struct {

View File

@ -201,7 +201,7 @@ type (
LookbackStateGetter func(context.Context, abi.ChainEpoch) (*state.StateTree, error) LookbackStateGetter func(context.Context, abi.ChainEpoch) (*state.StateTree, error)
) )
var _ VMI = (*VM)(nil) var _ Interface = (*VM)(nil)
type VM struct { type VM struct {
cstate *state.StateTree cstate *state.StateTree

View File

@ -8,13 +8,17 @@ import (
"github.com/ipfs/go-cid" "github.com/ipfs/go-cid"
) )
type VMI interface { type Interface interface {
// Applies the given message onto the VM's current state, returning the result of the execution
ApplyMessage(ctx context.Context, cmsg types.ChainMsg) (*ApplyRet, error) ApplyMessage(ctx context.Context, cmsg types.ChainMsg) (*ApplyRet, error)
// Same as above but for system messages (the Cron invocation and block reward payments).
// Must NEVER fail.
ApplyImplicitMessage(ctx context.Context, msg *types.Message) (*ApplyRet, error) ApplyImplicitMessage(ctx context.Context, msg *types.Message) (*ApplyRet, error)
// Flush all buffered objects into the state store provided to the VM at construction.
Flush(ctx context.Context) (cid.Cid, error) Flush(ctx context.Context) (cid.Cid, error)
} }
func NewVM(ctx context.Context, opts *VMOpts) (VMI, error) { func NewVM(ctx context.Context, opts *VMOpts) (Interface, error) {
if os.Getenv("LOTUS_USE_FVM_EXPERIMENTAL") == "1" { if os.Getenv("LOTUS_USE_FVM_EXPERIMENTAL") == "1" {
return NewFVM(ctx, opts) return NewFVM(ctx, opts)
} }

View File

@ -155,7 +155,7 @@ func (d *Driver) ExecuteTipset(bs blockstore.Blockstore, ds ds.Batching, params
results: []*vm.ApplyRet{}, results: []*vm.ApplyRet{},
} }
sm.SetVMConstructor(func(ctx context.Context, vmopt *vm.VMOpts) (vm.VMI, error) { sm.SetVMConstructor(func(ctx context.Context, vmopt *vm.VMOpts) (vm.Interface, error) {
vmopt.CircSupplyCalc = func(context.Context, abi.ChainEpoch, *state.StateTree) (abi.TokenAmount, error) { vmopt.CircSupplyCalc = func(context.Context, abi.ChainEpoch, *state.StateTree) (abi.TokenAmount, error) {
return big.Zero(), nil return big.Zero(), nil
} }