Releases: gnuradio/gnuradio
Release v3.9.1.0
[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 of32768
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,
thedirection
key must be present and set toTX
orRX
.
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()
addschan
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
Release v3.8.3.0
Packaging note
Files were originally released without the volk submodule populated. New "-with-volk" tar files have been added below.
[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
Release v3.9.1.0-rc1
Signed-off-by: Jeff Long <willcode4@gmail.com>
Release v3.8.3.0-rc1
Signed-off-by: Jeff Long <willcode4@gmail.com>
Release 3.9.0.0
[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
- We now require commits to be signed off (DCO); this means you have to
attach-s
to yourgit commit
command line - License headers now SPDX format
- C++14
- use C++11 facilities in a lot of places where Boost was still used,
especially smart pointers, range loops - lambdas where
boost::bind
was used - C11
- Dependency versions:
- Python 3.6.5
- numpy 1.13.3
- VOLK 2.4.1
- CMake 3.10.2
- Boost 1.65
- Mako 1.0.7
- PyBind11 2.4.3
- Compiler options:
- GCC 8.3.0
- Clang 11.0.0 / Apple Clang 1100
- MSVC 1910 (Microsoft VS 2017 15.0)
- VOLK now "regular" dependency, not in-tree submodule
- numpy now also a CMake-checked hard dependency for Python support
- Exception Handling: throw by value, catch by reference (clang-tidy check)
- C++11: Emplace in vectors where you can; brings performance boni, but not
included in clang-tidy-checks - Further clang-tidy based code optimizations:
- empty() instead of size() == 0
- override where overriding virtual functions (which we do a lot)
- Logging: removed all
std::cerr
andfprintf(stderr,…)
by GNU Radio logging - Logging: Changed logging format for many multiline error logs
- purged
snprintf
,printf
logging - There were a lot of places where a malloc'ed object was used internally, where
that was inappropriate. Using simple instance-holding fields now. const
for members that were only set at construction time is now desired,
and implemented in most placesconst
->constexp
in a lot of places.assert
->static_assert
- An exception-throwing block will now terminate the flow graph process,
configurable throughtop_block
gr-utils
cleanup, folder restructuring- config version checks installed CMake file will accept "at least this version"
now - PyBind11 replaces SWIG
- Full tree conversion from SWIG to Pybind11 bindings
- Doxygen now uses MathJax, full LaTeX installation no longer required
NOTE: Most of the changes above change the generally preferred coding style
in a lot of situations.
GRC
- start flowgraph in folder where it resides
gnuradio-runtime
- When calculating offsets in non-integer rate FEC,
lround
- default seed for
gr::random
now actually as documented time-dependent - loggers moved from
gr::block
togr::basic_block
- PMT serialization
- PMT dicts no longer indistinguishable from pairs
- PMT symbol hashing no longer suffers under oddball own implementations
gr-audio
- Increased ALSA buffer nperiods
gr-blocks
add
,add_const
VOLK'ized, templated- this seems to break things in other places, even if it proves to be
mathematically identical
- this seems to break things in other places, even if it proves to be
wavfile
infrastructure:libsndfile
now dependency
gr-digital
transcendental
block: default to 32 bit float complex, not double- Linear equalizer: separate adaptive algorithm, allows for using e.g. trained
sequences instead of the classical LMS, CMA - DFE: better structure for decision history
gr-dtv
- LDPC encoder: template functions instead of
#define
d macros - LDPC encoder: smaller tables through
uint16_t
for index tables
gr-fec
- API
uint8_t
, notchar
gr-fft
- FFT blocks/functions templatized
gr-filter
- logging format
rational_resampler_base
->rational_resampler
gr-uhd
- Required UHD version bumped to 3.9.7
- logging format
Deprecated
gr-analog
sig_source
:freq
port will be removed in the future
gr-audio
audio-sink
,-source
: Windows audio sink/source deprecated, the portaudio
sink/source works even better under windows anyway
gr-digital
- In favor of
symbol_sync
, deprecate:clock_recovery_mm
msk_timing_recovery
pfb_clock_sync
Added
Project Scope
- C++ Generation all over the place
- PyBind bindings + generator
- Github actions
- Reproducible builds-compatible CMake TIMESTAMP
gnuradio-runtime
block_gateway
:set_max_output_buffer
GR_PREFS_PATH
environment variable sensitivity to configure the path to the
config filegnuradio-config-info --print-all
GRC
- option to toggle ID visibilities globally
- Validation check for QT GUI hints
- Python snippets
block header parsing tool
- block header parsing tool (GSoC 2019)
gr_modtool
- option to convert blacklisted files
gr-analog
sig_source
:cmd
port adds support for dicts, setting of frequency,
amplitude, offset and phase parameters
gr-blocks
selector
now has control message ports- Rotator-based freq shift convenience wrapper
- Message-to-Variable and vice versa blocks
- DC Spike removal
- IQ Swap
- Complex to interleaved char / short: scaling option
- Delay block: control message port
- Phase Shift block with message port
wavfile_sink
,_source
can now deal with a lot of audio formats:
uncompressed WAV/AIFF, µ- and A-law compressed audio, OGG/Vorbis, FLAC, even
octave files- Stream Demux, which demuxes streams according to lengths vector
rotator
:phase()
getter
gr-digital
- OFDM: multiple CP lengths
ofdm_equalizer_simpledfe
:enable_soft_output
- Constellation Encoder
- Constellation: normalization options
gr-fec
{en,de}code_rs_8
,{en,de}code_rs_ccsds
: Reed-Solomon en- and decoders
gr-fft
- Windows:
- Gaussian
- Flat Top
- Tukey
- Window build() call now with default beta
gr-filter
- GRC: File taps loader block
- Low pass FFT filter convenience wrapper
- ichar / ishort decimator
- phase continuity for
freq_xlating_fir_filter
gr-network
gr-network
: a whole new networking blocks module!- TCP
- UDP
- Much better lockup/multithreading support than 3.7-era
blks2
nightmare
infrastructure :)
gr-qtgui
- Azimuth/Elevation plot
- Autocorrelation plot
- Compass visualization
- Dial control
- Gauge: dial, level
- Distance plot
- LED-like indicator
- Message-passing check box
- Message-passing numeric control
- Message-passing push button
- Toggle Button
- Eye sink
- Vertical slider
gr-uhd
- Filter API
- UHD 4.0 support
- Power Reference API
- Bidirectional setting messages on both sink, source
gr-vocoder
- Codec2 dev branch support
- FreeDV: In/output rates can differ
- FreeDV: text message output
gr-zeromq
- C++ GRC templates
- Tag filtering for tag-forwarding blocks
Removed
Project Scope
- VOLK is no longer a submodule
- Sphinx: consolidate into doxygen, or wiki-maintained block list.
- Python 2
- SWIG
gru
python module
gnuradio-runtime
circular_file.cc
math/common_factor.hpp
gr-blocks
bin_statistics_f
log2_const
gr-digital
- PFB clock sync:
set_taps
- deprecated old OFDM infrastructur
ofdm_frame_acquisition
ofdm_frame_sink
ofdm_insert_preamble
ofdm_sync_fixed
ofdm_sync_pn
ofdm_sync_pnac
ofdm_sync_ml
ofdm_receiver
digital_voice
gr-fft
malloc_float
,_double
: rely on VOLK- Goertzel: dtor superfluous
gr-filter
- deprecated window function duplicates (use them from gr-fft!)
Fixed
Project Scope
- CMake: Qwt, Log4Cpp detection
- ctrlport strings unicodified
- Freedesktop install script was not ...
Release 3.8.2.0
[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 forprint_function
for
compatibility in Py2 generation variable_config.block.yml
now properly handlesconfigparser
/
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 onstop()
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 casts2.0**prec
toint
map_bb
: add missing definition of staticconstexpr 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
Contributors
- Alekh Gupta alekhgupta1441@gmail.com
- Arpit Gupta guptarpit1997@gmail.com
- Brett Gottula brett@astranis.com
- Clayton Smith argilo@gmail.com
- Davide Gerhard rainbow@irh.it
- DBAA hellocaoziyi@gmail.com
- Håkon Vågsether haakonsv@gmail.com
- Ilya Tagunov tagunil@gmail.com
- Jacob Gilbert mrjacobagilbert@gmail.com
- japm48
- Josh Morman mormjb@gmail.com
- Marcus Müller mmueller@gnuradio.org
- Martin Braun martin.braun@ettus.com / martin@gnuradio.org
- rear1019 rear1019@posteo.de
- Ron Economos w6rz@comcast.net
- Sebastian Koslowski sebastian.koslowski@gmail.com
- Volker Schroer
Release 3.8.1.0
[3.8.1.0] - 2020-04-08
Changed
Project Scope
- clang-tidy improvements
- Throw exceptions by value, catch by reference
emplace_back
where applicableempty()
instead ofvector::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 overflowmap_bb
thread safetyadditive_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
Release Candidate 3.8.1.0-rc1
Release Candidate 3.8.1.0-RC1
Contributors
- Alba Mendez me@alba.sh
- Anders Kalør anders@kaloer.com
- Artem Pisarenko artem.k.pisarenko@gmail.com
- Bastian Bloessl mail@bastibl.net
- Brennan Ashton bashton@brennanashton.com
- Chris christopher.donohue@gmail.com
- Clayton Smith argilo@gmail.com
- CMorin barthy42@laposte.net
- Daniel Estévez daniel@destevez.net
- Davide Gerhard rainbow@irh.it
- Derek Kozel derek.kozel@gmail.com
- duggabe
- Glenn Richardson glenn.richardson@live.com
- Grant Cox grant.cox@deepspaceamps.com
- Gwenhael Goavec-Merou gwenhael.goavec-merou@trabucayre.com
- Håkon Vågsether haakonsv@gmail.com
- Igor Freire igor.auad@gmail.com
- Jan Kraemer kraemer.jn@gmail.com
- japm48
- Josh Morman jmorman@perspectalabs.com
- karel
- luz.paz
- Marc L marcll@vt.edu
- Marcus Müller mmueller@gnuradio.org
- Martin Braun martin.braun@ettus.com
- Michael Dickens michael.dickens@ettus.com
- Michael Roe mroe@cornstalk.org.uk
- Nathan West nwest@deepsig.io
- Nicolas Cuervo cuervonicolas@gmail.com
- Philip Balister philip@balister.org
- rear1019 rear1019@posteo.de
- RedStone002
- Ron Economos w6rz@comcast.net
- Ryan Schutt
- Ryan Volz rvolz@mit.edu
- Sebastian Koslowski sebastian.koslowski@gmail.com
- Sebastian Müller gsenpo@gmail.com
- Sylvain Munaut tnt@246tNt.com
- Terry May terrydmay@gmail.com
- Thomas Habets thomas@habets.se
- Vasil Velichkov vvvelichkov@gmail.com
- Volker Schroer
- wcampbell wcampbell1995@gmail.com
[3.8.1.0-rc1] - 2020-02-16
Changed
Project Scope
- clang-tidy improvements
- Throw exceptions by value, catch by reference
emplace_back
where applicableempty()
instead ofvector::size() == 0
Fixed
Project scope
- FindQwt paths
- floatAlmostEqual unittest assert function wrongly passing on sequence types
- Only require boost unittest when testing is enabled
- FindLOG4CPP typo
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
gr_modtool
- wrong use of
input
->raw_input
- allow empty argument list
- testing
- check for and deny TSB under Python
- QA addition bugs
gr-analog
- clipping in FM receiver: remove superfluous gain
- C++ generation for multiple blocks
gr-audio
- portaudio source: lock acquisition
gr-blocks
- broken
rotator
workaround
gr-digital
map_bb
buffer overflowmap_bb
thread safetyadditive_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
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
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
gr-uhd
- UHD Filter API
GRC
- block affinity, buffer sizes available as advanced options for blocks
- testing
Release 3.7.14.0
Release 3.7.14.0
Contributors
- Chris christopher.donohue@gmail.com
- Christoph Mayer hcab14@gmail.com
- Eric Johnson ejohnson73@gmail.com
- gmazilla
- Håkon Vågsether haakonsv@gmail.com
- Josh Morman jmorman@perspectalabs.com
- Marcus Müller mmueller@gnuradio.org
- Martin Braun martin.braun@ettus.com
- Michael Dickens michael.dickens@ettus.com
- rear1019 rear1019@posteo.de
- Ron Economos w6rz@comcast.net
- Ryan Volz rvolz@mit.edu
- Sebastian Müller gsenpo@gmail.com
- Thomas Habets thomas@habets.se
[3.7.14.0] - 2020-02-15
Fixed
Project Scope
- replace remaining calls to thread-unsafe
rand
with internal random generators
gnuradio-runtime
- don't give up on looking for configuration files if system directory doesn't exist
get_tags_in_range
on delay blocks- premature tag pruning
gr-blocks
- 8 bit WAV file reading
matrix_multiply
no longer wrongly converts complex float to double- Boost 1.70 compat
gr-digital
- UHD packet example: frame bit fixes
additive_scrambler
count-based resetmap_bb
buffer overflow, thread safety
gr-dtv
- falsely failing assert
gr-fec
cc_encoder
: constraint length > 8
grc
- Ctrl-F unselects blocks (so that "d" doesn't disable them)
Added
gnuradio-runtime
- XOROSHIRO128+-based PRNG
gr-digital
additive_scrambler
test
gr-uhd
- future UHD compat layer
Changed
Project Scope
- COMPATIBILITY WARNING: Replaced non-threadsafe (s)rand with our own xoroshiro-based PRNG
- Whole tree code reformatting
gr-blocks
- replaced reconfiguring selector with 3.8 backport
gr-channels
- removed unnecessary delay in selective fading model
gr-digital
- COMPATIBILITY: Change of random OFDM pilots
- backport of 3.8 constellation changes
gr-trellis
- COMPATIBILITY: random interleaver: PRNG change -> different interleaver
Release 3.8.0.0
Release 3.8.0.0
Witness me!
Tonight, we release GNU Radio 3.8.0.0.
It's the first minor release version since more than six years, not without
pride this community stands to face the brightest future SDR on general purpose
hardware ever had.
Since we've not been documenting changes in the shape of a Changelog for the
whole of the development that happened since GNU Radio 3.7.0, I'm afraid that
these release notes will be more of a GLTL;DR (git log too long; didn't read)
than a detailed account of what has changed.
What has _not** changed is the fact that GNU Radio is centered around a very
simple truth:
Let the developers hack on DSP. Software interfaces are for humans, not the
other way around.
And so, compared to the later 3.7 releases, nothing has fundamentally modified
the way one develops signal processing systems with GNU Radio: You write blocks,
and you combine blocks to be part of a larger signal processing flow graph.
With that as a success story, we of course have faced quite a bit of change in
the systems we use to develop and in the people that develop GNU Radio. This has
lead to several changes that weren't compatible with 3.7.
This is an excerpt only:
Fixed
Project Scope
- Roughly 36 dBBug, (ETOOMANYBUGS)
- Fixed .so versioning
Changed
Project Scope
- C++11
- merged the wholeness of the
next
branch - Dependency version bumps: CMake, GCC, MSVC, Swig, Boost
- New dependencies: MPIR/GMP, Qt5, gsm, codec2
- Removed dependencies: libusb, Qt4, CppUnit
- Python: Python 2 & Python 3 compatible. 3.8 will be the last Py2k-compatible
release series - gengen was replaced by templates (if you don't know gengen, don't do any
research; save yourself that sorrow) - Modern CMake (as far as feasible at this point)
- VOLK version updated to v2.0.0
- .clang-format file now dictates coding style
- clang-format'ed the whole tree.
- installed CMake files now tell about configuration
gnuradio-runtime
- reworked fractional tag time handling, especially in the context of resamplers
GRC
- C++ generation as option
- YAML instead of XML
- removed
blks2
- much better canvas tooling
- consistent gobject usage
- ROUNDED ARROWS
gr-qtgui
- moving from Qt4 to Qt5
gr-utils
gr_modtool
now vastly improved
gr-vocoder
- improved versatility
- removed in-tree libgsm, libcodec2, use system-wide libs
Removed
Project Scope
- Modules
gr-comedi
,gr-fcd
andgr-wxgui
are gone
gr-comedi
- nobody could remember who used this, or for what. It has seen 0 active code
contributions in the 3.7 lifecycle
gr-digital
- python-based
packet_encoder
and related tools: Bugs that were sporadic and
never fixed, so after long deprecation, we're removing it
gr-fcd
- since it's currently untestable by the CI, it's being removed, as there was no
code contributions. Generally, we strive to include all batteries with GNU
Radio. Re-integration within a more general SDR interface would be desirable.
gr-utils
- removed PyQwt (dead) based tools
gr-wxgui
- Unmaintained, breaks on increasingly many systems, always was slower than
Qtgui. We've been starting to tell people to migrate to Qt since at
least 2015. Now, we're finally removing it.
Contributors
- Maitland Bottoms bottoms@debian.org
- Abhishek Bhowmick abhowmick22@gmail.com
- Achilleas Anastasopoulos anastas@umich.edu
- Adrian Suciu adrian.suciu@analog.com
- Alexander Willecke willecke@ibr.cs.tu-bs.de
- Alexandru Csete oz9aec@gmail.com
- Alistair Bird alistair.bird@gmail.com
- Andrej Lajovic andrej.lajovic@ad-vega.si
- Andrej Rode mail@andrejro.de (formerly andrej.rode@ettus.com)
- Andrew Davis glneolistmail@gmail.com
- Andrew F. Davis glneolistmail@gmail.com
- Andriy Gelman andriy.gelman@gmail.com
- André Løfaldli andre.lofaldli@gmail.com
- Andy Sloane andy@a1k0n.net
- Andy Walls andy@silverblocksystems.net
- Antonio Ramosdet antonio.ramosdet@gmail.com
- Arpit Gupta guptarpit1997@gmail.com
- Artem Pisarenko
- AsciiWolf mail@asciiwolf.com
- Balint Seeber balint256@gmail.com (formerly: balint@ettus.com)
- Bastian Bloessl mail@bastibl.net (formerly:
bastian.bloessl@uibk.ac.at bloessl@ccs-labs.org) - Ben Hilburn bhilburn@gnuradio.org (formerly:
ben.hilburn@ettus.com) - Ben Reynwar ben@reynwar.net
- Bernhard M. Wiedemann bwiedemann@suse.de
- Bill Clark saikbc89@gmail.com / saikou@vt.edu
- Bob Iannucci bob@sv.cmu.edu
- Bogdan Diaconescu b_diaconescu@yahoo.com
- Bogdan Radulescu bogdan@nimblex.net
- Bolin Hsu bolin.hsu@gmail.com
- Brandon P. Enochs brandon.enochs@nrl.navy.mil
- Brennan Ashton bashton@brennanashton.com
- Brent Stapleton brent.stapleton@ettus.com
- Brian Orr brian.orr@gmail.com
- Brian Padalino bpadalino@gmail.com
- Camilo Solano solano@ti.rwth-aachen.de
- Cate cate@skysafe.io
- Chris Kuethe chris.kuethe+github@gmail.com
- Christoph Mayer hcab14@gmail.com
- Christopher Chavez chrischavez@gmx.us
- Chuck Swiger cswiger@swigerco.com
- Clayton Smith argilo@gmail.com
- Dan Robertson dan@dlrobertson.com
- Daniel Estévez daniel@destevez.net
- Daniel Grambihler af7ss.ham@gmail.com
- Darek Kawamoto darek@he360.com
- DaulPavid pudavid@fastmail.com (formerly: paul.david@ettus.com)
- Derek Kozel derek@bitstovolts.com (formerly:
derek.kozel@ettus.com) - Dhruvadityamittal dhruvadityamittal@gmail.com
- Dimitri Stolnikov horiz0n@gmx.net
- Douglas Anderson danderson@ntia.doc.gov
- Douglas Geiger doug.geiger@bioradiation.net
- Douglas Weber douglas.weber@student.kit.edu
- Edward Kigwana edwardwwgk@gmail.com
- Eral Tuerkyilmaz eral@gmx.net
- Eric Johnson ejohnson73@gmail.com
- Eric Statzer eric.statzer@gmail.com
- Ethan Trewhitt ethan.trewhitt@gtri.gatech.edu /
ethan@trewhitt.org - Federico
- Felix Wunsch felix.wunsch@kit.edu (formerly:
uncnr@student.kit.edu) - Flamewires
- Florian Franzen FlorianFranzen@gmail.com
- Garrett Vanhoy basebzombie@gmail.com
- Geof Nieboer gnieboer@gcndevelopment.com / gnieboer@corpcomm.net
- Gilad Beeri giladb.dev@gmail.com
- Glenn Richardson glenn.richardson@live.com
- Gregory Eslinger gregjesl@gmail.com
- Gwenhael Goavec-Merou gwenhael.goavec-merou@trabucayre.com
- Harm te Hennepe d.h.tehennepe@student.utwente.nl
- Head4che kmurat67@gmail.com
- Henry Xu xuweihong.cn@gmail.com
- Håkon Vågsether haakonsv@gmail.com
- Imad-Eddine Srairi imad.srairi@mckay-brothers.com
- Jacob Gilbert jacob.gilbert@sandia.gov
- Jakub Zy jakub@openmailbox.org
- James Saari jsaari@defense.mrcy.com
- Jan Krämer / spectrejan kraemer.jn@googlemail.com
- Jared Boone jboone@earfeast.com
- Jared Dulmage jared.dulmage@aero.org
- Jaroslav Škarvada jskarvad@redhat.com
- Jason Hein jason.j.hein@gmail.com
- Jeff Long willcode4@gmail.com
- Jeremy Drake github@jdrake.com
- Jiri Pinkava j-pi@seznam.cz
- Jiří Pinkava j-pi@seznam.cz
- Johannes Demel demel@ant.uni-bremen.de / demel@uni-bremen.de /
johannes@demels.de (formerly: ufcsy@student.kit.edu) - Johannes Schmitz johannes.schmitz1@gmail.com /
schmitz@ti.rwth-aachen.de - Johnathan Corgan johnathan@corganlabs.com
- Jon Szymaniak jon.szymaniak@gmail.com
- Jonathan Brucker jonathan.brucke@gmail.com
- Jonathon Pendlum jonathon.pendlum@ettus.com
- Josh Blum josh@joshknows.com
- Josh Morman jmorman@perspectalabs.com
- Joshua Schueler joshua.schueler@rohde-schwarz.com
- Julian Arnold julian.arnold@ettus.com
- Julien Olivain julien.olivain@lsv.ens-cachan.fr
- Julius Durst julius.durst@student.kit.edu
- Karel karelparlin@gmail.com
- Kartik Patel kartikpatel1995@gmail.com
- Kevin Gentile kg168212@ohio.edu
- Kevin McQuiggin mcquiggi@sfu.ca
- Kevin Reid kpreid@switchb.org
- Kevin Zheng kevinz5000@gmail.com
- Kristian Maier kristian.maier@gmx.de
- Kyle Unice kyle.unice@L-3com.com
- Laur Joost daremion@gmail.com
- Lennart Lennart@bastl-instruments.com
- Louis Philippe Lessard git@louif.com
- Ludovic LANGE github@lange.nom.fr
- Lukas Kuzmiak lukash@backstep.net
- Luke Berndt lukekb@gmail.com
- MBoerschig code+github at boerschig dot net
- Marc Lichtman / 777arc marcll@vt.edu / mlichtman@appcomsci.com /
mlichtman@perspectalabs.com - Marcus Müller / funkylab mmueller@gnuradio.org /
marcus@hostalia.de / mueller@kit.edu /
marcus.mueller@ettus.com (formerly:
marcus.mueller@student.kit.edu) - Mark Cottrell mark.cottrell@taitradio.com
- Martin Braun martin.braun@ettus.com (formerly:
martin.braun@kit.edu) - Mathieu Rene mrene@avgs.ca
- Matt Ettus (formerly: matt@ettus.com)
- Maximilian Stiefel stiefel.maximilian@online.de
- Michael Berman michael@gpstoo.com
- Michael De Nil michael@morsemicro.com
- Michael Dickens michael.dickens@ettus.com / mlk@alum.mit.edu
- Michael Ossmann mike@ossmann.com
- Mike Jameson mike.jameson@ettus.com / mike@scanoo.com
- Mike Walters mike@flomp.net
- Miklos Maroti mmaroti@gmail.com
- Moritz Fischer (formerly: moritz@ettus.com /
moritz.fischer@ettus.com) - Nate Goergen nate.goergen2@mile10.com
- Nathan West nathan.west@gnuradio.org / nathan.west@nrl.navy.mil
/ nathan.west@okstate.edu - Nicholas Corgan n.corgan@gmail.com (formerly:
nick.corgan@ettus.com) - Nicholas McCarthy namccart@gmail.com
- Nick Foster bistromath@gmail.com (formerly: <nick@ettus.co...