WorkInProgressV3 7 5

= Work in progress for release 3.7.5 =

This is a list of some of the planned new feature sets for release 3.7.5. This is not comprehensive; other features or changes could happen opportunistically and some of the below might not make the release.

By component
 


 * Extend  blocks to include async message transports in and out of ZeroMQ sockets (JC)
 * Tunnel stream tags through ZeroMQ streaming blocks (JC)

 


 * Close the gap between QT and WX blocks
 * Mostly done
 * Convert all examples to use QT instead of WX
 * Also mostly done
 * Persistence of plotters
 * Debatable if this is really necessary or useful for these plotters, especially since the plots don't actually plot every sample.
 * Rely on things like gr-fosphor for purposes that need behavior like persistence
 * Sidebar control
 * Provide an (optional) sidebar to control the main plotting features
 * Strip chart for time plot for updating when plotting slow data

 


 * Add tags to ports in the xml file for a block
 * Use to control which and when blocks' ports are seen on the canvas
 * We can set them off by default and use a setting in the block properties to turn them on/off


 * User-toggled parameter to show or hide the names of ports
 * Ports appear as small rectangles of their type color, but with no label
 * when mousing over a port, the port expands to show the full name
 * connecting arrows are adjusted with the width of the box nicely
 * User-controlled feature; &quot;View-&gt;Auto-hide Port Lable&quot; to turn feature on/off

New Component(s)
 


 * Create new top-level component  (JC)
 * Port  code over into lib/atsc (JC)
 * Merge Bogdan Diaconescu's gr-dvbt into lib/dvbt (JC)
 * Merge (undecided) DVB-S code into lib/dvbs (JC)
 * Merge (undecided) CATV code into lib/catv (JC)
 * Extract common MPEG code into lib/mpeg (JC)
 * Implement common, format-selectable transceiver application (JC)

General Improvements
 


 * Messaging as many things as possible for control
 * 3.7.4 saw some additions of various message interfaces for a few blocks, and we had to work out proper interactions between them all. We should add more message port controls to blocks that we can identify as having a big impact on usage and come to a general understanding of message formats for certain controls to make sure they are generic and usable for many blocks, not just between two specifically designed to talk to each other.


 * Think about how to add back-pressure on messages

 


 * Add more VOLK kernels
 * Use VOLK kernels in more blocks
 * Add better NEON support
 * More hand-written NEON proto-kernels
 * NEON intrinsics are not necessarily great, need to use assembly to properly optimize
 * NEON inline ASM in C is terrible; need to have separate .s files
 * We want to add support in the build system to have NEON asm files built into VOLK and used in proto-kernels


 * Add a new build type to help us understand compiler optimization and assembly code
 * Add a &quot;NoOptWithASM&quot; build type that uses the flags &quot;-O0 -g -save-temps&quot;
 * for GCC and Clang, this produces code with debug symbols, no compiler optimization, and all assembly files saved in the build dir
 * Need a good location in our cmake structure to add new build types


 * Add Nathan's performance counter work from last hackfest
 * Adds perf tool calls to Performance Counters such as cache hits/misses, branch prediction misses
 * Adds ability to select which PC to show in gr-perf-monitorx and tooltip for all PCs when hovering over a block