3 ms·
What if: * Function order changes * Prototype goes from int function(char * ); to int function(char * arg); * Typedef is added so instead of int function(cha
by earenndil 8y ago
What if:
* Function order changes
* Prototype goes from int function(char * ); to int function(char * arg);
* Typedef is added so instead of int function(char* );, it's typedef char* str; int function(str);
- flukus 8y agoGood points, the second one in particular I don't think could be fixed without a full parser. Function order changes could possibly be worked around by a formatter/linter that can reorder functions, at the risk of creating more issues. The last could be handled be passing the code through the preprocessor (the -E flag in gcc) first. By this point it's probably gone beyond the "perfect is the enemy of good" threshold though.
- earenndil 8y ago> The last could be handled be passing the code through the preprocessor (the -E flag in gcc) first Nope, that only handles preprocessor directives (essentially, any line starting with '#'). Typedefs are handled by the parser.
- LukeShu 8y agoThat's still going to be way "less perfect" than diffing the output of `javap` or `godoc` or probably even the `help(module)` for a Python module. The ability to diff APIs objectively gets better when we switch away from C header files.