Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[RFC] Deprecate Extension VTable in Favor of Unified Object System #4579

Closed
tqchen opened this issue Dec 24, 2019 · 2 comments
Closed

[RFC] Deprecate Extension VTable in Favor of Unified Object System #4579

tqchen opened this issue Dec 24, 2019 · 2 comments

Comments

@tqchen
Copy link
Member

tqchen commented Dec 24, 2019

Before the unified object protocol, we support passing additional extension objects around by declaring a type as an extension type.

The old extension mechanism requires the types to register their constructor and deleter to a VTable in order to pass a container around. It does not enjoy the benefit of the self-contained deletion property of the new Object system.

This RFC propose to deprecate the extension VTable in favor of support all container variation passing via the object protocol to simplify the PackedFunc calling convention.

Note that the register_extension funtion in the python side continues to work when the passed argument does not require explicit container copy/deletion, which covers the current usecases of the extension mechanism.

The proposed change is implemented in #4578.

@junrushao
Copy link
Member

The implication here is that we won't support nnvm objects any more, right? If so, I think it's fine

@tqchen
Copy link
Member Author

tqchen commented Dec 24, 2019

No, as nnvm compiler has already been deprecated, we won't support nnvm compiler objects. New projects can move the code to the object system to enable support(via wrapping data structure in the object)

@tqchen tqchen closed this as completed Dec 25, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants