lucteo / concore Goto Github PK
View Code? Open in Web Editor NEWCore abstractions for dealing with concurrency in C++
License: MIT License
Core abstractions for dealing with concurrency in C++
License: MIT License
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
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.