-
-
Notifications
You must be signed in to change notification settings - Fork 21
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
llvmlite v0.30.0 #21
llvmlite v0.30.0 #21
Conversation
…da-forge-pinning 2019.10.08
Hi! This is the friendly automated conda-forge-linting service. I just wanted to let you know that I linted all conda-recipes in your PR ( |
@isuruf, it looks like LLVM packaging has undergone some restructuring. How should we be depending on it in |
You should also depend on |
@stuartarchibald, is it ok if we start using dynamic linking to build |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Comment on meta.yaml's Line 23 does not apply anymore. You can depend on compiler('c')
in OSX too.
Technically it may be ok. However this should probably be considered: http://llvmlite.pydata.org/en/latest/admin-guide/install.html#why-static-linking-to-llvm, I would not anticipate Numba mainline switching to dynamic. |
@isuruf, given that it sounds like Numba developers prefer static linking here, how can we force that to happen? |
None of the conditions in the linked article apply to us. Nevertheless if you want to link with the static libraries, you have to modify the cmake files in llvmlite to link statically when both static ones and dynamic are available. |
The install size concern applies though, right? Agree that the other points don't matter to us. |
Does this test failure meaning anything to you @stuartarchibald? ======================================================================
FAIL: test_linux (llvmlite.tests.test_binding.TestDependencies)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/conda/feedstock_root/build_artifacts/llvmlite_1571689347008/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/lib/python3.7/site-packages/llvmlite/tests/test_binding.py", line 239, in test_linux
self.fail("failed parsing dependencies? got %r" % (deps,))
AssertionError: failed parsing dependencies? got {'libgcc_s', 'libLLVM-8', 'ld-linux-x86-64', 'libc'}
---------------------------------------------------------------------- ref: https://dev.azure.com/conda-forge/feedstock-builds/_build/results?buildId=82974&view=logs |
True, but that concern is true for all other conda-forge packages and we are happy with dynamic linking in them. |
That test doesn't matter. when statically linking with llvm, |
I think this would be an expected fail as CF is not building llvmlite in the manner prescribed by the docs, you may wish to patch this with a fix or patch to ignore. |
This test is based around static linking of LLVM, which conda-forge no longer does. So just patch out this test in the conda-forge build.
We are going to give dynamic linking a go, @stuartarchibald. Hope that is ok. This is more inline with how we building things in conda-forge anyways. If it becomes problematic, happy to revisit. |
@isuruf, did I get all of your requested changes? GitHub is showing that there may be something I missed. Though am not seeing it atm. |
recipe/skip_TestDependencies.patch
Outdated
- """ | ||
- | ||
- @unittest.skipUnless(sys.platform.startswith('linux'), "Linux-specific test") | ||
- @unittest.skipUnless(os.environ.get('LLVMLITE_DIST_TEST'), "Distribution-specific test") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just noticed this. If you remove https://github.com/conda-forge/llvmlite-feedstock/blob/master/recipe/run_test.py#L5, then this test will be skipped.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good catch. Appears to only be used for this test too. Will use that instead. Thanks.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I left it in, but set it to an empty string. That way if Anaconda or other care about enabling this again, they can do that easily.
This reverts commit b699c44.
These tests only check that `llvmlite` was statically linked. As we are no longer statically, go ahead and skip these tests and explain why. Try to keep it easy for others to change this option if they need to.
@@ -33,14 +28,13 @@ requirements: | |||
host: | |||
- python | |||
- llvmdev 8.0.* | |||
- llvm 8.0.* | |||
- enum34 # [py27] | |||
# llvmdev is built with libz compression support | |||
- zlib # [unix] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actually do we still need this?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No
@@ -33,14 +28,13 @@ requirements: | |||
host: | |||
- python | |||
- llvmdev 8.0.* |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should this have been dropped?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does llvmlite support 9.0.0 ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Was more asking as there is llvmdev
and llvm
listed here. Though I might just be unaware of how the split was done.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
llvm
is a dependency of llvmdev
. Only llvm
has the run_exports
because people use llvmdev
for static linking.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
llvmdev
is needed for the cmake files and headers
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah ok. Thanks for explaining that. 🙂
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does llvmlite support 9.0.0 ?
Unknown at present, it's scheduled for testing.
Sorry had a couple more questions that I only thought of after. Can update things if needed. |
Sure, if that matches your use case better then it's worth a try. I cannot comment on how well it'll work in practice, would be interested in hearing of any notable findings, thanks! |
Of course! Happy to share how things go 😄 |
Also thanks for your help here. 🙂 |
No problem, thanks for getting the build done! |
It is very likely that the current package version for this feedstock is out of date.
Notes for merging this PR:
Checklist before merging this PR:
license_file
is packagedNote that the bot will stop issuing PRs if more than 3 Version bump PRs generated by the bot are open. If you don't want to package a particular version please close the PR
If this PR was opened in error or needs to be updated please add the
bot-rerun
label to this PR. The bot will close this PR and schedule another one.This PR was created by the cf-regro-autotick-bot.
The cf-regro-autotick-bot is a service to automatically track the dependency graph, migrate packages, and propose package version updates for conda-forge. If you would like a local version of this bot, you might consider using rever. Rever is a tool for automating software releases and forms the backbone of the bot's conda-forge PRing capability. Rever is both conda (
conda install -c conda-forge rever
) and pip (pip install re-ver
) installable.Finally, feel free to drop us a line if there are any issues!