You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Following the licensing transition in PR #781, we need to revert prior macOS ARM64 enablement contributions to maintain a clean license boundary at the file level rather than per-line attribution within shared files.
Background
PR #725 (commit 7405f60) and the follow-up 7a457df were contributed under MIT and the contributor has explicitly indicated they do not consent to relicensing under LGPL-3.0-or-later WITH LGPL-3.0-linking-exception. The contributions in question are concentrated on macOS ARM64 enablement plus a CI workflow.
The cleanest handling — given that license clarity at the file level is institutionally maintainable but per-line MIT/LGPL+SLE attribution within shared files is not — is to revert these contributions ahead of the LGPL+SLE merge. Several of the changes are platform-independent bug fixes that should be preserved through re-implementation with fresh authorship.
Scope
Revert the following commits and adjust dependent files as needed:
core/include/gnuradio-4.0/thread/MemoryMonitor.hpp — reinterpret_cast for Mach task_info()
core/include/gnuradio-4.0/WaitStrategy.hpp — sched_yield swap on macOS
CMake conditionals: -Wl,-dead_strip, mold/lld skip on Darwin, redundant -lc++ removal
CFNetwork link conditional
Category B — platform-independent bug fixes; revert and re-implement under new authorship:
algorithm/include/gnuradio-4.0/algorithm/rng/GaussianNoise.hpp — FMA-contraction alignment fix between bulk and per-sample paths. Verify the underlying numerical issue exists on Linux/x86_64 and re-fix cleanly.
core/include/gnuradio-4.0/Scheduler.hpp — claimed TOCTOU race in initBlockAdoption(). Independently verify the race exists on non-macOS platforms; if confirmed, re-fix with new authorship.
meta/include/gnuradio-4.0/meta/UnitTestHelper.hpp and core/test/qa_Messages.cpp — IO pool vs CPU pool routing for blocking waits. Verify whether this is a real issue on Linux test runs and re-implement if so.
CMakeLists.txt — GR_ENABLE_HTTP=OFF was reportedly being honoured incorrectly. Confirm and re-fix.
Category C — deep platform-conditional changes; revert (loses macOS):
core/include/gnuradio-4.0/Sequence.hpp — Apple ARM64 hardware_*_interference_size override to 128. Apple-only. Revert; macOS support deferred.
core/include/gnuradio-4.0/thread/thread_pool.hpp — Mach task_threads() for thread counting and microsecond-polling fallback replacing condition_variable::wait_for on macOS. Revert; macOS support deferred.
core/include/gnuradio-4.0/Value.hpp and core/src/Value.cpp — unsigned long/signed long/signed long long via reinterpret_cast aliasing to existing int64_t/uint64_t storage with platform-conditional explicit instantiations. Revert; macOS support deferred.
The IsAnyOf concept addition — revert if it has no non-macOS users; keep with attribution note if reused elsewhere.
Approach
Create a topic branch from main (suggest name: remove-macos-arm64-support).
Attempt git revert 7a457df 7405f60 first as a starting point. If conflicts arise from subsequent refactoring, manual unwind from the original diff is acceptable.
For Category B changes, separate the revert (one commit) from the re-implementation (subsequent commits with fresh authorship and clean commit messages).
Verify Category B re-implementations against existing test suite; add tests where the underlying bug suggests one is missing.
Run full CI on Linux x86_64, Linux ARM64, embedded (RP2350), and WASM/Emscripten targets to confirm no regression.
Revert macOS ARM64 enablement (PRs #725, #7a457df) ahead of LGPL+SLE merge. Contributor has indicated non-consent to relicensing of MIT-era contributions under LGPL-3.0-or-later WITH LGPL-3.0-linking-exception. Reverting maintains clean license clarity at the file level. macOS support may be re-introduced subsequently under the new license terms by any willing contributor.
For the re-implementation commits, standard commit messages crediting the original observation but with fresh implementation, e.g.:
Fix FMA-contraction alignment between bulk and per-sample GaussianNoise paths
Fixes a 1-ULP numerical discrepancy between the bulk and per-sample code paths caused by inconsistent FMA contraction. The issue was originally observed on Apple ARM64 but applies to any FMA-capable target. Re-implemented with fresh authorship to maintain clean licensing under LGPL-3.0-or-later WITH LGPL-3.0-linking-exception.
Out of scope
Re-introducing macOS support. That is welcome as a separate future contribution from anyone willing to implement it under the new license terms, but it is not part of this cleanup task.
Engaging with the contributor on this PR thread. The PR-thread reply on the licensing question will be handled separately (not by the volunteer for this task).
Following the licensing transition in PR #781, we need to revert prior macOS ARM64 enablement contributions to maintain a clean license boundary at the file level rather than per-line attribution within shared files.
Background
PR #725 (commit
7405f60) and the follow-up7a457dfwere contributed under MIT and the contributor has explicitly indicated they do not consent to relicensing under LGPL-3.0-or-later WITH LGPL-3.0-linking-exception. The contributions in question are concentrated on macOS ARM64 enablement plus a CI workflow.The cleanest handling — given that license clarity at the file level is institutionally maintainable but per-line MIT/LGPL+SLE attribution within shared files is not — is to revert these contributions ahead of the LGPL+SLE merge. Several of the changes are platform-independent bug fixes that should be preserved through re-implementation with fresh authorship.
Scope
Revert the following commits and adjust dependent files as needed:
7405f60— macOS ARM64 support and CI (PR fix: Add macOS ARM64 support and CI workflow #725, 15 files, +269/−55)7a457df— link-framework CFNetworkon macOS for cpp-httplib (1 file)Within the revert, classify each change into one of three categories:
Category A — clean revert (macOS-only scaffolding, no preservation needed):
.github/workflows/ci-macos.yml(entire workflow)core/include/gnuradio-4.0/PluginLoader.hpp—.dylibextension handlingcore/include/gnuradio-4.0/thread/MemoryMonitor.hpp—reinterpret_castfor Machtask_info()core/include/gnuradio-4.0/WaitStrategy.hpp—sched_yieldswap on macOS-Wl,-dead_strip, mold/lld skip on Darwin, redundant-lc++removalCategory B — platform-independent bug fixes; revert and re-implement under new authorship:
algorithm/include/gnuradio-4.0/algorithm/rng/GaussianNoise.hpp— FMA-contraction alignment fix between bulk and per-sample paths. Verify the underlying numerical issue exists on Linux/x86_64 and re-fix cleanly.core/include/gnuradio-4.0/Scheduler.hpp— claimed TOCTOU race ininitBlockAdoption(). Independently verify the race exists on non-macOS platforms; if confirmed, re-fix with new authorship.meta/include/gnuradio-4.0/meta/UnitTestHelper.hppandcore/test/qa_Messages.cpp— IO pool vs CPU pool routing for blocking waits. Verify whether this is a real issue on Linux test runs and re-implement if so.CMakeLists.txt—GR_ENABLE_HTTP=OFFwas reportedly being honoured incorrectly. Confirm and re-fix.Category C — deep platform-conditional changes; revert (loses macOS):
core/include/gnuradio-4.0/Sequence.hpp— Apple ARM64hardware_*_interference_sizeoverride to 128. Apple-only. Revert; macOS support deferred.core/include/gnuradio-4.0/thread/thread_pool.hpp— Machtask_threads()for thread counting and microsecond-polling fallback replacingcondition_variable::wait_foron macOS. Revert; macOS support deferred.core/include/gnuradio-4.0/Value.hppandcore/src/Value.cpp—unsigned long/signed long/signed long longviareinterpret_castaliasing to existingint64_t/uint64_tstorage with platform-conditional explicit instantiations. Revert; macOS support deferred.IsAnyOfconcept addition — revert if it has no non-macOS users; keep with attribution note if reused elsewhere.Approach
main(suggest name:remove-macos-arm64-support).git revert 7a457df 7405f60first as a starting point. If conflicts arise from subsequent refactoring, manual unwind from the original diff is acceptable.Commit message guidance for the cleanup PR
For the revert commits:
For the re-implementation commits, standard commit messages crediting the original observation but with fresh implementation, e.g.:
Out of scope