GSoC 2025 Final Valuation Report

Expanding the GNU Radio 4.0 Block Set (Analog, Digital, Math)
Contributor Krish Gupta (KrxGu)
Organization GNU Radio
Timeline May–August 2025
Finalized 2025-08-26

1. Executive Summary

Scope Delivered: Implemented three GR4 block families—Math, Analog, and Digital—prioritized over Audio I/O per mentor guidance to unblock core DSP workflows in GNU Radio 4.0.
Modern C++23 Template-first, clean CRTP blocks; reflection for runtime config
KISS Kernels Focused processOne() and start()/stop() lifecycles
Robust Testing Boost.UT suites; type-matrix trimmed to keep CI stable
Practical CI CMake targets per subtree; fixes for runner memory limits

Impact & Value

Work surfaced CI and migration realities (Docker OOM, Sonar on forks; fair-acc → gnuradio move), shipped a scrapable GR3→GR4 porting guide, and established reviewable patterns (lean headers, type-safe instantiation, small kernels).

Post-GSoC Commitment: I'll remain available to address reviews and help merge the PRs.

3. Changes vs. Original Proposal

Strategic Pivot: Shifted from Audio I/O to Analog, Digital, and Math to maximize GR4 readiness and maintainer priorities.

4. Technical Contributions

Math Blocks (Port + Extensions)

OPEN

Branch/PR: port-math-blockfair-acc/gnuradio4#595

Delivered Blocks:
Design & Tests:

Size: ~500+ LOC across headers and tests.

Status: CI mostly green; Sonar check on forked PRs blocked by org secrets.

Analog Blocks (AM/FM/PM + AGC Family)

OPEN

Branch/PR: port-analog-blockgnuradio/gnuradio4#5

Implemented Headers:
Tests & Build:

Size: ~1k+ LOC across headers and tests.

Status: Functionally complete; small CI nits (casts/wrapping) pending.

Digital Blocks (Directory Tree + Core Kernels)

OPEN

Branch/PR: port-digital-blockgnuradio/gnuradio4#6

Directory by Use-Case:
digital/ core/ Constellation, Lfsr, Crc, Scrambler, Enums, detail/Bits.hpp mapping/ ChunksToSymbols, Encoders/SoftDecoders, Diff (enc/dec), Slicers, Map timing/ MM Clock, Symbol Sync, Costas/FLL/PFB measure/ MpskSnrEst, EVM, ProbeDensity equalizer/ AdaptiveAlgorithm, LinearEq, DFE ofdm/ CP, Serializer, CarrierAllocator, Equalizers, ChanEst, Sync packet/ Header formats, Header gen/parse, Sink, Demux misc/ Correlators, BurstShaper, Protocol/HDLC compat/ Thin 3.x shims, aliasing for continuity
Delivered so far:
Build & Tests:

Size: ~4k+ LOC (~45 files) in this initial wave.

Status: Structure + P0 kernels landed; large PR will be reviewed by multiple maintainers over several months.

5. Engineering Practices & Lessons

Summary: Lean kernels, predictable lifecycles, modular CMake, and pragmatic CI made GR4 contributions reviewable and stable.

CMake & CI

Testing Strategy

API Design

Documentation

Community

CI Constraints & Technical Context

Understanding these constraints is crucial for future contributors and maintainers working with the GNU Radio 4.0 codebase:

GitHub-Hosted Runners Memory

Secrets on Forked PRs

SonarCloud on External PRs

6. Quantitative Snapshot

Detailed Metrics

Digital PR

Math PR

Analog PR

7. Risks, Challenges, and Resolutions

Challenge Management: Addressed CI memory, forked-PR scanning limits, and cross-compiler template diagnostics pragmatically.

CI Memory on Hosted Runners

Issue: ~7 GB RAM can be exhausted by large template/type products.

Actions: Trimmed type matrices; favored float/double/complex; avoided span-of-spans; modularized tests.

Outcome: Stable runs with representative coverage.

Sonar on Forked PRs

Issue: Secrets are not exposed to forks, blocking Sonar checks.

Actions: Treated as maintainer-side configuration; focused on compiler/functional CI.

Outcome: Clear ownership; unblock merges once org CI is adjusted.

Template Diagnostics (Clang/GCC)

Issue: Noisy diagnostics across toolchains.

Actions: Cleaner concepts/aliases; explicit typedefs; systematic handling of conversions.

Outcome: Clearer errors and consistent builds.

8. What Remains & Next Steps (Post‑GSoC)

Continued Commitment: While the GSoC coding period has concluded, I remain committed to seeing these contributions through to completion and will continue to support the GNU Radio community.
  1. Analog Blocks: Fix the remaining CI test failures (a few lines: casts/wrapping), then merge. This involves addressing minor type casting issues and ensuring all tests pass consistently.
  2. Math Blocks: Finalize CI green by handling the forked‑PR Sonar gap in upstream CI (maintainers) or temporarily skip Sonar on external PRs. This ensures the math blocks can be merged without CI blocking.
  3. Digital Blocks: The large PR will be reviewed by multiple maintainers over several months. This comprehensive review approach allows for thorough evaluation of the entire digital block structure and implementation.
  4. Constellation Implementation: Land the C++23 Constellation<N> with slicing/metric strategies + legacy shims; follow with SIMD hooks for performance optimization.
  5. Migration Coordination: Coordinate PR targets as the project transitions from fair-acc/gnuradio4gnuradio/gnuradio4 so work lands in the canonical organization.

Long-term Vision

Beyond the immediate next steps, I envision these contributions serving as a foundation for future GNU Radio 4.0 development, providing:

9. Licensing

Compatibility: I'm comfortable with the licensing required to merge these contributions into the GNU Radio 4.0 repositories.

Code is intended for inclusion under GNU Radio's existing licensing practices and is structured to remain compatible with community standards.

10. Acknowledgments

Community Support: This project would not have been possible without the guidance, support, and collaboration of the GNU Radio community.

Mentors

Josh Morman

Primary mentor providing weekly guidance, technical direction, and unblocking support throughout the project.

John Sally

Secondary mentor offering additional technical insights and community perspective.

Community Members

Future Commitment

I will remain active after GSoC to see these PRs through to merge and help new contributors build on this work. The relationships and knowledge gained during this project will continue to benefit the GNU Radio ecosystem.

11. Current Status & Technical Context

Current Status: All three major PRs are open and actively being reviewed, with varying levels of completion and CI status.

Overview

All contributions are currently in active review phases. The Math and Analog blocks are functionally complete with minor CI adjustments pending, while the Digital blocks represent a comprehensive implementation that will undergo thorough review by multiple maintainers over several months.

This approach ensures quality while respecting the complexity and scope of each contribution. I remain actively engaged in addressing feedback and supporting the review process.