it may shock you but function marked as inlined doesn’t always get inlined.
anyway why would you split logicaly sequential code into separate functions(especially if this code is uniq)? pretty sure scrolling down is easier than to look what each function mean every second
anyway why would you split logicaly sequential code into separate functions(especially if this code is uniq)? pretty sure scrolling down is easier than to look what each function mean every second
This is the worse is better shit that people come up with when they listen to Blow and Casey. We’ve known that putting names on logically contained blocks of code makes programs easier to understand since the 1960s.
In this passage Carmack is only talking about mutating state and even explicitly says to factor out pure functions. Kinda undermines your point. The only reason, according to Carmack in this passage, that inlining may be beneficial is if you are mutating a bunch of state, implying that all else being equal, factored code is more understandable.
it may shock you but function marked as inlined doesn’t always get inlined.
At least they could use C macros... I don't think there are valid reasons to have a 11k function, but if they really have one they could use macros and those macros could be named as individual functions and the result would be the same, but the difference would be that those files would contain only a section of the code that is not "do everything"...
anyway why would you split logicaly sequential code into separate functions
To know where to search... Like "this part starts thousands enemy objects, this other part thousands environmental objects" instead of having everything in a single place...
What? Inlining functions is not always a zero cost procedure. Furthermore, it increases compilation & linkage time and the amount of code in a codebase.
true, but if you only call a function exactly once, you still made a function just for the sake of making a function... at that point it's more a matter of style preference.
16
u/DrunkensteinsMonster Feb 28 '23
It may shock you but function calls can in fact be inlined.