{"push_id":2803117909,"size":1,"distinct_size":1,"ref":"refs/heads/develop","head":"177dc37a87090d18683888b310f7ff30f3df1b8f","before":"ed665c79a86f7c837c07d4ac45b2d5755335201c","commits":[{"sha":"177dc37a87090d18683888b310f7ff30f3df1b8f","author":{"name":"cryptogenomicon","email":"d7e19930cc1f42c2d0781f4d9e6f1fe5891bf9cf@eddylab.org"},"message":"Improves error reporting in esl_json parser; fixes critical bug in esl_mem_strtof().\n\nSystematically checked and improved all eslFORMAT errors reportable by\nthe JSON parser. [H5/134-135]\n\nFixes a critical bug in esl_mem_strtof(), which would fail on most\nexponents > 10 (i.e. \"1.0e11\"). [H5/134]\n\nesl_json_ReadInt() changed to use code derived from esl_mem_strtoi(),\nrather than calling it. Validated JSON number tokens can be handled\nwithout as much error checking. Added documentation and a unit test\nfor it, utest_read_int().\n\nesl_json_ReadFloat(), similarly, already used code derived from\nesl_mem_strtof()... but ... discovered that conversion of strings to\nfloats is harder than it seemed. Added notes in esl_mem.md to record\nwhy. Nonetheless decided to stick with hand-rolled code, because the\nspeed difference (3x) is more important than strict accuracy (HMMER\ncan live with +/-1 ulp typical error), compared to the alternative of\ncopying an ESL_BUFFET char array to a NUL-terminated string and\ncalling strtof() on it.  Added utest_read_float() and\nutest_read_float_err() unit tests. The utest_read_float() test\nincludes examples of a couple of super pathological edge cases that\nesl_json_ReadFloat() doesn't get quite right.\n\nAdds utest_mem_strtof_error() unit tests for esl_mem_strtof(), similar\nto the esl_json test. This is what caught the critical bug, which had\nescaped the existing esl_mem unit test, which I'd erroneously thought\nwas pretty damned thorough.\n\nAdds esl_rnd_floatstring(), which generates a random digital string\nrepresentation of a float, for testing. Used by both the esl_json and\nesl_mem unit tests above.","distinct":true,"url":"https://api.github.com/repos/EddyRivasLab/easel/commits/177dc37a87090d18683888b310f7ff30f3df1b8f"}]}
{"actor":{"display_login":"cryptogenomicon"}}