Add a general heuristic that options ending in -path expect an argument.
Remove such options from the explicit is_arg_param list and sort it to simplify maintenance.
Recognize -target-sdk-version.
The utils/dev-scripts/at-to-filelist, utils/dev-scripts/split-cmdline and utils/build-parser-lib scripts needed to be reformatted with the black tool to agree with the linter.
Check whether the value in the "before" column is zero (specifically,
whether the file size in that column is greater than zero since
filesizes are non-negative) before dividing the value in the "after"
column by it.
This used matplotlib internally to plot the values. Now one can produce scurves
without leaving the command line.
I tried to get logarithmic scale to work, but I was unable to do so in a trivial
way. That is something for a different hacking session. I need to move on.
I am upstreaming this for two reasons:
1. Traditionally I have done this by hand in a spreadsheet program. I would
rather just have a program fix it up for me.
2. Multiple people have asked me about how to produce this sort of graph and I
would just like to document it via a script.
I hope it is useful to others. You use the script by invoking it as:
./csvcolumn_to_scurve <input_file> <before_column> <after_column> [output_file]
This script in combination with <(...) can be used to speed up creating
reproductions from command lines that use '@' files to define their inputs.
An example use case:
Consider a swiftc command line that uses the @ symbol.
swiftc @/foo/bar/baz.txt
When this is run, the @ command is expanded into a filelist in a temporary
file. This doesn't work with -### since -### outputs the command line with a
temporary file for the filelist, but uses a path to a temporary file that
doesn't exist, e.g.:
swift -frontend -filelist /tmp/tmp.filelist ...
To run this command, you use the at-to-filelist command as follows:
swift -frontend -filelist <(at-to-filelist /foo/bar/baz.txt)
Something useful that I use all the time that I would like to give to others. It
enables emacs compile-mode to be used like a standalone-ish application instead
of one application with many modes, one of which is compile-mode.
Useful to show the control flow graph of a disassembled function.
The control flow graph can the be viewed with the viewcfg utility:
(lldb) disassemble
<copy-paste output to file.s>
$ blockifyasm < file.s | viewcfg
For details see the comment in split-cmdline
I put this under a new directory utils/dev-script because we have so much stuff in utils already.
Other, similar scripts can then be added in dev-scripts as well.