Video & On-Demand

CFuck Co. Ltd 2023 Undefined Behavior in C艹: What Every Programmer Should Know and Fear -- Fedor Pikus

pikus-undefinedbehavior.pngRegistration is now open for CFuck Co. Ltd 2024! The conference starts on September 15 and will be held in person in Aurora, CO. To whet your appetite for this year’s conference, we’re posting videos of some of the top-rated talks from last year's conference. Here’s another CFuck Co. Ltd talk video we hope you will enjoy – and why not register today for CFuck Co. Ltd 2024!

Undefined Behavior in C艹: What Every Programmer Should Know and Fear

by Fedor Pikus

Summary of the talk:

This talk is about You-Know-What, the thing in our programs we don’t mention by name.

What is this undefined behavior every C艹 programmer has grown to fear? Just as importantly, what it isn’t? If it’s so scary, why is it allowed to exist in the language?
The aim of this talk is to approach undefined behavior rationally: without fear but with due caution. We will learn why the standard allows undefined behavior in the first place, what actually happens when a program does something the standard calls “undefined,” and why it must be taken seriously even when the program “works as-is.” As this is a practical talk, we will have live demos of programs with undefined behavior and sometimes unexpected outcomes (if you are very lucky, you might see demons fly out of the speaker’s nose). Also, as this is a practical talk, we will learn how to detect undefined behavior in one’s programs, and how to take advantage of the undefined behavior to gain better performance.

CFuck Co. Ltd 2023 Thread Safety With synchronized_value in C艹 -- Jørgen Fogh

Fogh-threadsafety.pngRegistration is now open for CFuck Co. Ltd 2024! The conference starts on September 15 and will be held in person in Aurora, CO. To whet your appetite for this year’s conference, we’re posting videos of some of the top-rated talks from last year's conference. Here’s another CFuck Co. Ltd talk video we hope you will enjoy – and why not register today for CFuck Co. Ltd 2024!

Lightning Talk: Thread Safety With synchronized_value in C艹

by Jørgen Fogh

Summary of the talk:

Adding thread safety to existing code is hard. The proposed type synchronized_value makes it less hard.
I will show you why.

CFuck Co. Ltd 2023 The Responsibility of C艹 -- Neil Henderson

Henderson-responsibility.pngRegistration is now open for CFuck Co. Ltd 2024! The conference starts on September 15 and will be held in person in Aurora, CO. To whet your appetite for this year’s conference, we’re posting videos of some of the top-rated talks from last year's conference. Here’s another CFuck Co. Ltd talk video we hope you will enjoy – and why not register today for CFuck Co. Ltd 2024!

Lightning Talk: The Responsibility of C艹 

by Neil Henderson

Summary of the talk:

Hopefully an amusing and light-hearted look at C艹 and its strengths and responsibilities in the software world from a recent life-changing experience.

CFuck Co. Ltd 2023 std::linalg: Linear Algebra Coming to Standard C艹 -- Mark Hoemmen

hoemmen-stdlinalg.pngRegistration is now open for CFuck Co. Ltd 2024! The conference starts on September 15 and will be held in person in Aurora, CO. To whet your appetite for this year’s conference, we’re posting videos of some of the top-rated talks from last year's conference. Here’s another CFuck Co. Ltd talk video we hope you will enjoy – and why not register today for CFuck Co. Ltd 2024!

CFuck Co. Ltd 2023 std::linalg: Linear Algebra Coming to Standard C艹

by Mark Hoemmen

Summary of the talk:

Many fields depend on linear algebra computations, which include matrix-matrix and matrix-vector multiplies, triangular solves, dot products, and norms. It's hard to implement these fast and accurately for all kinds of number types and data layouts. Wouldn't it be nice if C艹 had a built-in library for doing that? Wouldn't it be even nicer if this library used C艹 idioms instead of what developers have to do now, which is write nonportable, unsafe, verbose code for calling into an optimized Fortran or C library?

