Hi,
I’m working on a python3 interpreter plugin for MaxMSP (https://github.com/shakfu/py-js) implemented with the python c-api. While it works ok, one of the intractable problems is related to the proper unloading of c-extensions such as numpy. Basically I can use a c-extension but I have to restart the host application if I call Py_FinalizeEx(). I think this is almost a deal-breaker for some.
Thinking how Jupyter solves these issues, I’ve been considering whether it would be possible to implement a very basic client / frontend at the Max/MSP side which communicates with a python (or otherwise) kernel using Jupyter protocols. This would be implemented in c or c++.
I raised this question at the jupyter forums and someone was kind enough to point me to the xeus project in case it, or one its subprojects, had already implemented the client side of the jupyter protocol in c or c++.
So far, I have a proof of concept Max external using zmq from the client side (thread-per-zmq-context to make it non-blocking to the Max ui) to communicate to a zmq server using basic request-reply type of exchange. Probably next step would be to create JSON message which conform to the client protocol via a library such as json-c. Nonetheless, if there is a something like your kernel code for the client side of the protocol in c++ or c it would obviously save a lot of time.
Thanks in advance for your help!
S
Hi,
I’m working on a python3 interpreter plugin for MaxMSP (https://github.com/shakfu/py-js) implemented with the python c-api. While it works ok, one of the intractable problems is related to the proper unloading of c-extensions such as numpy. Basically I can use a c-extension but I have to restart the host application if I call Py_FinalizeEx(). I think this is almost a deal-breaker for some.
Thinking how Jupyter solves these issues, I’ve been considering whether it would be possible to implement a very basic client / frontend at the Max/MSP side which communicates with a python (or otherwise) kernel using Jupyter protocols. This would be implemented in c or c++.
I raised this question at the jupyter forums and someone was kind enough to point me to the xeus project in case it, or one its subprojects, had already implemented the client side of the jupyter protocol in c or c++.
So far, I have a proof of concept Max external using zmq from the client side (thread-per-zmq-context to make it non-blocking to the Max ui) to communicate to a zmq server using basic request-reply type of exchange. Probably next step would be to create JSON message which conform to the client protocol via a library such as json-c. Nonetheless, if there is a something like your kernel code for the client side of the protocol in c++ or c it would obviously save a lot of time.
Thanks in advance for your help!
S