https://bugs.kde.org/show_bug.cgi?id=467472
Bug ID: 467472 Summary: Rewrite `cg_annotate` in Python Classification: Developer tools Product: valgrind Version: unspecified Platform: Other OS: Linux Status: REPORTED Severity: normal Priority: NOR Component: cachegrind Assignee: n...@valgrind.org Reporter: n.netherc...@gmail.com Target Milestone: --- Perl was a reasonable choice for `cg_annotate` in 2002, but not in 2023. Also, the existing structure of the code is not good. These two things make it hard to modify `cg_annotate` in any significant way. Benefits of the change: - Now written in a language that is (a) nice, and (b) not moribund. - Easier to maintain, due to (a) abovementioned better language, (b) better code structure, and (c) better language tooling, such as formatters, type checkers, and linters. - The new version is a little shorter. - It runs about 2x faster. - Argument handling is more standard. E.g. things like `--context 2`, `--auto`, `--no-auto` are supported. (The old forms that require `=` are still supported, though the `=yes`/`=no` forms are deprecated.) The behaviour and output of the new version is identical for typical uses, but there are some very minor changes for edge cases, which nobody is likely to notice. For example: - The file format is slightly changed: I removed support for '.' counts, which had the same meaning as '0'. This was a feature that Cachegrind never used, and the old script handled it inconsistently. - The new version will abort on a malformed data line. The old version would just print a warning and continue. The commit also adds a new test `ann3` that tests many parts of `cg_annotate` that weren't tested previously, and tweaks the existing `ann2` test. -- You are receiving this mail because: You are watching all bug changes.