| ▲ | SugarReflex 10 hours ago | |||||||||||||
I hope this comment is not out of place, but I am wondering what the application for all this is? How can this help us or what does it teach us or help us prove? I am asking out of genuine curiosity as I barely understand it but I believe it has something to do with probability. edit: thanks for the responses! I was not even familiar with `git bisect` before this, so I've got some new things to learn. | ||||||||||||||
| ▲ | augusto-moura 10 hours ago | parent | next [-] | |||||||||||||
The writeup [1] linked on the README has examples and a better explanation | ||||||||||||||
| ▲ | Retr0id 10 hours ago | parent | prev | next [-] | |||||||||||||
If you're git bisecting a flakey test, normally your only option is to run the test many times until you're ~certain it's either flakey or not flakey. If your test suite is slow, this can take a long time. One way to think about the tool presented is that it minimizes the number of times you'd need to run your test suite, to locate the bad commit. | ||||||||||||||
| ||||||||||||||
| ▲ | curuinor 10 hours ago | parent | prev | next [-] | |||||||||||||
Bayesian inference is, to be overly simple, a way to write probabilistic if-statements and fit them from data. The "if" statement in this case is "if the bug is there...", and of course it's often the case that in actual software that if statement is probabilistic in nature. This thing does git bisect with a flaky bug with bayesian inference handling the flakiness to get you a decent estimate of where the bug is in the git history. It seems to be usable, or at least as usable as a Show HN thingy is expected to be. | ||||||||||||||
| ▲ | teckywoe 9 hours ago | parent | prev | next [-] | |||||||||||||
Opening the discussion to include properties of nondeterministic bugs. Often these bugs depend on timing, caused by unpredictable thread scheduling, CPU load, disk and networking timing, etc. Git commits can affect app timing and change the likelihood of the bug occurring, but in many cases these changes aren't related to the underlying bug. That's distinct from a regular git bisect to find a deterministic bug. One cool bayesect application is to identify the commit that most frequently hits the bug, so it's easier to debug. But more broadly, I'm wondering about the underlying philosophy of bisection for nondeterministic bugs, and when I'd use it? | ||||||||||||||
| ||||||||||||||
| ▲ | ncruces 8 hours ago | parent | prev [-] | |||||||||||||
If you want to read more about the bisect idea itself, this link has a bunch of interesting use cases: https://research.swtch.com/bisect TLDR: you can bisect on more than just "time". | ||||||||||||||