Rust haters, unite! Fil-C aims to Make C Great Again

Rust haters, unite! Fil-C aims to Make C Great Again

November 16, 2024 at 05:19AM

Fil-C, created by Filip Pizlo from Epic Games, is a memory-safe version of C and C++ allowing developers to maintain compatibility without learning new languages like Rust. It focuses on memory safety through a permissively licensed open-source compiler, although it currently has performance limitations and works only on Linux/x86_64.

### Meeting Takeaways

1. **Introduction of Fil-C**:
– Filip Pizlo, senior director at Epic Games, has developed Fil-C, a memory-safe variant of C and C++.
– Fil-C is designed to be 100% compatible with existing C and C++ codebases.

2. **Objective**:
– Fil-C aims to address memory safety issues prevalent in C and C++ programming, which rely heavily on manual memory management.
– The initiative is part of a broader movement to enhance memory safety in programming languages in response to increasing vulnerabilities.

3. **Current Landscape**:
– Memory safety has become a significant focus, with languages like Rust offering potential solutions. However, Rust’s learning curve presents challenges for developers accustomed to C and C++.
– Fil-C provides a path for developers to achieve memory safety without needing to learn a new programming language.

4. **Technical Details**:
– The compiler and runtime for Fil-C are open-source with Apache2 and BSD licenses, respectively.
– Currently, Fil-C only operates on Linux/x86_64 and is approximately 1.5x-5x slower than legacy C.
– Pizlo plans to enhance performance so that Fil-C can become as efficient as possible while maintaining memory safety.

5. **Compatibility Considerations**:
– Fil-C does not aim for full ABI compatibility with traditional C/C++ (“Yolo-C/C++”) to ensure that users don’t inadvertently create unsafe programs by mixing the two.
– Some existing C programs can be compiled with Fil-C with little to no modifications.

6. **Future Aspirations**:
– Pizlo is committed to resolving current limitations and enhancing performance to compete more effectively with Rust and other memory-safe programming solutions.
– His ultimate goal is to make Fil-C a viable alternative to Rust while preserving the joys of developing in C and C++.

7. **Conclusion**:
– Fil-C is positioned to improve memory safety in C and C++ programming, offering an attractive option for developers who wish to avoid the complexities associated with learning new languages like Rust.

Full Article