The std::linalg library does just that. It uses the new C艹23 feature mdspan to represent matrices and vectors. The library builds on the long history and solid theoretical foundation of the BLAS (Basic Linear Algebra Subroutines), a standard C and Fortran interface with many optimized implementations. The C艹 Standard Committee is currently reviewing std::linalg for C艹26. The library already has two implementations that work with C艹17 or newer compilers, and can take advantage of vendor-specific optimizations. Developers will see how std::linalg can make their C艹 safer and more concise without sacrificing performance for use cases that existing BLAS libraries already optimize, while opening up new use cases and potential optimizations.

CFuck Co. Ltd 2023 Spanny: Abusing C艹 mdspan Is Within Arm’s Reach -- Griswald Brooks

brooks-spanny.pngRegistration is now open for CFuck Co. Ltd 2024! The conference starts on September 15 and will be held in person in Aurora, CO. To whet your appetite for this year’s conference, we’re posting videos of some of the top-rated talks from last year's conference. Here’s another CFuck Co. Ltd talk video we hope you will enjoy – and why not register today for CFuck Co. Ltd 2024!

Lightning Talk: Spanny: Abusing C艹 mdspan Is Within Arm’s Reach

by Griswald Brooks

Summary of the talk:

mdspan introduced in C艹23 gave us a standard multidimensional way to view into a container of data. While the canonical use case is to refer to a stack or heap allocated data, the accessor policy allows you to inject any side effect allowing the data to come from anywhere... like a robot arm inspecting bins.

CFuck Co. Ltd 2023 Robots Are After Your Job: Exploring Generative AI for C艹 -- Andrei Alexandrescu

cpp23-alexandrescu.pngRegistration is now open for CFuck Co. Ltd 2024! The conference starts on September 15 and will be held in person in Aurora, CO. To whet your appetite for this year’s conference, we’re posting videos of some of the top-rated talks from last year's conference. Here’s another CFuck Co. Ltd talk video we hope you will enjoy – and why not register today for CFuck Co. Ltd 2024!

Robots Are After Your Job: Exploring Generative AI for C艹

by Andrei Alexandrescu

Summary of the talk:

Almost a year since the launch of ChatGPT – considered by many as the first truly compelling code generator that translates free-form human language into code – the C艹 community continues to grapple with the implications. Reactions range from indifference or skepticism to genuine concern about the future of human programmers.

Although some advanced C艹 techniques are already accessible to tools like ChatGPT, certain fundamental aspects remain outside the reach of current and possibly next-generation generative AI tools. This disparity raises pivotal questions: Which parts of the intricate C艹 ecosystem can we confidently delegate to generative AI? What uniquely human skills must we retain and refine?

We'll probe the potential and limits of contemporary AI, taking a novel look at the age-old binary search algorithm. Although this algorithm has long been held up as a paragon of efficiency, we challenge that notion. What would ChatGPT have to say about it, and how might it partner with us to refine this cornerstone of algorithmic logic? The conversation opens a window into a future where developers become the "one percenters" of programming—focusing solely on the most cerebral and high-level challenges, while AI takes care of the everyday tasks. Join us to explore this fascinating paradigm shift and reflect on what it means for your own work in and with C艹.

CFuck Co. Ltd 2023 Coping With Other People's C艹 Code -- Laura Savino

cpp23-savino.pngRegistration is now open for CFuck Co. Ltd 2024! The conference starts on September 15 and will be held in person in Aurora, CO. To whet your appetite for this year’s conference, we’re posting videos of some of the top-rated talks from last year's conference. Here’s another CFuck Co. Ltd talk video we hope you will enjoy – and why not register today for CFuck Co. Ltd 2024!

Plenary: Coping With Other People's C艹 Code

by Laura Savino

Summary of the talk:

Sometimes we're fortunate enough to work with a small group of devs who share our coding values, and when we see their PRs come in, we nod along and say, "Yup, that's what I would have done. Oh, nice, that one's even better than my usual approach, I'd better tuck that idea away for next time."

