The GDB people have done it again. The new release 4.17 of the GNU debugger [6] brings several new features, languages, and platforms, but for some reason, it no longer integrates properly with my graphical front-end DDD [10]: the arguments specified within DDD are not passed to the debugged program. Something has changed within GDB such that it no longer works for me. Something? Between the 4.16 and 4.17 releases, n…
Yesterday, my program worked. Today, it does not. Why? (1999) [pdf]
31–40 of 42 posts
Re: Yesterday, my program worked. Today, it does not. Why? (1999) [pdf]
#32We once had a bug that would cause a failure in our test suite, but very rarely. It was so rare that it would just "go away" and not show up for weeks. So we thought it was odd (maybe bad test data, etc) but moved on. When we decided to look into it when we had some downtime, we found out that it was a date bug that only reared its head on the 31st day of the month, hence only happening every two months. I'm not sure…
Previous HN thread: https://news.ycombinator.com/item?id=8171956
Re: Yesterday, my program worked. Today, it does not. Why? (1999) [pdf]
#33Earlier quoted context omitted.
This is awesome. Didn't know about it, thanks! My approach has been to step exponentially. I go back 1 commit, 2 commits, 4 commits... etc. I'll be using bisect from now on though.
Heh, I do a binary search. Find last known good build, go half way between, etc
Re: Yesterday, my program worked. Today, it does not. Why? (1999) [pdf]
#34Reminds me of one of the nice features of Git: git bisect. Find the breaking commit in the smallest number of steps. Some random blog post about it: http://webchick.net/node/99
how am I not surprised that this solved a regression that occurred at some point in the past on a Drupal project I worked on a Drupal project... Once.
Re: Yesterday, my program worked. Today, it does not. Why? (1999) [pdf]
#35Edited: I figured it out. It's because they essentially do a binary search of the changes to find the issue, I should have read a bit further before commenting. The tables / examples cleared it up pretty quickly.
Re: Yesterday, my program worked. Today, it does not. Why? (1999) [pdf]
#36Earlier quoted context omitted.
Git bisect is awesome. Before I discovered it, I was manually bisecting the codebase, and stubbing out the missing half.
Not to take away from git bisect (or hg bisect, which is no more broken than the rest of mercurial) -- I don't think it is an alternative to the thing you used to do. git bisect is "temporal bisection", i.e. you delete half of a time interval. The manual bisect is kinda-sorta "spatial" in the sense that you delete half a region of code. the two things work by similar principles, and their problem domains overlap -- b…
I've done the manual equivalent in perforce as well.
Re: Yesterday, my program worked. Today, it does not. Why? (1999) [pdf]
#37Re: Yesterday, my program worked. Today, it does not. Why? (1999) [pdf]
#38Earlier quoted context omitted.
how am I not surprised that this solved a regression that occurred at some point in the past on a Drupal project I worked on a Drupal project... Once.
I believe Joomla is worse in every conceivable way. And then of course there is WordPress, which I sincerely hope is the last major procedurally-written codebase. PHP has come a long way as a language (it can almost be confused for something sensible these days) but lots of issues with large libraries.
Leaped and haven't looked back yet. Great stuff.
Re: Yesterday, my program worked. Today, it does not. Why? (1999) [pdf]
#39Earlier quoted context omitted.
I believe Joomla is worse in every conceivable way. And then of course there is WordPress, which I sincerely hope is the last major procedurally-written codebase. PHP has come a long way as a language (it can almost be confused for something sensible these days) but lots of issues with large libraries.
That's why I left the Ruby ecosystem and went to Elixir. I noticed that my coding style was getting more and more functional (just naturally... but I was also probably influenced by Rich Hickey's "Are We There Yet?" talk, and by Gary Bernhardt's "Boundaries" talk) and soon realized that functional nirvana was essentially unachievable in Ruby as long as I depended on a vast library of gems all of which were procedural…
Re: Yesterday, my program worked. Today, it does not. Why? (1999) [pdf]
#40Also works for other kinds of files of course. Our version is easily seen as a kind of simulated annealing, with the input providing sufficient randomness that we did not need to add any internally.
Fun story: this was my first open source project. I had always wanted to be an open source programmer, but the precipitating cause of me releasing delta was that Microsoft Research asked me to. So back when Microsoft was saying that open source is a "cancer" I became an open source programmer because Microsoft asked me to.