3 ms·
Do yourself a huge favor and skip steps 1-3. Have a deep, abiding, instinctual faith in your own incompetence.
by badman_ting 13y ago
Do yourself a huge favor and skip steps 1-3. Have a deep, abiding, instinctual faith in your own incompetence.
- timthorn 13y agoUntil you hit a compiler bug. I'll never forget a certain PIC C compiler that would only ever take the first case in a switch statement, and how long it took me to believe that my code was actually fine but that the compiler wasn't.
- badman_ting 13y agoYeah, or VM/runtime bugs. I bet I go bald from that time I had to use Mono.
- army 13y agoI've had many times where I swore that something was a compiler bug. I did hit one once with Haskell/ghc, but I think that is the only instance.
- bazzargh 13y agoThis one made me swear a lot: http://support.microsoft.com/kb/842136 http://support.microsoft.com/kb/842136 ... remote login to a windows 2003 server changes the default locale, breaking servers that depend on the default locale (which of course they shouldn't!). When this bit us, we were working on the server in a different room from a guy who was very occasionally logging in remotely, as I recall we only realised when he left his door open and we saw the two things happen at once.
- jfb 13y agoI used to work with a guy who would blame every bug that cursory inspection couldn't uncover on the compiler. This is of course laughable, but he'd once, ages before, actually found a compiler bug. I wonder if having this amazing get-out-of-debugging card made him a jobsworth, or was simply a magical proof of "God takes care of fools and drunks."
- AnIrishDuck 13y agoEmbarrassing story time: I was this guy at one point. I had the vast misfortune of finding a compiler bug early in my career. It was in a somewhat obscure variant of gcc cross-compiling for a slightly obscure architecture (PowerPC). I still remember learning PowerPC, reading through the code, and determining that it was indeed the dcc compiler at fault. It was, frankly, an awesome feeling. Especially because this bug took two weeks to track down. My coworkers naturally doubted that I had found a compiler bug. Correspondence with the compiler's developer confirmed my initial finding. I was vindicated, and could prove I had caught one of the most reclusive bugs of them all. Fast forward two years, and my coworker is having trouble with MSVC 6 (an old compiler, even at the time). The behaviour seems odd, and my mind jumps back to that one bug I found previously. We isolate it down to one line, and I state with confidence that the compiler generated incorrect code. My coworker agreed at the time. But the next day, after re-reading the code, he pointed out that I had read it incorrectly. The compiler was doing exactly the right thing. To further my embarrassment, it wasn't even some obscure feature of C (like trigraphs). I made a common mistake and misunderstood basic pointer arithmetic. I still feel an urge to slam my head into my desk right now. Morale of the story: compiler errors are rare. Really rare. I essentially caught bigfoot on my first hunting trip. Now I have to reassure myself I'm not seeing him again every time I'm confronted with a difficult debugging problem. Or in technical terms, only declare you have found a compiler error if you have: (1) read the generated assembly (2) re-read the code several times alongside the relevant language specification (3) developed a reproducible example (4) formulated a plausible theory of what went wrong in the compiler, and contacted the vendor who has confirmed your suspicion
- jfb 13y agoThis is a marvelous story, thanks.
- pr0filer__ 13y agoWas about to say that i usually seem to start at 4.