frontpage.
newsnewestaskshowjobs

Open Source @Github

fp.

Open in hackernews

Fil-C: Garbage In, Memory Safety Out [video]

https://www.youtube.com/watch?v=5F-2Y1LPRek
26•Bootvis•23h ago

Comments

wasmperson•20h ago
He claims that all syscalls are safe because they're implemented by his custom libc, but that libc then calls out to the system libc, where the system calls are unsafe. He then claims that this is unlike rust, where making a syscall is unsafe. If you stick to the rust standard library in the same way that fil-c programs stick to the fil-c standard library, then all of your rust "system calls" are safe, too.

Someone in the audience also pointed out that a tool like this could be used to compile rust programs, not just C programs, in which case it's odd to hear Fil-C repeatedly framed as a language in opposition to rust rather than as a tool which might complement it.

cypherpunk666•48m ago
indeed, the ideas could be used more widely.

fil-c runs on linux.

what if linux ran on fil-c?

LoganDark•48m ago
> Someone in the audience also pointed out that a tool like this could be used to compile rust programs, not just C programs, in which case it's odd to hear Fil-C repeatedly framed as a language in opposition to rust rather than as a tool which might complement it.

You can combine both approaches for sure, but that doesn't change that they are indeed separate approaches. One (Rust) intends to characterize and prevent undefined behavior at compile time, and another (Fil-C) intends to make undefined behavior impossible at runtime, as evidenced by decisions like (for example) making unsafe usage of setjmp/longjmp safe.

You could sort of achieve "safety-in-depth" by combining both approaches, but Rust prefers to prevent all undefined behavior statically, and Fil-C prefers to focus on dynamic approaches. They have real differences, so that's probably what comes off as "oppositional"

raggi•44m ago
This presentation wasn’t too bad in terms of us vs theming, but in general throughout the lifetime of the project there’s been a strong us vs them rhetoric. I think it’s working as a marketing tactic to some extent but there are better, albeit harder ways to market the thing.
LoganDark•34m ago
Rust generally invites us vs them everywhere because it's just so ambitious and attractive (to some). Fil-C probably receives questions all the time about why they don't just do X or Y that Rust does. Maybe they end up supporting their position against that type of pressure and it looks like they're just opposing Rust when all they're doing is justifying themselves.
n42•44m ago
The combination of static safety gracefully degrading to runtime safety where not provable is interesting to me
LoganDark•26m ago
This is sort of already possible in Rust when you use safe primitives (e.g., RefCell), but it doesn't cover unsafe code invoking Undefined Behavior. Placing something like Fil-C around unsafe code could prove to be interesting, especially since current approaches rely on interpretation (Miri, Soteria Rust) rather than translation.
uecker•39m ago
Arguably the most important memory safety property, i.e. bounds checking for dynamic arrays, is also not statically checked in Rust.
cypherpunk666•44m ago
also: why not use fil-c to improve cython, and the ffi.
quotemstr•44m ago
Both Rust and Fil-C have unsafe blocks, but in Fil-C latter system, only Pizlo gets to write them. Why am I not filled with confidence?
modeless•35m ago
Rust doesn't runtime validate that your usage of syscalls is memory safe, while Fil-C does. For example you can call mmap in Fil-C and it is still guaranteed to be memory safe, while in Rust you can easily violate memory safety by calling mmap. This seems like an unambiguous improvement to me. This is as memory safe as it is possible to be on a system with a kernel that is not memory safe.

Adding Fil-C-like runtime checks to Rust is definitely an interesting direction.

LugosFergus•30m ago
I was just thinking that we were overdue for a Fil-C post on HN.
dang•23m ago
There are getting to be quite a lot of these so I'll do it CPS style:

Memory Safe Context Switching - https://news.ycombinator.com/item?id=48727177 - June 2026 (30 comments)

Memory Safe Inline Assembly - https://news.ycombinator.com/item?id=48606096 - June 2026 (47 comments)

The Fil-C Optimized Calling Convention - https://news.ycombinator.com/item?id=48162876 - May 2026 (32 comments)

A simplified model of Fil-C - https://news.ycombinator.com/item?id=47810872 - April 2026 (136 comments)

Pizlix: Memory Safe Linux from Scratch - https://news.ycombinator.com/item?id=46260852 - Dec 2025 (30 comments)

Linux Sandboxes and Fil-C - https://news.ycombinator.com/item?id=46259064 - Dec 2025 (156 comments)

Ported freetype, fontconfig, harfbuzz, and graphite to Fil-C - https://news.ycombinator.com/item?id=46090009 - Nov 2025 (56 comments)

A Note on Fil-C - https://news.ycombinator.com/item?id=45842494 - Nov 2025 (210 comments)

Fil-C: A memory-safe C implementation - https://news.ycombinator.com/item?id=45842242 - Nov 2025 (1 comment)

Notes by djb on using Fil-C - https://news.ycombinator.com/item?id=45788040 - Nov 2025 (246 comments)

for more, goto https://news.ycombinator.com/item?id=45792588

LoganDark•30m ago
It's possible to do this (WUFFS does it) but it's so invasive that, well, you basically end up with WUFFS. You end up having to track every set of possible and impossible values at every location, etc. (during each program location too.) WUFFS certainly has its place and I've kind of been itching to try it out myself, but I think getting to the point where dynamic arrays can be statically bounds-checked would have highly disabled Rust.
woodruffw•13m ago
How would Rust perform static checks on dynamic bounds? That seems like an impossible order, i.e. not a reasonable evaluation criteria for any (general-purpose) language.

(I'm separately skeptical that it's the most important memory safety property; I suspect that a review of Chrome and Firefox 0days would show that UAFs and type confusion are, at least to attackers, equally if not more important.)

Claude Opus 5

https://www.anthropic.com/news/claude-opus-5
760•alvis•2h ago•429 comments

Nvidia, Microsoft, Meta warn against overregulating open-weight models

https://www.cnbc.com/2026/07/24/nvidia-microsoft-meta-open-weight-ai-models.html
188•louiereederson•6h ago•125 comments

Postgres LISTEN/NOTIFY actually scales

https://www.dbos.dev/blog/postgres-listen-notify-scalability
24•KraftyOne•28m ago•2 comments

My security camera shipped a GitHub admin token in its login page

https://hhh.hn/hanwha-github-token/
403•hhh•7h ago•150 comments

India's first privately-developed rocket reaches orbit on dramatic debut launch

https://arstechnica.com/space/2026/07/indias-first-privately-developed-rocket-reaches-orbit-on-dr...
357•sohkamyung•4d ago•102 comments

Self-host your mail server

https://blog.haschek.at/2026/you-should-selfhost-your-mail.html
39•geek_at•1d ago•30 comments

Fil-C: Garbage In, Memory Safety Out [video]

https://www.youtube.com/watch?v=5F-2Y1LPRek
26•Bootvis•23h ago•15 comments

I got into YC by hacking it

https://obaid.wtf/jotbook/2026/07/18/how-i-got-into-yc-by-hacking-it.html
59•speckx•1h ago•32 comments

Half-Life 2 running natively on HaikuOS

https://discuss.haiku-os.org/t/haiku-nvidia-porting-nvidia-driver-for-turing-gpus/16520?page=18
198•m0do1•6h ago•30 comments

Don't Take the Black Pill [video]

https://www.youtube.com/watch?v=zLZwpH5lCD4
29•signa11•2h ago•10 comments

Be skeptical of OpenAI's rogue hacker agent story

https://www.theguardian.com/technology/2026/jul/24/openai-rogue-hacker
242•rwmj•3h ago•98 comments

The hardest way to make a GIF

https://blog.willgrant.org/2026/07/23/the-hardest-way-to-make-gif.html
25•plaguna•12h ago•5 comments

Gsxui – Shadcn-style components for Go

https://ui.gsxhq.dev/
15•jackielii•1h ago•0 comments

Extending Polars with Rust Expression Plugins

https://fenic.ai/blog/extending-polars-with-rust-expression-plugins
24•cpard•2d ago•0 comments

The front end framework for correctness: built on Effect, architected like Elm

https://foldkit.dev/
56•plucafs•4h ago•29 comments

DuckPGQ – A DuckDB community extension for graph workloads

https://duckpgq.org/
26•rzk•2h ago•4 comments

The rise and fall of language diversity through the Holocene

https://www.science.org/doi/10.1126/science.adx4343
40•delichon•2h ago•2 comments

It's getting harder to focus every day

https://glyphack.com/attention/
623•peykar•11h ago•351 comments

Flux 3 X Mimic: The Next Generation of Video-Action Models

https://bfl.ai/blog/flux-3-mimic
289•kensai•10h ago•47 comments

The small, real, original web

https://spacetimetech.wordpress.com/2026/07/19/the-small-real-original-web/
15•speckx•2h ago•0 comments

Flux 3

https://bfl.ai/blog/flux-3
530•ThouYS•13h ago•125 comments

Unitree As2-W

https://www.unitree.com/As2-W/
44•MehrdadKhnzd•3h ago•16 comments

JEP 541: Deprecate the macOS/x64 Port for Removal

https://openjdk.org/jeps/541
86•pmg1991•2h ago•80 comments

Reporting Web 3D Capabilities on a Budget of $3 a Month

https://ben3d.ca/blog/reporting-web-3d-capabilities-on-a-budget
7•bhouston•4d ago•0 comments

Em dashes are amazing

https://psychotechnology.substack.com/p/em-dashes-are-fucking-amazing
290•surprisetalk•6h ago•256 comments

Codeberg Divides

https://lucumr.pocoo.org/2026/7/24/codeberg-divides/
74•ashdnazg•4h ago•94 comments

Online Historical Encyclopaedia of Programming Languages

https://hopl.info/
17•gregsadetsky•2h ago•1 comments

BGP ORIGIN attribute manipulation and its impact on the Internet

https://blog.cloudflare.com/bgp-origin-attribute/
12•sbulaev•1h ago•0 comments

Latest Airbus single aisle aircraft innovations

https://www.airbus.com/en/newsroom/stories/2026-07-how-the-a321xlr-is-redefining-single-aisle-com...
40•r2sk5t•3d ago•62 comments

Making Xen's dom0 I/O path NUMA aware

https://edera.dev/stories/numa-part-4-closing-the-xen-dom0-i-o-gap
23•virtio_vixen•2d ago•4 comments