code: def rm_op(l, name, op):
      
  
      # opname is an array, so we need to keep the position in there.
      l['opname'][op] = '<%s>' % op
  
      if op in l['hasconst']:
         l['hasconst'].remove(op)
      if op in l['hascompare']:
         l['hascompare'].remove(op)
      if op in l['hascondition']:
         l['hascondition'].remove(op)
      if op in l['hasfree']:
         l['hasfree'].remove(op)
      if op in l['hasjabs']:
         l['hasjabs'].remove(op)
      if op in l['hasname']:
         l['hasname'].remove(op)
      if op in l['hasjrel']:
         l['hasjrel'].remove(op)
      if op in l['haslocal']:
         l['haslocal'].remove(op)
      if op in l['hasname']:
         l['hasname'].remove(op)
      if op in l['hasnargs']:
         l['hasnargs'].remove(op)
      if op in l['hasvargs']:
         l['hasvargs'].remove(op)
      if op in l['nofollow']:
         l['nofollow'].remove(op)
  
      assert l['opmap'][name] == op
      del l['opmap'][name]
docs: Remove an opcode. This is used when basing a new Python release off
      of another one, and there is an opcode that is in the old release
      that was removed in the new release.
      We are pretty aggressive about removing traces of the op.