For the fairly trivial cases I can see how this works. Rust constructs the appropriate Fil-C style shadow data at the ABI edges, fires some hooks, and there's some Fil-C compatible layer in Rust [like that introduced recently to provide FFI for variadic functions with a C ABI] in the other direction so your Rust can do the runtime checking Fil-C needs instead of the compile time checks Rust would expect.
I think that's going to be a lot clunkier than typing `extern "fil-C"` in practice, but I can see how it would work. I think it chokes to death pretty quickly for a more sophisticated integration though because that clunk grows exponentially.
MYmy-next-account1小时前
Yeah, why not, ya know. Making your safe-ish C program slow and interoperable with Rust, in order to make people want to jump the boat to Rust. Us old-skool "unsafe? m0ar like skill issue" are gonna get left behind.
COconradludgate1小时前
repost of https://news.ycombinator.com/item?id=49289260
评论
3 条预览评论 · 正在加载完整讨论请先登录 h4cker 账号,然后连接 Hacker News 后发表评论。
For the fairly trivial cases I can see how this works. Rust constructs the appropriate Fil-C style shadow data at the ABI edges, fires some hooks, and there's some Fil-C compatible layer in Rust [like that introduced recently to provide FFI for variadic functions with a C ABI] in the other direction so your Rust can do the runtime checking Fil-C needs instead of the compile time checks Rust would expect. I think that's going to be a lot clunkier than typing `extern "fil-C"` in practice, but I can see how it would work. I think it chokes to death pretty quickly for a more sophisticated integration though because that clunk grows exponentially.
Yeah, why not, ya know. Making your safe-ish C program slow and interoperable with Rust, in order to make people want to jump the boat to Rust. Us old-skool "unsafe? m0ar like skill issue" are gonna get left behind.
repost of https://news.ycombinator.com/item?id=49289260