Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Some people seem to forget that in high-level programming languages, lines of code seldom map 1-to-1 to processor instructions.


Indeed, both the algorithm in the article, the rust suggestion, and even the naive solution compile to the same instructions[1].

[1] - https://godbolt.org/z/1P98ss37P


That uses 4 registers and a stack!


You can't do better with a non-inlined function.


The downvotes on the OP comment and the negativity in the replies is totally baffling to me. The OP's post was interesting and relevant, despite being non-algorithmic examples. Non-algorithmic examples are not required by the title of the article, and are only implicitly the topic of the article's body, and even if it were explicit, that still wouldn't render the OP comment unrelated. It would have been enough to simply talk about the difference between an algorithmic and language-feature solution without implying something is wrong with even posting the latter.


And on a modern CPU the machine code does not map 1-to-1 to what actually happens when this is executed, the phrase "out-of-order execution" ought to give away that even though your machine code says A, then B, then C, the CPU may decide it was better to do A, then C, then B instead.

Express your actual intent, if your chosen language has a "swap" intrinsic, use it, if not write the swap in a natural and idiomatic way, and let other people do the lifting.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: