Hi,
Saw your excellent presentation "Threads Considered Harmful" and decided to checkout concore. Thanks for sharing!
Incidentally, I was wondering if concore can be used, even in a limited way, from c? Any tips to test this?
In any case, I wanted to let you know that I couldn't build concur unless I disabled the tests. For some reason, conan won't install catch properly for me. Here's my sequence:
$ cd concore
$ conan --version
Conan version 1.49.0
$ cmake --version
cmake version 3.23.2
$ cat build.sh
mkdir -p build
pushd build
conan install .. --build=missing -s build_type=Release
cmake -D CMAKE_BUILD_TYPE=Release -D concore.testing=ON ..
cmake --build .
popd build
$ ./build.sh
~/Downloads/src/concore/build ~/Downloads/src/concore
Configuration:
[settings]
arch=x86_64
arch_build=x86_64
build_type=Release
compiler=apple-clang
compiler.libcxx=libc++
compiler.version=12.0
os=Macos
os_build=Macos
[options]
[build_requires]
[env]
conanfile.py (concore/0.6.0): Installing package
Requirements
Packages
Installing (downloading, building) binaries...
conanfile.py (concore/0.6.0): Generator txt created conanbuildinfo.txt
conanfile.py (concore/0.6.0): Generator cmake created conanbuildinfo.cmake
conanfile.py (concore/0.6.0): Aggregating env generators
conanfile.py (concore/0.6.0): Generated conaninfo.txt
conanfile.py (concore/0.6.0): Generated graphinfo
-- The CXX compiler identification is AppleClang 12.0.0.12000032
-- 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: Adjusting output directories
-- Conan: Using cmake targets configuration
-- Conan: Adjusting default RPATHs Conan policies
-- Conan: Adjusting language standard
-- Current conanbuildinfo.cmake directory: /Users/sa/Downloads/src/concore/build
-- The C compiler identification is AppleClang 12.0.0.12000032
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- System : Darwin-19.6.0
-- System name : Darwin
-- System ver : 19.6.0
--
-- Library ver : 0.6.0
-- Build date : 2022-06-23
-- Build year : 2022
-- Use C++ 2020 : OFF
-- Use profiling : OFF
-- Use Tracy : OFF
-- Profiling include: OFF
-- Profiling path : OFF
--
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- Concore compile definitions: _GLIBCXX_USE_CXX11_ABI=1
CMake Error at test/CMakeLists.txt:69 (include):
include could not find requested file:
Catch
CMake Error at test/CMakeLists.txt:70 (catch_discover_tests):
Unknown CMake command "catch_discover_tests".
-- Configuring incomplete, errors occurred!
See also "/Users/sa/Downloads/src/concore/build/CMakeFiles/CMakeOutput.log".
make: Makefile: No such file or directory
make: *** No rule to make target `Makefile'. Stop.
~/Downloads/src/concore/build
If I disable the following two lines in the CMakeLists.txt file I can build without issues.
# Testing code
#enable_testing()
#add_subdirectory(test)
$ ./build.sh
...
[ 8%] Building CXX object src/CMakeFiles/concore.dir/lib/detail/exec_context.cpp.o
[ 16%] Building CXX object src/CMakeFiles/concore.dir/lib/low_level/semaphore.cpp.o
[ 25%] Building CXX object src/CMakeFiles/concore.dir/lib/task.cpp.o
[ 33%] Building CXX object src/CMakeFiles/concore.dir/lib/init.cpp.o
[ 41%] Building CXX object src/CMakeFiles/concore.dir/lib/n_serializer.cpp.o
[ 50%] Building CXX object src/CMakeFiles/concore.dir/lib/pipeline.cpp.o
[ 58%] Building CXX object src/CMakeFiles/concore.dir/lib/rw_serializer.cpp.o
[ 66%] Building CXX object src/CMakeFiles/concore.dir/lib/serializer.cpp.o
[ 75%] Building CXX object src/CMakeFiles/concore.dir/lib/task_graph.cpp.o
[ 83%] Building CXX object src/CMakeFiles/concore.dir/lib/task_group.cpp.o
[ 91%] Building CXX object src/CMakeFiles/concore.dir/lib/std/thread_pool.cpp.o
[100%] Linking CXX static library ../lib/libconcore.a
[100%] Built target concore
~/Downloads/src/concore/build
Hi,
Saw your excellent presentation "Threads Considered Harmful" and decided to checkout
concore. Thanks for sharing!Incidentally, I was wondering if
concorecan be used, even in a limited way, from c? Any tips to test this?In any case, I wanted to let you know that I couldn't build
concurunless I disabled the tests. For some reason, conan won't install catch properly for me. Here's my sequence:If I disable the following two lines in the
CMakeLists.txtfile I can build without issues.$ ./build.sh ... [ 8%] Building CXX object src/CMakeFiles/concore.dir/lib/detail/exec_context.cpp.o [ 16%] Building CXX object src/CMakeFiles/concore.dir/lib/low_level/semaphore.cpp.o [ 25%] Building CXX object src/CMakeFiles/concore.dir/lib/task.cpp.o [ 33%] Building CXX object src/CMakeFiles/concore.dir/lib/init.cpp.o [ 41%] Building CXX object src/CMakeFiles/concore.dir/lib/n_serializer.cpp.o [ 50%] Building CXX object src/CMakeFiles/concore.dir/lib/pipeline.cpp.o [ 58%] Building CXX object src/CMakeFiles/concore.dir/lib/rw_serializer.cpp.o [ 66%] Building CXX object src/CMakeFiles/concore.dir/lib/serializer.cpp.o [ 75%] Building CXX object src/CMakeFiles/concore.dir/lib/task_graph.cpp.o [ 83%] Building CXX object src/CMakeFiles/concore.dir/lib/task_group.cpp.o [ 91%] Building CXX object src/CMakeFiles/concore.dir/lib/std/thread_pool.cpp.o [100%] Linking CXX static library ../lib/libconcore.a [100%] Built target concore ~/Downloads/src/concore/build