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

[ParlayHash] new recipe #22638

Open
wants to merge 17 commits into
base: master
Choose a base branch
from

Conversation

fpelliccioni
Copy link
Contributor

Specify library name and version: ParlayHash/0.0.2


@conan-center-bot

This comment has been minimized.

@conan-center-bot

This comment has been minimized.

@fpelliccioni
Copy link
Contributor Author

@conan-io/barbarians guys could you please give me a hand with the error. Thanks

Co-authored-by: toge <toge.mail@gmail.com>
@conan-center-bot

This comment has been minimized.

@AbrilRBS AbrilRBS self-assigned this Feb 5, 2024
@fpelliccioni
Copy link
Contributor Author

@RubenRBS Guys, please 🙏

@AbrilRBS
Copy link
Member

Oops, this got miss-tagged internally so I missed it, will circle back to it tomorrow, thanks for the ping :)

@toge
Copy link
Contributor

toge commented Feb 15, 2024

@fpelliccioni
ParlayHash API has been changed since 0.0.2 and does not work well with the latest test_package.cpp.

Please replace test_package.cpp with the following code.
https://github.com/cmuparlay/parlayhash/blob/v0.0.2/examples/example.cpp

@fpelliccioni
Copy link
Contributor Author

@conan-center-bot

This comment has been minimized.

Co-authored-by: toge <toge.mail@gmail.com>
@conan-center-bot

This comment has been minimized.

Co-authored-by: toge <toge.mail@gmail.com>
@conan-center-bot

This comment has been minimized.

@toge
Copy link
Contributor

toge commented Feb 23, 2024

@fpelliccioni
As you have already raised an issue on upstream, 0.1.0 has been released and appears to support MSVC.
Would you update this PR to 0.1.0?

@fpelliccioni
Copy link
Contributor Author

@RubenRBS @czoido
Guys, could you take a look, please?

@conan-center-bot

This comment has been minimized.

@fpelliccioni
Copy link
Contributor Author

@conan-io/barbarians

please guys

@fpelliccioni fpelliccioni requested a review from toge May 1, 2024 18:00
@toge
Copy link
Contributor

toge commented May 2, 2024

@fpelliccioni
Thanks you for your contribution!

