STL
llvm-project
STL | llvm-project | |
---|---|---|
162 | 399 | |
10,481 | 31,528 | |
1.1% | 3.1% | |
9.6 | 10.0 | |
2 days ago | 4 days ago | |
C++ | LLVM | |
GNU General Public License v3.0 or later | GNU General Public License v3.0 or later |
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.
STL
- Writing your own C++ standard library from scratch
-
The case of the critical section that let multiple threads enter a block of code
Yeah, as that Rust issue states, this was first replicated by a C++ programmer and STL (the person, not the Microsoft name for the C++ stdlib) said it looks like a bug in SRWLock.
There's a Microsoft internal ticket which I can't read (but STL can because he's a Microsoft employee) but there's also a GitHub issue for STL (this time the stdlib, a GitHub project, although it was opened by the person) https://github.com/microsoft/STL/issues/4448 and it's confirmed in that issue this is a bug in SRWLock, thus no work for STL† (either the project or the person).
It's not unusual (especially in C++ but this happens anywhere) that people would rather contort themselves to believe crazy things than accept that it's just a bug.
† Both Windows and C++ holds themselves to a very low standard, "Yeah, it's broken, too bad" is acceptable. Once you've determined that it's a bug you're done.
-
C++ String Conversion: Exploring std:from_chars in C++17 to C++26
I believe the impl you link to is not fully standards compliant, so just calls back to
MSFT's one is totally standards compliant and it is a very different beast: https://github.com/microsoft/STL/blob/main/stl/inc/charconv
Apart from various nuts and bolts optimizations (eg not using locales, better cache friendless, etc...) it also uses a novel algorithm which is an order of magnitude quicker for many floating points tasks (https://github.com/ulfjack/ryu).
If you actually want to learn about this, then watch the video I linked earlier.
-
Rust Atomics and Locks by Mara Bos
SRWLocks are a Windows feature, not a Rust feature, so you're looking in the wrong place.
Here's STL's (nominative determinism at work) GitHub issue for Microsoft's C++ stdlib implementation about this https://github.com/microsoft/STL/issues/4448
Here's the C++ Reddit thread where the bug was shown: https://www.reddit.com/r/cpp/comments/1b55686/maybe_possible...
Here's the Rust change which was merged for 1.78: https://github.com/rust-lang/rust/pull/121956/
-
DARPA: Translating All C to Rust (Tractor)
Interesting thanks. Seems the reason I couldn't find anything on that is because it's not really documented?
https://github.com/microsoft/STL/issues/586
> We talked about this at the weekly maintainer meeting and decided that we're not comfortable enough with the (lack of) design of this feature to begin documenting it for wide usage.
-
Driving Compilers
Microsoft does officially call their implementation of the C++ Standard Library in MSVC "The STL." This is due to historical confusion, of course, but it persists to this very day in official materials. Check the name of this repository.
https://github.com/microsoft/STL
-
Show HN: Logfmtxx – Header only C++23 structured logging library using logfmt
Again, they are barely functional.
MSVC chokes on many standard-defined constructs: https://github.com/microsoft/STL/issues/1694
clang does not claim to be "mostly usable" at all - most papers are not implemented: https://clang.llvm.org/cxx_status.html#cxx20
And gcc will only start ot be usable with CMake when version 14 is released - that has not happened yet.
And, as I mentioned before, IDE support is either buggy (Visual Studio) or non-existing (any other IDE/OS). So you're off to writing in a text editor and hoping your compiler works to a somewhat usable degree. Yes, at some point people should start using modules, I agree, but to advise library maintainers to ship modularized code... the tooling just isn't there yet.
I mean, the GitHub issue is Microsoft trying to ship their standard library modularized, they employ some of the most capable folks on the planet and pay them big money to get that done, while metaphorically sitting next to the Microsoft compiler devs, and they barely, barely get it done (with bugs, as they themselves mention). This is too much for most other library maintainers.
-
Cpp2 and cppfront – An experimental 'C++ syntax 2' and its first compiler
Notice that there are in practice three distinct implementations of the C++ standard library. They're all awful to read though, here's Microsoft's std::vector https://github.com/microsoft/STL/blob/main/stl/inc/vector
However you're being slightly unfair because Rust's Vec is just defined (opaquely) as a RawVec plus a length value, so let's link RawVec, https://doc.rust-lang.org/src/alloc/raw_vec.rs.html -- RawVec is the part responsible for the messy problem of how to actually implement the growable array type.
Still, the existence of three C++ libraries with slightly different (or sometimes hugely different) quality of implementation means good C++ code can't depend on much beyond what the ISO document promises, and yet it must guard against the nonsense inflicted by all three and by lacks of the larger language. In particular everything must use the reserved prefix so that it's not smashed inadvertently by a macro, and lots of weird C++ idioms that preserve performance by sacrificing clarity of implementation are needed, even where you'd ordinarily sacrifice to get the development throughput win of everybody know what's going on. For example you'll see a lot of "pair" types bought into existence which are there to squirrel away a ZST that in C++ can't exist, using the Empty Base Optimisation. In Rust the language has ZSTs so they can just write what they meant.
- C++ Specification vs Implementation
-
C++23: Removing garbage collection support
Here is Microsoft's implementation of map in the standard library. I think of myself as a competent programmer / computer scientist. I couldn't write this: https://github.com/microsoft/STL/blob/f392449fb72d1a387ac502...
llvm-project
-
Looking Ahead at Intel's Xe3 GPU Architecture
https://www.amd.com/content/dam/amd/en/documents/instinct-te...
The compiler is LLVM
https://github.com/llvm/llvm-project/tree/main/llvm/lib/Targ...
It's all there. For the driver/runtime everything is also open and upstreamed into the Linux kernel. The packet protocol isn't well-documented but documented enough that tinygrad managed to build their own driver from scratch.
-
Performance of the Python 3.14 tail-call interpreter
LLD has a new option "--randomize-section-padding" for this purpose: https://github.com/llvm/llvm-project/pull/117653
-
A Clang regression related to switch statements and inlining
Github issue:
https://github.com/llvm/llvm-project/issues/127365
-
It is not a compiler error. It is never a compiler error (2017)
The article is right: it is almost never a compiler bug. I have had that experience of reporting and being wrong. It sucks.
On the other hand, I have a confirmed bug in Cland [1] and a non-rejected bug in GCC [2], so it does happen.
[1]: https://github.com/llvm/llvm-project/issues/61133
[2]: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108448
-
OpenBSD Innovations
Have been is the right word.
This thread keeps having its goal posts moved around, first is was an example, then got the spotlight of being only about clang, then I pointed out about Apple/Google original purposes, then it was something else, and yet another one.
Just head off to /r/cpp that is where hunches are coming from.
Have you at very least filtered by C++ clang only related contributions instead of LLVM ones?
Most likely not, only clicked here https://github.com/llvm/llvm-project/graphs/contributors and came right away to reply.
-
Falsehoods programmers believe about null pointers
I'm excited about -fbounds-safety coming soon: https://github.com/llvm/llvm-project/commit/64360899c76c
-
How Jane Street accidentally built a better build system for OCaml
okay can you at least tell me how the architecture of https://github.com/llvm/llvm-project is "bad"?
-
The preview of -fbounds-safety is now accessible to the community
https://github.com/llvm/llvm-project/blob/main/clang/docs/Bo...
- Clang getting more aggressive about optimizing undefined behavior
- Clang now more aggressively uses undefined behavior on pointer addition overflow
What are some alternatives?
EA Standard Template Library - EASTL stands for Electronic Arts Standard Template Library. It is an extensive and robust implementation that has an emphasis on high performance.
zig - General-purpose programming language and toolchain for maintaining robust, optimal, and reusable software.
gcc
cosmopolitan - build-once run-anywhere c library
robin-hood-hashing - Fast & memory efficient hashtable based on robin hood hashing for C++11/14/17/20