Following on from my previous post about new forms of internet trolling, it seems that sabotaging open source projects is also a popular new pastime for asshats.
Take avr-libc. It used to have two functions sbi() and cbi(). These two functions are incredibly useful, pretty much the bread and butter of what microcontrollers do. So, the asshats managed to get them removed, on the grounds that they were redundant since you can write some less readable code and rely on the compiler to optimise it back to a sbi/cbi assembler instruction.
Relying on the compiler to correctly and reliably optimise your code is a very bad idea. All sorts of things can influence how the compiler decides to optimise stuff. For example, in the latest version of avr-libc the _delay_ms() and _delay_us() functions can be optimised into oblivion, resulting in no delays, and despite them being marked as not optimisable. I spent hours trying to figure out why it wasn’t working, until eventually examined the assembler code in the debugger and noticed what had happened.
So, now we have less readable, error prone code and an avr-libc that is not backwards compatible with all that legacy code you write a year or two ago. The asshats have managed to sabotage it, with the justification that sbi() and cbi() are “too close to the metal” and it’s philosophically better to just pray that the compiler does what you want it to.
Trolling really is evolving.