aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosh Morman <jmorman@gnuradio.org>2022-01-13 16:37:36 -0500
committermormj <34754695+mormj@users.noreply.github.com>2022-01-14 10:27:04 -0500
commit273fb3e84aac2f67597bbf221ca2a8aed89f6179 (patch)
tree377e07b474e23d2fdbfe9c21ab4eb39a5c60e910
parentRelease v3.10.0.0-rc4 (diff)
downloadgnuradio-273fb3e84aac2f67597bbf221ca2a8aed89f6179.tar.xz
gnuradio-273fb3e84aac2f67597bbf221ca2a8aed89f6179.zip
Update and merge maint releases with CHANGELOG
Signed-off-by: Josh Morman <jmorman@gnuradio.org>
-rw-r--r--CHANGELOG.md1036
1 files changed, 1035 insertions, 1 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 83d4d3dfa..15f870d61 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -7,7 +7,19 @@ Versioning](http://semver.org/spec/v2.0.0.html), starting with version 3.7.12.0.
Older Logs can be found in `docs/RELEASE-NOTES-*`.
-## [3.10.0.0] - [UNRELEASED]
+## [3.10.0.0] - 2022-01-14
+
+It is with much excitement that we release the next step forward for GNU Radio - 3.10.0.0!
+
+Not only does this release bring in some extremely useful new modules (gr-iio, gr-pdu, and arguably gr-soapy thought that thankfully made it also into recent 3.9 maintenance releases), but also sets a path forward for using GNU Radio in heterogeneous compute environments by providing "custom buffers" for more efficiently interacting with accelerators (GPUS, FPGAs, TPUs, etc.).
+
+We have been fortunate this year to have extremely active backporting and consistent maintenance releases from co-maintainter Jeff Long - so many of the fixes and smaller feature (and larger ones) have already seen the light of day in the 3.9.x.x and even 3.8.x.x releases.
+
+A special specific thanks to the contributors that made these larger features and upstreamed modules possible, but much appreciation to all that contributed through code, documentation, review, and just generally being a part of this wonderful community.
+- gr-pdu: Jacob Gilbert and the team at Sandia National Labs
+- gr-iio: Travis Collins and the team at Analog Devices as well as Adam Horden, David Winter, and Volker Shroer for bringing this in-tree and working through many of the complexities.
+- Custom Buffers Support: We have David Sorber to thank for this incredible, yet advanced, feature that came out of the DARPA SDR 4.0 program and should get a lot of traction. Check out https://wiki.gnuradio.org/index.php/Custom_Buffers for more of the gory detail. Also thanks to Seth Hitefield whose initial work in this area helped get this concept into the mainstream for GNU Radio.
+- Logging Infrastructure Overhaul: A huge thanks to Marcus Müller for fixing all of this up, replacing Log4CPP with spdlog and also for providing ongoing architectural leadership to the project
### Changed
@@ -148,8 +160,526 @@ Older Logs can be found in `docs/RELEASE-NOTES-*`.
- New in-tree module gr-pdu
- New in-tree module gr-iio
+## [3.9.5.0] - 2022-01-XX
+
+This is an API compatible update to GNU Radio 3.9. Code written for 3.9.X versions should compile and link without modification. The ABI is not guaranteed to be compatible, so a rebuild of OOT modules may be necessary.
+
+### Changes
+
+#### GRC
+- Fix: dependent variables sometimes fail to evaluate
+- Modify and cleanup bokeh server loop
+
+#### gr-analog
+- Update python bindings for power squelch
+
+#### gr-dtv
+- Add energy normalization for DVB-S2X constellations.
+
+#### gr-filter
+- Remove pyqwt and qt4 from filter_design
+
+#### gr-network
+- Fix: segfaults when TCP & UDP blocks are restarted
+- Add throttle flag to the tcp source and sink blocks
+
+#### gr-qtgui
+- Enable use of Qwt 6.2
+
+#### gr-uhd
+- Add Python bindings for rfnoc_{block, ddc, duc, rx/tx_radio}
+
+#### modtool
+- Improvements in generated QA code
+
+#### Build System
+- Better support for cross-compiling (OpenEmbedded)
+- Find log4cpp on Ubuntu systems
+- Handle optional components in `find_package`
+- Add version check for pygccxml
+
+#### CI/QA
+- Update tests to work with OpenEmbedded
+
+
+## [3.9.4.0] - 2021-10-25
+
+This is an API compatible update to GNU Radio 3.9. Code written for 3.9.X versions should compile and link without modification. The ABI is not guaranteed to be compatible, so a rebuild of OOT modules may be necessary.
+
+### Changes
+
+#### Regressions Fixes
+
+- Remove `#include <filesystem>` (C++17 feature) from one file
+- Restore `pyqwidget()` in gr-qtgui
+
+#### GRC
+
+- GRC now runs on Fedora 35 ... Gtk initialization checks were too strict
+- Add keyboard shortcuts for zoom
+- Account for scale factor when computing drawing area size
+- Use font size from config for block comments
+- Change type aliasing to allow interleaved short/byte to be connected to vectors of short/byte. Stricter type checking was added previously and caused some blocks to be unconnectable when using these types.
+- Required params no longer default to `0` when left empty. This caused hard-to-find errors. Older flowgraphs that have empty required fields will need to be fixed.
+- Tooltips fixed for categories and modules
+
+#### gr-runtime
+
+- PMT uses the VOLK allocator for vectors
+- `get_tags_in_window()` Python wrapper calls the correct function
+- Add `--pybind` option to `gnuradio-config-info` to get PyBind11 version
+
+#### gr-blocks
+
+- Add example for XMLRPC
+- Add a unit test for Message Strobe
+- Fix C++ support for Unpacked to Packed
+
+#### gr-channels
+
+- RNG seeds are initialized correctly
+
+#### gr-digital
+
+- Fix yml file for Header/Payload Demux
+
+#### gr-network
+
+- Suppress warning in tuntap
+
+#### gr-qtgui
+
+- Remove unusable int type in Number Sink yml
+- Use `no_quotes()` function in several yml files
+
+#### modtool
+
+- Hashes can be fixed using modtool using `--update-hash-only`
+- Use `tempfile()` instead of `/tmp` in bindtool and modtool
+- Use `static_cast` instead of `reinterpret_cast` in templates
+- Correct broken Python general block template
+
+#### Build system
+
+- Better check for Boost version
+- Determine the Python prefix more reliably
+- Use GR-specified compiler standard (C++14) in gr-soapy, instead of the SoapySDR standard (C++11)
+- GrPython.cmake is compatible with older cmake
+
+#### Documentation
+
+- Man pages are in-tree
+- Repair many examples, especially in gr-digital
+- Allow UTF-8 in pydoc templates
+
+#### CI
+
+- Execute `make install` during test
+- Add Ubuntu 18.04 test target
+
+## [3.9.3.0] - 2021-09-30
+
+This is an API compatible update to GNU Radio 3.9. Code written for 3.9.X versions should
+compile and link without modification. The ABI is not guaranteed to be compatible, so
+a rebuild of OOT modules may be necessary.
+
+### Changes
+
+#### General
+
+- Many cleanups and some C++ modernization changes
+- Replace Boost with stdc++ equivalents (ongoing effort)
+- Logging cleanup and performance improvements (ongoing effort)
+- Cleanup of many unused includes
+- Various block yaml cleanups and repairs
+- Use Soapy instead of UHD for flowgraph testing in gr-analog and gr-dtv
+
+#### GRC
+
+- Improvements in C++ templates and code generation, more blocks are usable
+- Add specification of packages to find (via cmake) for C++ templates
+- Fix C++ hier block param template
+- Add GUI hints for widgets in C++ code generation
+- Add no_quotes() convenience function to strip quotes from strings, callable from templates
+- Allow short and byte as valid types in an enum
+- Fix desync when dragging block (block would not always track cursor)
+- Correctly evaluate interdependent variables
+- Allow error messages to be copied to clipboard
+- Update disabled blocks if they depend on others
+
+#### gnuradio-runtime
+
+- Deprecate tag_checker class (will be removed in 3.10)
+- Detect and follow symbolic links for installation prefix in gr::prefix()
+- Add "<" operator for comparison of tags (instead of offset_compare())
+
+#### gr-blocks
+
+- New Matrix Interleaver block
+- Throttle and Head blocks can be input-only when no output is needed, improving performance
+- Fix tag propagation in (un)pack-k-bits blocks
+- Fix namespace for nco and vco in benchmarks
+
+#### gr-digital
+
+- New Async CRC16 block
+- Add NRZI option to Differential En/Decoder
+- Constellation performance improvements
+- Fix constellation normalization by average power
+- Remove unimplemented msg output port from Chunks to Symbols block
+- Make unpacking of bits optional in GMSK modulator so the blocks can accept unpacked bits
+- In GFSK/GMSK hier blocks, replace M&M clock recovery with newer and more capable Digital Symbol Sync block
+
+#### gr-fec
+
+- Cleanups and code improvements
+
+#### gr-fft
+
+- Add a "shift" paramenter to Log Power FFT, to place DC bin at center
+
+#### gr-filter
+
+- Performance improvement in PFB Arbitrary Resampler when interpolating, especially at low rates
+
+#### gr-qtgui
+
+- Fix display of tags on the last sample (would be dropped)
+- Python wrapping: replace pyqwidget() with qwidget() - this is not intended to be a visible fix, but is mentioned here in case it causes trouble for anyone
+- C++ generation
+ - add double quotes to cpp_opts keys with colons
+ - position windows correctly depending on gui_hint
+ - use option attributes to generate enums
+ - use the cpp enums for wintype and trigger_type
+
+#### gr-uhd
+
+- Fix input filename in freq hopping examples
+- Make RFNoC a separately enabled component in cmake
+- Python bindings for rfnoc_graph,_rx/tx_streamer
+
+#### gr-video-sdl
+
+- U and V channels were reversed on sink blocks
+
+#### gr-soapy
+
+- Added message support for SoapySDR 0.8 API
+
+#### modtool
+
+- Set VERSION_PATCH to 0 instead of "git" in new modules
+- Fix "rm", "bind", disable", "rename" and "makeyml" which had unexpected side effects, or did not work as a user would expect
+
+#### Build System
+
+- Correct minimum version checking for Mako
+- Ensure that RC_*_VERSION are numeric (Windows)
+- Fix finding libunwind
+- Pass through extra arguments to GR_PYTHON_INSTALL to install command
+- Remove absolute paths and private links from exported targets
+- Add gir1.2-gtk-3.0 as deb runtime dependency
+
+#### Documentation
+
+- Code of Conduct updates and link to Wiki
+
+#### CI
+
+- Do not error out on deprecations, allowing testing of deprecated code
+
+## [3.9.2.0] - 2021-06-10
+
+### Changed
+
+#### SoapySDR support (gr-soapy)
+The new gr-soapy built-in module provides access to Soapy hardware drivers using the SoapySDR driver framework. See https://wiki.gnuradio.org/index.php/Soapy for more information.
+
+If SoapySDR 0.7.2 or newer is available during GNU Radio configuration, the gr-soapy module will be enabled.
+
+The SoapySDR framework and Soapy driver modules are not maintained by the GNU Radio project. Driver modules are dynamically discovered and linked. They may be added and updated independently from the GNU Radio release cycle.
+
+#### GRC
+
+- Parameter expressions and/or values can be displayed in blocks on the flowgraph. Previously, only values were displayed. Look for the "Show Parameter ..." toggles under the View menu.
+- Deprecated blocks are shown in a distinct color (orange), and the optional `deprecated` property has been added to block yaml
+- Dark theme works better, especially for parameter fields
+- Vector length is now correctly applied to all input ports
+- Validation has been improved. Raw types are validated. Port connections are checked by type rather than by item size.
+- Variable names that cause name conflicts in Python code (e.g., with package names) are rejected
+- Bus logic fixes
+- Blocks can no longer be dragged off the screen and lost forever
+
+#### gnuradio-runtime
+
+- Remove `pmt::pmt_*` functions, which were not actually implemented. This is technically an API change, but any use of the API would have resulted in a link error.
+- Remove Python bindings for internal buffer functions
+
+#### gr-analog
+
+- Added an example for PLL Frequency Detector
+- Better names for parameters in PLL GRC blocks
+
+#### gr-blocks
+
+- Consistent naming for Vector Length parameter in GRC blocks
+- `count_bits` uses VOLK `popcnt` for better performance (used for example in the Correlate Access Code block)
+- Rotator block phase increment parameter is controllable via a message, and a tag can be added at the point where the increment is adjusted
+
+#### gr-digital
+
+- MPSK example updated to use a Linear Equalizer (replacing deprecated block)
+
+#### gr-filter
+
+- Filter Delay documentation improvement
+- Interpolating FIR filter can generate C++ code
+
+#### gr-dtv
+
+- VL-SNR bugs fixed (incorrect constants).
+
+#### gr-qtgui
+
+- Improve autoscaling for vector sinks
+- Fix floating-point resolution problems in several widgets, due to interpretation of PMT doubles as floats
+
+#### gr-uhd
+
+- Add policy enum to Python bindings for `tune_request`
+- Additional time spec options on UHD blocks (PC Clock on Next PPS, GPS Time on Next PPS)
+- Fix up code that was generating warnings
+- Fix command handler logic to apply commands from messages to the correct channel
+
+#### gr_filter_design
+
+- "File/Save" is disabled until the taps have been computed, and the GUI is reset after a save, to make it clearer which data is being saved.
+- Entries are hidden for parameters that do not apply to the selected filter type.
+- Save window type as an integer instead of a Python enum name
+
+#### gr_modtool
+
+- Improve validation of module and block names
+
+#### Build System and Infrastructure
+
+- Improved messages related to dependencies MPIR and GMP. Only one of these packages is required, and the previous error messages were confusing.
+- Cleaner builds for Windows and Conda. A number of general cmake improvements have resulted from this work.
+- In-tree packaging files for DEB and RPM, used with Launchpad and COPR
+- Added man pages for GNU Radio tools
+- Test code generation for all in-tree GRC examples
+- In GrPybind.cmake, `PYBIND11_INCLUDE_DIR` (incorrect) was changed to `pybind11_INCLUDE_DIR`
+
+### Contributors
+At LEAST the following authors contributed to this release. Note that only authors of commits are included here. A number of people contribute in other ways, including code review, documentation and testing.
+
+- 0xloem <0xloem@gmail.com>
+- Christophe Seguinot <christophe.seguinot@univ-lille.fr>
+- Chuang Zhu <genelocated@yandex.com>
+- Codey McCodeface <Codey.McCodeface@gmail.com>
+- Ferenc Gerlits <fgerlits@gmail.com>
+- Håkon Vågsether <hauk142@gmail.com>
+- Igor Freire <igor@blockstream.com>
+- Jacob Gilbert <jacob.gilbert@protonmail.com>
+- Jeff Long <willcode4@gmail.com>
+- Josh Morman <jmorman@perspectalabs.com>
+- Liu, Andrew Z <liu.andrew@vast-inc.com>
+- Marcus Müller <mmueller@gnuradio.org>
+- Martin Braun <martin@gnuradio.org>
+- Martyn van Dijke <martijnvdijke600@gmail.com>
+- Nicholas Corgan <n.corgan@gmail.com>
+- Ron Economos <w6rz@comcast.net>
+- Ryan Volz <ryan.volz@gmail.com>
+- Solomon Tan <solomonbstoner@yahoo.com.au>
+- Volker Schroer
+- Zackery Spytz <zspytz@gmail.com>
+
+## [3.9.1.0] - 2021-03-17 "Luck-O-The-Radio"
+
+API is compatible with C++ code written against previous v3.9 releases.
+
+ABI (link time) compatibility is not guaranteed. Out-of-tree C++ code
+linked to previous v3.9 releases should be rebuilt against this version.
+
+### Project Scope
+- (internal) Build system improvements and fixes
+- (internal) Use C++14 features instead of Boost where possible
+- Fewer compiler warnings (due to fixed code, not removal of warnings!)
+
+### OOT Support
+- cmake: standard FindGSL used in lieu of custom one, so OOTs should no longer
+ copy this module from the GNU Radio tree if needed
+- modtool: better exception/error handling
+- modtool: will non-interactively add blocks with no parameters
+ (`--argument-list=""`)
+- PyBind11 header hash hotfixer
+ (gr-utils/bindtool/scripts/binding-hash-hotfixer.zsh) makes life easier
+
+### GRC
+- Block param values can be shown as expressions and/or evaluated values. Under
+ the View menu, see "Show parameter ..." options.
+- Better handling of gui hints, avoid hiding widgets in cases where some have
+ GUI hints and some do not
+- Ensure that strings are valid utf8 when evaluating parameters
+- Save embedded python blocks/modules to hier_block_directory
+- Save config and update recent file sub-menu before executing flowgraph
+- Revert to previous "block id" display behavior
+- Fix drag n' drop issue with Quartz (macOS) backend
+- C++ generated code: remove gnuradio prefix from linked libraries
+- Python generated code: prefix generated modules with flowgraph id
+- connect() will be called for hier blocks even if they don't have ports
+- Check for PyYAML 3.11 (was checking for 3.10 even though 3.11 was required)
+
+### gnuradio-runtime
+- Default buffer size can be adjusted by setting `buffer_size` in the
+`[Default]` section of the GNU Radio config file. Otherwise, the longstanding
+ default of `32768` is used.
+- Windows/Python: add DLL search path, as required by newer versions of Python
+
+### gr-audio
+- Windows: reduce priority of Windows native audio to LOW, preferring Portaudio
+
+### gr-blocks
+- Message Debug: prints warning when a non-PDU message is received on the
+ Print PDU port
+- File Source handles EOF properly in non-seekable files (e.g., pipes)
+- Several bounds checking and boundary condition improvements
+- Remove DC Spike AutoSync algorithm fixed
+
+### gr-digital
+- MSK timing error detector improvement
+- Python bindings include control_loop parent class in child class
+- Correlation Estimator parameter `threshold` well documented
+
+### gr-fft
+- New window types: Nuttall, Blackman Nuttall, Nuttall CFD, Welch, Parzen,
+ Exponential, Riemann, Gaussian and Tukey
+
+### gr-filter
+- Taps blocks (e.g., Low Pass Filter Taps) now propagate parameter changes
+- Filter Designer: IIR/Band Pass/Bessel works
+
+### gr-qtgui
+- Add toggling label and icon on plot play/stop button
+- Time Raster Sink: axis labels and ranges are configurable
+- Qt Chooser: label improvements
+
+### gr-uhd
+- DEPRECATION: UHD blocks currently accept control messages (e.g. for
+ frequency change) as PMT pairs and tuples, in addition to the intended
+ PMT dict format. In v3.11, only the dict format will be accepted.
+- Command note: `freq` messages in this version must be dicts. Additionally,
+ the `direction` key must be present and set to `TX` or `RX`.
+ Python example: `pmt.to_pmt({'freq':100e6,'direction':'RX'})`
+ The original behavior may be restored in an update, but code should be
+ converted to use the dict format in preparation for future versions.
+- `set_filter()` adds `chan` parameter
+- Python generated code improved for FE corrections
+- Allow control of frequency and gain in both directions at the same moment
+- Add command handler for mtune ("manual tune")
+- Add GPIO control via messages
+- Add start time param to GRC blocks
+- Support streaming modes: `STREAM_MODE_START_CONTINUOUS`,
+ `STREAM_MODE_STOP_CONTINUOUS`, `STREAM_MODE_NUM_SAMPS_AND_DONE`,
+ `STREAM_MODE_NUM_SAMPS_AND_MORE`
+- Documentation improvements
+- Tag sink demo example
+- Better logging of over/underflows, time errors and time tags
+- Added Python binding for ALL_LOS (all local oscillators)
+- `uhd_fft` application X11/Qt related cleanups
+
+### QA
+- `waitFor(condition, ...)` available for tests that use timeouts
+
+### Contributors
+At LEAST the following authors contributed to this release.
+
+- Artem Pisarenko <artem.k.pisarenko@gmail.com>
+- Christophe Seguinot <christophe.seguinot@univ-lille.fr>
+- Daniel Estévez <daniel@destevez.net>
+- David Pi <david.pinho@gmail.com>
+- Emmanuel Blot <emmanuel.blot@free.fr>
+- gnieboer <gnieboer@corpcomm.net>
+- Håkon Vågsether <hauk142@gmail.com>
+- Ipsit <mmkipsit@gmail.com>
+- Jacob Gilbert <jacob.gilbert@protonmail.com>
+- Jason Uher <jason.uher@jhuapl.edu>
+- Jeff Long <willcode4@gmail.com>
+- Jason Uher <jason.uher@jhuapl.edu>
+- Jeppe Ledet-Pedersen <jlp@satlab.com>
+- Josh Blum <josh@joshknows.com>
+- Josh Morman <jmorman@perspectalabs.com>
+- karel <5636152+karel@users.noreply.github.com>
+- luz paz <luzpaz@users.noreply.github.com>
+- Marcus Müller <mmueller@gnuradio.org>
+- Martin Braun <martin@gnuradio.org>
+- Nick Foster <bistromath@gmail.com>
+- Niki <niki@aveer.io>
+- rear1019 <rear1019@posteo.de>
+- Ron Economos <w6rz@comcast.net>
+- Ryan Volz <ryan.volz@gmail.com>
+- Sebastian Koslowski <sebastian.koslowski@gmail.com>
+- Terry May <terrydmay@gmail.com>
+- Vasilis Tsiligiannis <acinonyx@openwrt.gr>
+- Victor Wollesen <victor.w@pervices.com>
+- Volker Schroer
+- Zackery Spytz <zspytz@gmail.com>
+
## [3.9.0.0] - 2020-01-17
+The future is not set, there is no fate but what we make for ourselves. In this
+very spirit, GNU Radio 3.9 packs a whole bunch of power when it comes to
+transforming the way GNU Radio and its ecosytem can be developed in the future.
+
+Not only did we have great progressions from old dependencies that proved to be
+all too problematic (SWIG, Python2), but also did we see an incredibly influx of
+people actively working on how maintainable this code base is. This will nurture
+the project for years to come.
+
+All in all, the main breaking change for pure GRC users will consist in a few
+changed blocks – an incredible feat, considering the amount of shift under the
+hood. Mentioning large shifts, the work that went into the PyBind binding, the
+CMake modernization, the C++ cleanup, the bug-fixing and the CI infrastructure
+is worthy of explicit call out; I especially thank
+
+* Josh Morman
+* Thomas Habets
+* Jacob Gilbert
+* Andrej Rode
+* Ryan Volz
+
+here.
+
+For developers of OOTs, I'm sure PyBind11 will pose a surprise. If you're used
+to SWIG, yes, that's more code to write yourself. But in effect, it's less code
+that breaks, and when it breaks, it breaks in much more understandable ways.
+Josh has put a lot of effort into automating as much of that as possible.
+There's certainly no shortage of demand for that! The ecosystem (remember GNU
+Radio's tagline?) is in a steady upwind. We've seen more, and more stable,
+contributions from OOT maintainers. That's great!
+
+For in-tree development, newer dependencies and removal of anachronisms will
+make sure things move much smoother. Our CI is getting – lately literally every
+day – better, which means we not only catch bugs earlier, but also allow for
+much quicker review cycles.
+
+One central change:
+
+If you're contributing code upstream, we no longer need you to submit a CLA;
+instead, we ask you to just certify, yourself, that you're allowed to contribute
+that code (and not, e.g. misappropriating someone else's code).
+
+That's what the DCO (Developer Certificate of Origin) is: Just a quick, "hey,
+this code is actually for me to contribute under the project's license"; nothing
+more.
+
+Which means that our infrastructure will refuse to let your code into the tree
+if you didn't add a
+
+`Signed-off-by: Maxime Example <maxime@example.com>`
+
+to your commit message. Luckily, git can do that for you: `git commit -s`.
+
### Changed
#### Project Scope
@@ -563,6 +1093,510 @@ amplitude, offset and phase parameters
command time error (`[uhd]` section, `logging_interval_ms` key, milliseconds
integer)
+## [3.8.5.0] - 2022-01-XX
+
+This is an API compatible update to GNU Radio 3.8. Code written for 3.8.X versions should compile and link without modification. The ABI is not guaranteed to be compatible, so a rebuild of OOT modules may be necessary.
+
+#### GRC
+- GRC now runs on Fedora 35 ... Gtk initialization checks were too strict
+- Fix: dependent variables sometimes fail to evaluate
+- Change type aliasing to allow interleaved short/byte to be connected to vectors of short/byte. Stricter type checking was added previously and caused some blocks to be unconnectable when using these types.
+- Account for scale factor when computing drawing area size
+- Tooltips fixed for categories and modules
+-
+#### gr-digital
+- Fix yml file for Header/Payload Demux
+
+#### gr-dtv
+- Add energy normalization for DVB-S2X constellations.
+
+#### gr-filter
+- Remove pyqwt and qt4 from filter_design
+
+#### gr-qtgui
+- Enable use of Qwt 6.2
+- Remove unusable int type in Number Sink yml
+- RangeWidget - implement Eng & EngSlider
+
+At LEAST the following authors contributed to this release.
+
+- Bill Muzika <bill.muzika@outlook.com>
+- Chris <christopher.donohue@gmail.com>
+- Chris Vine <vine35792468@gmail.com>
+- Clayton Smith <argilo@gmail.com>
+- Doron Behar <doron.behar@gmail.com>
+- Jeff Long <willcode4@gmail.com>
+- John Sallay <jasallay@gmail.com>
+- Josh Morman <jmorman@gnuradio.org>
+- Marcus Müller <mmueller@gnuradio.org>
+- Mark Pentler <tehhustler@hotmail.com>
+- Martin Braun <martin@gnuradio.org>
+- masw <masw@masw.tech>
+- Matt Mills <mmills@2bn.net>
+- Nick Østergaard <oe.nick@gmail.com>
+- Ron Economos <w6rz@comcast.net>
+- Ryan Volz <ryan.volz@gmail.com>
+- Sec <sec@42.org>
+- Volker Schroer
+
+## [3.8.4.0] - 2021-09-30
+
+API is compatible with C++ code written against previous v3.8 releases.
+
+ABI (link time) compatibility is not guaranteed. Out-of-tree C++ code
+linked to previous v3.8 releases should be rebuilt against this version.
+
+### Changed
+
+#### GRC
+
+- Fix drag and drop issue with Quartz
+- Fix desync when dragging block
+- Update disabled blocks if they depend on others
+- Allow short and byte as valid types in an enum
+- Fix evaluation of interdependent variables
+
+#### modtool
+
+- Set VERSION_PATH to 0 in new modules, instead of using GIT rev
+- For Python3, return correct exeption ModuleNotFoundError instead of ImportError
+
+#### gr-blocks
+
+- New Matrix Interleaver block
+
+#### gr-channels
+
+- Fix "hide" expressions in yml files
+
+#### gr-digital
+
+- Remove unused msg output port from Chunks To Symbols block yml
+
+#### gr-fft
+
+- Add "shift" parameter to Log Power FFT
+
+#### gr-qtgui
+
+- Fix: tags on the last sample were not shown
+
+#### gr-video-sdl
+
+- Fix: U and V channels were reversed on sink blocks
+
+At LEAST the following authors contributed to this release.
+
+- Adrien Michel <adriengit@users.noreply.github.com>
+- David Winter <david.winter@analog.com>
+- Emmanuel Blot <emmanuel.blot@free.fr>
+- Håkon Vågsether <hauk142@gmail.com>
+- Jared Dulmage <jared.dulmage@caliola.com>
+- Jason Uher <jason.uher@jhuapl.edu>
+- Jeff Long <willcode4@gmail.com>
+- Marc L <marcll@vt.edu>
+- Marcus Müller <mmueller@gnuradio.org>
+- Martin Braun <martin@gnuradio.org>
+- Ron Economos <w6rz@comcast.net>
+- Volker Schroer
+
+## [3.8.3.1] - 2021-06-10
+
+This is a PATCH level revision. The API is compatible with C++ code written for previous v3.8 releases. ABI (shared library signature) is intended to be compatible, so code linked against v3.8.3.0 should not require recompilation.
+
+### Changed
+
+#### Build system
+
+- Improved messages related to dependencies MPIR and GMP. Only one of these packages is required, and the previous error messages were confusing.
+
+#### GRC
+
+- Parameter expressions and/or values can be displayed in blocks on the flowgraph. Previously, only values were displayed. Look for the "Show Parameter ..." toggles under the View menu.
+- Vector length is now correctly applied to all input ports.
+- Validation has been improved. Raw types are validated. Port connections are checked by type rather than by item size.
+- Variable names that cause conflicts in Python code (e.g., package names) are rejected.
+- Bus logic fixes.
+- Blocks can no longer be dragged off the screen and lost forever.
+
+#### gr-dtv
+
+- VL-SNR bugs fixed (incorrect constants).
+
+#### gr-qtgui
+
+- Improve autoscaling for vector sinks.
+
+#### gr_filter_design
+
+- "File/Save" is disabled until the taps have been computed, and the GUI is reset after a save, to make it clearer which data is being saved.
+- Entries are hidden for parameters that do not apply to the selected filter type.
+
+At LEAST the following authors contributed to this release.
+
+- 0xloem <0xloem@gmail.com>
+- Christophe Seguinot <christophe.seguinot@univ-lille.fr>
+- David Pi <david.pinho@gmail.com>
+- Igor Freire <igor@blockstream.com>
+- Jeff Long <willcode4@gmail.com>
+- Josh Morman <jmorman@perspectalabs.com>
+- Marcus Müller <mmueller@gnuradio.org>
+- Ron Economos <w6rz@comcast.net>
+- Solomon Tan <solomonbstoner@yahoo.com.au>
+- Volker Schroer
+- Zackery Spytz <zspytz@gmail.com>
+
+## [3.8.3.0] - 2021-03-17
+
+API is compatible with C++ code written against previous v3.8 releases.
+
+ABI (link time) compatibility is not guaranteed. Out-of-tree C++ code
+linked to previous v3.8 releases should be rebuilt against this version.
+
+### Changed
+
+#### Project Scope
+
+- Preference file path may be set using the `GR_PREFS_PATH` environment variable
+- Lower message latency, previously slow when block aliases were used
+- PMT: `is_dict()` no longer returns True for PMT pairs, only for PMT dicts
+- Util gnuradio-config-info gets --print-all for those that want it all
+- Allow Thrift versions up thorugh 0.13
+- (internal) Build system improvements and fixes
+- (internal) Reduce Boost usage by replacing bind() with lambdas supported in C++11
+
+#### OOT Support
+
+- Allow override of gr python dir by setting `-DGR_PYTHON_DIR`
+- Modtool will not try to add duplicate block names in a module
+- Modtool can non-interactively add blocks with no parameters (`--argument-list=""`)
+- Modtool will use current installation prefix instead of /usr/local as source of templates
+
+#### GRC
+
+- Better handling of gui hints, avoid hiding widgets in cases where some have GUI hints and some do not
+- Dark theme detection fix
+- Add window size option for bokeh gui
+
+#### gr-audio
+
+- ALSA nperiods default increased to 32 frames to reduce drops (can be set in conf file under the `audio_alsa` section)
+
+#### gr-blocks
+
+- File Source handles EOF properly in non-seekable files (e.g., pipes)
+- File Source handles large files on Windows
+- Several bounds checking and boundary condition improvements
+
+#### gr-digital
+
+- MSK timing error detector improvement
+- Improvements to correlation estimator example
+- Correlate Access Code will not trigger until it receives enough bits to compare to the access code
+
+#### gr-dtv
+
+- Performance improvements
+
+#### gr-filter
+
+- Filter designer works with Qt5 and Python3
+- Taps blocks (e.g., Low Pass Filter Taps) now propagate parameter changes
+
+#### gr-qtgui
+
+- Chooser label defaults now correct
+- Frequency Sink max hold plot for half spectrum width option shows correctly
+- Number Sink honors setting of 'avg' more consistently
+
+#### gr-uhd
+
+- Add start time parameter to GRC blocks
+- Add message handler for GPIO control messages
+- Additional master clock rates in GRC blocks
+- UHD source sends tags on center frequency change
+
+#### gr-video-sdl
+
+- Correct YUV format options
+
+#### gr-zeromq
+
+- Connections no longer hang when flowgraph stops and other end is still connected (`ZMQ_LINGER` now set)
+- Receipt of bad PMTs logged (instead of exception)
+
+### Contributors
+At LEAST the following authors contributed to this release.
+
+- alekhgupta1441 <alekhgupta1441@gmail.com>
+- A. Maitland Bottoms <bottoms@debian.org>
+- Christophe Seguinot <christophe.seguinot@univ-lille.fr>
+- Clayton Smith <argilo@gmail.com>
+- David Pi <david.pinho@gmail.com>
+- Derek Kozel <derek@bitstovolts.com>
+- Doron Behar <doron.behar@gmail.com>
+- duggabe <barry@dcsmail.net>
+- elms <elms@freshred.net>
+- gnieboer <gnieboer@corpcomm.net>
+- Håkon Vågsether <hauk142@gmail.com>
+- Huang Rui <vowstar@gmail.com>
+- Jacob Gilbert <mrjacobagilbert@gmail.com>
+- Jeff Long <willcode4@gmail.com>
+- Johannes Demel <demel@ant.uni-bremen.de>
+- Marcus Müller <mmueller@gnuradio.org>
+- Martin Braun <martin@gnuradio.org>
+- Matt Mills <mmills@2bn.net>
+- Michael Dickens <michael.dickens@ettus.com>
+- mormj <mormjb@gmail.com>
+- Nick Foster <bistromath@gmail.com>
+- Nick Østergaard <oe.nick@gmail.com>
+- Niki <niki@aveer.io>
+- Notou <barthy42@laposte.net>
+- rear1019 <rear1019@posteo.de>
+- Ron Economos <w6rz@comcast.net>
+- Ryan Volz <ryan.volz@gmail.com>
+- Sam Schmidt <samuel.schmidt.ee@gmail.com>
+- Sebastian Koslowski <sebastian.koslowski@gmail.com>
+- Steve Lunsford <lunsford-stephen@vast-inc.com>
+- Thomas Habets <thomas@habets.se>
+- Vasil Velichkov <vvvelichkov@gmail.com>
+- Volker Schroer
+- Zackery Spytz <zspytz@gmail.com>
+
+## [3.8.2.0] - 2020-08-21
+
+### Changed
+
+#### Project Scope
+
+- Call SWIG without `-modern` flag if new enough to make that inherent, thus
+ removing warnings
+
+#### GRC
+
+- Mako templating now `strict_undefined`
+- Show block comments by default
+- dynamically updated block namespaces (execute imports from templates)
+- Name-lookup detection of dark color themes, adjusted input box color scheme
+
+#### gr-dtv
+
+- `dvb_bbscrambler`: LUT 8B alignment (private, but relevant for future usable
+ optimization)
+
+### Fixed
+
+#### GRC
+
+- incorrect "clear console" and "save console" labels
+- generator: `flow_graph.py.mako` now contains import for `print_function` for
+ compatibility in Py2 generation
+- `variable_config.block.yml` now properly handles `configparser` /
+ `ConfigParser` import
+- Change port types of all selected block on key-press cycling, not just first
+ one
+- Always check for Python version in flow graph generation, not only in specific
+ block types
+- Don't run stale flow graphs
+- Prevent search keystrokes from modifying flowgraph
+
+#### gr-blocks
+
+- `file_sink` flushes contents to file on `stop()`
+- `file_meta_sink` block YAML: emit proper default PMT dict
+- XMLRPC client/server block templates: use Py3 XMLRPC when possible
+
+#### gr-digital
+
+- `soft_dec_lut_gen` now explicitly casts `2.0**prec` to `int`
+- `map_bb`: add missing definition of static `constexpr size_t s_map_size`
+
+#### gr-dtv
+
+- Reduce `send_frame_size` in UHD examples (broken after UHD v3.13.0.3-rc1)
+
+#### gr-filter
+
+- `logpwrfft` YAML was hiding FFT length
+- FFT frequency range calculation was occasionally off due to abuse of
+ `numpy.arange`
+
+#### gr-filter
+
+- GRC band pass filter taps block: use `firdes.complex_band_pass` when complex
+- `firdes.root_raised_cosine` gain for unity alpha
+
+#### gr-qtgui
+
+- `qtgui_chooser` regained 3.7 capability to set default
+- Frequency Sink hovering now respects set units
+- GRC blocks had optional stream inputs
+
+#### gr-uhd
+
+- ignore `len_tag_name` in USRP Source YAML generator python
+- `uhd_fft`/`uhd_siggen_gui`: import order of sip and Qt
+- GRC example block errors
+
+### Added
+
+#### GRC
+
+- OS X: Meta modifier key support (eq. Ctrl on other platforms)
+- configuration setting `show_block_comments`
+
+#### gr-analog
+
+- Signal source `cmd` port
+
+#### gr-zeromq
+
+- Message-based ZMQ blocks take bind argument, as necessary for N:1 patterns.
+ Changes ABI.
+
+### Deprecated
+
+#### gr-analog
+
+- Signal source `freq` port
+
+## [3.8.1.0] - 2020-04-08
+
+### Changed
+
+#### Project Scope
+
+- clang-tidy improvements
+ - Throw exceptions by value, catch by reference
+ - `emplace_back` where applicable
+ - `empty()` instead of `vector::size() == 0`
+- Use CMake to check for endianness instead of `BOOST_BIG_ENDIAN`
+
+#### gr-fec
+
+- Scipy becomes optional dependency (for polar channel code construction)
+
+#### gr_modtool
+
+- use Boost.UTF instead of cppunit
+
+### Fixed
+
+#### Project Scope
+
+- FindQwt paths
+- floatAlmostEqual unittest assert function wrongly passing on sequence types
+- Only require boost unittest when testing is enabled
+- FindLOG4CPP typo
+- numpy.fft(pack) imports
+- several scipy imports that can be done with numpy alone
+
+#### gnuradio-runtime
+
+- block gateway shadowed system port
+- Flaky message passing unit test contained timeout (not the test's job)
+- ctrlport/`rpcaggregator` & Co: removed storage of references to scope-lifetime objects
+- Sine table generation python was wrong
+- `get_tags_in_range` for delay < (end-start)
+- premature tag pruning
+- release flattened flowgraph after stopping; fixes restartability/shutdown issues
+
+#### gr-analog
+
+- clipping in FM receiver: remove superfluous gain
+- C++ generation for multiple blocks
+
+#### gr-audio
+
+- portaudio source: lock acquisition
+
+#### gr-blocks
+
+- rotator VOLK workaround
+
+#### gr-digital
+
+- `map_bb` buffer overflow
+- `map_bb` thread safety
+- `additive_scrambler `count based reset
+
+#### gr-fec
+
+- heap corruption in `async_decoder`
+- `cc_encoder` was broken for constraint lengths > 8
+
+#### gr-fft
+
+- restore Boost 1.53 compat
+
+#### gr-qtgui
+
+- no longer requiring unnecessary key in `edit_box_msg`
+
+#### gr-uhd
+
+- fixed examples under Py3
+- multichannel objects not populating channels
+
+#### gr_modtool
+
+- wrong use of `input` -> `raw_input`
+- allow empty argument list
+- testing
+- check for and deny TSB under Python
+- QA addition bugs
+- correct path for C++ QA tests
+
+#### GRC
+
+- several issues with YAML files
+- nested objects now properly populate namespaces
+- comments now included in block bounds calculation
+- Wiki documentation link removed from OOT blocks' docs tab
+- Dragging connections to auto-hide ports works now
+- generated and re-generated several example flowgraphs
+- `bokeh_layout` module name
+- Revert toggle buttons to text entry for bool block props, allowing GRC
+ variables to be used
+
+### Added
+
+#### Project Scope
+
+- Codec2 development branch / future compat
+- Boost 1.71 compat
+- CI now checks for formatting
+
+#### gnuradio-runtime
+
+- dot graphs now contain message edges
+- Python wrapping for blocks' `set_affinity` and `{g,s}et_alias`
+
+#### gr-uhd
+
+- UHD Filter API
+
+#### GRC
+
+- block affinity, buffer sizes available as advanced options for blocks
+- testing
+- Python snippets (please snippet responsibly!)
+- `show_id` flag added to embedded python blocks, Probes
+- global option to toggle showing of IDs
+- Help "Keyboard Shortcut" entry
+
+### Deprecated
+
+#### gr-analog
+
+- `sig_source`: `freq` port will be removed in the future
+
+### Added
+#### gr-analog
+
+- `sig_source`: `cmd` port adds support for dicts, setting of frequency,
+ amplitude, offset and phase parameters
+
## [3.8.0.0] - 2019-08-09
Witness me!