These error is caused by several temporary files in release files. (#hash_table.h#, #primitives.h#, ...)
These files is commited in upstream repository.
https://github.com/cmuparlay/parlayhash/tree/v0.1/include/parlay

Could you please ask the author to delete the unnecessary files?
On the other hand, you can remove these files within the source() method to pass CI.

@fpelliccioni
Copy link
Contributor Author

@fpelliccioni Thanks you for your contribution!

These error is caused by several temporary files in release files. (#hash_table.h#, #primitives.h#, ...) These files is commited in upstream repository. https://github.com/cmuparlay/parlayhash/tree/v0.1/include/parlay

Could you please ask the author to delete the unnecessary files? On the other hand, you can remove these files within the source() method to pass CI.

Thank you very much por your response.
I already did what you suggested, but it is still failling.

@toge
Copy link
Contributor

toge commented May 2, 2024

@fpelliccioni
oh no.
CI seems to fail starting.
Please restart again by clicking "update branch" if possible.

@fpelliccioni
Copy link
Contributor Author

@fpelliccioni oh no. CI seems to fail starting. Please restart again by clicking "update branch" if possible.

Done

@conan-center-bot

This comment has been minimized.

@AbrilRBS
Copy link
Member

AbrilRBS commented May 4, 2024

Hi @rturrado I've directly pushed to your branch some changes, please check them and let me know if you agree with those. I've taken the target name from https://github.com/cmuparlay/parlayhash/blob/main/examples/CMakeLists.txt#L2, but the file has been just a guess from the default name of the recipe, as upstream does not set one - I guess we could ask them what they'd prefer if you're up for it :)

@AbrilRBS
Copy link
Member

AbrilRBS commented May 4, 2024

Weird, Conan 2 works for me in a similar configuration as the failing one in Conan 2:

$ conan create . --version=0.1 -b=missing

======== Exporting recipe to the cache ========
parlayhash/0.1: Exporting package recipe: /Users/ruben/coding/conan-center-index/recipes/parlayhash/all/conanfile.py
parlayhash/0.1: exports: File 'conandata.yml' found. Exporting it...
parlayhash/0.1: Copied 1 '.py' file: conanfile.py
parlayhash/0.1: Copied 1 '.yml' file: conandata.yml
parlayhash/0.1: Exported to cache folder: /Users/ruben/.conan2/p/parla70fe19652d268/e
parlayhash/0.1: Exported: parlayhash/0.1#92c295abb1eb86961da795750b5389e8 (2024-05-04 23:30:28 UTC)

======== Input profiles ========
Profile host:
[settings]
arch=armv8
build_type=Release
compiler=apple-clang
compiler.cppstd=gnu17
compiler.libcxx=libc++
compiler.version=15
os=Macos
[platform_tool_requires]
cmake/3.29.1
[conf]


Profile build:
[settings]
arch=armv8
build_type=Release
compiler=apple-clang
compiler.cppstd=gnu17
compiler.libcxx=libc++
compiler.version=15
os=Macos
[platform_tool_requires]
cmake/3.29.1
[conf]



======== Computing dependency graph ========
Graph root
    cli
Requirements
    parlayhash/0.1#92c295abb1eb86961da795750b5389e8 - Cache

======== Computing necessary packages ========
parlayhash/0.1: Compatible package ID da39a3ee5e6b4b0d3255bfef95601890afd80709 equal to the default package ID: Skipping it.
Requirements
    parlayhash/0.1#92c295abb1eb86961da795750b5389e8:da39a3ee5e6b4b0d3255bfef95601890afd80709 - Build

======== Installing packages ========
parlayhash/0.1: Calling source() in /Users/ruben/.conan2/p/parla70fe19652d268/s/src
parlayhash/0.1: Source https://github.com/cmuparlay/parlayhash/archive/refs/tags/v0.1.tar.gz retrieved from local download cache

-------- Installing package parlayhash/0.1 (1 of 1) --------
parlayhash/0.1: Building from source
parlayhash/0.1: Package parlayhash/0.1:da39a3ee5e6b4b0d3255bfef95601890afd80709
parlayhash/0.1: Building your package in /Users/ruben/.conan2/p/b/parla9a3d30a8ae0c3/b
parlayhash/0.1: Generating aggregated env files
parlayhash/0.1: Generated aggregated env files: ['conanbuild.sh', 'conanrun.sh']
parlayhash/0.1: Calling build()
parlayhash/0.1: Package 'da39a3ee5e6b4b0d3255bfef95601890afd80709' built
parlayhash/0.1: Build folder /Users/ruben/.conan2/p/b/parla9a3d30a8ae0c3/b/build-release
parlayhash/0.1: Generating the package
parlayhash/0.1: Packaging in folder /Users/ruben/.conan2/p/b/parla9a3d30a8ae0c3/p
parlayhash/0.1: Calling package()
parlayhash/0.1: package(): Packaged 1 file: LICENSE
parlayhash/0.1: package(): Packaged 82 '.h' files
parlayhash/0.1: Created package revision 27b07243cd6fffb873a6d4e40e78bd93
parlayhash/0.1: Package 'da39a3ee5e6b4b0d3255bfef95601890afd80709' created
parlayhash/0.1: Full package reference: parlayhash/0.1#92c295abb1eb86961da795750b5389e8:da39a3ee5e6b4b0d3255bfef95601890afd80709#27b07243cd6fffb873a6d4e40e78bd93
parlayhash/0.1: Package folder /Users/ruben/.conan2/p/b/parla9a3d30a8ae0c3/p

======== Launching test_package ========

======== Computing dependency graph ========
Graph root
    parlayhash/0.1 (test package): /Users/ruben/coding/conan-center-index/recipes/parlayhash/all/test_package/conanfile.py
Requirements
    parlayhash/0.1#92c295abb1eb86961da795750b5389e8 - Cache

======== Computing necessary packages ========
Requirements
    parlayhash/0.1#92c295abb1eb86961da795750b5389e8:da39a3ee5e6b4b0d3255bfef95601890afd80709#27b07243cd6fffb873a6d4e40e78bd93 - Cache

======== Installing packages ========
parlayhash/0.1: Already installed! (1 of 1)

======== Testing the package ========
Removing previously existing 'test_package' build folder: /Users/ruben/coding/conan-center-index/recipes/parlayhash/all/test_package/build/apple-clang-15-armv8-gnu17-release
parlayhash/0.1 (test package): Test package build: build/apple-clang-15-armv8-gnu17-release
parlayhash/0.1 (test package): Test package build folder: /Users/ruben/coding/conan-center-index/recipes/parlayhash/all/test_package/build/apple-clang-15-armv8-gnu17-release
parlayhash/0.1 (test package): Writing generators to /Users/ruben/coding/conan-center-index/recipes/parlayhash/all/test_package/build/apple-clang-15-armv8-gnu17-release/generators
parlayhash/0.1 (test package): Generator 'CMakeDeps' calling 'generate()'
parlayhash/0.1 (test package): CMakeDeps necessary find_package() and targets for your CMakeLists.txt
    find_package(parlayhash)
    target_link_libraries(... parlay)
parlayhash/0.1 (test package): Generator 'CMakeToolchain' calling 'generate()'
parlayhash/0.1 (test package): CMakeToolchain generated: conan_toolchain.cmake
parlayhash/0.1 (test package): CMakeToolchain generated: /Users/ruben/coding/conan-center-index/recipes/parlayhash/all/test_package/build/apple-clang-15-armv8-gnu17-release/generators/CMakePresets.json
parlayhash/0.1 (test package): CMakeToolchain generated: /Users/ruben/coding/conan-center-index/recipes/parlayhash/all/test_package/CMakeUserPresets.json
parlayhash/0.1 (test package): Generator 'VirtualRunEnv' calling 'generate()'
parlayhash/0.1 (test package): Generating aggregated env files
parlayhash/0.1 (test package): Generated aggregated env files: ['conanrun.sh', 'conanbuild.sh']

======== Testing the package: Building ========
parlayhash/0.1 (test package): Calling build()
parlayhash/0.1 (test package): Running CMake.configure()
parlayhash/0.1 (test package): RUN: cmake -G "Unix Makefiles" -DCMAKE_TOOLCHAIN_FILE="generators/conan_toolchain.cmake" -DCMAKE_INSTALL_PREFIX="/Users/ruben/coding/conan-center-index/recipes/parlayhash/all/test_package" -DCMAKE_POLICY_DEFAULT_CMP0091="NEW" -DCMAKE_BUILD_TYPE="Release" "/Users/ruben/coding/conan-center-index/recipes/parlayhash/all/test_package"
-- Using Conan toolchain: /Users/ruben/coding/conan-center-index/recipes/parlayhash/all/test_package/build/apple-clang-15-armv8-gnu17-release/generators/conan_toolchain.cmake
-- Conan toolchain: C++ Standard 17 with extensions ON
-- The CXX compiler identification is AppleClang 15.0.0.15000309
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /Library/Developer/CommandLineTools/usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Conan: Target declared 'parlay'
-- Configuring done (0.2s)
-- Generating done (0.0s)
-- Build files have been written to: /Users/ruben/coding/conan-center-index/recipes/parlayhash/all/test_package/build/apple-clang-15-armv8-gnu17-release

parlayhash/0.1 (test package): Running CMake.build()
parlayhash/0.1 (test package): RUN: cmake --build "/Users/ruben/coding/conan-center-index/recipes/parlayhash/all/test_package/build/apple-clang-15-armv8-gnu17-release" -- -j12
[ 50%] Building CXX object CMakeFiles/test_package.dir/test_package.cpp.o
[100%] Linking CXX executable test_package
[100%] Built target test_package


======== Testing the package: Executing test ========
parlayhash/0.1 (test package): Running test()
parlayhash/0.1 (test package): RUN: ./test_package
value before increment: 1
value after increment: 2
size before remove: 2
size after remove: 1

@conan-center-bot
Copy link
Collaborator

Conan v1 pipeline ❌

Failure in build 5 (bd4010e2874ecedaafa2fade28b5aa66ce846245):

  • parlayhash/0.1:
    CI failed to create some packages (All logs)

    Logs for packageID 5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9:
    [settings]
    arch=x86_64
    build_type=Release
    compiler=clang
    compiler.libcxx=libstdc++
    compiler.version=13
    os=Linux
    
    [...]
    -- Check for working CXX compiler: /usr/local/bin/clang++ -- works
    -- Detecting CXX compiler ABI info
    -- Detecting CXX compiler ABI info - done
    -- Detecting CXX compile features
    -- Detecting CXX compile features - done
    -- Conan: Target declared 'parlay'
    -- Configuring done
    -- Generating done
    -- Build files have been written to: /home/conan/workspace/prod-v1/bsr/cci-49972450/recipes/parlayhash/all/test_package/build/Release
    parlayhash/0.1 (test package): CMake command: cmake --build "/home/conan/workspace/prod-v1/bsr/cci-49972450/recipes/parlayhash/all/test_package/build/Release" '--' '-j3'
    
    ----Running------
    > cmake --build "/home/conan/workspace/prod-v1/bsr/cci-49972450/recipes/parlayhash/all/test_package/build/Release" '--' '-j3'
    -----------------
    Scanning dependencies of target test_package
    [ 50%] Building CXX object CMakeFiles/test_package.dir/test_package.cpp.o
    CMakeFiles/test_package.dir/build.make:62: recipe for target 'CMakeFiles/test_package.dir/test_package.cpp.o' failed
    CMakeFiles/Makefile2:75: recipe for target 'CMakeFiles/test_package.dir/all' failed
    Makefile:83: recipe for target 'all' failed
    CMake Warning:
      Manually-specified variables were not used by the project:
    
        CMAKE_POLICY_DEFAULT_CMP0091
    
    
    In file included from /home/conan/workspace/prod-v1/bsr/cci-49972450/recipes/parlayhash/all/test_package/test_package.cpp:4:
    In file included from /home/conan/workspace/prod-v1/bsr/37775/dbbda/.conan/data/parlayhash/0.1/_/_/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/include/parlay_hash/unordered_map.h:35:
    /home/conan/workspace/prod-v1/bsr/37775/dbbda/.conan/data/parlayhash/0.1/_/_/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/include/parlay_hash/parlay_hash.h:644:12: error: reference to local binding 'tag' declared in enclosing function 'parlay::parlay_hash::Find'
            if (b->lv(tag)) return find_in_list(s.overflow_list(), k, f).first;
                      ^
    /home/conan/workspace/prod-v1/bsr/37775/dbbda/.conan/data/parlayhash/0.1/_/_/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/include/parlay_hash/parlay_hash.h:633:16: note: 'tag' declared here
          auto [s, tag] = b->ll();
                   ^
    /home/conan/workspace/prod-v1/bsr/37775/dbbda/.conan/data/parlayhash/0.1/_/_/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/include/parlay_hash/parlay_hash.h:644:38: error: reference to local binding 's' declared in enclosing function 'parlay::parlay_hash::Find'
            if (b->lv(tag)) return find_in_list(s.overflow_list(), k, f).first;
                                                ^
    /home/conan/workspace/prod-v1/bsr/37775/dbbda/.conan/data/parlayhash/0.1/_/_/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/include/parlay_hash/parlay_hash.h:633:13: note: 's' declared here
          auto [s, tag] = b->ll();
                ^
    2 errors generated.
    make[2]: *** [CMakeFiles/test_package.dir/test_package.cpp.o] Error 1
    make[1]: *** [CMakeFiles/test_package.dir/all] Error 2
    make: *** [all] Error 2
    WARN: *** Conan 1 is legacy and on a deprecation path ***
    WARN: *** Please upgrade to Conan 2 ***
    parlayhash/0.1 (test package): WARN: Using the new toolchains and generators without specifying a build profile (e.g: -pr:b=default) is discouraged and might cause failures and unexpected behavior
    parlayhash/0.1 (test package): WARN: Using the new toolchains and generators without specifying a build profile (e.g: -pr:b=default) is discouraged and might cause failures and unexpected behavior
    ERROR: parlayhash/0.1 (test package): Error in build() method, line 21
    	cmake.build()
    	ConanException: Error 2 while executing cmake --build "/home/conan/workspace/prod-v1/bsr/cci-49972450/recipes/parlayhash/all/test_package/build/Release" '--' '-j3'
    

Note: To save resources, CI tries to finish as soon as an error is found. For this reason you might find that not all the references have been launched or not all the configurations for a given reference. Also, take into account that we cannot guarantee the order of execution as it depends on CI workload and workers availability.


Conan v2 pipeline ❌

Note: Conan v2 builds are now mandatory. Please read our discussion about it.

The v2 pipeline failed. Please, review the errors and note this is required for pull requests to be merged. In case this recipe is still not ported to Conan 2.x, please, ping @conan-io/barbarians on the PR and we will help you.

See details:

Failure in build 5 (bd4010e2874ecedaafa2fade28b5aa66ce846245):

  • parlayhash/0.1:
    CI failed to create some packages (All logs)

    Logs for packageID da39a3ee5e6b4b0d3255bfef95601890afd80709:
    [settings]
    arch=x86_64
    build_type=Release
    compiler=apple-clang
    compiler.cppstd=17
    compiler.libcxx=libc++
    compiler.version=13
    os=Macos
    
    [...]
        function(function&&) _NOEXCEPT;
        ^
    /Applications/conan/xcode/13.0/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/functional:2369:5: note: candidate template ignored: requirement '__callable<(lambda at /Users/jenkins/workspace/prod-v2/bsr/33933/dabde/p/parla6ad86c568e6af/p/include/utils/threads/thread_specific.h:167:34) &, true>::value' was not satisfied [with _Fp = (lambda at /Users/jenkins/workspace/prod-v2/bsr/33933/dabde/p/parla6ad86c568e6af/p/include/utils/threads/thread_specific.h:167:34)]
        function(_Fp);
        ^
    /Applications/conan/xcode/13.0/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/functional:2363:5: note: candidate constructor not viable: requires 0 arguments, but 1 was provided
        function() _NOEXCEPT { }
        ^
    In file included from /Users/jenkins/workspace/prod-v2/bsr/cci-f994cb9b/recipes/parlayhash/all/test_package/test_package.cpp:4:
    In file included from /Users/jenkins/workspace/prod-v2/bsr/33933/dabde/p/parla6ad86c568e6af/p/include/parlay_hash/unordered_map.h:35:
    In file included from /Users/jenkins/workspace/prod-v2/bsr/33933/dabde/p/parla6ad86c568e6af/p/include/parlay_hash/parlay_hash.h:6:
    In file included from /Users/jenkins/workspace/prod-v2/bsr/33933/dabde/p/parla6ad86c568e6af/p/include/utils/epoch.h:59:
    /Users/jenkins/workspace/prod-v2/bsr/33933/dabde/p/parla6ad86c568e6af/p/include/utils/threads/thread_specific.h:167:22: error: no matching constructor for initialization of 'std::function<ThreadData (thread_id_type)>' (aka 'function<parlay::internal::intrusive_acquire_retire<parlay::internal::hazptr_stack<void *>::Node, std::default_delete<parlay::internal::hazptr_stack<void *>::Node>, 1>::ThreadData (unsigned int)>')
      ThreadSpecific() : constructor([](std::size_t) { return T{}; }) {
                         ^           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /Users/jenkins/workspace/prod-v2/bsr/33933/dabde/p/parla6ad86c568e6af/p/include/parlay/internal/concurrency/acquire_retire.h:79:7: note: in instantiation of member function 'parlay::ThreadSpecific<parlay::internal::intrusive_acquire_retire<parlay::internal::hazptr_stack<void *>::Node, std::default_delete<parlay::internal::hazptr_stack<void *>::Node>, 1>::ThreadData>::ThreadSpecific' requested here
          data(), deleter(std::move(deleter_)) {}
          ^
    /Users/jenkins/workspace/prod-v2/bsr/33933/dabde/p/parla6ad86c568e6af/p/include/parlay/internal/concurrency/hazptr_stack.h:124:43: note: in instantiation of member function 'parlay::internal::intrusive_acquire_retire<parlay::internal::hazptr_stack<void *>::Node, std::default_delete<parlay::internal::hazptr_stack<void *>::Node>, 1>::intrusive_acquire_retire' requested here
        static intrusive_acquire_retire<Node> instance;
                                              ^
    /Users/jenkins/workspace/prod-v2/bsr/33933/dabde/p/parla6ad86c568e6af/p/include/parlay/internal/concurrency/hazptr_stack.h:75:11: note: in instantiation of member function 'parlay::internal::hazptr_stack<void *>::hazptr_instance' requested here
          p = hazptr_instance().acquire(head);
              ^
    /Users/jenkins/workspace/prod-v2/bsr/33933/dabde/p/parla6ad86c568e6af/p/include/parlay/internal/pool_allocator.h:69:64: note: in instantiation of member function 'parlay::internal::hazptr_stack<void *>::pop' requested here
          std::optional<void*> r = large_buckets[bucket-num_small].pop();
                                                                   ^
    /Applications/conan/xcode/13.0/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/functional:2365:5: note: candidate constructor not viable: no known conversion from '(lambda at /Users/jenkins/workspace/prod-v2/bsr/33933/dabde/p/parla6ad86c568e6af/p/include/utils/threads/thread_specific.h:167:34)' to 'std::nullptr_t' (aka 'nullptr_t') for 1st argument
        function(nullptr_t) _NOEXCEPT {}
        ^
    /Applications/conan/xcode/13.0/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/functional:2366:5: note: candidate constructor not viable: no known conversion from '(lambda at /Users/jenkins/workspace/prod-v2/bsr/33933/dabde/p/parla6ad86c568e6af/p/include/utils/threads/thread_specific.h:167:34)' to 'const std::function<parlay::internal::intrusive_acquire_retire<parlay::internal::hazptr_stack<void *>::Node, std::default_delete<parlay::internal::hazptr_stack<void *>::Node>, 1>::ThreadData (unsigned int)>' for 1st argument
        function(const function&);
        ^
    /Applications/conan/xcode/13.0/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/functional:2367:5: note: candidate constructor not viable: no known conversion from '(lambda at /Users/jenkins/workspace/prod-v2/bsr/33933/dabde/p/parla6ad86c568e6af/p/include/utils/threads/thread_specific.h:167:34)' to 'std::function<parlay::internal::intrusive_acquire_retire<parlay::internal::hazptr_stack<void *>::Node, std::default_delete<parlay::internal::hazptr_stack<void *>::Node>, 1>::ThreadData (unsigned int)>' for 1st argument
        function(function&&) _NOEXCEPT;
        ^
    /Applications/conan/xcode/13.0/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/functional:2369:5: note: candidate template ignored: requirement '__callable<(lambda at /Users/jenkins/workspace/prod-v2/bsr/33933/dabde/p/parla6ad86c568e6af/p/include/utils/threads/thread_specific.h:167:34) &, true>::value' was not satisfied [with _Fp = (lambda at /Users/jenkins/workspace/prod-v2/bsr/33933/dabde/p/parla6ad86c568e6af/p/include/utils/threads/thread_specific.h:167:34)]
        function(_Fp);
        ^
    /Applications/conan/xcode/13.0/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/functional:2363:5: note: candidate constructor not viable: requires 0 arguments, but 1 was provided
        function() _NOEXCEPT { }
        ^
    5 errors generated.
    make[2]: *** [CMakeFiles/test_package.dir/test_package.cpp.o] Error 1
    make[1]: *** [CMakeFiles/test_package.dir/all] Error 2
    make: *** [all] Error 2
    
    ERROR: parlayhash/0.1 (test package): Error in build() method, line 21
    	cmake.build()
    	ConanException: Error 2 while executing
    

Note: To save resources, CI tries to finish as soon as an error is found. For this reason you might find that not all the references have been launched or not all the configurations for a given reference. Also, take into account that we cannot guarantee the order of execution as it depends on CI workload and workers availability.

@rturrado
Copy link
Contributor

rturrado commented May 5, 2024

Hi @rturrado I've directly pushed to your branch some changes, please check them and let me know if you agree with those. I've taken the target name from https://github.com/cmuparlay/parlayhash/blob/main/examples/CMakeLists.txt#L2, but the file has been just a guess from the default name of the recipe, as upstream does not set one - I guess we could ask them what they'd prefer if you're up for it :)

Hi @RubenRBS , I think you addressed me here instead of @fpelliccioni.

@AbrilRBS
Copy link
Member

AbrilRBS commented May 5, 2024

Oops, sorry for the noise, I was juggling both PRs at once and got confused, sorry!

@rturrado
Copy link
Contributor

rturrado commented May 5, 2024

No problem at all!

@fpelliccioni
Copy link
Contributor Author

Typo

Thanks @RubenRBS I agree with your changes!


add_executable(${PROJECT_NAME} test_package.cpp)
target_link_libraries(${PROJECT_NAME} PRIVATE parlay)
target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_17)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_17)
set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD 17)

