Giter VIP home page Giter VIP logo

zeromq-prebuilt's People

Contributors

deepak1556 avatar donjayamanne avatar microsoftopensource avatar rzhao271 avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

zeromq-prebuilt's Issues

Testing of binaries

  • Windows 32 bit
  • Windows 64 bit (@DonJayamanne machine)
  • Linux arm musl
  • Linux arm64 glibc (@DonJayamanne , Ubuntu container in docker in Mac M1)
  • Linux arm64 musl
    • Note: this was never supported even in zeromq.js binaries
    • @DonJayamanne, fail in Alpine in docker in Mac M1
    • @deepak1556 mentioned that the binaries are actually x86_64
      See errors here when attempting to load these binaries
      warn 03:53:53.069: Exception while attempting zmq : Error relocating /home/vscode/.vscode-server-insiders/extensions/ms-toolsai.jupyter-2023.3.100/out/node_modules/zeromq/prebuilds/linux-arm64/node.napi.musl.node: unsupported relocation type 7
  • Linux x64 glibc (@DonJayamanne, Ubuntu container in docker in Windows)
  • Linux x64 musl (@DonJayamanne, Alpine container in docker in Windows)
  • Mac arm64 @DonJayamanne M1
  • Mac intel

Integrate with pipeline templates from vscode-engineering

As part of aligning core extensions that rely on native modules to have similar glibc constraints as core, I will be adding template steps that configures the C++ toolchain in the vscode-engineering repo.

In its current state this repo will not be able to benefit from the above change, one idea discussed with @joaomoreno was to use the upstream zeromq.js project directly in the jupyter extension so that module files get built as expected. But I now realized this is a no go, although the patch changes are minimal the blocker would be upstream zeromq already publishes prebuilds and we cannot override them to force rebuild in the jupyter extension.

So now coming to the other alternative, the vscode-engineering repo also contains templates for building and publishing npm packages https://github.com/microsoft/vscode-engineering/wiki/NPM-Packages-Build-and-Publish. I will also add the compiler configuration to those templates as well. I see that the npm package https://github.com/microsoft/vscode-zeromq currently downloads the prebuilts from this repo github releases and replaces them for the prebuilds from the upstream zeromq project during postinstall step in the jupyter extension project. I suggest the following path instead,

  1. Merge microsoft/zeromq-prebuilt and microsoft/vscode-zeromq into a single npm package that builds, publishes the vscode specific prebuilds to npm
  2. The combined repo uses the npm pipeline templates from the vscode-engineering repo
  3. Jupyter extension will depend on this new npm package that will still replace the prebuilds from upstream zeromq as part of postinstall step.

Only difference between now and the proposed solution, prebuilds are published to npm rather than github releases and sharing the pipeline templates allows to get the glibc compatibility free of cost.

What are you thoughts on this @DonJayamanne and let me know if you have alternate ideas.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.