# gcc

Published articles for gcc.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Jemalloc 5.4 Released With Portability Improvements, Code Cleanups

DevFeed: [Jemalloc 5.4 Released With Portability Improvements, Code Cleanups](<https://devfeed.tech/articles/jemalloc-5-4-released-with-portability-improvements-code-cleanups-42694.md>)

Original publisher: [Read original article](<https://www.phoronix.com/news/Jemalloc-5.4>)

Author: Michael Larabel

Published: 2026-09-17T22:37:11Z

Content type: release

Language: en

Sources: [Phoronix](<https://devfeed.tech/sources/phoronix.md>)

Topics: [Code](<https://devfeed.tech/topics/code.md>), [Refactoring](<https://devfeed.tech/topics/refactoring.md>), [test-coverage](<https://devfeed.tech/topics/test-coverage.md>), [bug](<https://devfeed.tech/topics/bug.md>), [cpu](<https://devfeed.tech/topics/cpu.md>), [gcc](<https://devfeed.tech/topics/gcc.md>), [configuration](<https://devfeed.tech/topics/configuration.md>)

Tags: [bug](<https://devfeed.tech/tags/bug.md>), [code](<https://devfeed.tech/tags/code.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [cpu](<https://devfeed.tech/tags/cpu.md>), [desktop-linux](<https://devfeed.tech/tags/desktop-linux.md>), [error-handling](<https://devfeed.tech/tags/error-handling.md>), [gcc](<https://devfeed.tech/tags/gcc.md>), [improvements](<https://devfeed.tech/tags/improvements.md>), [linux-benchmarking](<https://devfeed.tech/tags/linux-benchmarking.md>), [linux-hardware-benchmarks](<https://devfeed.tech/tags/linux-hardware-benchmarks.md>), [linux-hardware-reviews](<https://devfeed.tech/tags/linux-hardware-reviews.md>), [linux-how-to](<https://devfeed.tech/tags/linux-how-to.md>), [linux-performance](<https://devfeed.tech/tags/linux-performance.md>), [linux-server-benchmarks](<https://devfeed.tech/tags/linux-server-benchmarks.md>), [open-source-graphics](<https://devfeed.tech/tags/open-source-graphics.md>), [phoronix](<https://devfeed.tech/tags/phoronix.md>), [phoronix-test-suite](<https://devfeed.tech/tags/phoronix-test-suite.md>), [process](<https://devfeed.tech/tags/process.md>), [profiling](<https://devfeed.tech/tags/profiling.md>), [refactoring](<https://devfeed.tech/tags/refactoring.md>), [synchronization](<https://devfeed.tech/tags/synchronization.md>), [test-coverage](<https://devfeed.tech/tags/test-coverage.md>), [thread](<https://devfeed.tech/tags/thread.md>), [ubuntu-benchmarks](<https://devfeed.tech/tags/ubuntu-benchmarks.md>), [ubuntu-hardware](<https://devfeed.tech/tags/ubuntu-hardware.md>), [yield](<https://devfeed.tech/tags/yield.md>)

### AI overview

Jemalloc 5.4 is released with portability improvements, code refactoring, bug fixes, expanded test coverage, new allocation features, optimizations, and GCC 16 warning fixes. The release adds an operating-system abstraction layer for platform-dependent operations.

### Source excerpt

Earlier this year Meta announced a renewed investment into the jemalloc memory allocator that's been popular for server and HPC use among various desktop use-cases too. After stagnating a bit in recent years, Jemalloc has been off to seeing new developments since Meta's announcement and out today is Jemalloc 5.4 as the latest step forward...

## Intel Granite Rapids WS vs. AMD Threadripper Zen 5 SMT Performance

DevFeed: [Intel Granite Rapids WS vs. AMD Threadripper Zen 5 SMT Performance](<https://devfeed.tech/articles/intel-granite-rapids-ws-vs-amd-threadripper-zen-5-smt-performance-41409.md>)

Original publisher: [Read original article](<https://www.phoronix.com/review/amd-zen5-intel-gnr-ws-smt>)

Author: Michael Larabel

Published: 2026-09-17T19:14:14Z

Content type: comparison

Language: en

Sources: [Phoronix](<https://devfeed.tech/sources/phoronix.md>)

Topics: [cpu](<https://devfeed.tech/topics/cpu.md>), [benchmarking](<https://devfeed.tech/topics/benchmarking.md>), [intel](<https://devfeed.tech/topics/intel.md>), [Xeon 600](<https://devfeed.tech/topics/xeon-600.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [gcc](<https://devfeed.tech/topics/gcc.md>)

Tags: [amd](<https://devfeed.tech/tags/amd.md>), [benchmarking](<https://devfeed.tech/tags/benchmarking.md>), [benchmarks](<https://devfeed.tech/tags/benchmarks.md>), [bios](<https://devfeed.tech/tags/bios.md>), [cpu](<https://devfeed.tech/tags/cpu.md>), [desktop-linux](<https://devfeed.tech/tags/desktop-linux.md>), [fedora](<https://devfeed.tech/tags/fedora.md>), [gcc](<https://devfeed.tech/tags/gcc.md>), [intel](<https://devfeed.tech/tags/intel.md>), [intel-xeon](<https://devfeed.tech/tags/intel-xeon.md>), [linux](<https://devfeed.tech/tags/linux.md>), [linux-benchmarking](<https://devfeed.tech/tags/linux-benchmarking.md>), [linux-hardware-benchmarks](<https://devfeed.tech/tags/linux-hardware-benchmarks.md>), [linux-hardware-reviews](<https://devfeed.tech/tags/linux-hardware-reviews.md>), [linux-how-to](<https://devfeed.tech/tags/linux-how-to.md>), [linux-performance](<https://devfeed.tech/tags/linux-performance.md>), [linux-server-benchmarks](<https://devfeed.tech/tags/linux-server-benchmarks.md>), [open-source-graphics](<https://devfeed.tech/tags/open-source-graphics.md>), [performance](<https://devfeed.tech/tags/performance.md>), [phoronix](<https://devfeed.tech/tags/phoronix.md>), [phoronix-test-suite](<https://devfeed.tech/tags/phoronix-test-suite.md>), [smt](<https://devfeed.tech/tags/smt.md>), [ubuntu-benchmarks](<https://devfeed.tech/tags/ubuntu-benchmarks.md>), [ubuntu-hardware](<https://devfeed.tech/tags/ubuntu-hardware.md>)

### AI overview

This comparison measures the impact of Hyper-Threading and SMT on Intel Redwood Cove and AMD Zen 5 workstation processors. It tests Intel Xeon 678X and AMD Ryzen Threadripper 9980X configurations with SMT enabled and disabled, including a matched 48-core setup, across multiple workloads while monitoring power consumption and thermals.

### Source excerpt

As a follow-up to the article earlier this month of the Intel Xeon 600 workstation performance against AMD Ryzen Threadripper 9000 series in over 400 benchmarks -- including when carried out at the same core count and memory configuration -- today's article is exploring the Hyper Threading / SMT impact on both the Intel Redwood Cove and AMD Zen 5 cores for workstations.

## Libreboot 20220710 released!

DevFeed: [Libreboot 20220710 released!](<https://devfeed.tech/articles/libreboot-20220710-released-32705.md>)

Original publisher: [Read original article](<https://libreboot.org/news/libreboot20220710.html>)

Author: Leah Rowe

Published: 2026-09-17T04:32:50.666044Z

Content type: release

Language: en

Sources: [News about Libreboot releases and development](<https://devfeed.tech/sources/news-about-libreboot-releases-and-development.md>)

Topics: [libreboot](<https://devfeed.tech/topics/libreboot.md>), [releases](<https://devfeed.tech/topics/releases.md>), [coreboot](<https://devfeed.tech/topics/coreboot.md>), [Linux](<https://devfeed.tech/topics/linux.md>)

Tags: [article](<https://devfeed.tech/tags/article.md>), [bios](<https://devfeed.tech/tags/bios.md>), [build-system](<https://devfeed.tech/tags/build-system.md>), [canoeboot](<https://devfeed.tech/tags/canoeboot.md>), [coreboot](<https://devfeed.tech/tags/coreboot.md>), [documentation](<https://devfeed.tech/tags/documentation.md>), [free-software](<https://devfeed.tech/tags/free-software.md>), [gcc](<https://devfeed.tech/tags/gcc.md>), [hardware](<https://devfeed.tech/tags/hardware.md>), [libre](<https://devfeed.tech/tags/libre.md>), [libreboot](<https://devfeed.tech/tags/libreboot.md>), [linux](<https://devfeed.tech/tags/linux.md>), [opensource](<https://devfeed.tech/tags/opensource.md>), [release](<https://devfeed.tech/tags/release.md>), [releases](<https://devfeed.tech/tags/releases.md>), [scripts](<https://devfeed.tech/tags/scripts.md>), [security](<https://devfeed.tech/tags/security.md>), [speed](<https://devfeed.tech/tags/speed.md>), [testing](<https://devfeed.tech/tags/testing.md>), [uefi](<https://devfeed.tech/tags/uefi.md>), [upgrade](<https://devfeed.tech/tags/upgrade.md>), [usb](<https://devfeed.tech/tags/usb.md>), [version](<https://devfeed.tech/tags/version.md>)

### AI overview

Libreboot 20220710 is a stable bug-fix release relative to version 20211122. It adds documentation snapshots and fixes or improves GRUB boot performance, laptop compatibility, build behavior, USB keyboard support, coreboot configuration, and related tooling. No new boards or major features were added.

### Source excerpt

Article: Libreboot 20220710 released! Web link: https://libreboot.org/news/libreboot20220710.html

## How fast is C++23's std::flat\_map?

DevFeed: [How fast is C++23's std::flat\_map?](<https://devfeed.tech/articles/how-fast-is-c-23-s-std-flat-map-31465.md>)

Original publisher: [Read original article](<https://lemire.me/blog/2026/09/16/how-fast-is-c23s-stdflat_map/>)

Author: Daniel Lemire

Published: 2026-09-16T20:26:36Z

Content type: article

Language: en

Sources: [Daniel Lemire](<https://devfeed.tech/sources/daniel-lemire.md>)

Topics: [Data structures](<https://devfeed.tech/topics/data-structures.md>), [Library](<https://devfeed.tech/topics/library.md>), [gcc](<https://devfeed.tech/topics/gcc.md>), [LLVM](<https://devfeed.tech/topics/llvm.md>), [clang](<https://devfeed.tech/topics/clang.md>)

Tags: [array](<https://devfeed.tech/tags/array.md>), [arrays](<https://devfeed.tech/tags/arrays.md>), [clang](<https://devfeed.tech/tags/clang.md>), [gcc](<https://devfeed.tech/tags/gcc.md>), [llvm](<https://devfeed.tech/tags/llvm.md>), [overhead](<https://devfeed.tech/tags/overhead.md>), [speed](<https://devfeed.tech/tags/speed.md>), [standard-library](<https://devfeed.tech/tags/standard-library.md>)

### AI overview

This article benchmarks C++23's std::flat_map, a sorted container backed by parallel arrays of keys and values. It explains serialization and loading considerations, then compares insertion and lookup performance with std::map. Random-order insertion becomes quadratic as the container grows, while increasing-order or bulk insertion is much faster; random lookups can also be faster for large maps because std::flat_map uses less memory.

### Source excerpt

C++23 added a new type to the standard library: std::flat_map. There is also a std::flat_set and other variants, but let me focus on std::flat_map. A flat map is a sorted vector of keys next to a vector of values. A query is a binary search over the sorted keys. You need a recent standard library: ... Continue reading How fast is C++23's std::flat_map?

## Announcing Fedora Linux 45 Beta

DevFeed: [Announcing Fedora Linux 45 Beta](<https://devfeed.tech/articles/announcing-fedora-linux-45-beta-26757.md>)

Original publisher: [Read original article](<https://fedoramagazine.org/announcing-fedora-linux-45-beta/>)

Author: Aoife Moloney

Published: 2026-09-15T14:05:00Z

Content type: release

Language: en

Sources: [Fedora Magazine](<https://devfeed.tech/sources/fedora-magazine.md>)

Topics: [Fedora](<https://devfeed.tech/topics/fedora.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [dnf](<https://devfeed.tech/topics/dnf.md>), [podman](<https://devfeed.tech/topics/podman.md>), [pandas](<https://devfeed.tech/topics/pandas.md>), [Python](<https://devfeed.tech/topics/python.md>), [gcc](<https://devfeed.tech/topics/gcc.md>), [Go Language](<https://devfeed.tech/topics/go-language.md>), [MariaDB](<https://devfeed.tech/topics/mariadb.md>), [MySQL](<https://devfeed.tech/topics/mysql.md>), [Filesystems](<https://devfeed.tech/topics/filesystems.md>)

Tags: [2026](<https://devfeed.tech/tags/2026.md>), [dnf](<https://devfeed.tech/tags/dnf.md>), [fedora-project-community](<https://devfeed.tech/tags/fedora-project-community.md>), [filesystems](<https://devfeed.tech/tags/filesystems.md>), [gcc](<https://devfeed.tech/tags/gcc.md>), [go](<https://devfeed.tech/tags/go.md>), [linux](<https://devfeed.tech/tags/linux.md>), [mysql](<https://devfeed.tech/tags/mysql.md>), [pandas](<https://devfeed.tech/tags/pandas.md>), [partitioning](<https://devfeed.tech/tags/partitioning.md>), [podman](<https://devfeed.tech/tags/podman.md>), [pre-release](<https://devfeed.tech/tags/pre-release.md>), [python](<https://devfeed.tech/tags/python.md>), [release](<https://devfeed.tech/tags/release.md>), [toolchains](<https://devfeed.tech/tags/toolchains.md>)

### AI overview

Fedora Linux 45 Beta is available for download or upgrade on September 15, 2026. The release includes changes to the kernel console, package signature verification, desktop secret management, software versions, Atomic Desktop image builds, Fedora CoreOS swap support, Anaconda installation flows, and Stratis filesystem partitioning.

### Source excerpt

Fedora Linux 45 Beta is here! On Tuesday, 15 September 2026 you can download or upgrade your systems from your usual spots to start enjoying what F45 has to offer early. How to get the beta release You can download F45 Beta, or our pre-release edition versions, from any of the following places: You can [...]

## How to Sandbox a Linux Process with Landlock, No Root Required

DevFeed: [How to Sandbox a Linux Process with Landlock, No Root Required](<https://devfeed.tech/articles/how-to-sandbox-a-linux-process-with-landlock-no-root-required-4341.md>)

Original publisher: [Read original article](<https://www.freecodecamp.org/news/how-to-sandbox-a-linux-process-with-landlock-no-root-required/>)

Author: Chris Roy

Published: 2026-09-11T21:42:27Z

Content type: tutorial

Language: en

Sources: [freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More](<https://devfeed.tech/sources/freecodecamp-programming-tutorials-python-javascript-git-more.md>)

Topics: [Processes](<https://devfeed.tech/topics/processes.md>)

Tags: [c](<https://devfeed.tech/tags/c.md>), [gcc](<https://devfeed.tech/tags/gcc.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [kernel](<https://devfeed.tech/tags/kernel.md>), [linux](<https://devfeed.tech/tags/linux.md>), [process](<https://devfeed.tech/tags/process.md>), [sandbox](<https://devfeed.tech/tags/sandbox.md>), [security](<https://devfeed.tech/tags/security.md>), [selinux](<https://devfeed.tech/tags/selinux.md>), [ubuntu](<https://devfeed.tech/tags/ubuntu.md>)

### AI overview

A hands-on guide to sandboxing a Linux process with Landlock without root privileges. It explains the kernel feature, prerequisites, its self-restriction model, and the system calls used to define and apply filesystem-access rules.

### Source excerpt

Here's a program restricting itself, then trying to read two files: without landlock: read /etc/hostname ok read /tmp/secret.txt ok with landlock, /etc allowed: read

## GCC 13.5 Released With 265+ Bug Fixes

DevFeed: [GCC 13.5 Released With 265+ Bug Fixes](<https://devfeed.tech/articles/gcc-13-5-released-with-265-bug-fixes-12402.md>)

Original publisher: [Read original article](<https://www.phoronix.com/news/GCC-13.5-Released>)

Author: Michael Larabel

Published: 2026-09-11T09:47:06Z

Content type: news

Language: en

Sources: [Phoronix](<https://devfeed.tech/sources/phoronix.md>)

Topics: [gcc](<https://devfeed.tech/topics/gcc.md>), [Compiler](<https://devfeed.tech/topics/compiler.md>), [bug](<https://devfeed.tech/topics/bug.md>), [cpu](<https://devfeed.tech/topics/cpu.md>), [intel](<https://devfeed.tech/topics/intel.md>)

Tags: [amd](<https://devfeed.tech/tags/amd.md>), [bug-fixes](<https://devfeed.tech/tags/bug-fixes.md>), [bugs](<https://devfeed.tech/tags/bugs.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [cpu](<https://devfeed.tech/tags/cpu.md>), [desktop-linux](<https://devfeed.tech/tags/desktop-linux.md>), [gcc](<https://devfeed.tech/tags/gcc.md>), [intel](<https://devfeed.tech/tags/intel.md>), [linux-benchmarking](<https://devfeed.tech/tags/linux-benchmarking.md>), [linux-hardware-benchmarks](<https://devfeed.tech/tags/linux-hardware-benchmarks.md>), [linux-hardware-reviews](<https://devfeed.tech/tags/linux-hardware-reviews.md>), [linux-how-to](<https://devfeed.tech/tags/linux-how-to.md>), [linux-performance](<https://devfeed.tech/tags/linux-performance.md>), [linux-server-benchmarks](<https://devfeed.tech/tags/linux-server-benchmarks.md>), [open-source-graphics](<https://devfeed.tech/tags/open-source-graphics.md>), [phoronix](<https://devfeed.tech/tags/phoronix.md>), [phoronix-test-suite](<https://devfeed.tech/tags/phoronix-test-suite.md>), [production](<https://devfeed.tech/tags/production.md>), [release](<https://devfeed.tech/tags/release.md>), [ubuntu-benchmarks](<https://devfeed.tech/tags/ubuntu-benchmarks.md>), [ubuntu-hardware](<https://devfeed.tech/tags/ubuntu-hardware.md>)

### AI overview

GCC 13.5 has been released with more than 265 bug fixes. It is the final planned point release for the GCC 13 branch, which is now closed to further development.

### Source excerpt

For those continuing to rely on the GCC 13 compiler in production that debuted more than three years ago, GCC 13.5 released today with more than 265 bug fixes. GCC 13.5 also caps off the GCC 13 series as the last planned point release...

## C++ libraries linking

DevFeed: [C++ libraries linking](<https://devfeed.tech/articles/c-libraries-linking-22393.md>)

Original publisher: [Read original article](<https://www.red-lang.org/2026/07/c-libraries-linking.html>)

Author: Nenad Rakocevic (noreply@blogger.com)

Published: 2026-07-29T19:07:38Z

Content type: release

Language: en

Sources: [Red](<https://devfeed.tech/sources/red.md>)

Topics: [Red](<https://devfeed.tech/topics/red.md>), [C++](<https://devfeed.tech/topics/c-plus-plus.md>), [toolchain](<https://devfeed.tech/topics/toolchain.md>)

Tags: [build](<https://devfeed.tech/tags/build.md>), [build-tools](<https://devfeed.tech/tags/build-tools.md>), [c-plus-plus](<https://devfeed.tech/tags/c-plus-plus.md>), [clang](<https://devfeed.tech/tags/clang.md>), [compilation](<https://devfeed.tech/tags/compilation.md>), [directx](<https://devfeed.tech/tags/directx.md>), [gcc](<https://devfeed.tech/tags/gcc.md>), [libraries](<https://devfeed.tech/tags/libraries.md>), [linux](<https://devfeed.tech/tags/linux.md>), [macos](<https://devfeed.tech/tags/macos.md>), [msvc](<https://devfeed.tech/tags/msvc.md>), [static-linking](<https://devfeed.tech/tags/static-linking.md>), [toolchain](<https://devfeed.tech/tags/toolchain.md>), [windows](<https://devfeed.tech/tags/windows.md>), [x86](<https://devfeed.tech/tags/x86.md>)

### AI overview

The Red toolchain now supports statically linking C++ libraries, including their runtime, on Windows, Linux, and macOS. It accepts libraries built with MSVC, GCC, or clang through the existing import system and compilation switch, with platform-specific prerequisites and constraints.

### Source excerpt

When we introduced static linking of C libraries, the promise was simple: name a .lib or .a archive in your #import, compile with -s, and ship one self-contained executable, no DLLs riding along, nothing to install on the target machine. There was one big frontier left, and everyone saw it coming: the libraries people want most (vision, GUI, audio, machine learning) are written in C++. A C++ library is a very different animal to link: it brings global constructors, exceptions, RTTI, templates, thread-local storage, and an entire language runtime that expects to be wired up just so. Until now, that was the line where you switched back to DLLs. That line is gone. The Red toolchain now statically links C++ libraries too (their runtime included) on every platform Red targets: Windows, Linux (x86 and ARM), and macOS. The best part: nothing changes. It is the same import system and same compilation switch: red -r -s myapp.red Libraries built with MSVC, GCC or clang are all accepted, in their native object formats. What you need preinstalled ➤ Windows: for C++ libraries (or C code built against Microsoft's static runtime), install the free Visual Studio Build Tools with the "Desktop development with C++" workload. Just one installer, and Red locates everything by itself: no vcvarsall, no PATH, no environment variables. Plain C libraries still need nothing at all and that now extends to C libraries touching COM, DirectX or MediaFoundation: the GUID constants such code references ship inside the toolchain, so a fresh Windows 11 with only red-toolchain executable on it links them! ➤ Linux: the GNU runtime archives from your distribution's gcc packages (libstdc++.a, libgcc.a and friends) placed next to your library. If one is missing, the linker names exactly what it needs. ➤ macOS: nothing beyond the toolchain; the system C++ runtime binds automatically. Some constraints 32-bit libraries for now, until the 64-bit toolchain is ready. The imported surface must be C (extern "C",

## A deep dive into SmallVector::push\_back

DevFeed: [A deep dive into SmallVector::push\_back](<https://devfeed.tech/articles/a-deep-dive-into-smallvector-push-back-31123.md>)

Original publisher: [Read original article](<https://maskray.me/blog/a-deep-dive-into-smallvector-push-back>)

Published: 2026-06-27T07:00:00Z

Content type: article

Language: en

Sources: [MaskRay](<https://devfeed.tech/sources/maskray.md>)

Topics: [LLVM](<https://devfeed.tech/topics/llvm.md>), [Optimization](<https://devfeed.tech/topics/optimization.md>), [Compiler](<https://devfeed.tech/topics/compiler.md>), [clang](<https://devfeed.tech/topics/clang.md>), [Assembly](<https://devfeed.tech/topics/assembly.md>), [gcc](<https://devfeed.tech/topics/gcc.md>)

Tags: [assembly](<https://devfeed.tech/tags/assembly.md>), [clang](<https://devfeed.tech/tags/clang.md>), [codegen](<https://devfeed.tech/tags/codegen.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [gcc](<https://devfeed.tech/tags/gcc.md>), [llvm](<https://devfeed.tech/tags/llvm.md>), [optimization](<https://devfeed.tech/tags/optimization.md>), [performance](<https://devfeed.tech/tags/performance.md>)

### AI overview

This article examines an LLVM SmallVector::push_back optimization for approximately trivially copyable element types. It explains how tail-calling the slow growth path reduces the fast path from 14 to 7 instructions and avoids callee-saved registers, while noting tradeoffs for out-of-line calls and overall build size.

### Source excerpt

tl;dr This blog post describes a recent SmallVector::push_back optimization for approximately trivially copyable element types. SmallVector is LLVM's most-used container, and push_back its hot operation. For the trivially-copyable specialization the fast path should be fast. 1 2 3 #include <llvm/ADT/SmallVector.h> void f(llvm::SmallVectorImpl<int> &v, int x) { v.push_back(x); } clang -S --target=x86_64 -O2 -DNDEBUG a.cc generates: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 push rbp # callee-saved spills + a stack realignment, push rbx # all on the fast path push rax mov eax, [rdi + 8] # size cmp eax, [rdi + 12] # vs capacity jae .Lgrow .Lstore: # reached from the fast path AND from .Lgrow mov rcx, [rdi] mov [rcx + rax*4], esi inc dword ptr [rdi + 8] add rsp, 8 pop rbx pop rbp ret .Lgrow: mov rbx, rdi # keep `this`/`x` alive across the call mov ebp, esi call SmallVectorBase<unsigned>::grow_pod ... jmp .Lstore

## Parsing JSON at compile time with C++26 static reflection

DevFeed: [Parsing JSON at compile time with C++26 static reflection](<https://devfeed.tech/articles/parsing-json-at-compile-time-with-c-26-static-reflection-29412.md>)

Original publisher: [Read original article](<https://lemire.me/blog/2026/06/14/parsing-json-at-compile-time-with-c26-static-reflection/>)

Author: Daniel Lemire

Published: 2026-06-14T14:59:44Z

Content type: tutorial

Language: en

Sources: [Daniel Lemire](<https://devfeed.tech/sources/daniel-lemire.md>)

Topics: [C++](<https://devfeed.tech/topics/c-plus-plus.md>), [JSON](<https://devfeed.tech/topics/json.md>), [C](<https://devfeed.tech/topics/c.md>), [Compiler](<https://devfeed.tech/topics/compiler.md>), [configuration](<https://devfeed.tech/topics/configuration.md>), [gcc](<https://devfeed.tech/topics/gcc.md>)

Tags: [c](<https://devfeed.tech/tags/c.md>), [c-plus-plus](<https://devfeed.tech/tags/c-plus-plus.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [gcc](<https://devfeed.tech/tags/gcc.md>), [json](<https://devfeed.tech/tags/json.md>), [library](<https://devfeed.tech/tags/library.md>), [parsing](<https://devfeed.tech/tags/parsing.md>)

### AI overview

This tutorial demonstrates parsing a fixed JSON configuration file at compile time with C++26 static reflection and GCC 16. It explains embedding the file's bytes in the executable, using simdjson to synthesize a typed C++ object, and detecting malformed JSON during compilation instead of at startup.

### Source excerpt

Suppose that you have a configuration file in JSON. Something like this: { "width": 1920, "height": 1080, "fullscreen": true, "title": "My Game", "volume": 0.8 } Normally you ship this file alongside your program, open it at startup, read it, and parse it. That is a lot of work for data that never changes. What if ... Continue reading Parsing JSON at compile time with C++26 static reflection

## NixOS 26.05 released

DevFeed: [NixOS 26.05 released](<https://devfeed.tech/articles/nixos-26-05-released-38878.md>)

Original publisher: [Read original article](<https://nixos.org/blog/announcements/2026/nixos-2605/>)

Author: NixOS

Published: 2026-05-30T07:00:00Z

Content type: release

Language: en

Sources: [NixOS Announcements](<https://devfeed.tech/sources/nixos-announcements.md>)

Topics: [Nix](<https://devfeed.tech/topics/nix.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [releases](<https://devfeed.tech/topics/releases.md>), [Release notes](<https://devfeed.tech/topics/release-notes.md>), [systemd](<https://devfeed.tech/topics/systemd.md>), [configuration](<https://devfeed.tech/topics/configuration.md>), [modules](<https://devfeed.tech/topics/modules.md>), [deprecated](<https://devfeed.tech/topics/deprecated.md>), [Package manager](<https://devfeed.tech/topics/package-manager.md>)

Tags: [2026](<https://devfeed.tech/tags/2026.md>), [accessibility](<https://devfeed.tech/tags/accessibility.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [deprecated](<https://devfeed.tech/tags/deprecated.md>), [end-of-life](<https://devfeed.tech/tags/end-of-life.md>), [gcc](<https://devfeed.tech/tags/gcc.md>), [linux](<https://devfeed.tech/tags/linux.md>), [llvm](<https://devfeed.tech/tags/llvm.md>), [macos](<https://devfeed.tech/tags/macos.md>), [modules](<https://devfeed.tech/tags/modules.md>), [nix](<https://devfeed.tech/tags/nix.md>), [nixos](<https://devfeed.tech/tags/nixos.md>), [release](<https://devfeed.tech/tags/release.md>), [release-notes](<https://devfeed.tech/tags/release-notes.md>), [systemd](<https://devfeed.tech/tags/systemd.md>), [x86-64](<https://devfeed.tech/tags/x86-64.md>)

### AI overview

NixOS 26.05, named "Yarara," is publicly available as a new Linux distribution release. The announcement covers package, module, configuration, systemd initrd, platform-support, GNOME, and compiler changes, along with support timelines for NixOS 26.05 and the previous 25.11 release.

### Source excerpt

Hey everyone, we are yayayayaka and jopejoe1, the release managers of the newest release of NixOS. We are very proud to announce the public availability of NixOS 26.05 "Yarara". NixOS is a Linux distribution. Its underlying package repository Nixpkgs can also be used on other Linux systems and macOS with the Nix package manager. This release will receive bugfixes and security updates for seven months (up until 2026-12-31). The old release 25.11 "Xantusia" is now officially deprecated and will reach its end-of-life and stop receiving security updates after 2026-06-30. NixOS Release Notes Highlights New Modules Backward Incompatibilities Other Notable Changes Nixpkgs Release Notes Highlights Backward Incompatibilities Other Notable Changes Nixpkgs Library Upgrade Instructions ISO Image Downloads The 26.05 release was made possible due to the efforts of 2842 contributors, who authored 59703 commits since the previous release. Highlights Our vast and routinely maintained set of packages has also been updated. This release of Nixpkgs Added 20442 new packages Updated 20641 existing packages Removed 17532 outdated packages, in an effort to keep the package set maintainable and secure. In addition to packages from Nixpkgs, the NixOS Linux distribution also features composable configuration modules and integration tests for distributed systems. This release of NixOS Added 85 new modules and 1547 configuration options Removed 25 outdated modules and 355 configuration options. systemd stage 1 Stage 1 (a.k.a. initrd) is now based on systemd by default, and the old scripted implementation is deprecated and scheduled for removal in 26.11. Deprecation of x86_64-darwin This will be the last release of Nixpkgs to support x86_64-darwin. Platform support will be maintained and binaries built until Nixpkgs 26.05 goes out of support at the end of 2026. For 26.11, due to Apple's deprecation of the platform and limited build infrastructure and developer time, we will no longer build packa

## Top Tap Payments Alternatives for GCC and MENA SaaS in 2026

DevFeed: [Top Tap Payments Alternatives for GCC and MENA SaaS in 2026](<https://devfeed.tech/articles/top-tap-payments-alternatives-for-gcc-and-mena-saas-in-2026-10415.md>)

Original publisher: [Read original article](<https://dodopayments.com/blogs/tap-payments-alternatives/>)

Author: Ayush Agarwal

Published: 2026-05-19T00:00:00Z

Content type: comparison

Language: en

Sources: [Dodo Payments Blog](<https://devfeed.tech/sources/dodo-payments-blog.md>)

Topics: [Software as a service](<https://devfeed.tech/topics/saas.md>), [Shopify](<https://devfeed.tech/topics/shopify.md>)

Tags: [2026](<https://devfeed.tech/tags/2026.md>), [alternatives](<https://devfeed.tech/tags/alternatives.md>), [compliance](<https://devfeed.tech/tags/compliance.md>), [cross-border](<https://devfeed.tech/tags/cross-border.md>), [e-commerce](<https://devfeed.tech/tags/e-commerce.md>), [fintech](<https://devfeed.tech/tags/fintech.md>), [gcc](<https://devfeed.tech/tags/gcc.md>), [mena](<https://devfeed.tech/tags/mena.md>), [merchant-of-record](<https://devfeed.tech/tags/merchant-of-record.md>), [payments](<https://devfeed.tech/tags/payments.md>), [saas](<https://devfeed.tech/tags/saas.md>), [vat](<https://devfeed.tech/tags/vat.md>)

### AI overview

A comparison of Tap Payments alternatives for SaaS businesses operating across the GCC and MENA in 2026. It discusses regional payment coverage, local payment methods, pricing, VAT and e-invoicing obligations, and when a Merchant of Record may be preferable for cross-border operations.

### Source excerpt

Compare the best Tap Payments alternatives for SaaS founders across Kuwait, KSA, UAE, Bahrain, Oman and Qatar in 2026. Verified pricing, ZATCA e-invoicing context, and a clear take on Merchant of Record for cross-border GCC SaaS.

## Concurrent, atomic MSI hash tables

DevFeed: [Concurrent, atomic MSI hash tables](<https://devfeed.tech/articles/concurrent-atomic-msi-hash-tables-20515.md>)

Original publisher: [Read original article](<https://nullprogram.com/blog/2026/05/06/>)

Published: 2026-05-06T02:01:17Z

Content type: tutorial

Language: en

Sources: [Chris Wellons](<https://devfeed.tech/sources/chris-wellons.md>)

Topics: [Concurrency](<https://devfeed.tech/topics/concurrency.md>), [Concurrent Programming](<https://devfeed.tech/topics/concurrent-programming.md>), [Code](<https://devfeed.tech/topics/code.md>), [gcc](<https://devfeed.tech/topics/gcc.md>), [Processes](<https://devfeed.tech/topics/processes.md>)

Tags: [article](<https://devfeed.tech/tags/article.md>), [c](<https://devfeed.tech/tags/c.md>), [code](<https://devfeed.tech/tags/code.md>), [concurrency](<https://devfeed.tech/tags/concurrency.md>), [concurrent](<https://devfeed.tech/tags/concurrent.md>), [gcc](<https://devfeed.tech/tags/gcc.md>), [processes](<https://devfeed.tech/tags/processes.md>), [thread](<https://devfeed.tech/tags/thread.md>)

### AI overview

This article explains how to add atomic operations to Mask-Step-Index (MSI) hash tables so they can be accessed concurrently without data races. It covers single-producer and multiple-consumer designs, relaxed atomics, and acquire-release synchronization when published objects must be safely observed.

### Source excerpt

Readers will be familiar with Mask-Step-Index (MSI) hash tables, a technique for building fast, open-addressed hash tables in a dozen lines of code. If multiple threads or processes access an MSI table with at least one still inserting elements, care must be taken to avoid data races. This article will show how to add atomic operations to MSI tables in order to support different concurrency constraints. Let's begin with the simplest case: An integer hash set, no deletions, only one insert thread (single producer), and consumers do not care about insert order. That is, the producer inserts A then B, but consumers may observe B in the table before A. Suppose this is the hash table in the single-threaded case: int32_t *lookup(int32_t key, int32_t *table, int exp) { uint64_t hash = ((uint64_t)key * 1111111111111111111u) >> 32; uint32_t mask = ((uint32_t)1 << exp) - 1; uint32_t step = (hash >> (32 - exp)) | 1; for (uint32_t index = hash;;) { index = (index + step) & mask; if (!table[index] || table[index]==key) { return table + index; } } } Keys must be non-zero, and tables are zero-initialized. Usage example: // Initialization enum { exp = 8 }; int32_t table[1<<8] = {}; // Producer for (int i = 0; i < nkeys; i++) { *lookup(keys[i], table, exp) = keys[i]; } // Consumer int32_t key = 1234; bool present = *lookup(key, table, exp); The only problem is the data race on table slots. Since consumers can tolerate out-of-order insertions, ordering does not matter and relaxed atomics eliminate the data race. Insert and query now have different requirements, so it makes sense to distinguish them. Starting with the latter: bool contains(int32_t key, int32_t *table, int exp) { uint64_t hash = ((uint64_t)key * 1111111111111111111u) >> 32; uint32_t mask = ((uint32_t)1 << exp) - 1; uint32_t step = (hash >> (32 - exp)) | 1; for (uint32_t index = hash;;) { index = (index + step) & mask; int32_t k = __atomic_load_n(table+index, __ATOMIC_RELAXED); if (!k) { return false; } else if (k == ke

## wastrel milestone: full hoot support, with generational gc as a treat

DevFeed: [wastrel milestone: full hoot support, with generational gc as a treat](<https://devfeed.tech/articles/wastrel-milestone-full-hoot-support-with-generational-gc-as-a-treat-35036.md>)

Original publisher: [Read original article](<https://wingolog.org/archives/2026/04/09/wastrel-milestone-full-hoot-support-with-generational-gc-as-a-treat>)

Author: Andy Wingo

Published: 2026-04-09T13:48:04Z

Content type: article

Language: en

Sources: [wingolog](<https://devfeed.tech/sources/wingolog.md>)

Topics: [WebAssembly](<https://devfeed.tech/topics/web-assembly.md>), [scheme](<https://devfeed.tech/topics/scheme.md>), [toolchain](<https://devfeed.tech/topics/toolchain.md>), [gcc](<https://devfeed.tech/topics/gcc.md>)

Tags: [binaries](<https://devfeed.tech/tags/binaries.md>), [garbage-collection](<https://devfeed.tech/tags/garbage-collection.md>), [gc](<https://devfeed.tech/tags/gc.md>), [gcc](<https://devfeed.tech/tags/gcc.md>), [hoot](<https://devfeed.tech/tags/hoot.md>), [optimization](<https://devfeed.tech/tags/optimization.md>), [repl](<https://devfeed.tech/tags/repl.md>), [scheme](<https://devfeed.tech/tags/scheme.md>), [spidermonkey](<https://devfeed.tech/tags/spidermonkey.md>), [toolchain](<https://devfeed.tech/tags/toolchain.md>), [treats](<https://devfeed.tech/tags/treats.md>), [v8](<https://devfeed.tech/tags/v8.md>), [wasm](<https://devfeed.tech/tags/wasm.md>), [wastrel](<https://devfeed.tech/tags/wastrel.md>), [web](<https://devfeed.tech/tags/web.md>), [webassembly](<https://devfeed.tech/tags/webassembly.md>)

### AI overview

The article describes a Wastrel milestone: compiling WebAssembly files produced by the Hoot Scheme toolchain into native binaries, including a console-based read-eval-print loop. It covers the build process, runtime modules, binary size, dependencies, and initial performance observations.

### Source excerpt

Hear ye, hear ye: Wastrel and Hoot means REPL! Which is to say, Wastrel can now make native binaries out of WebAssembly files as produced by the Hoot Scheme toolchain, up to and including a full read-eval-print loop. Like the REPL on the Hoot web page, but instead of requiring a browser, you can just run it on your console. Amazing stuff! try it at home First, we need the latest Hoot. Build it from source, then compile a simple REPL: echo '(import (hoot repl)) (spawn-repl)' > repl.scm ./pre-inst-env hoot compile -fruntime-modules -o repl.wasm repl.scm This takes about a minute. The resulting wasm file has a pretty full standard library including a full macro expander and evaluator. Normally Hoot would do some aggressive tree-shaking to discard any definitions not used by the program, but with a REPL we don't know what we might need. So, we pass -fruntime-modules to instruct Hoot to record all modules and their bindings in a central registry, so they can be looked up at run-time. This results in a 6.6 MB Wasm file; with tree-shaking we would have been at 1.2 MB. Next, build Wastrel from source, and compile our new repl.wasm: wastrel compile -o repl repl.wasm This takes about 5 minutes on my machine: about 3 minutes to generate all the C, about 6.6MLOC all in all, split into a couple hundred files of about 30KLOC each, and then 2 minutes to compile with GCC and link-time optimization (parallelised over 32 cores in my case). I have some ideas to golf the first part down a bit, but the the GCC side will resist improvements. Finally, the moment of truth: $ ./repl Hoot 0.8.0 Enter `,help' for help. (hoot user)> "hello, world!" => "hello, world!" (hoot user)> statics When I first got the REPL working last week, I gasped out loud: it's alive, it's alive!!! Now that some days have passed, I am finally able to look a bit more dispassionately at where we're at. Firstly, let's look at the compiled binary itself. By default, Wastrel passes the -g flag to GCC, which results in bi

## Wastrel Compiles Hoot Scheme-to-WebAssembly Output

DevFeed: [Wastrel Compiles Hoot Scheme-to-WebAssembly Output](<https://devfeed.tech/articles/wastrelly-wabbits-35034.md>)

Original publisher: [Read original article](<https://wingolog.org/archives/2026/03/31/wastrelly-wabbits>)

Author: Andy Wingo

Published: 2026-03-31T20:34:23Z

Content type: article

Language: en

Sources: [wingolog](<https://devfeed.tech/sources/wingolog.md>)

Topics: [WebAssembly](<https://devfeed.tech/topics/web-assembly.md>), [Compiler](<https://devfeed.tech/topics/compiler.md>), [scheme](<https://devfeed.tech/topics/scheme.md>)

Tags: [accidentally-quadratic](<https://devfeed.tech/tags/accidentally-quadratic.md>), [aot](<https://devfeed.tech/tags/aot.md>), [bigint](<https://devfeed.tech/tags/bigint.md>), [bignums](<https://devfeed.tech/tags/bignums.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [compilers](<https://devfeed.tech/tags/compilers.md>), [exception-handling](<https://devfeed.tech/tags/exception-handling.md>), [exceptions](<https://devfeed.tech/tags/exceptions.md>), [gc](<https://devfeed.tech/tags/gc.md>), [gcc](<https://devfeed.tech/tags/gcc.md>), [gmp](<https://devfeed.tech/tags/gmp.md>), [hoot](<https://devfeed.tech/tags/hoot.md>), [igalia](<https://devfeed.tech/tags/igalia.md>), [library](<https://devfeed.tech/tags/library.md>), [maps](<https://devfeed.tech/tags/maps.md>), [precision](<https://devfeed.tech/tags/precision.md>), [scheme](<https://devfeed.tech/tags/scheme.md>), [standard](<https://devfeed.tech/tags/standard.md>), [tail-calls](<https://devfeed.tech/tags/tail-calls.md>), [wasm](<https://devfeed.tech/tags/wasm.md>), [wastrel](<https://devfeed.tech/tags/wastrel.md>), [webassembly](<https://devfeed.tech/tags/webassembly.md>), [whippet](<https://devfeed.tech/tags/whippet.md>)

### AI overview

The article describes recent work on Wastrel, an ahead-of-time WebAssembly compiler, including compiling output from the Hoot Scheme-to-Wasm compiler. It covers implementing bignum operations with mini-gmp and updating Hoot to use standardized WebAssembly exception handling.

### Source excerpt

Good day! Today (tonight), some notes on the last couple months of Wastrel, my ahead-of-time WebAssembly compiler. Back in the beginning of February, I showed Wastrel running programs that use garbage collection, using an embedded copy of the Whippet collector, specialized to the types present in the Wasm program. But, the two synthetic GC-using programs I tested on were just ported microbenchmarks, and didn't reflect the output of any real toolchain. In this cycle I worked on compiling the output from the Hoot Scheme-to-Wasm compiler. There were some interesting challenges! bignums When I originally wrote the Hoot compiler, it targetted the browser, which already has a bignum implementation in the form of BigInt, which I worked on back in the day. Hoot-generated Wasm files use host bigints via externref (though wrapped in structs to allow for hashing and identity). In Wastrel, then, I implemented the imports that implement bignum operations: addition, multiplication, and so on. I did so using mini-gmp, a stripped-down implementation of the workhorse GNU multi-precision library. At some point if bignums become important, this gives me the option to link to the full GMP instead. Bignums were the first managed data type in Wastrel that wasn't defined as part of the Wasm module itself, instead hiding behind externref, so I had to add a facility to allocate type codes to these "host" data types. More types will come in time: weak maps, ephemerons, and so on. I think bignums would be a great proposal for the Wasm standard, similar to stringref ideally (sniff!), possibly in an attenuated form. exception handling Hoot used to emit a pre-standardization form of exception handling, and hadn't gotten around to updating to the newer version that was standardized last July. I updated Hoot to emit the newer kind of exceptions, as it was easier to implement them in Wastrel that way. Some of the problems Chris Fallin contended with in Wasmtime don't apply in the Wastrel case: sinc

## The 64-bit Hurd is Here!

DevFeed: [The 64-bit Hurd is Here!](<https://devfeed.tech/articles/the-64-bit-hurd-is-here-34152.md>)

Original publisher: [Read original article](<https://guix.gnu.org/blog/2026/the-64-bit-hurd//>)

Author: Janneke Nieuwenhuizen, Yelninei

Published: 2026-03-01T10:00:00Z

Content type: article

Language: en

Sources: [GNU Guix -- Blog](<https://devfeed.tech/sources/gnu-guix-blog.md>)

Topics: [x86](<https://devfeed.tech/topics/x86.md>), [bug](<https://devfeed.tech/topics/bug.md>), [patches](<https://devfeed.tech/topics/patches.md>), [gcc](<https://devfeed.tech/topics/gcc.md>)

Tags: [bug](<https://devfeed.tech/tags/bug.md>), [gcc](<https://devfeed.tech/tags/gcc.md>), [gnu-hurd](<https://devfeed.tech/tags/gnu-hurd.md>), [patches](<https://devfeed.tech/tags/patches.md>), [x86](<https://devfeed.tech/tags/x86.md>), [x86-64](<https://devfeed.tech/tags/x86-64.md>)

### AI overview

Guix has added x86_64 support for the Hurd. The article reviews roughly 1.5 years of related work, including installer support, build and dependency fixes, package updates, and the merge of the 64-bit Hurd changes.

### Source excerpt

Fifteen months have passed since our last Guix/Hurd on a Thinkpad X60 post and a lot has happened with respect to the Hurd . And most of you will have guessed, unless you skipped the title of this post, the rumored x86_64 support has landed in Guix! Here is a not-so-short overview of our Hurd work over the past 1.5 years: The build daemon fails when invoking guix authenticate on the Hurd bug was fixed. This was our most pressing problem as it meant that we could not keep...

## GTX 1080 Ti for Local LLM

DevFeed: [GTX 1080 Ti for Local LLM](<https://devfeed.tech/articles/gtx-1080-ti-for-local-llm-27458.md>)

Original publisher: [Read original article](<https://ariya.io/2026/02/gtx-1080-ti-for-local-llm/>)

Published: 2026-02-28T23:33:54Z

Content type: article

Language: en

Sources: [Ariya Hidayat](<https://devfeed.tech/sources/ariya-hidayat.md>)

Topics: [GPU](<https://devfeed.tech/topics/gpu.md>), [LLMs](<https://devfeed.tech/topics/llms.md>), [llama.cpp](<https://devfeed.tech/topics/llama-cpp.md>), [Nvidia](<https://devfeed.tech/topics/nvidia.md>), [CUDA](<https://devfeed.tech/topics/cuda.md>), [Inference Performance](<https://devfeed.tech/topics/inference-performance.md>), [Retrieval Augmented Generation (RAG)](<https://devfeed.tech/topics/retrieval-augmented-generation-rag.md>)

Tags: [cmake](<https://devfeed.tech/tags/cmake.md>), [command-line](<https://devfeed.tech/tags/command-line.md>), [cuda](<https://devfeed.tech/tags/cuda.md>), [gcc](<https://devfeed.tech/tags/gcc.md>), [gemma](<https://devfeed.tech/tags/gemma.md>), [gpu](<https://devfeed.tech/tags/gpu.md>), [inference](<https://devfeed.tech/tags/inference.md>), [inference-performance](<https://devfeed.tech/tags/inference-performance.md>), [llama](<https://devfeed.tech/tags/llama.md>), [llama-cpp](<https://devfeed.tech/tags/llama-cpp.md>), [llms](<https://devfeed.tech/tags/llms.md>), [nvidia](<https://devfeed.tech/tags/nvidia.md>)

### AI overview

This article evaluates the eight-year-old NVIDIA GTX 1080 Ti as an affordable option for running local LLMs. It explains how its 11 GB of VRAM can support quantized models and relevant context windows, then describes measuring prompt-processing and token-generation performance with CUDA-enabled llama.cpp.

### Source excerpt

Despite being over eight years old, the NVIDIA GTX 1080 Ti remains a compelling choice for enthusiasts keen on running LLM locally.

## Bit-field layout

DevFeed: [Bit-field layout](<https://devfeed.tech/articles/bit-field-layout-31124.md>)

Original publisher: [Read original article](<https://maskray.me/blog/bit-field-layout>)

Published: 2026-02-22T08:00:00Z

Content type: tutorial

Language: en

Sources: [MaskRay](<https://devfeed.tech/sources/maskray.md>)

Topics: [implementation](<https://devfeed.tech/topics/implementation.md>), [C](<https://devfeed.tech/topics/c.md>), [C++](<https://devfeed.tech/topics/c-plus-plus.md>), [Compiler](<https://devfeed.tech/topics/compiler.md>), [clang](<https://devfeed.tech/topics/clang.md>), [gcc](<https://devfeed.tech/topics/gcc.md>), [LLVM](<https://devfeed.tech/topics/llvm.md>), [MSVC](<https://devfeed.tech/topics/msvc.md>)

Tags: [c](<https://devfeed.tech/tags/c.md>), [c-plus-plus](<https://devfeed.tech/tags/c-plus-plus.md>), [clang](<https://devfeed.tech/tags/clang.md>), [codegen](<https://devfeed.tech/tags/codegen.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [compiler-optimization](<https://devfeed.tech/tags/compiler-optimization.md>), [gcc](<https://devfeed.tech/tags/gcc.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [llvm](<https://devfeed.tech/tags/llvm.md>), [msvc](<https://devfeed.tech/tags/msvc.md>)

### AI overview

This article explains how C and C++ bit-field layout is implementation-defined and governed primarily by platform ABIs. It distinguishes ABI-defined storage layout from compiler code generation, focusing on the Itanium ABI and describing differences in the Microsoft ABI.

### Source excerpt

The C and C++ standards leave nearly every detail to the implementation. C23 §6.7.3.2: An implementation may allocate any addressable storage unit large enough to hold a bit-field. If enough space remains, a bit-field that immediately follows another bit-field in a structure shall be packed into adjacent bits of the same unit. If insufficient space remains, whether a bit-field that does not fit is put into the next unit or overlaps adjacent units is implementation-defined. The order of allocation of bit-fields within a unit (high-order to low-order or low-order to high-order) is implementation-defined. The alignment of the addressable storage unit is unspecified C++ is also terse -- [class.bit]p1: Allocation of bit-fields within a class object is implementation-defined. Alignment of bit-fields is implementation-defined. Bit-fields are packed into some addressable allocation unit.

## Unsigned char std::basic\_string\<\> in C++

DevFeed: [Unsigned char std::basic\_string\<\> in C++](<https://devfeed.tech/articles/unsigned-char-std-basic-string-in-c-36572.md>)

Original publisher: [Read original article](<https://berthub.eu/articles/posts/unsigned-char-std-string-cpp/>)

Published: 2026-01-03T22:00:02Z

Content type: tutorial

Language: en

Sources: [Bert Hubert's writings](<https://devfeed.tech/sources/bert-hubert-s-writings.md>)

Topics: [C++](<https://devfeed.tech/topics/c-plus-plus.md>), [standard](<https://devfeed.tech/topics/standard.md>), [LLVM](<https://devfeed.tech/topics/llvm.md>), [clang](<https://devfeed.tech/topics/clang.md>), [gcc](<https://devfeed.tech/topics/gcc.md>)

Tags: [bits](<https://devfeed.tech/tags/bits.md>), [c-plus-plus](<https://devfeed.tech/tags/c-plus-plus.md>), [clang](<https://devfeed.tech/tags/clang.md>), [concatenation](<https://devfeed.tech/tags/concatenation.md>), [cryptographic](<https://devfeed.tech/tags/cryptographic.md>), [freebsd](<https://devfeed.tech/tags/freebsd.md>), [gcc](<https://devfeed.tech/tags/gcc.md>), [llvm](<https://devfeed.tech/tags/llvm.md>), [openbsd](<https://devfeed.tech/tags/openbsd.md>), [standard](<https://devfeed.tech/tags/standard.md>), [string](<https://devfeed.tech/tags/string.md>)

### AI overview

A C++ post explains why code using std::basic_string<uint8_t> can fail on FreeBSD and OpenBSD. The issue involves std::char_traits: LLVM 19 removed its unconstrained base template because the C++ Standard does not require it for unsigned-character types. Code may need string concatenation and related operations replaced or a correct custom specialization provided.

### Source excerpt

Brief post on a somewhat vexing and irritating C++ problem I ran into some time ago. I hope that this page will help other people deal with this problem more quickly than I did. I've long used std::basic_string<uint8_t>, an unsigned char string, for fiddling with bits. You could use a regular char string, but especially when doing cryptographic or sub-byte operations, it is more convenient to not have to deal with sign bits.

## \[RevEng\]\[x86\]\[x64\]\[C\]\[newbies\] Software reset in embedded devices

DevFeed: [\[RevEng\]\[x86\]\[x64\]\[C\]\[newbies\] Software reset in embedded devices](<https://devfeed.tech/articles/reveng-x86-x64-c-newbies-software-reset-in-embedded-devices-20578.md>)

Original publisher: [Read original article](<https://yurichev.com/blog/reset/>)

Published: 2025-12-31T23:00:00Z

Content type: tutorial

Language: en

Sources: [Dennis Yurichev](<https://devfeed.tech/sources/dennis-yurichev.md>)

Topics: [C](<https://devfeed.tech/topics/c.md>), [Embedded Software Dev](<https://devfeed.tech/topics/embedded-software-dev.md>), [Code](<https://devfeed.tech/topics/code.md>), [x86](<https://devfeed.tech/topics/x86.md>), [gcc](<https://devfeed.tech/topics/gcc.md>)

Tags: [blog-post](<https://devfeed.tech/tags/blog-post.md>), [c](<https://devfeed.tech/tags/c.md>), [code](<https://devfeed.tech/tags/code.md>), [compilation](<https://devfeed.tech/tags/compilation.md>), [embedded](<https://devfeed.tech/tags/embedded.md>), [embedded-devices](<https://devfeed.tech/tags/embedded-devices.md>), [gcc](<https://devfeed.tech/tags/gcc.md>), [software](<https://devfeed.tech/tags/software.md>), [x86](<https://devfeed.tech/tags/x86.md>)

### AI overview

This tutorial explains a software-reset technique for embedded devices using pure C. It shows how calling a function pointer at address zero can jump to firmware on systems that start execution there after power-on or reset, and discusses the behavior of the stack and local variables.

### Source excerpt

[RevEng][x86][x64][C][newbies] Software reset in embedded devices

## NixOS 25.11 released

DevFeed: [NixOS 25.11 released](<https://devfeed.tech/articles/nixos-25-11-released-38874.md>)

Original publisher: [Read original article](<https://nixos.org/blog/announcements/2025/nixos-2511/>)

Author: NixOS

Published: 2025-11-30T16:00:00Z

Content type: release

Language: en

Sources: [NixOS Announcements](<https://devfeed.tech/sources/nixos-announcements.md>)

Topics: [Nix](<https://devfeed.tech/topics/nix.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [Release notes](<https://devfeed.tech/topics/release-notes.md>), [version](<https://devfeed.tech/topics/version.md>), [configuration](<https://devfeed.tech/topics/configuration.md>), [modules](<https://devfeed.tech/topics/modules.md>), [CMake](<https://devfeed.tech/topics/cmake.md>), [gcc](<https://devfeed.tech/topics/gcc.md>), [LLVM](<https://devfeed.tech/topics/llvm.md>)

Tags: [2026](<https://devfeed.tech/tags/2026.md>), [bugfixes](<https://devfeed.tech/tags/bugfixes.md>), [cmake](<https://devfeed.tech/tags/cmake.md>), [compilers](<https://devfeed.tech/tags/compilers.md>), [deprecated](<https://devfeed.tech/tags/deprecated.md>), [end-of-life](<https://devfeed.tech/tags/end-of-life.md>), [gcc](<https://devfeed.tech/tags/gcc.md>), [linux](<https://devfeed.tech/tags/linux.md>), [llvm](<https://devfeed.tech/tags/llvm.md>), [nix](<https://devfeed.tech/tags/nix.md>), [nixos](<https://devfeed.tech/tags/nixos.md>), [nixpkgs](<https://devfeed.tech/tags/nixpkgs.md>), [release](<https://devfeed.tech/tags/release.md>), [release-notes](<https://devfeed.tech/tags/release-notes.md>), [version](<https://devfeed.tech/tags/version.md>)

### AI overview

NixOS 25.11 "Xantusia" is publicly available. The release updates Nixpkgs with new, updated, and removed packages; adds configuration modules and options; updates GNOME to version 49, LLVM to version 21, and CMake to version 4; and provides bugfix and security updates through June 30, 2026.

### Source excerpt

Hey everyone, we are jopejoe1 and Leona Maroni, the release managers of the newest release of NixOS. We are very proud to announce the public availability of NixOS 25.11 "Xantusia". NixOS is a Linux distribution. Its underlying package repository Nixpkgs can also be used on other Linux systems and macOS with the Nix package manager. This release will receive bugfixes and security updates for seven months (up until 2026-06-30). The old release 25.05 "Warbler" is now officially deprecated and will reach its end-of-life and stop receiving security updates after 2025-12-31. NixOS Release Notes Highlights New Modules Backward Incompatibilities Other Notable Changes Nixpkgs Release Notes Highlights Backward Incompatibilities Other Notable Changes Nixpkgs Library Upgrade Instructions ISO Image Downloads The 25.11 release was made possible due to the efforts of 2742 contributors, who authored 59430 commits since the previous release. Highlights Our vast and routinely maintained set of packages has also been updated. This release of Nixpkgs Added 7002 new packages Updated 25252 existing packages Removed 6338 outdated packages, in an effort to keep the package set maintainable and secure. In addition to packages from Nixpkgs, the NixOS Linux distribution also features composable configuration modules and integration tests for distributed systems. This release of NixOS Added 107 new modules and 1778 configuration options Removed 41 outdated modules and 807 configuration options. GNOME 49 GNOME has been updated to version 49 "Brescia", which removes X11 session support, introduces a new video player, a new document viewer, a redesigned calendar and more changes. Refer to the release notes for more details. C compilers LLVM has been updated to version 21. GCC remains at version 14. CMake was updated to version 4. Special Thanks We want to personally thank Seth and dish for editorializing the release notes Yohann Boniface for the release logo The NixOS infrastructure team for the

## \[RevEng\] Toy decompiler

DevFeed: [\[RevEng\] Toy decompiler](<https://devfeed.tech/articles/reveng-toy-decompiler-20582.md>)

Original publisher: [Read original article](<https://yurichev.com/blog/toy_decompiler/>)

Published: 2025-11-16T23:00:00Z

Content type: article

Language: en

Sources: [Dennis Yurichev](<https://devfeed.tech/sources/dennis-yurichev.md>)

Topics: [Assembly](<https://devfeed.tech/topics/assembly.md>), [Code](<https://devfeed.tech/topics/code.md>), [Compiler](<https://devfeed.tech/topics/compiler.md>), [Python](<https://devfeed.tech/topics/python.md>), [C](<https://devfeed.tech/topics/c.md>), [gcc](<https://devfeed.tech/topics/gcc.md>)

Tags: [assembly](<https://devfeed.tech/tags/assembly.md>), [c](<https://devfeed.tech/tags/c.md>), [code](<https://devfeed.tech/tags/code.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [experimental](<https://devfeed.tech/tags/experimental.md>), [gcc](<https://devfeed.tech/tags/gcc.md>), [python](<https://devfeed.tech/tags/python.md>), [rewrite](<https://devfeed.tech/tags/rewrite.md>)

### AI overview

This article describes a toy decompiler for Xilinx MicroBlaze assembly. It manually and programmatically rewrites chains of addk and rsubk instructions into multiplication expressions, using Python regular expressions and tests, then discusses limitations including GCC optimization and the experimental nature of the implementation.

### Source excerpt

[RevEng] Toy decompiler

## Progress update: fixing the ReactOS test suite

DevFeed: [Progress update: fixing the ReactOS test suite](<https://devfeed.tech/articles/progress-update-fixing-the-reactos-test-suite-32767.md>)

Original publisher: [Read original article](<https://reactos.org/blogs/cbialorucki-tests-2/>)

Published: 2025-11-04T00:00:00Z

Content type: opinion

Language: en

Sources: [Front Page on ReactOS Website](<https://devfeed.tech/sources/front-page-on-reactos-website.md>)

Topics: [Testing](<https://devfeed.tech/topics/testing.md>), [WINE](<https://devfeed.tech/topics/wine.md>), [Windows](<https://devfeed.tech/topics/windows.md>), [gcc](<https://devfeed.tech/topics/gcc.md>), [MSVC](<https://devfeed.tech/topics/msvc.md>), [x86](<https://devfeed.tech/topics/x86.md>)

Tags: [changes](<https://devfeed.tech/tags/changes.md>), [developer](<https://devfeed.tech/tags/developer.md>), [free](<https://devfeed.tech/tags/free.md>), [gcc](<https://devfeed.tech/tags/gcc.md>), [msvc](<https://devfeed.tech/tags/msvc.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [os](<https://devfeed.tech/tags/os.md>), [react](<https://devfeed.tech/tags/react.md>), [reactos](<https://devfeed.tech/tags/reactos.md>), [tests](<https://devfeed.tech/tags/tests.md>), [update](<https://devfeed.tech/tags/update.md>), [win32](<https://devfeed.tech/tags/win32.md>), [winapi](<https://devfeed.tech/tags/winapi.md>), [windows](<https://devfeed.tech/tags/windows.md>), [wine](<https://devfeed.tech/tags/wine.md>), [x86](<https://devfeed.tech/tags/x86.md>)

### AI overview

A ReactOS project developer describes work to clean up the neglected test suite. The update reports fixes to 55 existing test modules, five new modules, broader testing across Windows versions and compiler toolchains, and changes intended to improve synchronization with Wine 10.0. The supplied text also states that the full test suite can now run on Windows Vista without a bugcheck.

### Source excerpt

For many years, the ReactOS test suite was neglected. It was a random collection of our own tests and old Wine tests that were only checked against Windows Server 2003 and sometimes a random newer version of Windows up to the discretion of the contributor. The Wine tests we imported were heavily modified and the changes made weren't always well documented. I'm here to clean up this mess. I have been deeply involved with the ReactOS project since 2023 and in May of 2024 I became an official project developer.

## Stack walking: space and time trade-offs

DevFeed: [Stack walking: space and time trade-offs](<https://devfeed.tech/articles/stack-walking-space-and-time-trade-offs-31136.md>)

Original publisher: [Read original article](<https://maskray.me/blog/stack-walking-space-and-time-trade-offs>)

Published: 2025-10-26T07:00:00Z

Content type: article

Language: en

Sources: [MaskRay](<https://devfeed.tech/sources/maskray.md>)

Topics: [LLVM](<https://devfeed.tech/topics/llvm.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [C++](<https://devfeed.tech/topics/c-plus-plus.md>)

Tags: [article](<https://devfeed.tech/tags/article.md>), [gcc](<https://devfeed.tech/tags/gcc.md>), [linux](<https://devfeed.tech/tags/linux.md>), [llvm](<https://devfeed.tech/tags/llvm.md>), [performance-analysis](<https://devfeed.tech/tags/performance-analysis.md>), [platforms](<https://devfeed.tech/tags/platforms.md>), [required](<https://devfeed.tech/tags/required.md>), [sframe](<https://devfeed.tech/tags/sframe.md>), [update](<https://devfeed.tech/tags/update.md>)

### AI overview

This article examines space and time trade-offs among stack-walking mechanisms on Linux, including DWARF, frame pointers, SFrame, LLVM's Compact Unwinding Format, Last Branch Record, and CET Shadow Stack. It analyzes the size overhead of enabling non-DWARF mechanisms when building LLVM executables; runtime performance analysis is deferred to a future update.

### Source excerpt

On most Linux platforms (except AArch32, which uses .ARM.exidx), DWARF .eh_frame is required for C++ exception handling and stack unwinding to restore callee-saved registers. While .eh_frame can be used for call trace recording, it is often criticized for its runtime overhead. As an alternative, developers can enable frame pointers, or adopt SFrame, a newer format designed specifically for profiling. This article examines the size overhead of enabling non-DWARF stack walking mechanisms when building several LLVM executables. Runtime performance analysis will be added in a future update.

[Next page](<https://devfeed.tech/tags/gcc.md?cursor=WyIyMDI1LTEwLTI2VDA3OjAwOjAwKzAwOjAwIiwgIjkwZTRhYzlkLTI2MzMtNDI1Zi04ZmY5LTRkNDRmNGY4YTI5YyJd>)