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
This is because ZeroMQ 6.0.0.beta16 stable dynamically links to libsodium on macOS, which is a problem for our use case. @kevinushey wrote up an issue here:
We should not be using a private fork of ZeroMQ; it slows down compiles and rebuilds, it requires regular maintenance, and it puts us into untested territory.
Some possible ways to address this issue:
Work with the zeromq.js upstream library to get a change incorporated that will stop dynamically linking libsodium.
Publish our own npm package that includes our own fix for the problem (static linking), since there doesn't seem to be much appetite for dealing with this issue upstream
Go back to using beta.6; figure out why it is incompatible with VS Code >= 1.78.0 and address that instead of trying to use the latest ZeroMQ.
Figure out how the official Jupyter extension handles this problem, and follow the same patterns. At the very least they seem to have some logic for using multiple libraries (zeromq, zeromqold) and resolving zeromq library versions at runtime.
The Jupyter extension from Microsoft has more or less the same problem we do: they need to bundle ZeroMQ to talk to the Jupyter kernels to power the Notebook feature. Here is a recent change in that area as a toehold:
It used to be possible to use an older version of ZeroMQ; prior to merging VS Code 1.78.0, we were using 6.0.0.beta6. However, after picking up 1.78.0, the extension host process began crashing whenever a ZeroMQ API was called. Here is an example of one such crash:
Currently, Positron uses its own fork of ZeroMQ 6.0.0.beta16 in the Jupyter Adapter.
https://github.com/rstudio/positron/blob/5c7b354ccc1290c58a55327d36d68cbcf7b89d6b/extensions/jupyter-adapter/scripts/install.ts#L24-L37
This is because ZeroMQ 6.0.0.beta16 stable dynamically links to libsodium on macOS, which is a problem for our use case. @kevinushey wrote up an issue here:
zeromq/zeromq.js#557
We should not be using a private fork of ZeroMQ; it slows down compiles and rebuilds, it requires regular maintenance, and it puts us into untested territory.
Some possible ways to address this issue:
zeromq
,zeromqold
) and resolving zeromq library versions at runtime.Appendix 1: How the Jupyter Extension Does It
The Jupyter extension from Microsoft has more or less the same problem we do: they need to bundle ZeroMQ to talk to the Jupyter kernels to power the Notebook feature. Here is a recent change in that area as a toehold:
microsoft/vscode-jupyter#13117
Appendix 2: Crash Symptoms with beta.6
It used to be possible to use an older version of ZeroMQ; prior to merging VS Code 1.78.0, we were using 6.0.0.beta6. However, after picking up 1.78.0, the extension host process began crashing whenever a ZeroMQ API was called. Here is an example of one such crash:
The text was updated successfully, but these errors were encountered: