News for hackers. Stuff that matters.
Re:Writing a game engine in pure C: The Graphic Initialization by dllthomas on Wednesday June 05, 2019 @04:12PM (#20108629)
To get nominal typing in C, wrap things in a struct. There shouldn't be any performance overhead (the generated code should often, if not always, be unchanged), and the boilerplate can be manageable (and you can unpack things locally when it starts to get too messy).

See https://dlthomas.github.io/using-c-types-talk/slides/slides.... (... which I should really turn into a blog post or something)

Re:Writing a game engine in pure C: The Graphic Initialization by heinrich5991 on Wednesday June 05, 2019 @08:48PM (#20110554)
Some ABIs pass structs containing a single element differently (and in a less performant way) than primitive data types.
Re:Writing a game engine in pure C: The Graphic Initialization by dllthomas on Thursday June 06, 2019 @12:27AM (#20111595)
You should always be aware of the details of whatever platform you're targeting, to be sure.

That said, can you name a few that work this way? If I've worked on such a platform, it's been a long while.

Re:Writing a game engine in pure C: The Graphic Initialization by heinrich5991 on Thursday June 06, 2019 @09:42AM (#20114422)
Apparently ARM64 does this for return values. I remembered the `#[repr(transparent)]` proposal that precisely tackled this problem for Rust: [RFC 1758](https://github.com/rust-lang/rfcs/blob/de0917dca549694fffbe3...).
Re:Writing a game engine in pure C: The Graphic Initialization by dllthomas on Friday June 07, 2019 @06:16PM (#20129111)
Thanks, I'll dig in! Is this limited to floating point? That doesn't surprise me nearly as much.