Now that we have some new “v4” instructions, it seems a good time to ask about
what it means to support (or comply with) the ISA RFC once published. Does
it mean that a verifier/disassembler/JIT compiler/etc. MUST support all the
non-deprecated instructions in the document? That is any runtime or tool that
doesn’t support the new instructions is considered non-compliant with the BPF ISA?
Or should we create some things that are SHOULDs, or finer grained units of
compliance so as to not declare existing deployments non-compliant?
Previously we only talked about cases where instructions were added in an
extension RFC which would naturally provide a separate RFC to conform to.
But I don’t think we discussed things like new instructions in the main spec like
we have now.
Now that we have some new “v4” instructions, it seems a good time to ask about what it means to support (or comply with) the ISA RFC once published. Does it mean that a verifier/disassembler/JIT compiler/etc. MUST support all the non-deprecated instructions in the document? That is any runtime or tool that doesn’t support the new instructions is considered non-compliant with the BPF ISA?
Or should we create some things that are SHOULDs, or finer grained units of compliance so as to not declare existing deployments non-compliant? Previously we only talked about cases where instructions were added in an extension RFC which would naturally provide a separate RFC to conform to. But I don’t think we discussed things like new instructions in the main spec like we have now.