Because std::result_of has been removed since C++20,
we have to specify using C++17.

https://en.cppreference.com/w/cpp/types/result_of

@toge
Copy link
Contributor

toge commented May 8, 2024

@fpelliccioni

include/parlay_hash/parlay_hash.h:644:12: error: reference to local binding 'tag' declared in enclosing function 'parlay::parlay_hash::Find'
        if (b->lv(tag)) return find_in_list(s.overflow_list(), k, f).first;
                  ^

It seems to be caused by lack of C++ support on older apple-clang.
In my environment (apple-clang 15.0.0), it works fine.

create package log on apple clang 15

% conan create . --build=missing --version=0.1

======== Exporting recipe to the cache ========
parlayhash/0.1: Exporting package recipe: /private/tmp/conan-center-index/recipes/parlayhash/all/conanfile.py
parlayhash/0.1: exports: File 'conandata.yml' found. Exporting it...
parlayhash/0.1: Copied 1 '.py' file: conanfile.py
parlayhash/0.1: Copied 1 '.yml' file: conandata.yml
parlayhash/0.1: Exported to cache folder: /Users/toge/.conan2/p/parla82d380b323587/e
parlayhash/0.1: Exported: parlayhash/0.1#a628b4202745bb423098d9d8515a536c (2024-05-08 15:09:27 UTC)

