Fil-C
Hacker ApprovedThe most recommended of 18 c compilers
Recompiles existing C and C++ code with strong memory safety and high compatibility, making legacy software safer without a rewrite, at the cost of speed, memory and garbage collection.
Recompiles existing C and C++ code with strong memory safety and high compatibility, making legacy software safer without a rewrite, at the cost of speed, memory and garbage collection.
220 people gave an opinion
- recommend it
- 160
- criticize it
- 60
- approval share
- 73%
Recommended in 13 of 13 months
- November 2025: recommended
- December 2025: recommended
- January 2026: recommended
- February 2026: recommended
- March 2026: recommended
- April 2026: recommended
- May 2026: recommended
- June 2026: recommended
- July 2026: recommended
- August 2026: recommended
- September 2026: recommended
- October 2026: recommended
- November 2026: recommended (month in progress)
Why it carries the badge
- 160 people recommend itNeeds 10 or more, met.
- 2.7 recommenders for every criticNeeds 2 to 1 or better, met.
- Recommended in 13 of 13 monthsNeeds 4 or more, met.
The same three rules apply to every product, and the badge can’t be bought. How the badge works
What people say about it
The reasons people give, with the number of comments that give each one. Open a reason to read what they said.
Why people recommend it
Each mark is one comment
Memory-safe recompile of legacy code
“sudo compiled with Fil-C: uses pam compiled with Fil-C, and all of pam's dependencies are compiled with Fil-C, so the whole thing is memory safe.”
Comment from 29 Nov 2025 in “Ported freetype, fontconfig, harfbuzz, and graphite to Fil-C” “Choosing to use Fil-C to recompile existing (established, stabilized, functional...) software rather than rewrite it is an engineering choice.”
Comment from 2 Nov 2025 in “Notes by djb on using Fil-C” “Fil-C makes a lot of sense to me if the goal is to simply take existing legacy software and recompile it in a more memory safe way”
Comment from 30 Nov 2025 in “Ported freetype, fontconfig, harfbuzz, and graphite to Fil-C” - Comment from 29 Nov 2025 in “Ported freetype, fontconfig, harfbuzz, and graphite to Fil-C”
- Comment from 17 Nov 2025 in “Giving C a superpower: custom header file (safe_c.h)”
- Comment from 2 Nov 2025 in “Notes by djb on using Fil-C”
- Comment from 1 Nov 2025 in “Hard Rust requirements from May onward”
- Comment from 7 Nov 2025 in “A Note on Fil-C”
High compatibility with existing C/C++
“what I like is that it works with existing C++ code; I don't think the extra safety relative to Rust is worth the performance penalty”
Comment from 26 Jul 2026 in “Fil-C: Garbage In, Memory Safety Out – Filip Pizlo – SSW 2026 [video]” “The main advantage of Fil-C is compatibility with C, in a secure way. The disadvantages are speed, and garbage collection.”
Comment from 2 Nov 2025 in “Notes by djb on using Fil-C” “it has stronger memory safety guarantees than rust, none of the compatibility issues that a wholesale rewrite has”
Comment from 15 Sep 2026 in “Ubuntu 26.10 completes transition to Rust-based coreutils” - Comment from 26 Jul 2026 in “Memory Safety Absolutists”
- Comment from 1 Nov 2025 in “Hard Rust requirements from May onward”
Turns memory bugs into safe crashes
“Caught multiple memory safety issues in a nice deterministic way, so designing the object model was easier than it would have been otherwise.”
Comment from 21 Apr 2026 in “How to Make a Fast Dynamic Language Interpreter” “There is now an iron clad defense against all memory safety bugs leading to RCE that is actually practical to use in production in many cases”
Comment from 21 Oct 2026 in “PHP 8.2.35” “This improves the situation greatly by converting most interesting cases of unsound behavior into runtime errors.”
Comment from 14 Oct 2026 in “11 year old unsoundness bugs found in Rust borrow checker” - Comment from 14 Dec 2025 in “Linux Sandboxes and Fil-C”
- Comment from 25 Jul 2026 in “Fil-C: Garbage In, Memory Safety Out – Filip Pizlo – SSW 2026 [video]”
Stronger guarantees than Rust
“In Fil-C, no such specialists are needed, and the pool of unsafety is closed and fixed, no matter what programs, algorithms, data structures you use.”
Comment from 25 Jul 2026 in “Fil-C: Garbage In, Memory Safety Out – Filip Pizlo – SSW 2026 [video]” “Those languages rely on a much larger pile of YOLO C/C++ code for their runtimes and standard libraries than Fil-C does.”
Comment from 24 Jul 2026 in “Fil-C: Garbage In, Memory Safety Out – Filip Pizlo – SSW 2026 [video]” “it has stronger memory safety guarantees than rust, none of the compatibility issues that a wholesale rewrite has”
Comment from 15 Sep 2026 in “Ubuntu 26.10 completes transition to Rust-based coreutils”
What people warn about
Each mark is one comment
Significant performance and memory overhead
“Tools like Fil-C, hardened mallocs like SlimGuard, and other "make C safe" solutions all sacrifice absurd amounts of performance”
Comment from 26 Jul 2026 in “Memory Safety Absolutists” “The performance drop of Fil-C (as described in the article) limits the usage, and the GC (independently) limits the usage.”
Comment from 7 Nov 2025 in “A Note on Fil-C” “Not everyone wants to recompile the whole app and dependencies with filc to get a slowdown, extra memory use and safety.”
Comment from 15 Dec 2025 in “Problems with D-Bus on the Linux desktop” - Comment from 1 Nov 2025 in “Hard Rust requirements from May onward”
- Comment from 7 Nov 2025 in “A Note on Fil-C”
- Comment from 26 Jul 2026 in “Fil-C: Garbage In, Memory Safety Out – Filip Pizlo – SSW 2026 [video]”
Garbage collection unwanted by some
“Sure, GC's are nice which is why so many langs have them, but that removes the deterministic allocation performance which most C/C++ programmers want”
Comment from 25 Jul 2026 in “Fil-C: Garbage In, Memory Safety Out – Filip Pizlo – SSW 2026 [video]” “The main advantage of Fil-C is compatibility with C, in a secure way. The disadvantages are speed, and garbage collection.”
Comment from 2 Nov 2025 in “Notes by djb on using Fil-C” “for this to work, tracing GC can not be used. And this is what prevents Fil-C and many other languages to be used in that area.”
Comment from 7 Nov 2025 in “A Note on Fil-C” - Comment from 7 Nov 2025 in “A Note on Fil-C”
Not a full drop-in C replacement
“I don't think fil-c is a drop in C replacement, there are things you can do in C such as certain types of pointer abuse that fil-c prohibits”
Comment from 20 Apr 2026 in “A simplified model of Fil-C” “As far as I understand, Fil-C changes the ABI of the system, therefore it requires a new architecture in Debian terminology”
Comment from 2 Nov 2025 in “Hard Rust requirements from May onward” “I can write the networking parts in Rust and the rest of the program in C, but apparently can't do the same with Fil-C.”
Comment from 3 Nov 2025 in “Notes by djb on using Fil-C” - Comment from 24 Jul 2026 in “Fil-C: Garbage In, Memory Safety Out – Filip Pizlo – SSW 2026 [video]”
Leaves some bug classes uncovered
“Fil-C takes one particular class of allocation related bugs and UB off the table, but leaves many of them behind.”
Comment from 12 Sep 2026 in “Compiler Can Undo Your Security Checks” “the comparison becomes a bit apples vs pears when bragging about how much more memory-safe Fil-C is than Rust”
Comment from 25 Jul 2026 in “Fil-C: Garbage In, Memory Safety Out – Filip Pizlo – SSW 2026 [video]” “optimization passes are still able to do things that wouldn't be possible without UB, like falling through functions and deleting safety checks inserted by the Fil-C runtime”
Comment from 26 Oct 2026 in “Attention people who think UB is fine” - Comment from 26 Jul 2026 in “Memory Safety Absolutists”
Other c compilers people recommend
The four most recommended other c compilers, with the same counts for each, so you can compare like for like. The tick on each bar marks the 2 to 1 line the badge needs.
| Product | Recommend | Criticize | Approval | Months | Owned | Badge |
|---|---|---|---|---|---|---|
| Fil-CThis page | 160 | 60 | 73% | 13 | — | Approved |
| Claude's C Compiler | 39 | 83 | 32% | 5 | — | — |
| Visual C++ | 29 | 17 | 63% | 12 | — | — |
| Tiny C Compiler (TCC) | 22 | 3 | 88% | 9 | — | Approved |
| Microsoft Visual C++ compiler (MSVC) | 20 | 29 | 41% | 9 | — | — |
What people said
40 of the 399 comments that mention it, newest first. Each links to the original comment.
“optimization passes are still able to do things that wouldn't be possible without UB, like falling through functions and deleting safety checks inserted by the Fil-C runtime”
“There is now an iron clad defense against all memory safety bugs leading to RCE that is actually practical to use in production in many cases”
“This improves the situation greatly by converting most interesting cases of unsound behavior into runtime errors.”
“it has stronger memory safety guarantees than rust, none of the compatibility issues that a wholesale rewrite has”
“Fil-C takes one particular class of allocation related bugs and UB off the table, but leaves many of them behind.”
“you need Fil-C or similar runtime handling so that any time its behaviour would become undefined the program exits instead”
“intra object overflows are almost never useful for memory corruption exploits unless they let you corrupt a pointer”
“chosen a definition of memory safety that specifically excludes a bunch of overflow vulnerabilities and type confusion”
“Tools like Fil-C, hardened mallocs like SlimGuard, and other "make C safe" solutions all sacrifice absurd amounts of performance”
“Technical innovation is memory safety with high level of compatibility with existing C and C++ in practice.”
“what I like is that it works with existing C++ code; I don't think the extra safety relative to Rust is worth the performance penalty”
“In Fil-C, no such specialists are needed, and the pool of unsafety is closed and fixed, no matter what programs, algorithms, data structures you use.”
“When I write new code in Fil-C, I just lean into the GC all the way, which makes programming in C and C++ so much nicer.”
“Sure, GC's are nice which is why so many langs have them, but that removes the deterministic allocation performance which most C/C++ programmers want”
“the comparison becomes a bit apples vs pears when bragging about how much more memory-safe Fil-C is than Rust”
“The thing that makes races hard to debug in C or C++ is memory corruption; that doesn't happen in Fil-C”
“Those languages rely on a much larger pile of YOLO C/C++ code for their runtimes and standard libraries than Fil-C does.”
“let me know when I can call process_vm_writev or ptrace and have Fil-C verify safety properties on the result.”
“Caught multiple memory safety issues in a nice deterministic way, so designing the object model was easier than it would have been otherwise.”
“I don't think fil-c is a drop in C replacement, there are things you can do in C such as certain types of pointer abuse that fil-c prohibits”
“Not everyone wants to recompile the whole app and dependencies with filc to get a slowdown, extra memory use and safety.”
“Fil-C will panic your program, or give some kind of memory safe outcome (that is of no use to the attacker)”
“It's a fantastic piece of work (I reviewed some part of it) that will very likely play an important role in the future”
“Fil-C makes a lot of sense to me if the goal is to simply take existing legacy software and recompile it in a more memory safe way”
“sudo compiled with Fil-C: uses pam compiled with Fil-C, and all of pam's dependencies are compiled with Fil-C, so the whole thing is memory safe.”
“It might have a beautiful niche for safely sandboxing legacy code. But I don't see any compelling reason to use it for new code.”
“easy wins that could make the world less fragile with a much smaller intermediate effort, eg with something like FilC”
“The performance drop of Fil-C (as described in the article) limits the usage, and the GC (independently) limits the usage.”
“Compiling it using Fil-C is a nice academic exercise but not really helpful, since the whole point of those custom data structures is peak performance.”
“for this to work, tracing GC can not be used. And this is what prevents Fil-C and many other languages to be used in that area.”
“If Fil-C can fulfill its promise to make old C code memory safe, it will be a massive benefit to the world.”
“I can write the networking parts in Rust and the rest of the program in C, but apparently can't do the same with Fil-C.”
“Choosing to use Fil-C to recompile existing (established, stabilized, functional...) software rather than rewrite it is an engineering choice.”
“the niche is rebuilding your entire GNU/Linux userland with full memory safety and completely acceptable performance”
“As far as I understand, Fil-C changes the ABI of the system, therefore it requires a new architecture in Debian terminology”
“The main advantage of Fil-C is compatibility with C, in a secure way. The disadvantages are speed, and garbage collection.”
“The code I've seen that was autotranslated from C to Rust has an absolutely hopeless number of unsafe statements.”
“So, with Fil-C, there would be no need to ruffle feathers by telling port maintainers to support a new toolchain!”
“Fil-C is and despite its originator's confidence always will be bigger and slower than what you have today”
“Bringing up the fil-C toolchain on weird ports is probably less work than bringing up the Rust toolchain”
Counts come from 1,795,640 Hacker News comments, November 2025 to November 2026. How we count. Report a mistake.