miller/internal/pkg/cli
John Kerl e10fee0724
Improve type-inference performance (#809)
* To-do items for broader platform/go-version benchmarking

* neaten inferrer API

* extend type-inference unit-test cases

* Add benchmark scripts for comparing compiler versions

* mlr version in addition to mlr --version

* some go-benchmark files for Mac/Linux perf comparisons

* neaten perf-scripts

* merge

* type-scan optimization tests

* type-scan optimization infra

* test new inferrer

* mlr --time option

* include --cpuprofile and --traceprofile in on-line help

* sharpen inferred/deferred-type API distinction

* replace old inferrer with newer/faster

* update docs for new type-inferrer
2021-12-27 00:54:21 -05:00
..
doc.go Standardize Go-package structure (#746) 2021-11-11 14:15:13 -05:00
flag_types.go Approximate-match feature for online help (#754) 2021-11-17 23:37:48 -05:00
flatten_unflatten.go Standardize Go-package structure (#746) 2021-11-11 14:15:13 -05:00
mlrcli_util.go Make --ifs-regex and --ips-regex explicit command-line flags (#799) 2021-12-25 00:00:18 -05:00
option_parse.go Improve type-inference performance (#809) 2021-12-27 00:54:21 -05:00
option_types.go Improve type-inference performance (#809) 2021-12-27 00:54:21 -05:00
README.md Standardize Go-package structure (#746) 2021-11-11 14:15:13 -05:00
separators.go Make --ifs-regex and --ips-regex explicit command-line flags (#799) 2021-12-25 00:00:18 -05:00
verb_utils.go More Go-package restructuring (#748) 2021-11-12 12:49:55 -05:00

Datatypes for parsing the Miller command line, and the flags table.

  • internal/pkg/climain is the flag-parsing logic for supporting Miller's command-line interface. When you type something like mlr --icsv --ojson put '$sum = $a + $b' then filter '$sum > 1000' myfile.csv, it's the CLI parser which makes it possible for Miller to construct a CSV record-reader, a transformer chain of put then filter, and a JSON record-writer.
  • internal/pkg/cli contains datatypes and the flags table for the CLI-parser, which was split out to avoid a Go package-import cycle.