======== Input profiles ========
Profile host:
[settings]
arch=armv8
build_type=Release
compiler=apple-clang
compiler.cppstd=20
compiler.libcxx=libc++
compiler.version=15
os=Macos

Profile build:
[settings]
arch=armv8
build_type=Release
compiler=apple-clang
compiler.cppstd=20
compiler.libcxx=libc++
compiler.version=15
os=Macos

======== Computing dependency graph ========
Graph root
cli
Requirements
parlayhash/0.1#a628b4202745bb423098d9d8515a536c - Cache

======== Computing necessary packages ========
Requirements
parlayhash/0.1#a628b4202745bb423098d9d8515a536c:da39a3ee5e6b4b0d3255bfef95601890afd80709#27b07243cd6fffb873a6d4e40e78bd93 - Cache

======== Installing packages ========
parlayhash/0.1: Already installed! (1 of 1)

======== Launching test_package ========

======== Computing dependency graph ========
Graph root
parlayhash/0.1 (test package): /private/tmp/conan-center-index/recipes/parlayhash/all/test_package/conanfile.py
Requirements
parlayhash/0.1#a628b4202745bb423098d9d8515a536c - Cache

======== Computing necessary packages ========
Requirements
parlayhash/0.1#a628b4202745bb423098d9d8515a536c:da39a3ee5e6b4b0d3255bfef95601890afd80709#27b07243cd6fffb873a6d4e40e78bd93 - Cache

