- Dec 09, 2020
-
-
Florian Schmaus authored
This also solves a dependency declaration issue in WorkerSleepExample: Prior to this change, a clean build could potentially result in ninja -C build ninja: Entering directory `build' [13/57] Compiling C++ object apps/worker_sleep_example.p/WorkerSleepExample.cpp.o FAILED: apps/worker_sleep_example.p/WorkerSleepExample.cpp.o ccache c++ -Iapps/worker_sleep_example.p -Iapps -I../apps -Iemper -I../emper -Iemper/include -I../emper/include -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -Wextra -Wpedantic -Werror -std=c++17 -O2 -g -Wno-non-virtual-dtor -MD -MQ apps/worker_sleep_example.p/WorkerSleepExample.cpp.o -MF apps/worker_sleep_example.p/WorkerSleepExample.cpp.o.d -o apps/worker_sleep_example.p/WorkerSleepExample.cpp.o -c ../apps/WorkerSleepExample.cpp ../apps/WorkerSleepExample.cpp:12:10: fatal error: emper-version.h: No such file or directory 12 | #include "emper-version.h" // for EMPER_FULL_VERSION | ^~~~~~~~~~~~~~~~~ compilation terminated. [17/57] Generating emper-version.h with a custom command ninja: build stopped: subcommand failed. make: *** [Makefile:23: build] Error 1 because worker_sleep_example_exec should have also depend on emper_version_h. However this is obviously error prone, as users easily forget to add this dependency. Instead we add emper::getFullVersion() which is part of the EMPER shared object (not just of a single header).
-
Florian Schmaus authored
Allow an actor to be startet from anywhere See merge request i4/manycore/emper!43
-
Florian Fischer authored
-
Florian Fischer authored
-
Florian Schmaus authored
Schedule from anywhere See merge request i4/manycore/emper!41
-
Florian Schmaus authored
-
Florian Schmaus authored
In debug builds, the schedule() method is now guarded by an assert(), as due to this change, the schedule() method will no longer work from everywhere. This also improves the worker sleep method.
-
- Dec 07, 2020
-
-
Florian Schmaus authored
This directory is used, for example, by clangd.
-
Florian Schmaus authored
-
- Dec 05, 2020
-
-
Florian Schmaus authored
[gitlab-ci] Bump CI container to flowdalic/debian-testing-dev:1.4 See merge request i4/manycore/emper!40
-
Florian Schmaus authored
-
Florian Schmaus authored
-
- Dec 03, 2020
-
-
Florian Schmaus authored
prevent data races when initializing the workers PRNG seeds See merge request !38
-
Florian Fischer authored
Each worker currently calls uniformIntDistribution(randomEngine) which modifies the randomEngine internally and thus produces data races when the threads run in parallel. This change calls uniformIntDistribution(randomEngine) on the main thread for each worker and passes the resulting seeds to the workerLoop. The data race was found by gcc's tsan.
-
- Dec 02, 2020
-
-
Florian Schmaus authored
Add sanitizer CI targets See merge request !35
-
Florian Schmaus authored
Debugging changes See merge request !37
-
Florian Fischer authored
-
Florian Fischer authored
-
Florian Fischer authored
-
Florian Fischer authored
-
Florian Fischer authored
To exclude debug code from release builds "if constexpr(emper::DEBUG)" is preferred over "#ifndef NDEBUG".
-
- Dec 01, 2020
-
-
Florian Schmaus authored
Revert "[tests] don't undef NDEBUG for test executables" See merge request !36
-
Florian Schmaus authored
This reverts commit b33ac93c. Now that logging is done independently from NDEBUG, we can re-enable "undef NDEBUG for test executables". The rationale that we want to undefine NDEBUG for test executable is that we want, even in release builds, asserts in tests enabled. Note that this also applies to asserts in the emper core library, if those are in *headers*.
-
- Nov 30, 2020
-
-
Florian Schmaus authored
use DIE* macros instead of the die function See merge request !33
-
Florian Schmaus authored
make logging configurable during compilation and runtime See merge request !32
-
Florian Fischer authored
Compile-time: * A new meson option 'log_level' is introduced which has all the values from the Loglevel enum * The 'OFF' option defines EMPER_LOG_OFF which causes the LOG* macros to be empty and the Logger<>::log function to return immediately * The default 'automatic' option sets 'log_level' to 'Error' for release builds and to 'ALL' otherwise Runtime: * The global variable emper::log_level defined in Debug.hpp controls the logging output * It is initialized with the meson option 'log_level' but can be changed during runtime
-
Florian Schmaus authored
make the userspace-rcu dependency optional See merge request !28
-
Florian Fischer authored
-
Florian Fischer authored
Disable the userpace-rcu support by default. Our used userspace-rcu flavor memb is rather new and not available in liburcu version 0.10 available in debian buster. This change switches from using DCE and "if constexpr" to the C preprocessor so the library is only needed when the userspace-rcu support is actually enabled.
-
Florian Schmaus authored
[gitlab-ci] Use flowdalic/debian-testing-dev:1.0 as container image See merge request !34
-
- Nov 27, 2020
-
-
Florian Schmaus authored
-
Florian Schmaus authored
And fix the #include issues reported by the newer IWYU version.
-
Florian Fischer authored
-
- Nov 26, 2020
-
-
Florian Schmaus authored
[UnboundedBlockingMpscQueue] Fix message loss See merge request !31
-
Florian Schmaus authored
Avoid messages getting lost in the queue.
-
- Nov 25, 2020
-
-
Florian Schmaus authored
use proper camel case for URCU test See merge request !26
-
- Nov 23, 2020
-
-
Florian Schmaus authored
do not run tests in parallel by default See merge request !27
-
Florian Schmaus authored
[docs] rename doc target from speedymalloc to emper See merge request !29
-
Florian Fischer authored
-
- Nov 20, 2020
-
-
Florian Fischer authored
-