All notable changes to GNU Radio will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning, starting with version 3.7.12.0.
Older Logs can be found in docs/RELEASE-NOTES-*
.
boost::posix_time::[milli]second
takes integer numbers, and we now at least cast the floats to integers, as Boost 1.67 forced us to realize we're (incorrectly) using floating point her- CMake: using regex to match compiler against "Clang" now enables correct build on OS X
- Fixed GRC bug which made broke WX and Qt (by altering the template code)
- Changed Changelog format
- Introducing Semantic Versioning
- Change of development model: Rather than merging bugfixes to maint, merging maint to master, and next, if applicable, we'll be moving forward more in a typical management model: Development happens on master, and bugfixes are cherrypicked onto the maint-${RELEASE} branch. More info: http://lists.gnu.org/archive/html/discuss-gnuradio/2018-02/msg00133.html
- First attempt at having a .clang-format file to improve code contribution style quality. This is Work In Progress.
- Buildability on systems where custom CMake command would try to find "" (empty string) as executable
- Buildable with C++11 compilers (though deprecation warning-rich, due to
unique_ptr
) - several previously improperly handled include directories now actually included in individual lib/CMakeLists
- Unit test/QA now parallelizable
- Logger works with log4cpp <= 1.1.2 both in and out of tree
- Python linkage under MinGW64
- Documentation Directory now uniformly "docs/" (instead of sometimes "doc/")
log
vslogf
performance bugs- on-time
pmt::mp("string")
calls (instead of cached PMTs) performance bug - Doxygen build now reproducible
- Dialogs' parent windows
- Embedded Python Blocks now work in hierarchical GRC flow graphs
random.h
: Uniform integer Generation depended on Boost version > min versionrandom.h
: time-dependency when seeding with0
replaced with actual standard seed- block startup now synchronized via barrier
- New tag propagation policy "custom" for own implementation
get_tags_in_range
usedv.resize(0)
to clear vectors, which lead to unnecessary memory reallocationslogger_ptr
now always a pointer, no matter whether logging is enabled; fixes heap corruption bugbuffer[_reader]_sptr
superfluous grab/release performance bug- BSD threading and shared mem compatibility
- PMT:
equal()
comparison
- Sorted files in
gr_modtool
makexml processing, leading to improved reproducibility of builds
- OS X: memcpy bug
- OS X: debug mode
- Non-Linux ALSA compatibibilty
fmdet_cf
now has GRC filefastnoise_source
: non-threadsafelibc
rand()
replaced by XOROSHIRO128+
simple_copy
Ctrlport example- Metadata sink/source not closing file on
close()
multiply_matrix
formerly used "magic int" value where its API expected enum (and that int wasn't covered)- TCP connection ASIO bug
tags_strobe
: superfluous tags additionvector_sink
: multithreading hazards ondata
accesstuntap_pdu
: MTU-sized IP packet receptionsocket_pdu
: Garbage Collect closed TCP connections
- IQ imbalance block formula now mathematically correct now mathematically correct
selective_fading_model
: proper scaling of path length
additive_scrambler_bb
: tag triggered resetstream_to_tagged_stream
: tag offset afterunlock()
blks2/packet.py
: Flushing for small packetsinterpolating_resampler
: GCC 4.0 compile errorconstellation
: 16QAM demapper was wrong for one constellation pointchunks_to_symbols
: mutex-guard LUT against modification during use- MSVC compatibility throug
and
->&&
etc crc32_bb
: handle unpacked bytes correctlyofdm_carrier_allocator
: catching wrong allocations instead of crashing
- All examples now are installed
- DVB-T2: Removed L1 post scrambling in spec v1.1.1 mode
- Building on non-Linux systems
- Extended symbol bug in Reed-Solomon encoder
- DVB-T Cell identifier
- Building on non-Linux systems
channel_construction.py
: return int frozen bit outputGSL_LDFLAGS
propagationpolar_decoder
used to be flaky
- locking of fftw wisdom
window.cc
: removed NaN due to FP math- compilation under MinGW
logpwrfft.py
reference scaling integer division bug
- Simpson's rule code removed in favor of GSL call
- Time sink: Segfault with tag trigger
- Antenna selection in UHD apps
uhd_fft
scalar gain-capability- Device selection for multi-device operations in UHD apps
- TX streamer creation
- Multi-part messages reception
- Ninja (https://ninja-build.org) now a supported build system
- Python can now get
gr.WORK_CALLED_PRODUCE
andgr.DONE
gr_modtool
: Autocompletion, line editinggr_modtool
:copyrightholder
option
- "Create Duplicate"
- "Save a copy"
- BokehGUI
- New
tag_share
block: take tags from one two input streams to one output stream tag_gate
: tag filteringfile_source
: configurablefile_begin
stream tagmoving_average
: Vector mode (with element-wise MA)plateau_detector
: threshold get/set
costas_loop_cc
: Optional loop variable outputs- New
correlate_access_code_tag
block glfsr
exposed through Python
- 256QAM mode for ITU-T J.83B transmitter
- negative Polynomials in
cc_encoder
symbol_sync_{cc|ff}
uhd_app.py
: selectable time/clock sources- make
recv()
call's timeout parameterizable - message-based RX tuning through sink, TX through source
- VOLK version requirement: 1.4.0
- Minimal required SWIG version now 2.0.4
- GSL optional dependency
- Threw out completely unused
gr_??int
types - Doxygen build no longer contains timestamps
- Doxygen build now reproducible
- Though factually before, now officially include ZeroMQ and Sphinx as optional dependencies in docs
- Python gateway allows variable number of ports
gr_modtool
: Block template now usesnumpy.float32
instead of float. 32bit float is actually the default GNU Radio type.e.
vector_sink
can preallocate memory for desired amount of items
header_format_default
now sps>1-capablecorrelate_acces_code
usesGR_LOG
uhd_fft
: respectlo_offset
inset_bandwidth
usrp_source
: freq tag now actually reflects last set frequency, even on multiple channels
- Labels: now with 98.121212388% improved floating point formatting
- Time Sink: Stem plot option exposed
gr::sys_pri