squaresLab / genprog-code

GenProg: heuristic, GP-based automatic program repair for C.
92 stars 27 forks source link

Issue #9/#11 #14

Closed pdreiter closed 5 years ago

pdreiter commented 5 years ago

This is a pull request to resolve genprog-code issues #9 and #11. This change specifically addresses --search ga configurations. It looks like the AST structure was not reset after initial test population, so that when the test cases were run, eval_count value was invalid in context. Specifically the root-cause for issue #9. In testing this change, I ran with test/gcd-test as well as a few local test scenarios - there seemed to be no unintended side-effects with this. I also ran it against issue #11 with the included test case from Padraic - and this change set resolved his failing signature as well.

jlacomis commented 5 years ago

This version of the code fixes #9. Although self#updated () addresses the problem too, it invalidates the cache every time the tests are run, which is undesired. Instead, the try_cache function in prepare_for_test_case should return () instead of raising Unexpected_None when it can't find a test in the cache (like how it's done when checking against the persistent cache).

I can maybe see how invalidating the test cache every time might address #11, but this does not directly fix it. I'm going to merge this PR and close #9, but leave #11 open for now. It'll have to be addressed in another PR.

Thanks, @pdreiter for helping debug!