======== Installing packages ========
parlayhash/0.1: Already installed! (1 of 1)

======== Testing the package ========
Removing previously existing 'test_package' build folder: /private/tmp/conan-center-index/recipes/parlayhash/all/test_package/build/apple-clang-15-armv8-20-release
parlayhash/0.1 (test package): Test package build: build/apple-clang-15-armv8-20-release
parlayhash/0.1 (test package): Test package build folder: /private/tmp/conan-center-index/recipes/parlayhash/all/test_package/build/apple-clang-15-armv8-20-release
parlayhash/0.1 (test package): Writing generators to /private/tmp/conan-center-index/recipes/parlayhash/all/test_package/build/apple-clang-15-armv8-20-release/generators
parlayhash/0.1 (test package): Generator 'CMakeDeps' calling 'generate()'
parlayhash/0.1 (test package): CMakeDeps necessary find_package() and targets for your CMakeLists.txt
find_package(parlayhash)
target_link_libraries(... parlay)
parlayhash/0.1 (test package): Generator 'CMakeToolchain' calling 'generate()'
parlayhash/0.1 (test package): CMakeToolchain generated: conan_toolchain.cmake
parlayhash/0.1 (test package): CMakeToolchain generated: CMakePresets.json
parlayhash/0.1 (test package): CMakeToolchain generated: ../../../CMakeUserPresets.json
parlayhash/0.1 (test package): Generator 'VirtualRunEnv' calling 'generate()'
parlayhash/0.1 (test package): Generating aggregated env files
parlayhash/0.1 (test package): Generated aggregated env files: ['conanrun.sh', 'conanbuild.sh']

