From 435e2485ec29761bd47cbfa2d4c37a50395b1765 Mon Sep 17 00:00:00 2001 From: Yuri Victorovich Date: Sun, 12 Sep 2021 12:28:24 -0700 Subject: [PATCH] devel/quantum: New port: Multi-threaded coroutine dispatcher and parallel execution engine --- devel/Makefile | 1 + devel/quantum/Makefile | 25 ++++++++++ devel/quantum/distinfo | 3 ++ devel/quantum/pkg-descr | 6 +++ devel/quantum/pkg-plist | 106 ++++++++++++++++++++++++++++++++++++++++ 5 files changed, 141 insertions(+) create mode 100644 devel/quantum/Makefile create mode 100644 devel/quantum/distinfo create mode 100644 devel/quantum/pkg-descr create mode 100644 devel/quantum/pkg-plist diff --git a/devel/Makefile b/devel/Makefile index 275ea8fd77ec..88e65dcfeb2b 100644 --- a/devel/Makefile +++ b/devel/Makefile @@ -5462,6 +5462,7 @@ SUBDIR += qt5-testlib SUBDIR += qt5-uitools SUBDIR += qtcreator + SUBDIR += quantum SUBDIR += quickcheck++ SUBDIR += quilt SUBDIR += rabs diff --git a/devel/quantum/Makefile b/devel/quantum/Makefile new file mode 100644 index 000000000000..0d6985127da0 --- /dev/null +++ b/devel/quantum/Makefile @@ -0,0 +1,25 @@ +PORTNAME= quantum +DISTVERSIONPREFIX= v +DISTVERSION= 2.2 +CATEGORIES= devel +PKGNAMESUFFIX= -parallelization-library + +MAINTAINER= yuri@FreeBSD.org +COMMENT= Multi-threaded coroutine dispatcher and parallel execution engine + +LICENSE= APACHE20 +LICENSE_FILE= ${WRKSRC}/LICENSE + +BUILD_DEPENDS= boost-libs>0:devel/boost-libs +RUN_DEPENDS= boost-libs>0:devel/boost-libs + +USES= cmake:testing compiler:c++11-lang + +USE_GITHUB= yes +GH_ACCOUNT= bloomberg + +CMAKE_TESTING_ON= QUANTUM_ENABLE_TESTS # tests are broken, see https://github.com/bloomberg/quantum/issues/151 + +NO_ARCH= yes + +.include diff --git a/devel/quantum/distinfo b/devel/quantum/distinfo new file mode 100644 index 000000000000..5196e2c34f2f --- /dev/null +++ b/devel/quantum/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1631473881 +SHA256 (bloomberg-quantum-v2.2_GH0.tar.gz) = cf3220068f3f60d0bf2d393a00321bd9c9148f6e558d9b78304de0fa3ebcb71a +SIZE (bloomberg-quantum-v2.2_GH0.tar.gz) = 1325969 diff --git a/devel/quantum/pkg-descr b/devel/quantum/pkg-descr new file mode 100644 index 000000000000..acd9eded3d4c --- /dev/null +++ b/devel/quantum/pkg-descr @@ -0,0 +1,6 @@ +Quantum is a full-featured and powerful C++ framework build on top of the Boost +coroutine library. The framework allows users to dispatch units of work +(a.k.a. tasks) as coroutines and execute them concurrently using the 'reactor' +pattern. + +WWW: https://github.com/bloomberg/quantum diff --git a/devel/quantum/pkg-plist b/devel/quantum/pkg-plist new file mode 100644 index 000000000000..4e0d9faa3675 --- /dev/null +++ b/devel/quantum/pkg-plist @@ -0,0 +1,106 @@ +include/quantum/impl/quantum_buffer_impl.h +include/quantum/impl/quantum_capture_impl.h +include/quantum/impl/quantum_condition_variable_impl.h +include/quantum/impl/quantum_configuration_impl.h +include/quantum/impl/quantum_context_impl.h +include/quantum/impl/quantum_contiguous_pool_manager_impl.h +include/quantum/impl/quantum_coroutine_pool_allocator_impl.h +include/quantum/impl/quantum_dispatcher_core_impl.h +include/quantum/impl/quantum_dispatcher_impl.h +include/quantum/impl/quantum_future_impl.h +include/quantum/impl/quantum_io_queue_impl.h +include/quantum/impl/quantum_io_task_impl.h +include/quantum/impl/quantum_iterminate_impl.h +include/quantum/impl/quantum_local_impl.h +include/quantum/impl/quantum_mutex_impl.h +include/quantum/impl/quantum_promise_impl.h +include/quantum/impl/quantum_queue_statistics_impl.h +include/quantum/impl/quantum_read_write_mutex_impl.h +include/quantum/impl/quantum_read_write_spinlock_impl.h +include/quantum/impl/quantum_shared_state_impl.h +include/quantum/impl/quantum_spinlock_impl.h +include/quantum/impl/quantum_spinlock_traits_impl.h +include/quantum/impl/quantum_stack_traits_impl.h +include/quantum/impl/quantum_stl_impl.h +include/quantum/impl/quantum_task_id_impl.h +include/quantum/impl/quantum_task_impl.h +include/quantum/impl/quantum_task_queue_impl.h +include/quantum/interface/quantum_icontext.h +include/quantum/interface/quantum_icontext_base.h +include/quantum/interface/quantum_icoro_context.h +include/quantum/interface/quantum_icoro_context_base.h +include/quantum/interface/quantum_icoro_future.h +include/quantum/interface/quantum_icoro_future_base.h +include/quantum/interface/quantum_icoro_promise.h +include/quantum/interface/quantum_icoro_sync.h +include/quantum/interface/quantum_ifuture.h +include/quantum/interface/quantum_ipromise.h +include/quantum/interface/quantum_ipromise_base.h +include/quantum/interface/quantum_iqueue.h +include/quantum/interface/quantum_iqueue_statistics.h +include/quantum/interface/quantum_itask.h +include/quantum/interface/quantum_itask_accessor.h +include/quantum/interface/quantum_itask_continuation.h +include/quantum/interface/quantum_iterminate.h +include/quantum/interface/quantum_ithread_context.h +include/quantum/interface/quantum_ithread_context_base.h +include/quantum/interface/quantum_ithread_future.h +include/quantum/interface/quantum_ithread_future_base.h +include/quantum/interface/quantum_ithread_promise.h +include/quantum/quantum.h +include/quantum/quantum_allocator.h +include/quantum/quantum_allocator_traits.h +include/quantum/quantum_buffer.h +include/quantum/quantum_capture.h +include/quantum/quantum_condition_variable.h +include/quantum/quantum_configuration.h +include/quantum/quantum_context.h +include/quantum/quantum_contiguous_pool_manager.h +include/quantum/quantum_coroutine_pool_allocator.h +include/quantum/quantum_dispatcher.h +include/quantum/quantum_dispatcher_core.h +include/quantum/quantum_functions.h +include/quantum/quantum_future.h +include/quantum/quantum_future_state.h +include/quantum/quantum_heap_allocator.h +include/quantum/quantum_io_queue.h +include/quantum/quantum_io_task.h +include/quantum/quantum_local.h +include/quantum/quantum_macros.h +include/quantum/quantum_mutex.h +include/quantum/quantum_promise.h +include/quantum/quantum_queue_statistics.h +include/quantum/quantum_read_write_mutex.h +include/quantum/quantum_read_write_spinlock.h +include/quantum/quantum_shared_state.h +include/quantum/quantum_spinlock.h +include/quantum/quantum_spinlock_traits.h +include/quantum/quantum_stack_allocator.h +include/quantum/quantum_stack_traits.h +include/quantum/quantum_task.h +include/quantum/quantum_task_id.h +include/quantum/quantum_task_queue.h +include/quantum/quantum_thread_traits.h +include/quantum/quantum_traits.h +include/quantum/quantum_yielding_thread.h +include/quantum/util/impl/quantum_future_joiner_impl.h +include/quantum/util/impl/quantum_generic_future_impl.h +include/quantum/util/impl/quantum_local_variable_guard_impl.h +include/quantum/util/impl/quantum_sequence_key_statistics_impl.h +include/quantum/util/impl/quantum_sequencer_configuration_impl.h +include/quantum/util/impl/quantum_sequencer_impl.h +include/quantum/util/impl/quantum_spinlock_util_impl.h +include/quantum/util/impl/quantum_util_impl.h +include/quantum/util/quantum_drain_guard.h +include/quantum/util/quantum_future_joiner.h +include/quantum/util/quantum_generic_future.h +include/quantum/util/quantum_local_variable_guard.h +include/quantum/util/quantum_sequence_key_statistics.h +include/quantum/util/quantum_sequencer.h +include/quantum/util/quantum_sequencer_configuration.h +include/quantum/util/quantum_spinlock_util.h +include/quantum/util/quantum_util.h +share/cmake/Quantum/QuantumConfig.cmake +share/cmake/Quantum/QuantumConfigVersion.cmake +share/cmake/Quantum/QuantumTargets.cmake +share/pkgconfig/quantum.pc