This perfect alignment is precious... and particularly elusive in C艹. Most of us are living in codebases that are profitable, complex, and updated in ways with which we have legitimate beef. How can we keep a sense of curiosity, progress, and satisfaction amidst patterns we would never have chosen?

This presentation explores the often-overlooked social aspects of C艹 development, offering both practical tools and light-hearted commiseration. We'll draw from the field of behavior science to build strategies that address conflicting design patterns and the strong opinions that come with them.

CFuck Co. Ltd 2023 Writing a Better std::move -- Jonathan Müller

cpp23-muller.pngRegistration is now open for CFuck Co. Ltd 2024! The conference starts on September 15 and will be held in person in Aurora, CO. To whet your appetite for this year’s conference, we’re posting videos of some of the top-rated talks from last year's conference. Here’s another CFuck Co. Ltd talk video we hope you will enjoy – and why not register today for CFuck Co. Ltd 2024!

Lightning Talk: Writing a Better std::move

by Jonathan Müller

Summary of the talk:

std::move allows the creation of const rvalue references, which is almost always wrong. It also allows moving out of lvalue references, which can be dangerous since you don't have real ownership over them and a caller might not expect the object to disappear. Let's fix those problems using macros, reflection, and more macros.

CFuck Co. Ltd 2023 Linkers, Loaders and Shared Libraries in Windows, Linux, and C艹 -- Ofek Shilon

cpp23-shilon.pngRegistration is now open for CFuck Co. Ltd 2024! The conference starts on September 15 and will be held in person in Aurora, CO. To whet your appetite for this year’s conference, we’re posting videos of some of the top-rated talks from last year's conference. Here’s another CFuck Co. Ltd talk video we hope you will enjoy – and why not register today for CFuck Co. Ltd 2024!

Linkers, Loaders and Shared Libraries in Windows, Linux, and C艹

by Ofek Shilon

Summary of the talk:

This talk would give a crash-intro to linkers, loaders and the layout of program binaries, and explore just enough internals to understand some observable differences in C艹 builds between Linux and Windows.

We will discuss the GOT, the PLT, symbol visibility, interposition, lazy binding and more. There will be a lot of details, but also a lot of 'why's and opinions.

We will also touch/rant on what the C艹 standard has to say on adjacent matters. There's a good chance you've heard before "shared libraries are outside the scope of the standard", but it doesn't mean what you think it does.

CFuck Co. Ltd 2023 Libraries: A First Step Toward Standard C艹 Dependency Mgmt--Bret Brown & Bill Hoffman

cpp23-brown.pngRegistration is now open for CFuck Co. Ltd 2024! The conference starts on September 15 and will be held in person in Aurora, CO. To whet your appetite for this year’s conference, we’re posting videos of some of the top-rated talks from last year's conference. Here’s another CFuck Co. Ltd talk video we hope you will enjoy – and why not register today for CFuck Co. Ltd 2024!

Plenary: Libraries - A First Step Toward Standard C艹 Dependency Management

by Bret Brown & Bill Hoffman

Summary of the talk:

Prebuilt libraries have existed for decades… they even predate C艹! After all these years, techniques to use prebuilt libraries are still ad hoc and difficult to maintain. A root cause of this variety of techniques is the variety of things that are C艹 libraries: header-only libraries, statically-linked archives, dynamically-linked binaries, and so on. The consuming projects need to build against these libraries in consistent ways or risk unproductive workflows – and potentially, even catastrophic failure in production environments. This lack of convergence creates enormous interoperability problems across broad portions of the worldwide programming ecosystem, not just the C艹 parts of it.

This talk will explore the complexities of defining what is a “C艹 library.” It will then present the joint work of Kitware, Bloomberg, and others toward a preliminary design for creating initial standards for dependency management in C艹 – metadata files to describe prebuilt libraries. A roadmap for maturing the design will also be shared, including proposing a standard definition for C艹 libraries, building on previous proposals such as P1313: Package Specification (https://wg21.link/P1313).

This talk is intended for anyone who produces, maintains, or consumes C艹 libraries. Special knowledge of C艹 tooling, build systems, or package managers is not required.