Wookash Podcast

How Fil-C Works

Mar 4, 2026
Filip Pizło, systems programmer and creator of Fil C who builds capability-based memory safety for C/C++; Casey Muratori, performance-oriented systems coder known for Handmade Hero and low-level insight. They discuss what memory safety really means. They explain weird execution and historical exploits. They outline Fil C’s pointer-capability approach, compatibility and porting challenges, runtime tradeoffs, and optimization paths.
Ask episode
AI Snips
Chapters
Transcript
Episode notes
ADVICE

Portation Fixes Are Mostly Mechanical Not Architectural

  • When porting large C codebases to Fil C, expect most fixes to be build-script or symbol-mangling tweaks, not deep rewrites.
  • Filip Pizło warns inline assembly, integer-as-pointer tricks (e.g., GLib GType) and custom allocators require code changes or typedef adjustments.
INSIGHT

Custom GC And Arena Patterns Need Special Handling

  • Custom allocators and embedded GCs are rare but need special handling in Fil C; many GCs were removed and replaced with malloc-based allocation.
  • For Ruby finalizers Filip added stdfilc APIs and made Ruby objects finalizable Fil C objects to preserve semantics.
INSIGHT

Fil C Pointer Model Doubles Pointer Dataflow

  • Fil C represents every pointer at runtime as two values: an integer 'intval' and a 'lower' pointer to capability metadata that stores upper bounds and extra info.
  • Loads/stores perform alignment and wraparound-safe lower/upper bounds checks, making pointer operations more complex and currently costly.
Get the Snipd Podcast app to discover more snips from this episode
Get the app