Download: PyGI speeding up invoke 0_1 draft.pdf – this is and highly incomplete first draft of the paper. It lays out my design goals as well as explaining the invoke flow and getting down to the details of in value validation. Comments and constructive criticism welcome.
I’ve been taking a break from coding to really map out the internals of invoking a function using GObject Introspection. A few bugs popped up that I could either band-aid or look into really fixing some of the core issues we have in our invoke routine. I wanted to get a deep understanding of how invoke worked and how all of the GI function fit together to validate and marshal between C and Python. While I am at it I am also designing an idealistic view of how we could modularize the validation and marshalling routines so that it is easier to experiment with optimizations and add support for other types should they be needed in the future. I say this is an idealistic view because there are still going to be limitations and edge cases we will have to work around but it is my hope that by writing up a design and cleaning up the code will make it easier for others to understand the GI internals and contribute to the code. While my work is geared towards the Python GObject Introspection bindings, I hope it will help other language binding authors better understand the GI internals.[read this post in: ar de es fr it ja ko pt ru zh-CN ]