Max Rees (they/them)
Lecturer, Department of Computer Science
Interesting articles on the C programming language (and adjacent topics)
[HTML] Some possible reasons for 8-bit bytes. 06 March 2023 by Julia Evans.
[HTML] . 26 February 2023 by Jakub Łukasiewicz.
gotophobia considered harmful (in C)
[HTML] . 12 February 2023 by Chris Palmer.
size_t Is Not
[HTML] Undefined behavior, and the Sledgehammer Principle. 02 February 2023 by JeanHeyd Meneide.
[HTML] C was not created as an abstract machine (of course). 01 February 2023 by the University of Toronto's Chris Siebenmann.
[HTML] All about UndefinedBehaviorSanitizer. 29 January 2023 by Fangrui Song.
[HTML] Distinguishing an Interpreter from a Compiler. 26 January 2023 by by King's College - London's Laurence Tratt.
[HTML] Bounded Flexible Arrays in C. 23 January 2023 by Kees Cook.
[HTML] Nolibc: a minimal C-library replacement shipped with the kernel. 20 January 2023 by Willy Tarreau.
[HTML] Setting the clock ahead to see what breaks. 19 January 2023 by Rachel Kroll.
[HTML] A brave new world: building glibc with LLVM. 17 January 2023 by Collabora's Adrian Ratiu.
[HTML] Some notes on working with old C code. 02 January 2023 by Sean Conner.
[HTML] What’s the deal with Cisco devices in 27 December 2022 by A. Wilcox.
file output, anyway?
[HTML] Checked integer arithmetic in the prospect of C23. 18 December 2022 by INRIA's Jens Gustedt.
[HTML] Goodbye to the C++ Implementation of Zig. 07 December 2022 by Andrew Kelley.
[HTML] Falsehoods programmers believe about undefined behavior. 27 November 2022 by Predrag Gruevski.
[HTML] Figuring out . 25 November 2022 by Clément Bœsch.
ceil with integer division
[HTML] Everything I wish I knew when learning C. 18 November 2022 by Tom Mewett.
[HTML] Considering C99 for curl. 17 November 2022 by Daniel Stenberg.
[HTML] How to categorize C programs by behavior. 15 November 2022 by Red Hat's Martin Sebor.
[HTML] P2723R0: Zero-initialize objects of automatic storage duration. 15 November 2022 by JF Bastien.
[HTML] Modernizing Fedora's C code. 02 November 2022 by LWN's Jake Edge.
[HTML] Would you like signs with those chars? 24 October 2022 by LWN's Jonathan Corbet.
[HTML] Always use . 07 October 2022 by Fernando Hurtado Cardenas.
[closed, open) intervals
[HTML] How to fix an ancient GDB problem. 29 September 2022 by LWN's Jonathan Corbet.
[HTML] Supporting CHERI capabilities in GCC and glibc. 26 September 2022 by LWN's Jonathan Corbet.
[HTML] BPF as a safer kernel programming environment. 23 September 2022 by David Vernet.
[HTML] Safer flexible arrays for the kernel. 22 September 2022 by LWN's Jake Edge.
[HTML] Introducing io_uring_spawn. 20 September 2022 by LWN's Jake Edge.
[HTML] GCC's new fortification level: the gains and costs. 17 September 2022 by Red Hat's Siddhesh Poyarekar.
[HTML] The road to Zettalinux. 16 September 2022 by LWN's Jonathan Corbet.
[HTML] Someone's Been Messing With My Subnormals! 06 September 2022 by New York Univeristy - Tandon School of Engineering's Brendan Dolan-Gavitt. This is nominally a story about Python's packaging ecosystem, but
rears its ugly head here.
[HTML] What's in a (type) name? 02 September 2022 by LWN's Jonathan Corbet.
[HTML] C xor C++ Programming: Situations where the same code has different meaning in C and C++. 03 August 2022 by Intel's Aaron Ballman.
[PDF] C23 working draft. 08 June 2022.
[HTML] A game for learning C operator precedence. 08 May 2022 by Hugo Landau.
[HTML] You should know: . 07 April 2022 by Adam Dunkels.
rand() may call
[HTML] Moving the kernel to modern C. 24 February 2022 by LWN's Jonathan Corbet.
[HTML] C99 doesn't need function bodies, or 'VLAs are Turing complete'. 19 February 2022.
[PDF] How ISO C became unusable for operating systems development. 19 January 2022 by Victor Yodaiken.
[HTML] . 29 December 2021 by Ariadne Conill.
glibc is still not Y2038 compliant by default
[HTML] Stop defining feature-test macros in your code. 21 December 2021 by Ariadne Conill.
[HTML] Uninitialized stack variables. 24 November 2021 by Jan Schaumann.
[HTML] Duff's device in 2021. 18 November 2021 by Chloé Lourseyre.
[HTML] V7 Unix had no stack size limit, and when Unix acquired one. 10 October 2021 by the University of Toronto's Chris Siebenmann.
[HTML] Stack size is invisible in C and the effects on "portability". 27 September 2021 by the University of Toronto's Chris Siebenmann.
[HTML] Pitfalls of VLA in C. 05 July 2021 by Jakub Łukasiewicz.
[HTML] The worst of time64 breakage. 15 February 2020 by Rich Felker.
[HTML] Some obscure C features. 21 August 2019 by Victor Collod.
[PDF] ISO/IEC JTC1/SC22/WG14 N2363: C provenance semantics: examples. 01 April 2019.
[PDF] Taming undefined behavior in LLVM. PLDI 2017 by Juneyoung Lee, Yoonseung Kim, Youngju Song, Chung-Kil Hur, Sanjoy Das, David Majnemer, John Regehr, and Nuno P. Lopes.
[HTML] ABC: A C compiler for printable x86. SIGBOVIK 2017 by Tom Murphy VII.
[PDF] Detecting Strict Aliasing Violations in the Wild. VMCAI 2017 by Pascal Cuoq, Loïc Runarvot, and Alexander Cherepanov.
[HTML] 26 January 2015 by James Rowe.
main is usually a function. So then when is it not?
[HTML] Undefined behavior can result in time travel. 27 June 2014 by Microsoft's Raymond Chen.
[HTML] Undefined behaviour. 13 February 2014 by ARM's Szabolcs Nagy.
[HTML] Incorrect configure checks for availability of functions. 14 August 2013 by Rich Felker.
[HTML] . 04 July 2013 by Rich Felker.
NULL considered harmful
[HTML] How many bits has a byte? 01 June 2010 by INRIA's Jens Gustedt.
Last modified on
Mon 13 Mar 2023 03:57 PM EDT.