Re:Deconstructing K&R C Is Dead (2015)
by tomjakubowski on Thursday May 19, 2016 @01:24AM
(#11728191)
Calling C from Rust is very convenient. All you have to do is declare the structs and function signatures and then it's like calling any other unsafe function.
[ Parent
| on HN ]
IMHO it is OK if you are only going to call a few simple one, but for calling a few hundred complex ones (callbacks with variable argument list, etc..), it becomes a bit cumbersome.
BTW I am not implying that is Rust's fault, actually I can't think a syntax that would make it less verbose, and I am a huge Rust fan.
Re:Deconstructing K&R C Is Dead (2015)
by Manishearth on Thursday May 19, 2016 @09:10PM
(#11735024)
Not really, there are tools that can take C header files and spit out bindings. Rust also supports vararg C functions even though Rust itself doesn't support varargs. Writing safe Rust wrappers around these unsafe C bindings can sometimes be tedious, but this isn't worse than using C directly (which is inherently unsafe).
I didn't say it is not supporting them. I said that is a bit cumbersome to have to write the shims for them.
I wasn't aware of the tools that do this automatically. Just found one and it looks promising.
Re:Deconstructing K&R C Is Dead (2015)
by Manishearth on Friday May 20, 2016 @02:14AM
(#11735833)
Yeah, my point was that thin shims are free, and "thick" safe shims take effort but as far as comparing with pure C is concerned you only need to compare the cost of thin shims. C doesn't have safety so the concept of a thick, safe shim is nonexistant.
actually I can't think a syntax that would make it less verbose.
something like C::function_from_c() is one option