RoaringBitmap / RoaringBitmap/CRoaring
Replace ROARING_DISABLE_AVX and ROARING_DISABLE_NATIVE options
Nobody has claimed this yet.
- Dominant language
- C
- Stars
- 1.9k
- Forks
- 334
- Avg merge
- 2d 5h
- Merged PRs (30d)
- 17
Description
@andreigudkov proposed we do the following:
- Remove entirely ROARING_DISABLE_AVX and ROARING_DISABLE_NATIVE options
- For conditional compilation, use #ifdef AVX2
- To select target architecture, use CMAKE_C_FLAGS
I think that this is good and simpler. However, I had a counterpoint:
If you do not specify anything, then by default AVX2 and popcnt support will be disabled on many common compilers. That's the wrong default for us IMHO. And very few people will ever bother to compile with flags unless they are specifically being told. The net result when you compile C with a generic cpu model, is that you miss a lot of optimizations that a language like Java gets thanks to JIT compilation. That's fine in many cases, as lots of software does not benefit much from advanced cpu features... but CRoaring is optimized for advanced cpu features. Disabling them by default is a shame. I think that at a minimum you would want to have the build system issue a stern warning when compiling on x64 with a generic cpu model. It is simply not going to be the right default for many people, for CRoaring.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading the linked pull request discussion and locating the current handling of ROARING_DISABLE_AVX, ROARING_DISABLE_NATIVE, AVX2, and CMAKE_C_FLAGS in the build configuration. Resolve the default CPU-feature behavior, then confirm that the agreed options and conditional-compilation approach are consistently applied and documented.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c, cmake
- Domain
- build-system, performance
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100