======== Testing the package: Building ========
parlayhash/0.1 (test package): Calling build()
parlayhash/0.1 (test package): Running CMake.configure()
parlayhash/0.1 (test package): RUN: cmake -G "Unix Makefiles" -DCMAKE_TOOLCHAIN_FILE="/private/tmp/conan-center-index/recipes/parlayhash/all/test_package/build/apple-clang-15-armv8-20-release/generators/conan_toolchain.cmake" -DCMAKE_INSTALL_PREFIX="/private/tmp/conan-center-index/recipes/parlayhash/all/test_package" -DCMAKE_POLICY_DEFAULT_CMP0091="NEW" -DCMAKE_BUILD_TYPE="Release" "/private/tmp/conan-center-index/recipes/parlayhash/all/test_package"
-- Using Conan toolchain: /tmp/conan-center-index/recipes/parlayhash/all/test_package/build/apple-clang-15-armv8-20-release/generators/conan_toolchain.cmake
-- Conan toolchain: C++ Standard 20 with extensions OFF
-- The CXX compiler identification is AppleClang 15.0.0.15000309
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Conan: Target declared 'parlay'
-- Configuring done
-- Generating done
-- Build files have been written to: /tmp/conan-center-index/recipes/parlayhash/all/test_package/build/apple-clang-15-armv8-20-release

parlayhash/0.1 (test package): Running CMake.build()
parlayhash/0.1 (test package): RUN: cmake --build "/private/tmp/conan-center-index/recipes/parlayhash/all/test_package/build/apple-clang-15-armv8-20-release" -- -j8
[ 50%] Building CXX object CMakeFiles/test_package.dir/test_package.cpp.o
[100%] Linking CXX executable test_package
[100%] Built target test_package

======== Testing the package: Executing test ========
parlayhash/0.1 (test package): Running test()
parlayhash/0.1 (test package): RUN: ./test_package
value before increment: 1
value after increment: 2
size before remove: 2
size after remove: 1

@fpelliccioni
Copy link
Contributor Author

fpelliccioni commented May 8, 2024 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants