Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Problem: zsock options could be available at build time but not at runtime #1561

Merged
merged 3 commits into from
Nov 20, 2016

Conversation

bluca
Copy link
Member

@bluca bluca commented Nov 20, 2016

Solution: rework the sockopts compatibility layer to generate a
runtime check together with the build time check. In case the runtime
check fails, print an error stating what the minimum required is vs
the runtime version. It could be argued that an assert should be used
instead, but this follows the same principle as the existing
implementation where options not available at buildtime are compiled
to simply return 0 and be no-ops, rather than asserting.
Rework the sockopts.xml layout to let the options of each zmq version
be grouped together in different and independent blocks to allow mix
and match. Introduce a major_removed element to indicate in which
version an option has been removed, to allow a finer granularity in
the build time and run time checks.

Fixes #1560

The retired options cannot be exposed in the public API unfortunately, as the bindings cannot cope with missing symbols.

…ntime

Solution: rework the sockopts compatibility layer to generate a
runtime check together with the build time check. In case the runtime
check fails, print an error stating what the minimum required is vs
the runtime version. It could be argued that an assert should be used
instead, but this follows the same principle as the existing
implementation where options not available at buildtime are compiled
to simply return 0 and be no-ops, rather than asserting.
Rework the sockopts.xml layout to let the options of each zmq version
be grouped together in different and independent blocks to allow mix
and match. Introduce a major_removed element to indicate in which
version an option has been removed, to allow a finer granularity in
the build time and run time checks.
Solution: run make code to regenerate
Solution: regenerate
@c-rack c-rack merged commit 51a29d5 into zeromq:master Nov 20, 2016
@c-rack
Copy link
Member

c-rack commented Nov 20, 2016

Great 👍

@bluca bluca deleted the sockopt_runtime branch November 20, 2016 21:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants