This period

2026-08-12 → 2026-09-11 · rolling 30 days

Articles

45 this period

MSVC C++23: constexpr cmath with LLVM Libc

This article discusses the implementation of constexpr math functions in C++23 as part of MSVC's experimental features. It highlights the changes made to the standard library and invites user feedback on the new functionality.

C++ Team | C++ Team Blog | 2026-09-10 | 5 min

Optimizing a Spin-Lock

A spin-lock is a lock that never sleeps. Instead of yielding to the scheduler, the thread stays on the CPU and spins . No syscalls. No context switches. In this post, we’ll build a version, step by step, that is 5.7x faster while drawing…

dalvrosa | Lobsters | 2026-09-10

C++26: Module improvements

This article discusses the enhancements and improvements made to modules in C++26, providing insights into their implications for developers.

Sandor Dargo | Sandor Dargo's Blog | 2026-09-09 | 5 min

MSVC Build Tools Preview updates – September 2026

This article discusses the latest updates to the MSVC Build Tools Preview, including new features and fixes targeting the v14.52 release. It highlights improvements in diagnostics, compiler behavior, and more.

C++ Team | C++ Team Blog | 2026-09-09 | 5 min

What algorithm did Windows XP use to choose your initial user picture?

This article discusses the random number generator used by Windows XP to select the initial user profile picture during account creation. It explains the efficiency of the one-pass random selection algorithm compared to traditional methods.

Xeno | The Old New Thing | 2026-09-09 | 5 min

A sample use of the winstart.bat file in Windows 95

This article discusses the winstart.bat batch file in Windows 95, detailing its utility and how it can be used to load the TIGA Communications Driver for enhanced graphics capabilities. It provides insights into the historical context and functionality of this lesser-known feature.

Old New Thing | The Old New Thing | 2026-09-08 | 5 min

How to build a f**king printer

I was planning to build an e-ink display when I came across the Xteink X3 online. Somewhere in the fine print, it said the thing was fully programmable. When it arrived, I liked how flat it was. It felt solid in my hand. I started adding…

nishantjosh | Lobsters | 2026-09-08

A faster way to convert a timestamp to Hour, Min, Sec

Nearly all major date/time libraries compute hour, minute and second the same way - slowly . In this article, I will dive deep into this little problem, and demonstrate a seemingly impossible claim: A daily timestamp [0..86399] can be…

benjoffe | Lobsters | 2026-09-07

Why don’t we allow stacks to be sparse, instead of forcing them to be contiguous?

This article discusses the implications of allowing sparse stacks in programming, particularly focusing on security vulnerabilities and memory management issues that arise from non-contiguous stack allocation.

The Old New Thing | The Old New Thing | 2026-09-07 | 5 min

jank reimagines C++ errors and gets an official native package repo

Welcome back! It's been three months since my last post and the amount of improvements to jank are staggering. Let me tell you all about it! Before jumping into the details, though, I want to say thank you to my Github sponsors and to…

jeaye | Lobsters | 2026-09-04

The worst programming language of all time /s

In this article, the author looks at why C++ feels so complicated, and why its flaws are inseparable from its long-term success.

PVS Studio | PVS Studio C++ Blog | 2026-09-04 | 5 min

What happens if you change a window class’s GCL_CB­WND­EXTRA?

This article discusses the implications of modifying the GCL_CB­WND­EXTRA value for window classes in Windows. It explains how changes affect newly created windows but not existing ones, leading to potential confusion when accessing extra bytes.

The Old New Thing | The Old New Thing | 2026-09-04 | 5 min

The case of the progress callback that never got called when progress happened

This article discusses a debugging issue related to a progress handler in a C# async method that fails to get called. It provides insights into troubleshooting the problem from both C# and C++ perspectives.

The Old New Thing | The Old New Thing | 2026-09-03 | 5 min

C++26: std::hive

This article discusses the proposed std::hive feature for C++26, detailing its purpose and potential impact on the language. It provides insights into the design and implementation considerations for this new feature.

Sandor Dargo | Sandor Dargo's Blog | 2026-09-02 | 5 min

The perils of binding to value types in XAML

This article discusses issues encountered when binding to value types in XAML, particularly with the FlipView control. It explains how using structs instead of runtime classes can simplify the data model and avoid boilerplate code.

The Old New Thing | The Old New Thing | 2026-09-02 | 5 min

Microspeak: Funded / unfunded

This article explains the specific jargon used at Microsoft regarding project funding, which refers to the availability of personnel rather than financial resources. It discusses terms like 'funded', 'unfunded', and 'partially funded' in the context of software development.

The Old New Thing | The Old New Thing | 2026-09-01 | 5 min

AWE does not require PAE, though PAE makes it much more useful

This article discusses the Address Windowing Extensions (AWE) feature in Windows and its relationship with Physical Address Extension (PAE). It explains how AWE can be useful even without PAE, but highlights the limitations of using AWE on a 32-bit system with only 4GB of RAM.

The Old New Thing | The Old New Thing | 2026-08-31 | 5 min

C++26: Standard Library Hardening Experiments

This article explores the concept of 'hardening' in the C++ Standard Library as introduced in C++26, discussing its implications for safety and error handling in library implementations.

Unknown | C++ Stories | 2026-08-30 | 5 min

I helped to build GetCracked's Intermediate C++ Roadmap

This article discusses the development of an Intermediate C++ Roadmap for GetCracked, aimed at guiding developers in their learning journey. It highlights key concepts and resources essential for mastering intermediate-level C++ programming.

Sandor Dargo | Sandor Dargo's Blog | 2026-08-28 | 5 min

On forcing all derived classes to implement a specific non-virtual method, part 2

This article discusses how to enforce derived classes to implement a specific non-virtual method in C++. It explores the use of deleted methods to guide developers towards correct implementation.

The Old New Thing | The Old New Thing | 2026-08-28 | 5 min

On forcing all derived classes to implement a specific non-virtual method, part 1

This article discusses how to ensure that derived classes implement specific methods in C++ by using a base class. It provides examples using IValueConverter and OneWayConverter to illustrate the concept.

The Old New Thing | The Old New Thing | 2026-08-27 | 5 min

Catching NaN at the MLIR Pass Boundary

A Multi-Level Intermediate Representation (MLIR) pass can create a not-a-number (NaN) attribute during constant folding. This can happen even when every operand starts as a valid value. The compiler should reject that value at the…

thecloudlet | Lobsters | 2026-08-26

C++26: std::inplace_vector

This article discusses the new std::inplace_vector feature in C++26, detailing its design and potential use cases. It provides insights into how this feature can improve performance and memory management in C++ applications.

Sandor Dargo | Sandor Dargo's Blog | 2026-08-26 | 5 min

In the product end game, every change carries significant risk, episode 2

This article discusses a sporadic bug encountered during the Word 97 release cycle and the challenges of debugging it. It highlights the use of in-circuit emulators to investigate issues that resist traditional debugging methods.

Larry Osterman | The Old New Thing | 2026-08-26 | 5 min

Tonight, ShadPS4 joins the hunt: uncovering bugs in the most popular PS4 emulator

This article discusses the ShadPS4 emulator and its efforts to uncover bugs, inspired by Lovecraftian horror themes. It highlights the challenges and techniques involved in debugging emulators.

PVS-Studio Team | PVS Studio C++ Blog | 2026-08-26 | 5 min

Why didn’t the Windows Entertainment Pack just run the MS-DOS version inside an emulator?

This article discusses the challenges of running the MS-DOS version of Chip's Challenge within an emulator on Windows, highlighting the limitations of hardware and memory requirements. It compares the situation to the impracticality of using the Space Shuttle for a rescue mission.

The Old New Thing | The Old New Thing | 2026-08-25 | 5 min

Comparing the two holograms on the Windows 95 box

This article discusses the changes made to the Windows 95 anti-piracy hologram due to a government complaint about its depiction of a baby. It highlights the differences between the original and revised holograms.

The Old New Thing | The Old New Thing | 2026-08-24 | 5 min

Scaling Memory Safety: AI-Assisted Rewrites of C/C++ Dependencies to Rust

Scaling Memory Safety: AI-Assisted Rewrites of C/C++ Dependencies to Rust

dayanruben | Lobsters | 2026-08-24

“Bare Metal” STM32 Programming (2018)

The STM32 line of ARM Cortex-M microcontrollers are a fun way to get started with embedded programming. The nice thing about these chips is that they don’t require much setup, so you can start to learn about them bit by bit, starting with…

kaycebasques | Lobsters | 2026-08-23

Integrating Discord SDK into EVE Frontier

Integrating Discord SDK into EVE Frontier

juliethefoxcoon | Lobsters | 2026-08-23

Optimizing memory usage in a markdown parser

Ctrl + K to search... Home • Software • Contact Me Optimizing memory use in a Markdown parser edit I’m porting gpui-component (a Rust UI component library built on GPUI) to C++ as gpui-cpp . By which I mean: my friend Claude does the…

abareplace | Lobsters | 2026-08-23

Reducing C++ template bloat by factoring out the type-dependent portions of the function, practical exam

This article discusses techniques for reducing C++ template bloat by factoring out type-dependent portions of functions. It highlights the inefficiencies of using lambdas in templated functions and presents a method to simplify the function by using a shared type.

The Old New Thing | The Old New Thing | 2026-08-21 | 5 min

Reducing C++ template bloat by factoring out the type-dependent portions of the function

This article discusses the cost of C++ template expansions and how to mitigate template bloat by using helper objects to encapsulate common functionality. It provides insights into optimizing template functions that accept lambdas.

The Old New Thing | The Old New Thing | 2026-08-20 | 5 min

Bloated C++ code

This article discusses the pitfalls of writing bloated C++ code and the importance of writing concise and efficient code. It highlights the humorous notion that programmers should not be paid by the line of code.

PVS Studio Team | PVS Studio C++ Blog | 2026-08-19 | 5 min

C++26: std::polymorphic

This article discusses the new std::polymorphic feature in C++26, detailing its implications and usage. It provides insights into how this feature enhances polymorphism in C++.

Sandor Dargo | Sandor Dargo's Blog | 2026-08-19 | 5 min

On wrapping a callable in a lambda that just calls it with the same parameters

This article discusses the unnecessary complexity of wrapping a lambda inside another lambda when the inner lambda can be called directly. It explains that a lambda is just syntactic sugar for a class with a function call operator, and highlights the importance of understanding this to avoid unnecessary indirection.

The Old New Thing | The Old New Thing | 2026-08-19 | 5 min

Why did the Microsoft Entertainment Pack for Windows have a special sticker announcing that it also had Tetris?

This article discusses the unique marketing decision behind the first Microsoft Entertainment Pack for Windows, which included a sticker announcing the addition of Tetris due to licensing negotiations. It highlights the rarity of copies with the sticker.

The Old New Thing | The Old New Thing | 2026-08-18 | 3 min

How do functions like alloca allocate memory from the stack?

This article explains how the _alloca function works in conjunction with the _chkstk function to allocate memory from the stack while ensuring that large allocations do not skip over the guard page. It includes a code example demonstrating the process.

The Old New Thing | The Old New Thing | 2026-08-17 | 5 min

How do functions like alloca allocate memory from the stack?

This article explains how the _alloca function works in conjunction with the _chkstk function to manage stack memory allocation. It provides an example of stack allocation in x86-64 architecture.

The Old New Thing | The Old New Thing | 2026-08-17 | 5 min

A faster way to calculate the day-of-the-week

Converting a day-count ("rata-die") to the day-of-the-week (“weekday”) sounds like it should be so trivial, that there's almost nothing to say about it. But, as it turns out, when we look under the hood, this is a surprisingly complex…

benjoffe | Lobsters | 2026-08-16

Forcing an ARM64X executable to run as a specific architecture

This article discusses how to force an ARM64X executable to run as a specific architecture on Windows. It explains the use of the PROC_THREAD_ATTRIBUTE_MACHINE_TYPE attribute to relaunch a program with the desired architecture when loading a DLL fails.

The Old New Thing | The Old New Thing | 2026-08-14 | 5 min

Static and dynamic analysis help when unit tests fail

This article discusses the importance of static and dynamic code analysis in conjunction with unit tests, highlighting how these techniques can provide valuable insights when tests fail.

PVS Studio Team | PVS Studio C++ Blog | 2026-08-14 | 5 min

A little helper class for managing LPPROC_THREAD_ATTRIBUTE_LISTs

This article discusses the challenges of managing LPPROC_THREAD_ATTRIBUTE_LISTs in C++ and presents a helper class to simplify the process. It provides code examples and insights into memory management for process attributes.

The Old New Thing | The Old New Thing | 2026-08-13 | 5 min

Clearer Build Optimization Results with GitHub Copilot

This article discusses improvements in GitHub Copilot's build performance for Windows, focusing on clearer result messages that help C++ developers understand optimization outcomes. The new experience aims to provide deterministic results and better insights into build optimizations.

C++ Team | C++ Team Blog | 2026-08-13 | 5 min

MSVC Build Tools Preview updates – August 2026

This article discusses the latest updates to the MSVC Build Tools Preview, targeting the v14.52 release, including improvements in C++ conformance and modules. It provides insights into new features and fixes from the MSVC development team.

C++ Team | C++ Team Blog | 2026-08-13 | 5 min