I'd like to see GNU Radio divided into logical pieces that are seperate from each other. I believe this would help with the dependency that exists today.

The core of GNU Radio is the code that defines how blocks are built, connected, and executed. From there you would add signal processing blocks, gui blocks, hardware interface blocks, etc as needed for the specific application/environment.

Philip

We somewhat already have that, at least at the hardware source/sink level.

Adding further formalized interfaces for things like GUI components would be a good thing(tm).

I worry that adding further levels of abstraction/compartmentalization would negatively impact performance, and performance is
a *crucial* attribute of any DSP system.

Philip and I have talked about this before. What he really means is splitting out gnuradio-core into more top-level blocks. Eventually, we probably want a gnuradio-runtime that only contains the basic block parent classes and and the scheduler. This way, for getting the runtime engine going, you need a minimum of dependencies. We would then have other top level blocks containing the other blocks that are currently in gnuradio-core. I've already started splitting off a gr-digital block in one of my branches to this effect.