Developer's Guide
Regression Tests
You can run the various regression tests in the tests/pos
and tests/neg
directory using
$ cargo test -p flux-tests
Profiling Flux
Set FLUX_DUMP_TIMINGS=true
to have flux write timing diagnostics to ./log/timings
.
Right now this is extremely simple, it just provides some details for the spans under flux_typeck
and flux_driver
.
Sample output
Below is a sample output for an invocation of cargo-flux check
that took 19 seconds. The missing 2 seconds approximately accounts for the time it takes for cargo check
to run.
Note that check_crate
contains everything running under check_top
, which is why the sum of the spans is greater than 19 seconds.
check_top
Checker::infer
num events: 205
min non-zero: 0.52ms
1st quartile: 0.52ms
2nd quartile: 1.05ms
3rd quartile: 2.62ms
max: 24.12ms
total time: 229.64ms
Checker::check
num events: 205
min non-zero: 0.52ms
1st quartile: 0.52ms
2nd quartile: 1.05ms
3rd quartile: 5.24ms
max: 159.91ms
total time: 2028.47ms
FixpointCtx::check
num events: 205
min non-zero: 22.02ms
1st quartile: 26.21ms
2nd quartile: 28.31ms
3rd quartile: 40.37ms
max: 1867.51ms
total time: 9106.36ms
total time: 11364.47ms
check_crate
Callbacks::check_wf
num events: 1
min non-zero: 18.35ms
1st quartile: 18.87ms
2nd quartile: 18.87ms
3rd quartile: 18.87ms
max: 18.87ms
total time: 18.87ms
Callbacks::check_crate
num events: 1
min non-zero: 16986.93ms
1st quartile: 16995.32ms
2nd quartile: 16995.32ms
3rd quartile: 16995.32ms
max: 16995.32ms
total time: 16995.32ms
total time: 17014.19ms