News for hackers. Stuff that matters.

nuudlman

Re:Formally Verifying Peephole Optimisations in Lean on Monday December 29, 2025 @10:01AM (#46421405)
I'm not sure about moral per se, but LLVM is practically a painful dependency—it doesn't have API compatibility between versions, release builds are rapidly approaching a gigabyte, you are given some franken-version by the system, and you won't have a good time if you end up linking/loading more than one version for whatever reason.

IIRC there was also some case where an LLVM bump caused tcmalloc to explode inside wine.

Re:OBS Studio Gets a New Renderer on Friday December 19, 2025 @05:07PM (#46331540)
Vulkan capture support on Windows was introduced in v25 (on linux you need to use a plugin). There is no Vulkan renderer support—which the post clearly stated...
Re:Capsudo: Rethinking Sudo with Object Capabilities on Sunday December 14, 2025 @12:01AM (#46260867)
This feels like pfexec on Illumos/Solaris, although I’m too unqualified to say for certain.
Re:Zig asserts are not C asserts on Tuesday December 09, 2025 @02:53PM (#46209739)
With the common case of SimplifyCFG turning this into an assumption (for ReleaseFast), this is UB (LLVM def) unless you can prove that the assumption always holds.

I suppose that's par for the course with an unchecked release build, but at the same time memory corruption is much easier to debug as compared to 'the compiler changed the logic of my program in strange/incorrect ways'.

Re:Precompiled headers and why Squid won't be using them (2023) on Wednesday November 05, 2025 @02:04AM (#45820157)
Do you have any specific examples here?

While no compiler is perfect (e.g., pointer provenance), one could just as easily argue that Clang has higher quality—most modern C/++ tooling is built on it, sanitizers are brought up in Clang and sometimes ported to GCC later, all of the modern safety work is in Clang (-Wbounds-safety, the various thread safety approaches, lifetime analysis, Sean’s borrow checked C++, Fil-C). The Clang static analyzer has also been used in production for over a decade, whereas -fanalyzer is still experimental and limited to C, …

I have the feeling that the bugs that aren’t being fixed are either because the bug report is unactionable (3yr old Ubuntu Franken-clang is slower than than 3yr old franken-gcc) or because the problem is very non-trivial (e.g., you can find recent discussion about enabling dependence analysis by default, the aforementioned pointer provenance issues stemming from C, ABI/lowering warts around large _BitInt)

Re:Compilation on the GPU? A Feasibility Study on Wednesday December 04, 2024 @10:20AM (#42318290)
Linking is very parallelizable: see the mold linker for a demonstration.
Re:Speeding up the Rust edit-build-run cycle on Thursday November 14, 2024 @05:41PM (#42141975)
It's a lot faster to add a log point in a debugger than to add a print statement and recompile. Especially with cargo check, I really don't see the point of non-debuggable builds (outside of embedded, but the size of debuginfo already makes that a non-starter).
Re:Speeding up the Rust edit-build-run cycle on Thursday November 14, 2024 @03:02PM (#42140541)
Not linking debug info must be some kind of sick joke. What is the point of a debug build without symbols?
Re:Testing AMD's Bergamo: Zen 4c on Saturday June 22, 2024 @10:11PM (#40764128)
The fun thing with branch predictors is that they tell you where the next branch is (among other things like the direction of the branch). Since hardware is built out of finite wires, the prediction will saturate to some maximum distance (something in the next few cache lines).

How this affects decode clusters is left as an exercise to the reader.

Re:Ideal OS: Rebooting the Desktop Operating System (2017) on Thursday June 13, 2024 @09:18PM (#40676642)
A lot of this seems like it's done by Arcan (https://arcan-fe.com)
Re:Arena-Based Parsers on Wednesday May 08, 2024 @08:31PM (#40304092)
This talk was enormously educational when I first dove into LLVM and modern compilers last January—Chandler is a great speaker.