summaryrefslogtreecommitdiff
path: root/gnuradio-runtime
Commit message (Collapse)AuthorAgeFilesLines
...
* runtime: remove six (#3808)mormj2020-10-201-4/+1
|\
| * runtime: remove sixClayton Smith2020-10-051-4/+1
| |
* | gnuradio-runtime, pmt: dont use CMAKE_INSTALL_PREFIX for target ↵Gwenhael Goavec-Merou2020-10-162-2/+2
| | | | | | | | INSTALL_INTERFACE
* | pmt: add absolute pmt serialization QAJacob Gilbert2020-10-151-2/+197
| | | | | | | | currently there is nothing to check the absolute accuracy of PMT serialization, and it is easy for changes to break this provided serialize_str() and deserialize_str() are inverse functions. this provides some absolute reference PMT strings to ensure compatibility is retained.
* | pmt: add binding for __repr__ functionJacob Gilbert2020-10-141-0/+1
| | | | | | | | per 3.8 behavior, and the GR wiki, the __repr__ function of a PMT object should be overloaded to call pmt::write_string. This is currently not bound so this adds this binding.
* | pybind11: Remove SWIG remnants.Ron Economos2020-10-123-5/+1
|/
* runtime: gateway: Fix Doxygen warningMartin Braun2020-10-051-1/+1
| | | | Fixes an incorrectly named Doxygen parameter.
* lib, include: Include missing headers.Ryan Volz2020-10-021-0/+1
| | | | | This fixes compilation with MSVC on conda-forge, although why this wasn't needed earlier is a mystery.
* runtime: fix latency issue caused by setting block alias on message blockJacob Gilbert2020-09-303-5/+9
| | | | This changes how the blocks are identified when they need to be notified that they have messages waiting. It also clarifies the name the block is registered with explicitly, and adds exceptions for looking up blocks that do not exist.
* add an option to enable/disable examplesGwenhael Goavec-Merou2020-09-021-1/+3
|
* runtime: add alias for io_signature{v,3,2}Josh Morman2020-08-141-0/+4
|
* python: Remove unnecessary 'from __future__ import'Oleksandr Kravchuk2020-08-0354-87/+0
| | | | | | | | | | | | | | | | All of the removed `from __future__ import` were needed in older versions of Python (mostly 2.5.x and below) but later became mandatory in most versions of Python 3 hence are not necessary anymore. More specifically, according to __future__.py[1]: - unicode_literals is part of Python since versions 2.6.0 and 3.0.0; - print_function is part of Python since versions 2.6.0 and 3.0.0; - absolute_import is part of Python since versions 2.5.0 and 3.0.0; - division is part of Python since versions 2.2.0 and 3.0.0; Get rid of those unnecessary imports to slightly clean up the codebase. [1] https://github.com/python/cpython/blob/master/Lib/__future__.py
* Replace all calls to `get_initial_sptr` with `make_block_sptr`Thomas Habets2020-07-309-38/+26
| | | | | | | | | | | | | | First batch of changes: ``` find […] -print0 | xargs -0 sed -i -r '/get_initial_sptr/{:nxt N;/;/!b nxt;s/get_initial_sptr\(\s*new ([^(]+)(.*)\)\)/make_block_sptr<\1>\2)/}' ``` Then: * Back out `sptr_magic.h` edits * Change some `friend` clauses * clang-format the whole thing * Update checksums in the pybind11 bindings files
* blocks: move the `new` from the block `::make()` to coreThomas Habets2020-07-301-0/+15
| | | | | This includes the first edit of a block, so that it's easy to review. A following commit changes this globally.
* controlport: include <algorithm> when using std::for_each()Daniel Estévez2020-07-301-0/+1
| | | | | std::for_each() is defined in <algorithm>, so that if it is not included, it doesn't build in some platforms
* pybind: include and enable realtime_impl wrappingMarcus Müller2020-06-222-3/+3
| | | | | This solves the issue of gr.enable_realtime_scheduling() failing because rt_status_t wasn't wrapped without.
* pmt: update pybind code for dcons and is_pmtJosh Morman2020-06-042-0/+12
|
* utils: move python search path in build dir upJosh Morman2020-06-041-1/+1
|
* pybind: update hash for basic_block.hJosh Morman2020-06-041-1/+1
|
* msg_handler: Use lambdas to set msg handlersJohannes Demel2020-06-041-2/+1
| | | | | With this commit, all calls to `set_msg_handler` in `gr-blocks` use lambdas. This helps to use `std::function` instead of `boost::function`.
* msg_handler: Switch from boost::function to std::functionJohannes Demel2020-06-042-3/+4
| | | | | | | This commit is a first stab at moving from `boost::function` to `std::function`. For now, it does only update gr-blocks. Also, this requires more testing. If others can confirm that this change works, I'll continue to update all modules.
* pybind: add hash check to binding file creation (#3472)mormj2020-06-0445-46/+398
|
* pybind: run clang-formatJosh Morman2020-06-046-41/+40
|
* pmt: replace "long" with int64_t in python bindingsJosh Morman2020-06-041-4/+4
| | | | | | | pygccxml seems to replace int64_t and uint64_t with long and unsigned long. This causes a mismatch in the overload on 32b systems Fixes #3408
* runtime: replace py gateway with pybind11 support, remove fevalJosh Morman2020-06-049-817/+99
|
* runtime: disable prefs from python bindingsJosh Morman2020-06-041-2/+2
|
* runtime: add pybind11 bindingsJosh Morman2020-06-04106-212/+7342
|
* runtime: make logger destructor publicJosh Morman2020-06-041-3/+2
|
* runtime: add enum name to work_return_typeJosh Morman2020-06-041-1/+1
|
* pmt: add pybind11 bindingsJosh Morman2020-06-0411-7/+2864
|
* pmt: change modifiers for pmt_baseJosh Morman2020-06-041-1/+2
|
* pmt: add missing implementation of pmt_from_complexJosh Morman2020-06-041-0/+5
|
* pybind: removal of swig componentsJosh Morman2020-06-0431-2007/+1
|
* pmt: stop treating all pairs like they are dictsJacob Gilbert2020-05-057-18/+93
| | | | create a new derived class for pmt dicts so they can be distinguished without complicated try/catch logic, updated QA with a few additional checks. also added an is_pdu() method which returns true if the pmt is a pair of a dict-type PMT and a uniform-vector type, otherwise false
* runtime: attributes: Remove check for gcc 3Martin Braun2020-04-281-5/+0
| | | | | gcc 4 has been a requirement for many years now, so we can remove the check for gcc 3.
* pmt: serialization change from endian.h to boost::endian conversionJacob Gilbert2020-04-231-15/+15
| | | | this is more portable since endian.h is not available on all platforms, and may have some implementation inconsistencies
* runtime: move loggers from gr::block to gr::basic_blockMarcus Müller2020-04-134-9/+10
| | | | | | | No reason to assume only `general_work`-containing blocks would want to log. This enables us especially to log in `basic_block` itself.
* runtime: replace stderr logging by calls to GR's logging faciltiesMarcus Müller2020-04-1326-220/+354
|
* pmt: conditionalize testing of long > 2³² on sizeof(long)Marcus Müller2020-04-131-0/+8
|
* Remove VOLK as a submoduleMartin Braun2020-04-112-2/+1
| | | | | | | | | | | | | | This removes the volk/ submodule pointer and updates the CMake to detect VOLK like any other dependency. The VOLK_MIN_VERSION CMake variable is added (and set to 2.1.0). The GR_VOLK_LIB variable is replaced with Volk::volk everywhere. The VOLK_INSTALL_LIBRARY_DIR and VOLK_INSTALL_INCLUDE_DIR variables weren't used and were removed. CMake will now fail if VOLK cannot be detected. Therefore, ENABLE_VOLK was also removed as a variable; all in-tree components may assume the existence of VOLK.
* realtime_impl: rint/rintf: use appropriate math function for floatMarcus Müller2020-04-111-1/+1
|
* boost: remove deprecated math/common_factor.hppjapm482020-04-113-16/+39
| | | | | Remove deprecation warning and prefer using std::{lcm,gcd} to Boost. Fixes #2712.
* qtgui: Remove boost::lexical_cast for parsingThomas Habets2020-04-111-2/+4
| | | | This is the last boost::lexical_cast in gnuradio.
* qtgui: Remove boost::lexical_cast for printingThomas Habets2020-04-111-7/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | boost::lexical_cast seems not not be consistent given different inputs. E.g. std::complex is stringified like iostream, but float and double avoid scientific notation… mostly. See below for comparisons between before and after (`printf` is what this commit switches to). I don't think the differences matter. ``` int main() { constexpr float low_float = 200000000.2; constexpr float high_float = 20000000000.2; constexpr float low_double = 200000000.2; constexpr float mid_double = 20000000000.2; constexpr float high_double = 200000000000000000.2; const std::complex<float> c(1.3,low_float); const std::complex<double> d(1.3,low_double); const std::complex<double> d2(1.3,high_double); const std::vector<float> fs = {low_float, high_float}; const std::vector<double> ds = {low_double, mid_double, high_double}; std::cout << "# complex\n"; std::cout << "iostream: " << c << std::endl; std::cout << "lexical_cast: " << boost::lexical_cast<std::string>(c) << std::endl; std::cout << std::endl; for (int i = 0; i < fs.size(); i++) { std::cout << "# float " << i << std::endl; std::cout << "iostream: " << fs[i] << std::endl; std::cout << "to_string: " << std::to_string(fs[i]) << std::endl; printf("printf %.f\n", std::numeric_limits<float>::digits10, fs[i]); std::cout << "lexical: " << boost::lexical_cast<std::string, float>(fs[i]) << std::endl; std::cout << std::endl; } for (int i = 0; i < ds.size(); i++) { std::cout << "# double " << i << std::endl; std::cout << "iostream: " << ds[i] << std::endl; std::cout << "to_string: " << std::to_string(ds[i]) << std::endl; printf("printf %.*g\n", std::numeric_limits<double>::digits10, ds[i]); std::cout << "lexical: " << boost::lexical_cast<std::string, double>(ds[i]) << std::endl; std::cout << std::endl; } } ``` Output (Debian amd64): ``` iostream: (1.3,2e+08) lexical_cast: (1.3,2e+08) iostream: 2e+08 to_string: 200000000.000000 printf 200000000 lexical: 200000000 iostream: 2e+10 to_string: 20000000000.000000 printf 20000000000 lexical: 2e+10 iostream: 2e+08 to_string: 200000000.000000 printf 200000000 lexical: 200000000 iostream: 2e+10 to_string: 20000000000.000000 printf 20000000000 lexical: 20000000000 iostream: 2e+17 to_string: 199999996861349888.000000 printf 1.9999999686135e+17 lexical: 1.9999999686134989e+17 ```
* pmt: speed up serializationJacob Gilbert2020-04-111-199/+178
|
* runtime: Remove most manual memory managementThomas Habets2020-04-1117-108/+84
| | | | | | The remaining ones: * `pmt_pool.cc`, which is a memory allocator so that makes sense * the tricky and aptly named `sptr_magic.cc`.
* runtime: Use nanosecond resolution for default random seedThomas Habets2020-04-102-3/+5
| | | | | This exposed some missing forwarding of RNG seed from one object to another, also fixed in this commit.
* runtime: Make random seed default to current time, as documentedThomas Habets2020-04-101-1/+1
| | | | | | | | | | | This is what gnuradio currently documents seeding will do, but it's not what C++ defaults to. See C++11 26.5.3.2, paragraph 3. Default for mersenne twister is constexpr 5489. Or easier, the bottom of https://en.cppreference.com/w/cpp/numeric/random/mersenne_twister_engine
* runtime: Remove last boost::scoped_ptrThomas Habets2020-04-091-2/+2
|
* global: remove boost ptr headers not neededThomas Habets2020-04-091-1/+1
|