-
Notifications
You must be signed in to change notification settings - Fork 1.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Call for Accelerated C++20 Modules Support Across Boost Libraries #1023
Comments
You will get a lot more visibility if you post this to the boost-developers mailing list. See https://lists.boost.org/mailman/listinfo.cgi/boost for more info. |
Does this list consider the points made in the discussions on the mailing list? |
I've been following the progress of C++20 modules and working on some Boost-related modules demos. I came across this discussion thread on the Boost mailing list https://lists.boost.org/Archives/boost//2024/12/258953.php, where the lead developer of Clang modules has been communicating with the Boost community via email. |
Yes. But Ruben has been working on many C++ modules for Boost, and we recently had another very long thread about modules in the mailing list. This happens every six months or so. IIRC, we concluded that the ecosystem is just not ready yet. There's not a lot of support. Once the support is there, adapting the code to support modules is not a huge deal. |
|
Yes. The issue is the ecosystem, not a particular compiler implementation. I won't list what we discussed on the mailing list to avoid repetition, but many issues go beyond that implementation. Even If you want to see The inclusion of Rust in the discussion is also not very helpful. It helps nothing with the technical issues we face. My personal opinion about the Rust hysteria is that if Rust is better than C++ at this stuff, then so be it. Languages are just tools. Incentivizing people to attach their self-esteem to a programming language is a bad idea. Still, I think Rust is not going very far because it promises a lot, but it can't deliver on these promises you look at the technical issues. And even if Rust could deliver on all of its promises, their "market" share is negligible. How python/javascript/swift/... is taking C++ "market" share is a much more interesting topic to me. In any case, that's my personal opinion. The point is that these personal opinions are irrelevant to the issues Boost faces in supporting modules. If we want support for modules, the solution is to sit down and fix each of the issues mentioned in the mailing list, regardless of how Rust is doing. |
Dear Boost Community,
As the pioneer of C++ innovation, Boost has consistently led the charge in adopting groundbreaking features before they become standard. While we applaud the initial modularization efforts across several Boost libraries, the current pace of C++20 Modules adoption falls short of what the community needs and expects from this foundational project.
Current Modularization Efforts (Proofs-of-Concept)
The community has made valuable initial progress on modularizing key components:
Header-Only Libraries
Compiled Libraries
Core Infrastructure
Build System Support
While these efforts are commendable, they represent just the first steps. The C++ ecosystem cannot afford for Boost - the standard-bearer of C++ innovation - to lag in adopting this transformative feature.
Why Immediate Scaling is Critical
Compiler Readiness
All major compilers (GCC 15, Clang 16, MSVC) now support C++20 Modules, with
import std;
already working. The toolchain is ready - where is Boost?
C++ has reached a historical turning point with modularization, and Boost stands at the forefront of this wave.
Community Impact
With virtually every significant C++ project depending on Boost, the lack of comprehensive Modules support creates:
Leadership Responsibility
Boost has historically bridged the gap between cutting-edge features and standardization (e.g., Filesystem, Coroutines). We must continue this tradition for Modules. Even though MSVC has some issues on the platform, both MSVC and STL are using Boost.Math, which shows the importance and necessity of Boost. And since when did one platform not being able to support something stop Boost from pushing the envelope of compilers and libraries?
CMake Status and Boost's Leadership
CMake's C++ Modules support is now in a usable state, with no major issues. However, Boost has always held a more prominent leadership position and had a greater influence in the C++ community compared to CMake. Boost should take the lead in driving the adoption of C++20 Modules, rather than waiting for CMake to fully catch up.
The Call for Boost 2
The idea of a Boost 2 that assumes C++20 as its starting point has been discussed for years. This would be an opportunity to shed historical baggage and embrace modern C++ fully. Such a bold move would not only align Boost with the current standards but also reinvigorate its position as the innovator in the C++ ecosystem.
Suggested Next Steps
The time for proofs-of-concept is over. The C++ community needs production-ready module support across Boost's core libraries. Without Boost leading the way, the entire ecosystem remains stalled. Let's work together to make this happen now.
Reddit References:
"Boost didn't become legendary by waiting for perfect conditions - it created them." Now is the time to lead again.
The text was updated successfully, but these errors were encountered: