News for hackers. Stuff that matters.
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.
Re:Deconstructing K&R C Is Dead (2015) by kinkdr on Thursday May 19, 2016 @02:00AM (#11728315)
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).
Re:Deconstructing K&R C Is Dead (2015) by kinkdr on Thursday May 19, 2016 @09:32PM (#11735093)
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.
Re:Deconstructing K&R C Is Dead (2015) by ktRolster on Thursday May 19, 2016 @02:45AM (#11728495)
actually I can't think a syntax that would make it less verbose.

something like C::function_from_c() is one option

Re:Deconstructing K&R C Is Dead (2015) by kibwen on Thursday May 19, 2016 @10:24AM (#11730417)
For very extensive C APIs like this (Lua, GTK, etc.) we typically see people create thin, Rust-friendly wrappers to reduce the amount of manual API calls that need to be written out.