hi @cyx thanks for this proposal! I have a couple questions for you on it.

First, could you elaborate a bit more on the use case you have in mind? 

[quote="cyx, post:1, topic:11816"]
allows TVM containers to carry PackedFuncs,
[/quote]

it seems like this might be one of them. Given we can already pass PackedFunc 
as arguments to other PackedFunc and return them, it seems like one of the big 
changes here is making the TVM data structures more expressive. I can certainly 
think of some good use cases for storing function pointers in a map, but I 
wonder about passing such a data structure at an API boundary.

[quote="cyx, post:1, topic:11816"]
ABI stable data structure
[/quote]

Could you say what you mean/imply by "ABI stable" here? Are you separately 
compiling a library which needs to invoke PackedFunc? Is there a reason you 
prefer not to include the PackedFunc library inside that one? (just playing 
devils' advocate here--iiuc it seems like another solution is to extract 
`include/tvm/runtime/packed_func.h` into a separate library to make it easy to 
implement PackedFunc stubs to a separate library)

[quote="cyx, post:1, topic:11816"]
Instead, the developer-facing class `PackedFunc` remains responsible for 
creating and managing the object, and for properly setting its content.
[/quote]

Could you elaborate? Would there be `operator PackedFuncObj`?

[quote="cyx, post:1, topic:11816"]
```
class PackedFuncObj : public runtime::Object {
  using FCallPacked = void(TVMArgs, TVMRetValue*);
  FCallPacked* f_call_packed_;
};
```
[/quote]

Sort of the inverse of my last question--suppose I have e.g. a `Map` whose 
values are `PackedFuncObj`. How can I invoke the PackedFunc or reconstruct? The 
function pointer seems to be private in this definition.





---
[Visit 
Topic](https://discuss.tvm.apache.org/t/rfc-runtime-bring-packedfunc-into-tvm-object-system/11816/4)
 to respond.

You are receiving this because you enabled mailing list mode.

To unsubscribe from these emails, [click 
here](https://discuss.tvm.apache.org/email/unsubscribe/877e3069e160d198b31033aa5334c19e31fd592acccfef704f8708799d408e8d).

Reply via email to