papers
stl-header-heft
| papers | stl-header-heft | |
|---|---|---|
| 89 | 5 | |
| 41 | 59 | |
| - | - | |
| 4.0 | 0.0 | |
| 3 months ago | about 5 years ago | |
| Perl | Python | |
| - | - |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
papers
- C++26: Erroneous Behaviour
The interpretation is probably up for some debate especially since meeting details are not public, but some relevant links are:
- The P3390R0 Safe C++ proposal and the related vote in the 2024-11 Wrocław meeting: https://github.com/cplusplus/papers/issues/2045
- The adoption of the paper P3466 R1 (Re)affirm design principles for future C++ evolution at the same meeting, which contains language which can be interpreted as preemptively foreclosing a Safe C++-style approach: https://github.com/cplusplus/papers/issues/2121
- A 20 year old bug in GTA San Andreas surfaced in Windows 11 24H2
And yet, there is a good chance that C++ will start doing exactly this [1]. Because [2]:
> The performance impact is negligible (less that 0.5% regression) to slightly positive (that is, some code gets faster by up to 1%). The code size impact is negligible (smaller than 0.5%). Compile-time regressions are negligible. Were overheads to matter for particular coding patterns, compilers would be able to obviate most of them.
> The only significant performance/code regressions are when code has very large automatic storage duration objects. We provide an attribute to opt-out of zero-initialization of objects of automatic storage duration. We then expect that programmer can audit their code for this attribute, and ensure that the unsafe subset of C++ is used in a safe manner.
> This change was not possible 30 years ago because optimizations simply were not as good as they are today, and the costs were too high. The costs are now negligible.
[1] https://github.com/cplusplus/papers/issues/1401
[2] https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2023/p27...
- Malloc broke Serenity's JPGLoader, or: how to win the lottery
For whatever its worth, if we wait long enough C++ will include the equivalent of `malloc_good_size`. https://github.com/cplusplus/papers/issues/18
- Reflection for C++26
https://github.com/cplusplus/papers/issues/1668#issuecomment...
Looks like it did very well in St. Louis!
- Qt and C++ Trivial Relocation (Part 1)
It is slowly making its way through the standards committee. https://github.com/cplusplus/papers/issues/43
The author has a fork of clang and gcc with some pretty impressive speedups, so I’m hopeful! https://lists.isocpp.org/sg14/2024/04/1127.php
- Learn Modern C++
What's fun is, because everything is decided in papers, we can find out why! https://github.com/cplusplus/papers/issues/884
Accepted paper here: https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p20...
> The proposed std::print function improves usability, avoids allocating a temporary std::string object and calling operator<< which performs formatted I/O on text that is already formatted. The number of function calls is reduced to one which, together with std::vformat-like type erasure, results in much smaller binary code (see § 13 Binary code).
Additionally,
> Another problem is formatting of Unicode text:
> std::cout << "Привет, κόσμος!";
> If the source and execution encoding is UTF-8 this will produce the expected output on most GNU/Linux and macOS systems. Unfortunately on Windows it is almost guaranteed to produce mojibake despite the fact that the system is fully capable of printing Unicode
- The insanity of compile time programming
- P1673 A free function linear algebra interface based on the BLAS
- When will std::linalg make it into a new C++ release?
See https://github.com/cplusplus/papers/issues/557
- C++ Papercuts
Bringing editions to C++ failed, and I am not aware of anyone trying to tackle the issues https://github.com/cplusplus/papers/issues/631
(I could be wrong though! I follow the committee more than you may guess, but not as much as to think I know everything about what's going on.)
stl-header-heft
- "Fast Kernel Headers" Tree -v1: Eliminate the Linux kernel's "Dependency Hell"
The older I get the more I think #include in public headers needs to have a whitelisted regex git push filter, and the permitted whitelist of permitted includes is small and excludes most of the standard library. https://github.com/ned14/stl-header-heft, after all.
- C++23: Near The Finish Line
As you know, every two years or so I update https://github.com/ned14/stl-header-heft and historically the only STL to shrink in terms of token count has been yours, albeit starting from a high initial base. libstdc++ consistently grows. I look forward to discovering how VS2022's STL compares to preceding editions.
- C++ Library Include Times: Time it takes to #include any standard library and other headers
You may want to have a look at https://github.com/ned14/stl-header-heft too :)
- zpp::throwing<T> - Implementing "almost" C++ exceptions with coroutines
string_view drags in a ton of the STL. string_view cannot deallocate on destruction. See https://github.com/ned14/stl-header-heft.
- Why is this channel less active?
Even million line C++ codebases can compile from scratch within minutes if your header files never include anything not in the least impact headers list from https://github.com/ned14/stl-header-heft.
What are some alternatives?
LEWG - Project planning for the C++ Library Evolution Working Group
zapcc - zapcc is a caching C++ compiler based on clang, designed to perform faster compilations
circle - The compiler is available for download. Get it!
cpp-lit - Time to #include standard library and other C++ headers.
{fmt} - A modern formatting library
zpp_throwing - Using coroutines to implement C++ exceptions for freestanding environments