You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[REFACTOR][NODE][RUNTIME] Move Node to the new Object protocol. (apache#4161)
* [REFACTOR][NODE][RUNTIME] Move Node to the new Object protocol.
This PR removes the original node system, and make node as a subclass of Object.
This is a major refactor towards a better unified runtime object system.
List of changes in the refactor:
- We now hide data_ field, use Downcast explicitly to get a sub-class object.
- Removed the node system FFI in python.
- Removed the node C API, instead use PackedFunc for list and get attrs.
- Change relay::Op::set_attr_type_key(attr_key_name) to relay::Op::set_attr_type<AttrType>().
- This change was necessary because of the new Object registration mechanism.
- Subsequent changes to the op registrations
- The change revealed a few previous problems that is now fixed.
- Patched up a few missing node type registration.
- Now we will raise an error if we register object that is not registered.
- The original node.h and container.h are kept in the same location.
- Calling convention: kObjectHandle now equals the old kNodeHandle, kNodeHandle is removed.
- IRFunctor now dispatches on ObjectRef.
- Update to the new type checking API: is_type, derived_from are replaced by IsInstance.
- Removed .hash member function, instead use C++ convention hasher functors.
* Address review comments
0 commit comments