Skip to content

Review tracker: VmFeatures stack, neo-node parse/oracle/tui #4744

Description

@cschuchardt88

Review first

Do these in order. Later PRs assume earlier ones.

  1. neo-vm#592VmFeatures on ExecutionEngineLimits. Current opcode behavior must stay identical (SafeSubStr / StrictContainerAccess / BoundedShift already in Current). Jump table stays; handlers branch on Limits.Has.
  2. neo#4740 (draft) — map Echidna/Gorgon (and later forks) onto those flags in ApplicationEngine.LimitsFor. This is the neo.dll companion to Allow to ignore the recovery logs #592.
  3. neo-vm#593 then neo-vm#594 — stacked on Allow to ignore the recovery logs #592. Confirm IEquatableContent and CompoundSpan are not in Current, and opcode EQUAL / CAT JSON stay unchanged.
  4. neo#4741 / neo#4742 (drafts) — host-side: keep content-EQUAL and compound splice off until a hardfork.

Everything else can be reviewed in parallel after 592/4740.


Checklist

neo-vm (merge 592 before dependents)

neo.dll (drafts until neo-vm lands)

  • neo#4740 map hardforks → VmFeatures (depends on neo-vm#592)
  • neo#4741 keep IEquatableContent off consensus EQUAL
  • neo#4742 keep CompoundSpan off splice opcodes
  • neo#4743 KeepAlive for pooled buffers that leave the VM (depends on neo-vm#595)

neo-node (master-n3, independent of each other)

  • neo-node#1094 Oracle HTTPS: missing Content-Type NRE, relative redirects, Https.MaxRedirects
  • neo-node#1095 getcandidates empty stack returns [] not {}
  • neo-node#1096 getversion puts neo-node assembly version in existing useragent (fixes neo-node#983; no extra JSON field)
  • neo-node#1097 parse / VMInstruction listing (UTF-8 comments, hashes, timestamps, blob size)
  • neo-node#1099 neo-tui: plugin load, live show state, connected peers, command output popup

Notes for reviewers

  • Do not reverse the stack: neo.dll must not enable a VM feature before neo-vm ships it. Merge neo-vm#592 (and publish a CI package) before un-drafting Map hardforks onto neo-vm VmFeatures (dpends on neo-vm#592) #4740.
  • Current behavior: IEquatableContent, CompoundSpan, and ContentHashCode are not in VmFeatureSets.Current. Opcode JSON tests should still match master.
  • neo-node PRs target master-n3 and do not depend on the neo-vm stack.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions