Oct 31 17:30:16.227 INFO testing vbo/nnrs against beta-2018-10-30 for beta-1.31-1
Oct 31 17:30:16.228 INFO running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/beta-1.31-1/worker-3/beta-2018-10-30:/target:rw,Z" "-v" "/mnt/big/crater/work/local/test-source/worker-3/beta-1.31-1/beta-2018-10-30:/source:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/source" "-e" "USER_ID=1000" "-e" "CMD=cargo +beta-2018-10-30 build --frozen" "-e" "CARGO_TARGET_DIR=/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/cargo-home" "-e" "RUSTUP_HOME=/rustup-home" "-m" "1536M" "--network" "none" "crater"`
Oct 31 17:30:16.787 INFO blam! 19fb31a96cd517bf02fdb87168bc3f98a02fd154e2e5f43d796081204a9b9087
Oct 31 17:30:16.796 INFO running `"docker" "start" "-a" "19fb31a96cd517bf02fdb87168bc3f98a02fd154e2e5f43d796081204a9b9087"`
Oct 31 17:30:17.903 INFO kablam! usermod: no changes
Oct 31 17:30:18.038 INFO kablam!    Compiling matrixmultiply v0.1.14
Oct 31 17:30:18.038 INFO kablam!    Compiling rawpointer v0.1.0
Oct 31 17:30:18.038 INFO kablam!    Compiling yaml-rust v0.3.5
Oct 31 17:30:18.038 INFO kablam!    Compiling proc-macro2 v0.3.7
Oct 31 17:30:18.038 INFO kablam!    Compiling atty v0.2.9
Oct 31 17:30:18.043 INFO kablam!    Compiling rand_derive v0.3.1
Oct 31 17:30:23.949 INFO kablam!    Compiling clap v2.31.2
Oct 31 17:30:25.437 INFO kablam!    Compiling quote v0.5.2
Oct 31 17:30:27.235 INFO kablam!    Compiling syn v0.13.1
Oct 31 17:30:38.442 INFO kablam!    Compiling serde_derive_internals v0.23.1
Oct 31 17:30:43.935 INFO kablam!    Compiling serde_derive v1.0.43
Oct 31 17:30:53.450 INFO kablam!    Compiling nnrs v0.1.0 (/source)
Oct 31 17:30:54.171 INFO kablam! warning: unused import: `std::time`
Oct 31 17:30:54.171 INFO kablam!  --> src/mnist.rs:2:5
Oct 31 17:30:54.171 INFO kablam!   |
Oct 31 17:30:54.171 INFO kablam! 2 | use std::time;
Oct 31 17:30:54.171 INFO kablam!   |     ^^^^^^^^^
Oct 31 17:30:54.171 INFO kablam!   |
Oct 31 17:30:54.171 INFO kablam!   = note: #[warn(unused_imports)] on by default
Oct 31 17:30:54.171 INFO kablam! 
Oct 31 17:30:54.171 INFO kablam! warning: unused import: `math`
Oct 31 17:30:54.171 INFO kablam!   --> src/mnist.rs:15:5
Oct 31 17:30:54.171 INFO kablam!    |
Oct 31 17:30:54.171 INFO kablam! 15 | use math;
Oct 31 17:30:54.171 INFO kablam!    |     ^^^^
Oct 31 17:30:54.171 INFO kablam! 
Oct 31 17:30:54.171 INFO kablam! warning: unused import: `math::Matrix`
Oct 31 17:30:54.171 INFO kablam!   --> src/mnist.rs:16:5
Oct 31 17:30:54.171 INFO kablam!    |
Oct 31 17:30:54.171 INFO kablam! 16 | use math::Matrix;
Oct 31 17:30:54.171 INFO kablam!    |     ^^^^^^^^^^^^
Oct 31 17:30:54.171 INFO kablam! 
Oct 31 17:30:54.171 INFO kablam! warning: unused import: `timing`
Oct 31 17:30:54.171 INFO kablam!   --> src/mnist.rs:19:5
Oct 31 17:30:54.171 INFO kablam!    |
Oct 31 17:30:54.171 INFO kablam! 19 | use timing;
Oct 31 17:30:54.171 INFO kablam!    |     ^^^^^^
Oct 31 17:30:54.171 INFO kablam! 
Oct 31 17:30:54.171 INFO kablam! warning: unused import: `std::mem`
Oct 31 17:30:54.171 INFO kablam!  --> src/network.rs:4:5
Oct 31 17:30:54.171 INFO kablam!   |
Oct 31 17:30:54.171 INFO kablam! 4 | use std::mem;
Oct 31 17:30:54.171 INFO kablam!   |     ^^^^^^^^
Oct 31 17:30:54.171 INFO kablam! 
Oct 31 17:30:54.171 INFO kablam! warning: unused import: `timing::Timing`
Oct 31 17:30:54.171 INFO kablam!  --> src/parallel_trainer.rs:9:5
Oct 31 17:30:54.171 INFO kablam!   |
Oct 31 17:30:54.171 INFO kablam! 9 | use timing::Timing;
Oct 31 17:30:54.171 INFO kablam!   |     ^^^^^^^^^^^^^^
Oct 31 17:30:54.171 INFO kablam! 
Oct 31 17:30:54.171 INFO kablam! warning: unused import: `serde_json`
Oct 31 17:30:54.171 INFO kablam!  --> src/snake.rs:6:5
Oct 31 17:30:54.171 INFO kablam!   |
Oct 31 17:30:54.171 INFO kablam! 6 | use serde_json;
Oct 31 17:30:54.171 INFO kablam!   |     ^^^^^^^^^^
Oct 31 17:30:54.171 INFO kablam! 
Oct 31 17:30:54.171 INFO kablam! warning: unused import: `Network`
Oct 31 17:30:54.171 INFO kablam!  --> src/snake_nn.rs:4:15
Oct 31 17:30:54.171 INFO kablam!   |
Oct 31 17:30:54.171 INFO kablam! 4 | use network::{Network, NetworkParameters, NetworkPredictor};
Oct 31 17:30:54.171 INFO kablam!   |               ^^^^^^^
Oct 31 17:30:54.171 INFO kablam! 
Oct 31 17:30:54.171 INFO kablam! warning: unused imports: `IndependentSample`, `Range`
Oct 31 17:30:54.171 INFO kablam!  --> src/snake_nn.rs:7:27
Oct 31 17:30:54.171 INFO kablam!   |
Oct 31 17:30:54.171 INFO kablam! 7 | use rand::distributions::{IndependentSample, Range};
Oct 31 17:30:54.171 INFO kablam!   |                           ^^^^^^^^^^^^^^^^^  ^^^^^
Oct 31 17:30:54.171 INFO kablam! 
Oct 31 17:30:54.171 INFO kablam! warning: unused import: `std::sync::mpsc`
Oct 31 17:30:54.171 INFO kablam!   --> src/snake_nn.rs:18:5
Oct 31 17:30:54.171 INFO kablam!    |
Oct 31 17:30:54.171 INFO kablam! 18 | use std::sync::mpsc;
Oct 31 17:30:54.171 INFO kablam!    |     ^^^^^^^^^^^^^^^
Oct 31 17:30:54.171 INFO kablam! 
Oct 31 17:30:54.172 INFO kablam! warning: unused imports: `Receiver`, `Sender`
Oct 31 17:30:54.172 INFO kablam!   --> src/snake_nn.rs:19:23
Oct 31 17:30:54.172 INFO kablam!    |
Oct 31 17:30:54.172 INFO kablam! 19 | use std::sync::mpsc::{Receiver, Sender};
Oct 31 17:30:54.172 INFO kablam!    |                       ^^^^^^^^  ^^^^^^
Oct 31 17:30:54.172 INFO kablam! 
Oct 31 17:30:54.172 INFO kablam! warning: unused import: `timing::duration_as_total_nanos`
Oct 31 17:30:54.172 INFO kablam!   --> src/snake_nn.rs:22:5
Oct 31 17:30:54.172 INFO kablam!    |
Oct 31 17:30:54.172 INFO kablam! 22 | use timing::duration_as_total_nanos;
Oct 31 17:30:54.172 INFO kablam!    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Oct 31 17:30:54.172 INFO kablam! 
Oct 31 17:30:54.172 INFO kablam! warning: unnecessary parentheses around `if` condition
Oct 31 17:30:54.172 INFO kablam!    --> src/snake_nn.rs:340:8
Oct 31 17:30:54.172 INFO kablam!     |
Oct 31 17:30:54.172 INFO kablam! 340 |     if (rng.gen_range(0.0, 1.0) <= random_move_prob) {
Oct 31 17:30:54.172 INFO kablam!     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses
Oct 31 17:30:54.172 INFO kablam!     |
Oct 31 17:30:54.172 INFO kablam!     = note: #[warn(unused_parens)] on by default
Oct 31 17:30:54.172 INFO kablam! 
Oct 31 17:30:54.172 INFO kablam! warning: unused import: `std::collections::hash_map::Entry`
Oct 31 17:30:54.172 INFO kablam!  --> src/timing.rs:2:5
Oct 31 17:30:54.172 INFO kablam!   |
Oct 31 17:30:54.172 INFO kablam! 2 | use std::collections::hash_map::Entry;
Oct 31 17:30:54.172 INFO kablam!   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Oct 31 17:30:54.172 INFO kablam! 
Oct 31 17:30:54.212 INFO kablam! warning: use of deprecated item 'std::thread::sleep_ms': replaced by `std::thread::sleep`
Oct 31 17:30:54.212 INFO kablam!    --> src/snake_nn.rs:176:13
Oct 31 17:30:54.212 INFO kablam!     |
Oct 31 17:30:54.212 INFO kablam! 176 |             thread::sleep_ms(SLEEP_INTERVAL_MS);
Oct 31 17:30:54.212 INFO kablam!     |             ^^^^^^^^^^^^^^^^
Oct 31 17:30:54.212 INFO kablam!     |
Oct 31 17:30:54.212 INFO kablam!     = note: #[warn(deprecated)] on by default
Oct 31 17:30:54.212 INFO kablam! 
Oct 31 17:30:54.212 INFO kablam! warning: use of deprecated item 'std::thread::sleep_ms': replaced by `std::thread::sleep`
Oct 31 17:30:54.212 INFO kablam!    --> src/snake_nn.rs:212:17
Oct 31 17:30:54.212 INFO kablam!     |
Oct 31 17:30:54.212 INFO kablam! 212 |                 thread::sleep_ms(SLEEP_INTERVAL_MS);
Oct 31 17:30:54.212 INFO kablam!     |                 ^^^^^^^^^^^^^^^^
Oct 31 17:30:54.212 INFO kablam! 
Oct 31 17:30:54.827 INFO kablam! warning: unused import: `rand::Rng`
Oct 31 17:30:54.827 INFO kablam!  --> src/snake.rs:1:5
Oct 31 17:30:54.827 INFO kablam!   |
Oct 31 17:30:54.827 INFO kablam! 1 | use rand::Rng;
Oct 31 17:30:54.827 INFO kablam!   |     ^^^^^^^^^
Oct 31 17:30:54.827 INFO kablam! 
Oct 31 17:30:54.885 INFO kablam! warning: unused variable: `hits`
Oct 31 17:30:54.886 INFO kablam!   --> src/mnist.rs:64:13
Oct 31 17:30:54.886 INFO kablam!    |
Oct 31 17:30:54.886 INFO kablam! 64 |     let mut hits = 0usize;
Oct 31 17:30:54.886 INFO kablam!    |             ^^^^ help: consider using `_hits` instead
Oct 31 17:30:54.886 INFO kablam!    |
Oct 31 17:30:54.886 INFO kablam!    = note: #[warn(unused_variables)] on by default
Oct 31 17:30:54.886 INFO kablam! 
Oct 31 17:30:54.886 INFO kablam! warning: unused variable: `predictor`
Oct 31 17:30:54.886 INFO kablam!   --> src/mnist.rs:98:30
Oct 31 17:30:54.886 INFO kablam!    |
Oct 31 17:30:54.886 INFO kablam! 98 |                 let (params, predictor, _) = parallel_trainer.borrow_network_parts();
Oct 31 17:30:54.886 INFO kablam!    |                              ^^^^^^^^^ help: consider using `_predictor` instead
Oct 31 17:30:54.886 INFO kablam! 
Oct 31 17:30:54.886 INFO kablam! warning: unused variable: `log_every_n`
Oct 31 17:30:54.886 INFO kablam!   --> src/mnist.rs:35:5
Oct 31 17:30:54.886 INFO kablam!    |
Oct 31 17:30:54.886 INFO kablam! 35 |     log_every_n: usize,
Oct 31 17:30:54.886 INFO kablam!    |     ^^^^^^^^^^^ help: consider using `_log_every_n` instead
Oct 31 17:30:54.886 INFO kablam! 
Oct 31 17:30:54.886 INFO kablam! warning: unused variable: `outputs`
Oct 31 17:30:54.886 INFO kablam!    --> src/parallel_trainer.rs:150:21
Oct 31 17:30:54.886 INFO kablam!     |
Oct 31 17:30:54.886 INFO kablam! 150 |                 let outputs = local_nn_predictor
Oct 31 17:30:54.886 INFO kablam!     |                     ^^^^^^^ help: consider using `_outputs` instead
Oct 31 17:30:54.886 INFO kablam! 
Oct 31 17:30:54.886 INFO kablam! warning: unused variable: `iters`
Oct 31 17:30:54.886 INFO kablam!    --> src/snake.rs:168:21
Oct 31 17:30:54.886 INFO kablam!     |
Oct 31 17:30:54.886 INFO kablam! 168 |             let mut iters = 0;
Oct 31 17:30:54.886 INFO kablam!     |                     ^^^^^ help: consider using `_iters` instead
Oct 31 17:30:54.886 INFO kablam! 
Oct 31 17:30:54.886 INFO kablam! warning: unused variable: `epoch_no`
Oct 31 17:30:54.886 INFO kablam!   --> src/snake_nn.rs:73:9
Oct 31 17:30:54.886 INFO kablam!    |
Oct 31 17:30:54.886 INFO kablam! 73 |     for epoch_no in 0..num_epochs {
Oct 31 17:30:54.886 INFO kablam!    |         ^^^^^^^^ help: consider using `_epoch_no` instead
Oct 31 17:30:54.886 INFO kablam! 
Oct 31 17:30:54.886 INFO kablam! warning: unused variable: `predictor`
Oct 31 17:30:54.886 INFO kablam!   --> src/snake_nn.rs:90:30
Oct 31 17:30:54.886 INFO kablam!    |
Oct 31 17:30:54.886 INFO kablam! 90 |                 let (params, predictor, _) = parallel_trainer.borrow_network_parts();
Oct 31 17:30:54.886 INFO kablam!    |                              ^^^^^^^^^ help: consider using `_predictor` instead
Oct 31 17:30:54.886 INFO kablam! 
Oct 31 17:30:54.886 INFO kablam! warning: unused variable: `predictor`
Oct 31 17:30:54.886 INFO kablam!    --> src/snake_nn.rs:109:18
Oct 31 17:30:54.886 INFO kablam!     |
Oct 31 17:30:54.886 INFO kablam! 109 |     let (params, predictor, _) = parallel_trainer.borrow_network_parts();
Oct 31 17:30:54.886 INFO kablam!     |                  ^^^^^^^^^ help: consider using `_predictor` instead
Oct 31 17:30:54.886 INFO kablam! 
Oct 31 17:30:54.891 INFO kablam! warning: unused variable: `max_gain`
Oct 31 17:30:54.891 INFO kablam!    --> src/snake_nn.rs:357:13
Oct 31 17:30:54.891 INFO kablam!     |
Oct 31 17:30:54.891 INFO kablam! 357 |     let (i, max_gain) = get_max_with_pos(snake_inputs_gains.as_slice());
Oct 31 17:30:54.891 INFO kablam!     |             ^^^^^^^^ help: consider using `_max_gain` instead
Oct 31 17:30:54.891 INFO kablam! 
Oct 31 17:30:54.891 INFO kablam! warning: unused variable: `is_next_action_optimal`
Oct 31 17:30:54.891 INFO kablam!    --> src/snake_nn.rs:503:13
Oct 31 17:30:54.891 INFO kablam!     |
Oct 31 17:30:54.891 INFO kablam! 503 |         let is_next_action_optimal = session[i - 1].is_optimal;
Oct 31 17:30:54.891 INFO kablam!     |             ^^^^^^^^^^^^^^^^^^^^^^ help: consider using `_is_next_action_optimal` instead
Oct 31 17:30:54.891 INFO kablam! 
Oct 31 17:30:54.891 INFO kablam! warning: unused variable: `i`
Oct 31 17:30:54.891 INFO kablam!    --> src/snake_nn.rs:530:9
Oct 31 17:30:54.891 INFO kablam!     |
Oct 31 17:30:54.891 INFO kablam! 530 |     for i in 0..MAP_WIDTH * MAP_HEIGHT - 1 {
Oct 31 17:30:54.891 INFO kablam!     |         ^ help: consider using `_i` instead
Oct 31 17:30:54.891 INFO kablam! 
Oct 31 17:30:54.891 INFO kablam! warning: unused variable: `matches`
Oct 31 17:30:54.891 INFO kablam!   --> src/main.rs:53:24
Oct 31 17:30:54.891 INFO kablam!    |
Oct 31 17:30:54.891 INFO kablam! 53 | fn execute_mnist_train(matches: &ArgMatches, submatches: &ArgMatches) {
Oct 31 17:30:54.891 INFO kablam!    |                        ^^^^^^^ help: consider using `_matches` instead
Oct 31 17:30:54.891 INFO kablam! 
Oct 31 17:30:54.891 INFO kablam! warning: unused variable: `matches`
Oct 31 17:30:54.891 INFO kablam!   --> src/main.rs:68:22
Oct 31 17:30:54.891 INFO kablam!    |
Oct 31 17:30:54.891 INFO kablam! 68 | fn execute_snake_new(matches: &ArgMatches, submatches: &ArgMatches) {
Oct 31 17:30:54.891 INFO kablam!    |                      ^^^^^^^ help: consider using `_matches` instead
Oct 31 17:30:54.891 INFO kablam! 
Oct 31 17:30:54.891 INFO kablam! warning: unused variable: `matches`
Oct 31 17:30:54.891 INFO kablam!   --> src/main.rs:73:24
Oct 31 17:30:54.891 INFO kablam!    |
Oct 31 17:30:54.891 INFO kablam! 73 | fn execute_snake_train(matches: &ArgMatches, submatches: &ArgMatches) {
Oct 31 17:30:54.892 INFO kablam!    |                        ^^^^^^^ help: consider using `_matches` instead
Oct 31 17:30:54.892 INFO kablam! 
Oct 31 17:30:54.892 INFO kablam! warning: unused variable: `matches`
Oct 31 17:30:54.892 INFO kablam!   --> src/main.rs:93:22
Oct 31 17:30:54.892 INFO kablam!    |
Oct 31 17:30:54.892 INFO kablam! 93 | fn execute_snake_gen(matches: &ArgMatches, submatches: &ArgMatches) {
Oct 31 17:30:54.892 INFO kablam!    |                      ^^^^^^^ help: consider using `_matches` instead
Oct 31 17:30:54.892 INFO kablam! 
Oct 31 17:30:54.892 INFO kablam! warning: unused variable: `matches`
Oct 31 17:30:54.892 INFO kablam!    --> src/main.rs:101:23
Oct 31 17:30:54.892 INFO kablam!     |
Oct 31 17:30:54.892 INFO kablam! 101 | fn execute_snake_demo(matches: &ArgMatches, submatches: &ArgMatches) {
Oct 31 17:30:54.892 INFO kablam!     |                       ^^^^^^^ help: consider using `_matches` instead
Oct 31 17:30:54.892 INFO kablam! 
Oct 31 17:30:54.892 INFO kablam! warning: unused variable: `thread_no`
Oct 31 17:30:54.892 INFO kablam!   --> src/parallel_trainer.rs:46:13
Oct 31 17:30:54.892 INFO kablam!    |
Oct 31 17:30:54.892 INFO kablam! 46 |         for thread_no in 0..num_threads {
Oct 31 17:30:54.892 INFO kablam!    |             ^^^^^^^^^ help: consider using `_thread_no` instead
Oct 31 17:30:54.892 INFO kablam! 
Oct 31 17:30:54.973 INFO kablam! warning: variable does not need to be mutable
Oct 31 17:30:54.973 INFO kablam!   --> src/mnist.rs:64:9
Oct 31 17:30:54.973 INFO kablam!    |
Oct 31 17:30:54.973 INFO kablam! 64 |     let mut hits = 0usize;
Oct 31 17:30:54.973 INFO kablam!    |         ----^^^^
Oct 31 17:30:54.973 INFO kablam!    |         |
Oct 31 17:30:54.973 INFO kablam!    |         help: remove this `mut`
Oct 31 17:30:54.973 INFO kablam!    |
Oct 31 17:30:54.973 INFO kablam!    = note: #[warn(unused_mut)] on by default
Oct 31 17:30:54.973 INFO kablam! 
Oct 31 17:30:54.990 INFO kablam! warning: variable does not need to be mutable
Oct 31 17:30:54.990 INFO kablam!   --> src/network.rs:55:13
Oct 31 17:30:54.990 INFO kablam!    |
Oct 31 17:30:54.990 INFO kablam! 55 |         let mut nn: Self = serde_json::from_reader(&file).unwrap();
Oct 31 17:30:54.990 INFO kablam!    |             ----^^
Oct 31 17:30:54.990 INFO kablam!    |             |
Oct 31 17:30:54.990 INFO kablam!    |             help: remove this `mut`
Oct 31 17:30:54.990 INFO kablam! 
Oct 31 17:30:55.066 INFO kablam! warning: variable does not need to be mutable
Oct 31 17:30:55.066 INFO kablam!   --> src/parallel_trainer.rs:37:51
Oct 31 17:30:55.066 INFO kablam!    |
Oct 31 17:30:55.066 INFO kablam! 37 |         let (mut nn_parameters, mut nn_predictor, mut nn_trainer) = network.as_parts();
Oct 31 17:30:55.066 INFO kablam!    |                                                   ----^^^^^^^^^^
Oct 31 17:30:55.066 INFO kablam!    |                                                   |
Oct 31 17:30:55.066 INFO kablam!    |                                                   help: remove this `mut`
Oct 31 17:30:55.066 INFO kablam! 
Oct 31 17:30:55.066 INFO kablam! warning: variable does not need to be mutable
Oct 31 17:30:55.066 INFO kablam!   --> src/parallel_trainer.rs:37:33
Oct 31 17:30:55.066 INFO kablam!    |
Oct 31 17:30:55.066 INFO kablam! 37 |         let (mut nn_parameters, mut nn_predictor, mut nn_trainer) = network.as_parts();
Oct 31 17:30:55.066 INFO kablam!    |                                 ----^^^^^^^^^^^^
Oct 31 17:30:55.066 INFO kablam!    |                                 |
Oct 31 17:30:55.066 INFO kablam!    |                                 help: remove this `mut`
Oct 31 17:30:55.066 INFO kablam! 
Oct 31 17:30:55.066 INFO kablam! warning: variable does not need to be mutable
Oct 31 17:30:55.066 INFO kablam!   --> src/parallel_trainer.rs:37:14
Oct 31 17:30:55.066 INFO kablam!    |
Oct 31 17:30:55.066 INFO kablam! 37 |         let (mut nn_parameters, mut nn_predictor, mut nn_trainer) = network.as_parts();
Oct 31 17:30:55.066 INFO kablam!    |              ----^^^^^^^^^^^^^
Oct 31 17:30:55.066 INFO kablam!    |              |
Oct 31 17:30:55.066 INFO kablam!    |              help: remove this `mut`
Oct 31 17:30:55.066 INFO kablam! 
Oct 31 17:30:55.071 INFO kablam! warning: variable does not need to be mutable
Oct 31 17:30:55.071 INFO kablam!    --> src/parallel_trainer.rs:123:5
Oct 31 17:30:55.071 INFO kablam!     |
Oct 31 17:30:55.071 INFO kablam! 123 |     mut job_receiver: Arc<Mutex<Receiver<TrainingJob>>>,
Oct 31 17:30:55.071 INFO kablam!     |     ----^^^^^^^^^^^^
Oct 31 17:30:55.071 INFO kablam!     |     |
Oct 31 17:30:55.071 INFO kablam!     |     help: remove this `mut`
Oct 31 17:30:55.071 INFO kablam! 
Oct 31 17:30:55.071 INFO kablam! warning: variable does not need to be mutable
Oct 31 17:30:55.071 INFO kablam!    --> src/parallel_trainer.rs:124:5
Oct 31 17:30:55.071 INFO kablam!     |
Oct 31 17:30:55.071 INFO kablam! 124 |     mut output_sender: Sender<Arc<Mutex<NetworkTrainer>>>,
Oct 31 17:30:55.071 INFO kablam!     |     ----^^^^^^^^^^^^^
Oct 31 17:30:55.071 INFO kablam!     |     |
Oct 31 17:30:55.071 INFO kablam!     |     help: remove this `mut`
Oct 31 17:30:55.071 INFO kablam! 
Oct 31 17:30:55.071 INFO kablam! warning: variable does not need to be mutable
Oct 31 17:30:55.071 INFO kablam!    --> src/parallel_trainer.rs:126:5
Oct 31 17:30:55.071 INFO kablam!     |
Oct 31 17:30:55.071 INFO kablam! 126 |     mut local_nn_trainer: Arc<Mutex<NetworkTrainer>>,
Oct 31 17:30:55.071 INFO kablam!     |     ----^^^^^^^^^^^^^^^^
Oct 31 17:30:55.071 INFO kablam!     |     |
Oct 31 17:30:55.071 INFO kablam!     |     help: remove this `mut`
Oct 31 17:30:55.071 INFO kablam! 
Oct 31 17:30:55.123 INFO kablam! warning: variable does not need to be mutable
Oct 31 17:30:55.123 INFO kablam!   --> src/snake_nn.rs:57:9
Oct 31 17:30:55.123 INFO kablam!    |
Oct 31 17:30:55.123 INFO kablam! 57 |     let mut nn = network::Network::load_from_file(model_input_path);
Oct 31 17:30:55.123 INFO kablam!    |         ----^^
Oct 31 17:30:55.123 INFO kablam!    |         |
Oct 31 17:30:55.123 INFO kablam!    |         help: remove this `mut`
Oct 31 17:30:55.123 INFO kablam! 
Oct 31 17:30:55.127 INFO kablam! warning: variable does not need to be mutable
Oct 31 17:30:55.127 INFO kablam!    --> src/snake_nn.rs:131:21
Oct 31 17:30:55.127 INFO kablam!     |
Oct 31 17:30:55.127 INFO kablam! 131 |                 let mut state = GameState {
Oct 31 17:30:55.127 INFO kablam!     |                     ----^^^^^
Oct 31 17:30:55.127 INFO kablam!     |                     |
Oct 31 17:30:55.128 INFO kablam!     |                     help: remove this `mut`
Oct 31 17:30:55.128 INFO kablam! 
Oct 31 17:30:55.128 INFO kablam! warning: variable does not need to be mutable
Oct 31 17:30:55.128 INFO kablam!    --> src/snake_nn.rs:115:9
Oct 31 17:30:55.128 INFO kablam!     |
Oct 31 17:30:55.128 INFO kablam! 115 |     let mut nn = network::Network::load_from_file(model_path);
Oct 31 17:30:55.128 INFO kablam!     |         ----^^
Oct 31 17:30:55.128 INFO kablam!     |         |
Oct 31 17:30:55.128 INFO kablam!     |         help: remove this `mut`
Oct 31 17:30:55.128 INFO kablam! 
Oct 31 17:30:55.161 INFO kablam! warning: method is never used: `new_same_dim`
Oct 31 17:30:55.161 INFO kablam!   --> src/math.rs:21:5
Oct 31 17:30:55.161 INFO kablam!    |
Oct 31 17:30:55.161 INFO kablam! 21 |     pub fn new_same_dim(m: &Matrix) -> Self {
Oct 31 17:30:55.161 INFO kablam!    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Oct 31 17:30:55.161 INFO kablam!    |
Oct 31 17:30:55.161 INFO kablam!    = note: #[warn(dead_code)] on by default
Oct 31 17:30:55.161 INFO kablam! 
Oct 31 17:30:55.161 INFO kablam! warning: method is never used: `from_slice`
Oct 31 17:30:55.161 INFO kablam!   --> src/math.rs:27:5
Oct 31 17:30:55.161 INFO kablam!    |
Oct 31 17:30:55.161 INFO kablam! 27 |     pub fn from_slice(rows: usize, cols: usize, content: &[f64]) -> Self {
Oct 31 17:30:55.162 INFO kablam!    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Oct 31 17:30:55.162 INFO kablam! 
Oct 31 17:30:55.162 INFO kablam! warning: method is never used: `dot_vec`
Oct 31 17:30:55.162 INFO kablam!   --> src/math.rs:71:5
Oct 31 17:30:55.162 INFO kablam!    |
Oct 31 17:30:55.162 INFO kablam! 71 |     pub fn dot_vec(&self, vec: &Vector, res: &mut Vector) {
Oct 31 17:30:55.162 INFO kablam!    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Oct 31 17:30:55.162 INFO kablam! 
Oct 31 17:30:55.162 INFO kablam! warning: method is never used: `transpose`
Oct 31 17:30:55.162 INFO kablam!    --> src/math.rs:155:5
Oct 31 17:30:55.162 INFO kablam!     |
Oct 31 17:30:55.162 INFO kablam! 155 |     pub fn transpose(&self, res: &mut Matrix) {
Oct 31 17:30:55.162 INFO kablam!     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Oct 31 17:30:55.162 INFO kablam! 
Oct 31 17:30:55.162 INFO kablam! warning: method is never used: `from_slice`
Oct 31 17:30:55.162 INFO kablam!    --> src/math.rs:241:5
Oct 31 17:30:55.162 INFO kablam!     |
Oct 31 17:30:55.162 INFO kablam! 241 |     pub fn from_slice(content: &[f64]) -> Self {
Oct 31 17:30:55.162 INFO kablam!     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Oct 31 17:30:55.162 INFO kablam! 
Oct 31 17:30:55.162 INFO kablam! warning: method is never used: `empty`
Oct 31 17:30:55.162 INFO kablam!    --> src/math.rs:248:5
Oct 31 17:30:55.162 INFO kablam!     |
Oct 31 17:30:55.162 INFO kablam! 248 |     pub fn empty() -> Self {
Oct 31 17:30:55.162 INFO kablam!     |     ^^^^^^^^^^^^^^^^^^^^^^
Oct 31 17:30:55.162 INFO kablam! 
Oct 31 17:30:55.162 INFO kablam! warning: method is never used: `init_rand`
Oct 31 17:30:55.162 INFO kablam!    --> src/math.rs:267:5
Oct 31 17:30:55.162 INFO kablam!     |
Oct 31 17:30:55.162 INFO kablam! 267 |     pub fn init_rand(mut self) -> Self {
Oct 31 17:30:55.162 INFO kablam!     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Oct 31 17:30:55.162 INFO kablam! 
Oct 31 17:30:55.162 INFO kablam! warning: method is never used: `copy_from`
Oct 31 17:30:55.162 INFO kablam!    --> src/math.rs:286:5
Oct 31 17:30:55.162 INFO kablam!     |
Oct 31 17:30:55.162 INFO kablam! 286 |     pub fn copy_from(&mut self, v: &Vector) {
Oct 31 17:30:55.163 INFO kablam!     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Oct 31 17:30:55.163 INFO kablam! 
Oct 31 17:30:55.163 INFO kablam! warning: method is never used: `add`
Oct 31 17:30:55.163 INFO kablam!    --> src/math.rs:322:5
Oct 31 17:30:55.163 INFO kablam!     |
Oct 31 17:30:55.163 INFO kablam! 322 |     pub fn add(&mut self, v: &Vector) {
Oct 31 17:30:55.163 INFO kablam!     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Oct 31 17:30:55.163 INFO kablam! 
Oct 31 17:30:55.164 INFO kablam! warning: method is never used: `fill_rand`
Oct 31 17:30:55.164 INFO kablam!    --> src/math.rs:335:5
Oct 31 17:30:55.164 INFO kablam!     |
Oct 31 17:30:55.164 INFO kablam! 335 |     pub fn fill_rand(&mut self) {
Oct 31 17:30:55.164 INFO kablam!     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
Oct 31 17:30:55.164 INFO kablam! 
Oct 31 17:30:55.164 INFO kablam! warning: constant item is never used: `NANOS_IN_SECOND`
Oct 31 17:30:55.164 INFO kablam!   --> src/mnist.rs:28:1
Oct 31 17:30:55.164 INFO kablam!    |
Oct 31 17:30:55.164 INFO kablam! 28 | const NANOS_IN_SECOND: u64 = 1_000_000_000;
Oct 31 17:30:55.164 INFO kablam!    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Oct 31 17:30:55.164 INFO kablam! 
Oct 31 17:30:55.164 INFO kablam! warning: method is never used: `get_layer_mut`
Oct 31 17:30:55.164 INFO kablam!   --> src/network.rs:46:5
Oct 31 17:30:55.164 INFO kablam!    |
Oct 31 17:30:55.164 INFO kablam! 46 |     fn get_layer_mut(&mut self, id: LayerID) -> &mut Layer {
Oct 31 17:30:55.164 INFO kablam!    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Oct 31 17:30:55.165 INFO kablam! 
Oct 31 17:30:55.165 INFO kablam! warning: method is never used: `calc_layers_order`
Oct 31 17:30:55.165 INFO kablam!    --> src/network.rs:462:5
Oct 31 17:30:55.165 INFO kablam!     |
Oct 31 17:30:55.165 INFO kablam! 462 |     fn calc_layers_order(&self) -> Vec<LayerID> {
Oct 31 17:30:55.165 INFO kablam!     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Oct 31 17:30:55.165 INFO kablam! 
Oct 31 17:30:55.165 INFO kablam! warning: method is never used: `predict`
Oct 31 17:30:55.165 INFO kablam!    --> src/network.rs:466:5
Oct 31 17:30:55.165 INFO kablam!     |
Oct 31 17:30:55.165 INFO kablam! 466 |     pub fn predict(&mut self, input_data: &[f64]) -> &Vector {
Oct 31 17:30:55.165 INFO kablam!     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Oct 31 17:30:55.165 INFO kablam! 
Oct 31 17:30:55.165 INFO kablam! warning: method is never used: `backward_propagation`
Oct 31 17:30:55.165 INFO kablam!    --> src/network.rs:470:5
Oct 31 17:30:55.165 INFO kablam!     |
Oct 31 17:30:55.165 INFO kablam! 470 |     pub fn backward_propagation(&mut self, true_outputs: &Vector) {
Oct 31 17:30:55.165 INFO kablam!     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Oct 31 17:30:55.165 INFO kablam! 
Oct 31 17:30:55.165 INFO kablam! warning: method is never used: `apply_batch`
Oct 31 17:30:55.165 INFO kablam!    --> src/network.rs:530:5
Oct 31 17:30:55.165 INFO kablam!     |
Oct 31 17:30:55.165 INFO kablam! 530 |     pub fn apply_batch(&mut self) {
Oct 31 17:30:55.165 INFO kablam!     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Oct 31 17:30:55.165 INFO kablam! 
Oct 31 17:30:55.165 INFO kablam! warning: field is never used: `shared_training_data`
Oct 31 17:30:55.165 INFO kablam!   --> src/parallel_trainer.rs:22:5
Oct 31 17:30:55.165 INFO kablam!    |
Oct 31 17:30:55.165 INFO kablam! 22 |     shared_training_data: Arc<D>,
Oct 31 17:30:55.165 INFO kablam!    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Oct 31 17:30:55.165 INFO kablam! 
Oct 31 17:30:55.165 INFO kablam! warning: field is never used: `job_receiver`
Oct 31 17:30:55.165 INFO kablam!   --> src/parallel_trainer.rs:29:5
Oct 31 17:30:55.165 INFO kablam!    |
Oct 31 17:30:55.165 INFO kablam! 29 |     job_receiver: Arc<Mutex<Receiver<TrainingJob>>>,
Oct 31 17:30:55.165 INFO kablam!    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Oct 31 17:30:55.165 INFO kablam! 
Oct 31 17:30:55.165 INFO kablam! warning: field is never used: `output_sender`
Oct 31 17:30:55.165 INFO kablam!   --> src/parallel_trainer.rs:30:5
Oct 31 17:30:55.165 INFO kablam!    |
Oct 31 17:30:55.165 INFO kablam! 30 |     output_sender: Sender<Arc<Mutex<NetworkTrainer>>>,
Oct 31 17:30:55.165 INFO kablam!    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Oct 31 17:30:55.165 INFO kablam! 
Oct 31 17:30:55.165 INFO kablam! warning: field is never used: `join_handles`
Oct 31 17:30:55.165 INFO kablam!   --> src/parallel_trainer.rs:32:5
Oct 31 17:30:55.165 INFO kablam!    |
Oct 31 17:30:55.165 INFO kablam! 32 |     join_handles: Vec<JoinHandle<()>>,
Oct 31 17:30:55.165 INFO kablam!    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Oct 31 17:30:55.165 INFO kablam! 
Oct 31 17:30:55.165 INFO kablam! warning: function is never used: `teach_nn`
Oct 31 17:30:55.165 INFO kablam!    --> src/snake_nn.rs:384:1
Oct 31 17:30:55.165 INFO kablam!     |
Oct 31 17:30:55.165 INFO kablam! 384 | / fn teach_nn(
Oct 31 17:30:55.165 INFO kablam! 385 | |     nn: &mut network::Network,
Oct 31 17:30:55.165 INFO kablam! 386 | |     state: &GameState,
Oct 31 17:30:55.165 INFO kablam! 387 | |     snake_input: SnakeInput,
Oct 31 17:30:55.165 INFO kablam! ...   |
Oct 31 17:30:55.165 INFO kablam! 398 | |     nn.backward_propagation(&true_output_vec);
Oct 31 17:30:55.165 INFO kablam! 399 | | }
Oct 31 17:30:55.165 INFO kablam!     | |_^
Oct 31 17:30:55.165 INFO kablam! 
Oct 31 17:30:55.165 INFO kablam! warning: method is never used: `elapsed`
Oct 31 17:30:55.165 INFO kablam!   --> src/timing.rs:46:5
Oct 31 17:30:55.165 INFO kablam!    |
Oct 31 17:30:55.165 INFO kablam! 46 |     pub fn elapsed(&self, name: &str) -> time::Duration {
Oct 31 17:30:55.165 INFO kablam!    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Oct 31 17:30:55.165 INFO kablam! 
Oct 31 17:30:55.179 INFO kablam! warning: unused `std::result::Result` that must be used
Oct 31 17:30:55.179 INFO kablam!   --> src/parallel_trainer.rs:85:13
Oct 31 17:30:55.179 INFO kablam!    |
Oct 31 17:30:55.179 INFO kablam! 85 | /             self.job_sender.send(TrainingJob {
Oct 31 17:30:55.179 INFO kablam! 86 | |                 examples_indices: chunk,
Oct 31 17:30:55.179 INFO kablam! 87 | |                 network_parameters: self.shared_nn_parameters.clone(),
Oct 31 17:30:55.179 INFO kablam! 88 | |             });
Oct 31 17:30:55.179 INFO kablam!    | |_______________^
Oct 31 17:30:55.179 INFO kablam!    |
Oct 31 17:30:55.179 INFO kablam!    = note: #[warn(unused_must_use)] on by default
Oct 31 17:30:55.179 INFO kablam!    = note: this `Result` may be an `Err` variant, which should be handled
Oct 31 17:30:55.179 INFO kablam! 
Oct 31 17:30:55.179 INFO kablam! warning: unused `std::result::Result` that must be used
Oct 31 17:30:55.179 INFO kablam!    --> src/parallel_trainer.rs:160:9
Oct 31 17:30:55.179 INFO kablam!     |
Oct 31 17:30:55.179 INFO kablam! 160 |         output_sender.send(local_nn_trainer.clone());
Oct 31 17:30:55.179 INFO kablam!     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Oct 31 17:30:55.179 INFO kablam!     |
Oct 31 17:30:55.179 INFO kablam!     = note: this `Result` may be an `Err` variant, which should be handled
Oct 31 17:30:55.179 INFO kablam! 
Oct 31 17:30:55.179 INFO kablam! warning: unused `std::result::Result` that must be used
Oct 31 17:30:55.179 INFO kablam!    --> src/snake.rs:118:9
Oct 31 17:30:55.179 INFO kablam!     |
Oct 31 17:30:55.179 INFO kablam! 118 |         writer.write("\n".as_bytes());
Oct 31 17:30:55.179 INFO kablam!     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Oct 31 17:30:55.179 INFO kablam!     |
Oct 31 17:30:55.179 INFO kablam!     = note: this `Result` may be an `Err` variant, which should be handled
Oct 31 17:30:55.179 INFO kablam! 
Oct 31 17:30:55.179 INFO kablam! warning: unused `std::result::Result` that must be used
Oct 31 17:30:55.179 INFO kablam!    --> src/snake.rs:120:5
Oct 31 17:30:55.179 INFO kablam!     |
Oct 31 17:30:55.179 INFO kablam! 120 |     writer.flush();
Oct 31 17:30:55.179 INFO kablam!     |     ^^^^^^^^^^^^^^^
Oct 31 17:30:55.179 INFO kablam!     |
Oct 31 17:30:55.179 INFO kablam!     = note: this `Result` may be an `Err` variant, which should be handled
Oct 31 17:30:55.179 INFO kablam! 
Oct 31 17:30:55.179 INFO kablam! warning: unused `std::result::Result` that must be used
Oct 31 17:30:55.179 INFO kablam!    --> src/snake.rs:131:5
Oct 31 17:30:55.179 INFO kablam!     |
Oct 31 17:30:55.179 INFO kablam! 131 |     writer.write(character.as_bytes());
Oct 31 17:30:55.179 INFO kablam!     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Oct 31 17:30:55.179 INFO kablam!     |
Oct 31 17:30:55.179 INFO kablam!     = note: this `Result` may be an `Err` variant, which should be handled
Oct 31 17:30:55.179 INFO kablam! 
Oct 31 17:30:55.179 INFO kablam! warning: unused `std::result::Result` that must be used
Oct 31 17:30:55.179 INFO kablam!    --> src/snake_nn.rs:150:9
Oct 31 17:30:55.179 INFO kablam!     |
Oct 31 17:30:55.179 INFO kablam! 150 |         jh.join();
Oct 31 17:30:55.179 INFO kablam!     |         ^^^^^^^^^^
Oct 31 17:30:55.179 INFO kablam!     |
Oct 31 17:30:55.179 INFO kablam!     = note: this `Result` may be an `Err` variant, which should be handled
Oct 31 17:30:55.179 INFO kablam! 
Oct 31 17:30:55.179 INFO kablam! warning: the `game_over:` in this pattern is redundant
Oct 31 17:30:55.179 INFO kablam!    --> src/snake_nn.rs:203:17
Oct 31 17:30:55.179 INFO kablam!     |
Oct 31 17:30:55.180 INFO kablam! 203 |                 game_over: game_over,
Oct 31 17:30:55.180 INFO kablam!     |                 ----------^^^^^^^^^^
Oct 31 17:30:55.180 INFO kablam!     |                 |
Oct 31 17:30:55.180 INFO kablam!     |                 help: remove this
Oct 31 17:30:55.180 INFO kablam!     |
Oct 31 17:30:55.180 INFO kablam!     = note: #[warn(non_shorthand_field_patterns)] on by default
Oct 31 17:30:55.180 INFO kablam! 
Oct 31 17:30:55.180 INFO kablam! warning: the `game_over:` in this pattern is redundant
Oct 31 17:30:55.180 INFO kablam!    --> src/snake_nn.rs:271:13
Oct 31 17:30:55.180 INFO kablam!     |
Oct 31 17:30:55.180 INFO kablam! 271 |             game_over: game_over,
Oct 31 17:30:55.180 INFO kablam!     |             ----------^^^^^^^^^^
Oct 31 17:30:55.180 INFO kablam!     |             |
Oct 31 17:30:55.180 INFO kablam!     |             help: remove this
Oct 31 17:30:55.180 INFO kablam! 
Oct 31 17:30:55.180 INFO kablam! warning: the `game_over:` in this pattern is redundant
Oct 31 17:30:55.180 INFO kablam!    --> src/snake_nn.rs:308:17
Oct 31 17:30:55.180 INFO kablam!     |
Oct 31 17:30:55.180 INFO kablam! 308 |                 game_over: game_over,
Oct 31 17:30:55.180 INFO kablam!     |                 ----------^^^^^^^^^^
Oct 31 17:30:55.180 INFO kablam!     |                 |
Oct 31 17:30:55.180 INFO kablam!     |                 help: remove this
Oct 31 17:30:55.180 INFO kablam! 
Oct 31 17:30:55.183 INFO kablam! warning: unused attribute
Oct 31 17:30:55.183 INFO kablam!  --> src/snake_nn.rs:1:1
Oct 31 17:30:55.183 INFO kablam!   |
Oct 31 17:30:55.183 INFO kablam! 1 | #![feature(test)]
Oct 31 17:30:55.183 INFO kablam!   | ^^^^^^^^^^^^^^^^^
Oct 31 17:30:55.183 INFO kablam!   |
Oct 31 17:30:55.183 INFO kablam!   = note: #[warn(unused_attributes)] on by default
Oct 31 17:30:55.183 INFO kablam! 
Oct 31 17:30:55.183 INFO kablam! warning: crate-level attribute should be in the root module
Oct 31 17:30:55.183 INFO kablam!  --> src/snake_nn.rs:1:1
Oct 31 17:30:55.183 INFO kablam!   |
Oct 31 17:30:55.183 INFO kablam! 1 | #![feature(test)]
Oct 31 17:30:55.183 INFO kablam!   | ^^^^^^^^^^^^^^^^^
Oct 31 17:30:55.183 INFO kablam! 
Oct 31 17:30:58.678 INFO kablam!     Finished dev [unoptimized + debuginfo] target(s) in 40.75s
Oct 31 17:30:58.688 INFO kablam! su: No module specific data is present
Oct 31 17:30:58.946 INFO running `"docker" "rm" "-f" "19fb31a96cd517bf02fdb87168bc3f98a02fd154e2e5f43d796081204a9b9087"`
Oct 31 17:30:59.084 INFO blam! 19fb31a96cd517bf02fdb87168bc3f98a02fd154e2e5f43d796081204a9b9087
Oct 31 17:30:59.087 INFO running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/beta-1.31-1/worker-3/beta-2018-10-30:/target:rw,Z" "-v" "/mnt/big/crater/work/local/test-source/worker-3/beta-1.31-1/beta-2018-10-30:/source:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/source" "-e" "USER_ID=1000" "-e" "CMD=cargo +beta-2018-10-30 test --frozen --no-run" "-e" "CARGO_TARGET_DIR=/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/cargo-home" "-e" "RUSTUP_HOME=/rustup-home" "-m" "1536M" "--network" "none" "crater"`
Oct 31 17:30:59.349 INFO blam! 59836311c1d9a78e759b792f3f297bc71c57d67695fbc5ff9651d83ee1d538fe
Oct 31 17:30:59.350 INFO running `"docker" "start" "-a" "59836311c1d9a78e759b792f3f297bc71c57d67695fbc5ff9651d83ee1d538fe"`
Oct 31 17:31:00.307 INFO kablam! usermod: no changes
Oct 31 17:31:00.467 INFO kablam!    Compiling nnrs v0.1.0 (/source)
Oct 31 17:31:01.310 INFO kablam! warning: unused import: `std::time`
Oct 31 17:31:01.310 INFO kablam!  --> src/mnist.rs:2:5
Oct 31 17:31:01.310 INFO kablam!   |
Oct 31 17:31:01.310 INFO kablam! 2 | use std::time;
Oct 31 17:31:01.310 INFO kablam!   |     ^^^^^^^^^
Oct 31 17:31:01.311 INFO kablam!   |
Oct 31 17:31:01.311 INFO kablam!   = note: #[warn(unused_imports)] on by default
Oct 31 17:31:01.311 INFO kablam! 
Oct 31 17:31:01.311 INFO kablam! warning: unused import: `math`
Oct 31 17:31:01.311 INFO kablam!   --> src/mnist.rs:15:5
Oct 31 17:31:01.311 INFO kablam!    |
Oct 31 17:31:01.311 INFO kablam! 15 | use math;
Oct 31 17:31:01.311 INFO kablam!    |     ^^^^
Oct 31 17:31:01.311 INFO kablam! 
Oct 31 17:31:01.311 INFO kablam! warning: unused import: `math::Matrix`
Oct 31 17:31:01.311 INFO kablam!   --> src/mnist.rs:16:5
Oct 31 17:31:01.311 INFO kablam!    |
Oct 31 17:31:01.311 INFO kablam! 16 | use math::Matrix;
Oct 31 17:31:01.311 INFO kablam!    |     ^^^^^^^^^^^^
Oct 31 17:31:01.311 INFO kablam! 
Oct 31 17:31:01.311 INFO kablam! warning: unused import: `timing`
Oct 31 17:31:01.311 INFO kablam!   --> src/mnist.rs:19:5
Oct 31 17:31:01.311 INFO kablam!    |
Oct 31 17:31:01.311 INFO kablam! 19 | use timing;
Oct 31 17:31:01.311 INFO kablam!    |     ^^^^^^
Oct 31 17:31:01.311 INFO kablam! 
Oct 31 17:31:01.311 INFO kablam! warning: unused import: `std::mem`
Oct 31 17:31:01.311 INFO kablam!  --> src/network.rs:4:5
Oct 31 17:31:01.312 INFO kablam!   |
Oct 31 17:31:01.312 INFO kablam! 4 | use std::mem;
Oct 31 17:31:01.312 INFO kablam!   |     ^^^^^^^^
Oct 31 17:31:01.312 INFO kablam! 
Oct 31 17:31:01.313 INFO kablam! warning: unused import: `timing::Timing`
Oct 31 17:31:01.313 INFO kablam!  --> src/parallel_trainer.rs:9:5
Oct 31 17:31:01.313 INFO kablam!   |
Oct 31 17:31:01.313 INFO kablam! 9 | use timing::Timing;
Oct 31 17:31:01.313 INFO kablam!   |     ^^^^^^^^^^^^^^
Oct 31 17:31:01.313 INFO kablam! 
Oct 31 17:31:01.314 INFO kablam! warning: unused import: `serde_json`
Oct 31 17:31:01.314 INFO kablam!  --> src/snake.rs:6:5
Oct 31 17:31:01.314 INFO kablam!   |
Oct 31 17:31:01.314 INFO kablam! 6 | use serde_json;
Oct 31 17:31:01.314 INFO kablam!   |     ^^^^^^^^^^
Oct 31 17:31:01.314 INFO kablam! 
Oct 31 17:31:01.316 INFO kablam! warning: unused import: `Network`
Oct 31 17:31:01.316 INFO kablam!  --> src/snake_nn.rs:4:15
Oct 31 17:31:01.316 INFO kablam!   |
Oct 31 17:31:01.316 INFO kablam! 4 | use network::{Network, NetworkParameters, NetworkPredictor};
Oct 31 17:31:01.316 INFO kablam!   |               ^^^^^^^
Oct 31 17:31:01.316 INFO kablam! 
Oct 31 17:31:01.316 INFO kablam! warning: unused imports: `IndependentSample`, `Range`
Oct 31 17:31:01.316 INFO kablam!  --> src/snake_nn.rs:7:27
Oct 31 17:31:01.316 INFO kablam!   |
Oct 31 17:31:01.316 INFO kablam! 7 | use rand::distributions::{IndependentSample, Range};
Oct 31 17:31:01.316 INFO kablam!   |                           ^^^^^^^^^^^^^^^^^  ^^^^^
Oct 31 17:31:01.316 INFO kablam! 
Oct 31 17:31:01.316 INFO kablam! warning: unused import: `std::sync::mpsc`
Oct 31 17:31:01.316 INFO kablam!   --> src/snake_nn.rs:18:5
Oct 31 17:31:01.316 INFO kablam!    |
Oct 31 17:31:01.316 INFO kablam! 18 | use std::sync::mpsc;
Oct 31 17:31:01.316 INFO kablam!    |     ^^^^^^^^^^^^^^^
Oct 31 17:31:01.316 INFO kablam! 
Oct 31 17:31:01.316 INFO kablam! warning: unused imports: `Receiver`, `Sender`
Oct 31 17:31:01.316 INFO kablam!   --> src/snake_nn.rs:19:23
Oct 31 17:31:01.316 INFO kablam!    |
Oct 31 17:31:01.316 INFO kablam! 19 | use std::sync::mpsc::{Receiver, Sender};
Oct 31 17:31:01.316 INFO kablam!    |                       ^^^^^^^^  ^^^^^^
Oct 31 17:31:01.316 INFO kablam! 
Oct 31 17:31:01.316 INFO kablam! warning: unused import: `timing::duration_as_total_nanos`
Oct 31 17:31:01.316 INFO kablam!   --> src/snake_nn.rs:22:5
Oct 31 17:31:01.316 INFO kablam!    |
Oct 31 17:31:01.316 INFO kablam! 22 | use timing::duration_as_total_nanos;
Oct 31 17:31:01.316 INFO kablam!    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Oct 31 17:31:01.316 INFO kablam! 
Oct 31 17:31:01.317 INFO kablam! warning: unnecessary parentheses around `if` condition
Oct 31 17:31:01.317 INFO kablam!    --> src/snake_nn.rs:340:8
Oct 31 17:31:01.317 INFO kablam!     |
Oct 31 17:31:01.317 INFO kablam! 340 |     if (rng.gen_range(0.0, 1.0) <= random_move_prob) {
Oct 31 17:31:01.317 INFO kablam!     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses
Oct 31 17:31:01.317 INFO kablam!     |
Oct 31 17:31:01.317 INFO kablam!     = note: #[warn(unused_parens)] on by default
Oct 31 17:31:01.317 INFO kablam! 
Oct 31 17:31:01.317 INFO kablam! warning: unused import: `std::collections::hash_map::Entry`
Oct 31 17:31:01.317 INFO kablam!  --> src/timing.rs:2:5
Oct 31 17:31:01.317 INFO kablam!   |
Oct 31 17:31:01.317 INFO kablam! 2 | use std::collections::hash_map::Entry;
Oct 31 17:31:01.317 INFO kablam!   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Oct 31 17:31:01.317 INFO kablam! 
Oct 31 17:31:01.375 INFO kablam! warning: use of deprecated item 'std::thread::sleep_ms': replaced by `std::thread::sleep`
Oct 31 17:31:01.375 INFO kablam!    --> src/snake_nn.rs:176:13
Oct 31 17:31:01.375 INFO kablam!     |
Oct 31 17:31:01.375 INFO kablam! 176 |             thread::sleep_ms(SLEEP_INTERVAL_MS);
Oct 31 17:31:01.375 INFO kablam!     |             ^^^^^^^^^^^^^^^^
Oct 31 17:31:01.375 INFO kablam!     |
Oct 31 17:31:01.375 INFO kablam!     = note: #[warn(deprecated)] on by default
Oct 31 17:31:01.375 INFO kablam! 
Oct 31 17:31:01.375 INFO kablam! warning: use of deprecated item 'std::thread::sleep_ms': replaced by `std::thread::sleep`
Oct 31 17:31:01.375 INFO kablam!    --> src/snake_nn.rs:212:17
Oct 31 17:31:01.375 INFO kablam!     |
Oct 31 17:31:01.375 INFO kablam! 212 |                 thread::sleep_ms(SLEEP_INTERVAL_MS);
Oct 31 17:31:01.375 INFO kablam!     |                 ^^^^^^^^^^^^^^^^
Oct 31 17:31:01.375 INFO kablam! 
Oct 31 17:31:02.087 INFO kablam! warning: unused import: `rand::Rng`
Oct 31 17:31:02.087 INFO kablam!  --> src/snake.rs:1:5
Oct 31 17:31:02.087 INFO kablam!   |
Oct 31 17:31:02.087 INFO kablam! 1 | use rand::Rng;
Oct 31 17:31:02.087 INFO kablam!   |     ^^^^^^^^^
Oct 31 17:31:02.087 INFO kablam! 
Oct 31 17:31:02.171 INFO kablam! warning: unused variable: `hits`
Oct 31 17:31:02.171 INFO kablam!   --> src/mnist.rs:64:13
Oct 31 17:31:02.171 INFO kablam!    |
Oct 31 17:31:02.171 INFO kablam! 64 |     let mut hits = 0usize;
Oct 31 17:31:02.171 INFO kablam!    |             ^^^^ help: consider using `_hits` instead
Oct 31 17:31:02.171 INFO kablam!    |
Oct 31 17:31:02.171 INFO kablam!    = note: #[warn(unused_variables)] on by default
Oct 31 17:31:02.171 INFO kablam! 
Oct 31 17:31:02.171 INFO kablam! warning: unused variable: `predictor`
Oct 31 17:31:02.171 INFO kablam!   --> src/mnist.rs:98:30
Oct 31 17:31:02.171 INFO kablam!    |
Oct 31 17:31:02.171 INFO kablam! 98 |                 let (params, predictor, _) = parallel_trainer.borrow_network_parts();
Oct 31 17:31:02.171 INFO kablam!    |                              ^^^^^^^^^ help: consider using `_predictor` instead
Oct 31 17:31:02.171 INFO kablam! 
Oct 31 17:31:02.171 INFO kablam! warning: unused variable: `log_every_n`
Oct 31 17:31:02.171 INFO kablam!   --> src/mnist.rs:35:5
Oct 31 17:31:02.171 INFO kablam!    |
Oct 31 17:31:02.171 INFO kablam! 35 |     log_every_n: usize,
Oct 31 17:31:02.171 INFO kablam!    |     ^^^^^^^^^^^ help: consider using `_log_every_n` instead
Oct 31 17:31:02.171 INFO kablam! 
Oct 31 17:31:02.171 INFO kablam! warning: unused variable: `outputs`
Oct 31 17:31:02.171 INFO kablam!    --> src/parallel_trainer.rs:150:21
Oct 31 17:31:02.171 INFO kablam!     |
Oct 31 17:31:02.171 INFO kablam! 150 |                 let outputs = local_nn_predictor
Oct 31 17:31:02.171 INFO kablam!     |                     ^^^^^^^ help: consider using `_outputs` instead
Oct 31 17:31:02.171 INFO kablam! 
Oct 31 17:31:02.171 INFO kablam! warning: unused variable: `iters`
Oct 31 17:31:02.171 INFO kablam!    --> src/snake.rs:168:21
Oct 31 17:31:02.171 INFO kablam!     |
Oct 31 17:31:02.171 INFO kablam! 168 |             let mut iters = 0;
Oct 31 17:31:02.171 INFO kablam!     |                     ^^^^^ help: consider using `_iters` instead
Oct 31 17:31:02.171 INFO kablam! 
Oct 31 17:31:02.171 INFO kablam! warning: unused variable: `epoch_no`
Oct 31 17:31:02.171 INFO kablam!   --> src/snake_nn.rs:73:9
Oct 31 17:31:02.171 INFO kablam!    |
Oct 31 17:31:02.171 INFO kablam! 73 |     for epoch_no in 0..num_epochs {
Oct 31 17:31:02.171 INFO kablam!    |         ^^^^^^^^ help: consider using `_epoch_no` instead
Oct 31 17:31:02.171 INFO kablam! 
Oct 31 17:31:02.171 INFO kablam! warning: unused variable: `predictor`
Oct 31 17:31:02.171 INFO kablam!   --> src/snake_nn.rs:90:30
Oct 31 17:31:02.171 INFO kablam!    |
Oct 31 17:31:02.171 INFO kablam! 90 |                 let (params, predictor, _) = parallel_trainer.borrow_network_parts();
Oct 31 17:31:02.171 INFO kablam!    |                              ^^^^^^^^^ help: consider using `_predictor` instead
Oct 31 17:31:02.171 INFO kablam! 
Oct 31 17:31:02.171 INFO kablam! warning: unused variable: `predictor`
Oct 31 17:31:02.171 INFO kablam!    --> src/snake_nn.rs:109:18
Oct 31 17:31:02.171 INFO kablam!     |
Oct 31 17:31:02.171 INFO kablam! 109 |     let (params, predictor, _) = parallel_trainer.borrow_network_parts();
Oct 31 17:31:02.171 INFO kablam!     |                  ^^^^^^^^^ help: consider using `_predictor` instead
Oct 31 17:31:02.171 INFO kablam! 
Oct 31 17:31:02.171 INFO kablam! warning: unused variable: `max_gain`
Oct 31 17:31:02.171 INFO kablam!    --> src/snake_nn.rs:357:13
Oct 31 17:31:02.171 INFO kablam!     |
Oct 31 17:31:02.171 INFO kablam! 357 |     let (i, max_gain) = get_max_with_pos(snake_inputs_gains.as_slice());
Oct 31 17:31:02.171 INFO kablam!     |             ^^^^^^^^ help: consider using `_max_gain` instead
Oct 31 17:31:02.171 INFO kablam! 
Oct 31 17:31:02.171 INFO kablam! warning: unused variable: `is_next_action_optimal`
Oct 31 17:31:02.172 INFO kablam!    --> src/snake_nn.rs:503:13
Oct 31 17:31:02.172 INFO kablam!     |
Oct 31 17:31:02.172 INFO kablam! 503 |         let is_next_action_optimal = session[i - 1].is_optimal;
Oct 31 17:31:02.172 INFO kablam!     |             ^^^^^^^^^^^^^^^^^^^^^^ help: consider using `_is_next_action_optimal` instead
Oct 31 17:31:02.172 INFO kablam! 
Oct 31 17:31:02.172 INFO kablam! warning: unused variable: `i`
Oct 31 17:31:02.172 INFO kablam!    --> src/snake_nn.rs:530:9
Oct 31 17:31:02.172 INFO kablam!     |
Oct 31 17:31:02.172 INFO kablam! 530 |     for i in 0..MAP_WIDTH * MAP_HEIGHT - 1 {
Oct 31 17:31:02.172 INFO kablam!     |         ^ help: consider using `_i` instead
Oct 31 17:31:02.172 INFO kablam! 
Oct 31 17:31:02.172 INFO kablam! warning: unused variable: `matches`
Oct 31 17:31:02.172 INFO kablam!   --> src/main.rs:53:24
Oct 31 17:31:02.172 INFO kablam!    |
Oct 31 17:31:02.172 INFO kablam! 53 | fn execute_mnist_train(matches: &ArgMatches, submatches: &ArgMatches) {
Oct 31 17:31:02.172 INFO kablam!    |                        ^^^^^^^ help: consider using `_matches` instead
Oct 31 17:31:02.172 INFO kablam! 
Oct 31 17:31:02.172 INFO kablam! warning: unused variable: `matches`
Oct 31 17:31:02.172 INFO kablam!   --> src/main.rs:68:22
Oct 31 17:31:02.172 INFO kablam!    |
Oct 31 17:31:02.172 INFO kablam! 68 | fn execute_snake_new(matches: &ArgMatches, submatches: &ArgMatches) {
Oct 31 17:31:02.172 INFO kablam!    |                      ^^^^^^^ help: consider using `_matches` instead
Oct 31 17:31:02.172 INFO kablam! 
Oct 31 17:31:02.172 INFO kablam! warning: unused variable: `matches`
Oct 31 17:31:02.172 INFO kablam!   --> src/main.rs:73:24
Oct 31 17:31:02.172 INFO kablam!    |
Oct 31 17:31:02.172 INFO kablam! 73 | fn execute_snake_train(matches: &ArgMatches, submatches: &ArgMatches) {
Oct 31 17:31:02.172 INFO kablam!    |                        ^^^^^^^ help: consider using `_matches` instead
Oct 31 17:31:02.172 INFO kablam! 
Oct 31 17:31:02.172 INFO kablam! warning: unused variable: `matches`
Oct 31 17:31:02.172 INFO kablam!   --> src/main.rs:93:22
Oct 31 17:31:02.172 INFO kablam!    |
Oct 31 17:31:02.172 INFO kablam! 93 | fn execute_snake_gen(matches: &ArgMatches, submatches: &ArgMatches) {
Oct 31 17:31:02.172 INFO kablam!    |                      ^^^^^^^ help: consider using `_matches` instead
Oct 31 17:31:02.172 INFO kablam! 
Oct 31 17:31:02.172 INFO kablam! warning: unused variable: `matches`
Oct 31 17:31:02.172 INFO kablam!    --> src/main.rs:101:23
Oct 31 17:31:02.172 INFO kablam!     |
Oct 31 17:31:02.172 INFO kablam! 101 | fn execute_snake_demo(matches: &ArgMatches, submatches: &ArgMatches) {
Oct 31 17:31:02.172 INFO kablam!     |                       ^^^^^^^ help: consider using `_matches` instead
Oct 31 17:31:02.172 INFO kablam! 
Oct 31 17:31:02.172 INFO kablam! warning: unused variable: `layer_order`
Oct 31 17:31:02.172 INFO kablam!    --> src/network.rs:645:13
Oct 31 17:31:02.172 INFO kablam!     |
Oct 31 17:31:02.172 INFO kablam! 645 |         let layer_order = nn.calc_layers_order();
Oct 31 17:31:02.172 INFO kablam!     |             ^^^^^^^^^^^ help: consider using `_layer_order` instead
Oct 31 17:31:02.172 INFO kablam! 
Oct 31 17:31:02.172 INFO kablam! warning: unused variable: `thread_no`
Oct 31 17:31:02.172 INFO kablam!   --> src/parallel_trainer.rs:46:13
Oct 31 17:31:02.172 INFO kablam!    |
Oct 31 17:31:02.172 INFO kablam! 46 |         for thread_no in 0..num_threads {
Oct 31 17:31:02.172 INFO kablam!    |             ^^^^^^^^^ help: consider using `_thread_no` instead
Oct 31 17:31:02.172 INFO kablam! 
Oct 31 17:31:02.275 INFO kablam! warning: variable does not need to be mutable
Oct 31 17:31:02.275 INFO kablam!   --> src/mnist.rs:64:9
Oct 31 17:31:02.275 INFO kablam!    |
Oct 31 17:31:02.275 INFO kablam! 64 |     let mut hits = 0usize;
Oct 31 17:31:02.275 INFO kablam!    |         ----^^^^
Oct 31 17:31:02.275 INFO kablam!    |         |
Oct 31 17:31:02.275 INFO kablam!    |         help: remove this `mut`
Oct 31 17:31:02.275 INFO kablam!    |
Oct 31 17:31:02.275 INFO kablam!    = note: #[warn(unused_mut)] on by default
Oct 31 17:31:02.275 INFO kablam! 
Oct 31 17:31:02.299 INFO kablam! warning: variable does not need to be mutable
Oct 31 17:31:02.299 INFO kablam!   --> src/network.rs:55:13
Oct 31 17:31:02.299 INFO kablam!    |
Oct 31 17:31:02.299 INFO kablam! 55 |         let mut nn: Self = serde_json::from_reader(&file).unwrap();
Oct 31 17:31:02.299 INFO kablam!    |             ----^^
Oct 31 17:31:02.299 INFO kablam!    |             |
Oct 31 17:31:02.299 INFO kablam!    |             help: remove this `mut`
Oct 31 17:31:02.299 INFO kablam! 
Oct 31 17:31:02.383 INFO kablam! warning: variable does not need to be mutable
Oct 31 17:31:02.383 INFO kablam!   --> src/parallel_trainer.rs:37:51
Oct 31 17:31:02.383 INFO kablam!    |
Oct 31 17:31:02.383 INFO kablam! 37 |         let (mut nn_parameters, mut nn_predictor, mut nn_trainer) = network.as_parts();
Oct 31 17:31:02.383 INFO kablam!    |                                                   ----^^^^^^^^^^
Oct 31 17:31:02.383 INFO kablam!    |                                                   |
Oct 31 17:31:02.383 INFO kablam!    |                                                   help: remove this `mut`
Oct 31 17:31:02.383 INFO kablam! 
Oct 31 17:31:02.383 INFO kablam! warning: variable does not need to be mutable
Oct 31 17:31:02.383 INFO kablam!   --> src/parallel_trainer.rs:37:33
Oct 31 17:31:02.383 INFO kablam!    |
Oct 31 17:31:02.383 INFO kablam! 37 |         let (mut nn_parameters, mut nn_predictor, mut nn_trainer) = network.as_parts();
Oct 31 17:31:02.383 INFO kablam!    |                                 ----^^^^^^^^^^^^
Oct 31 17:31:02.383 INFO kablam!    |                                 |
Oct 31 17:31:02.383 INFO kablam!    |                                 help: remove this `mut`
Oct 31 17:31:02.383 INFO kablam! 
Oct 31 17:31:02.383 INFO kablam! warning: variable does not need to be mutable
Oct 31 17:31:02.383 INFO kablam!   --> src/parallel_trainer.rs:37:14
Oct 31 17:31:02.383 INFO kablam!    |
Oct 31 17:31:02.383 INFO kablam! 37 |         let (mut nn_parameters, mut nn_predictor, mut nn_trainer) = network.as_parts();
Oct 31 17:31:02.383 INFO kablam!    |              ----^^^^^^^^^^^^^
Oct 31 17:31:02.383 INFO kablam!    |              |
Oct 31 17:31:02.383 INFO kablam!    |              help: remove this `mut`
Oct 31 17:31:02.383 INFO kablam! 
Oct 31 17:31:02.391 INFO kablam! warning: variable does not need to be mutable
Oct 31 17:31:02.392 INFO kablam!    --> src/parallel_trainer.rs:123:5
Oct 31 17:31:02.392 INFO kablam!     |
Oct 31 17:31:02.392 INFO kablam! 123 |     mut job_receiver: Arc<Mutex<Receiver<TrainingJob>>>,
Oct 31 17:31:02.392 INFO kablam!     |     ----^^^^^^^^^^^^
Oct 31 17:31:02.392 INFO kablam!     |     |
Oct 31 17:31:02.393 INFO kablam!     |     help: remove this `mut`
Oct 31 17:31:02.393 INFO kablam! 
Oct 31 17:31:02.393 INFO kablam! warning: variable does not need to be mutable
Oct 31 17:31:02.393 INFO kablam!    --> src/parallel_trainer.rs:124:5
Oct 31 17:31:02.393 INFO kablam!     |
Oct 31 17:31:02.393 INFO kablam! 124 |     mut output_sender: Sender<Arc<Mutex<NetworkTrainer>>>,
Oct 31 17:31:02.393 INFO kablam!     |     ----^^^^^^^^^^^^^
Oct 31 17:31:02.393 INFO kablam!     |     |
Oct 31 17:31:02.393 INFO kablam!     |     help: remove this `mut`
Oct 31 17:31:02.393 INFO kablam! 
Oct 31 17:31:02.393 INFO kablam! warning: variable does not need to be mutable
Oct 31 17:31:02.393 INFO kablam!    --> src/parallel_trainer.rs:126:5
Oct 31 17:31:02.393 INFO kablam!     |
Oct 31 17:31:02.393 INFO kablam! 126 |     mut local_nn_trainer: Arc<Mutex<NetworkTrainer>>,
Oct 31 17:31:02.393 INFO kablam!     |     ----^^^^^^^^^^^^^^^^
Oct 31 17:31:02.393 INFO kablam!     |     |
Oct 31 17:31:02.393 INFO kablam!     |     help: remove this `mut`
Oct 31 17:31:02.393 INFO kablam! 
Oct 31 17:31:02.455 INFO kablam! warning: variable does not need to be mutable
Oct 31 17:31:02.455 INFO kablam!   --> src/snake_nn.rs:57:9
Oct 31 17:31:02.455 INFO kablam!    |
Oct 31 17:31:02.455 INFO kablam! 57 |     let mut nn = network::Network::load_from_file(model_input_path);
Oct 31 17:31:02.455 INFO kablam!    |         ----^^
Oct 31 17:31:02.455 INFO kablam!    |         |
Oct 31 17:31:02.455 INFO kablam!    |         help: remove this `mut`
Oct 31 17:31:02.455 INFO kablam! 
Oct 31 17:31:02.467 INFO kablam! warning: variable does not need to be mutable
Oct 31 17:31:02.467 INFO kablam!    --> src/snake_nn.rs:131:21
Oct 31 17:31:02.467 INFO kablam!     |
Oct 31 17:31:02.467 INFO kablam! 131 |                 let mut state = GameState {
Oct 31 17:31:02.467 INFO kablam!     |                     ----^^^^^
Oct 31 17:31:02.467 INFO kablam!     |                     |
Oct 31 17:31:02.467 INFO kablam!     |                     help: remove this `mut`
Oct 31 17:31:02.467 INFO kablam! 
Oct 31 17:31:02.467 INFO kablam! warning: variable does not need to be mutable
Oct 31 17:31:02.467 INFO kablam!    --> src/snake_nn.rs:115:9
Oct 31 17:31:02.467 INFO kablam!     |
Oct 31 17:31:02.467 INFO kablam! 115 |     let mut nn = network::Network::load_from_file(model_path);
Oct 31 17:31:02.467 INFO kablam!     |         ----^^
Oct 31 17:31:02.467 INFO kablam!     |         |
Oct 31 17:31:02.467 INFO kablam!     |         help: remove this `mut`
Oct 31 17:31:02.467 INFO kablam! 
Oct 31 17:31:02.507 INFO kablam! warning: method is never used: `new_same_dim`
Oct 31 17:31:02.507 INFO kablam!   --> src/math.rs:21:5
Oct 31 17:31:02.507 INFO kablam!    |
Oct 31 17:31:02.507 INFO kablam! 21 |     pub fn new_same_dim(m: &Matrix) -> Self {
Oct 31 17:31:02.507 INFO kablam!    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Oct 31 17:31:02.507 INFO kablam!    |
Oct 31 17:31:02.507 INFO kablam!    = note: #[warn(dead_code)] on by default
Oct 31 17:31:02.507 INFO kablam! 
Oct 31 17:31:02.507 INFO kablam! warning: method is never used: `dot_vec`
Oct 31 17:31:02.507 INFO kablam!   --> src/math.rs:71:5
Oct 31 17:31:02.507 INFO kablam!    |
Oct 31 17:31:02.507 INFO kablam! 71 |     pub fn dot_vec(&self, vec: &Vector, res: &mut Vector) {
Oct 31 17:31:02.507 INFO kablam!    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Oct 31 17:31:02.507 INFO kablam! 
Oct 31 17:31:02.507 INFO kablam! warning: method is never used: `empty`
Oct 31 17:31:02.507 INFO kablam!    --> src/math.rs:248:5
Oct 31 17:31:02.507 INFO kablam!     |
Oct 31 17:31:02.507 INFO kablam! 248 |     pub fn empty() -> Self {
Oct 31 17:31:02.507 INFO kablam!     |     ^^^^^^^^^^^^^^^^^^^^^^
Oct 31 17:31:02.507 INFO kablam! 
Oct 31 17:31:02.507 INFO kablam! warning: method is never used: `init_rand`
Oct 31 17:31:02.507 INFO kablam!    --> src/math.rs:267:5
Oct 31 17:31:02.507 INFO kablam!     |
Oct 31 17:31:02.507 INFO kablam! 267 |     pub fn init_rand(mut self) -> Self {
Oct 31 17:31:02.507 INFO kablam!     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Oct 31 17:31:02.507 INFO kablam! 
Oct 31 17:31:02.507 INFO kablam! warning: method is never used: `copy_from`
Oct 31 17:31:02.507 INFO kablam!    --> src/math.rs:286:5
Oct 31 17:31:02.507 INFO kablam!     |
Oct 31 17:31:02.507 INFO kablam! 286 |     pub fn copy_from(&mut self, v: &Vector) {
Oct 31 17:31:02.507 INFO kablam!     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Oct 31 17:31:02.507 INFO kablam! 
Oct 31 17:31:02.507 INFO kablam! warning: method is never used: `add`
Oct 31 17:31:02.507 INFO kablam!    --> src/math.rs:322:5
Oct 31 17:31:02.507 INFO kablam!     |
Oct 31 17:31:02.507 INFO kablam! 322 |     pub fn add(&mut self, v: &Vector) {
Oct 31 17:31:02.507 INFO kablam!     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Oct 31 17:31:02.508 INFO kablam! 
Oct 31 17:31:02.508 INFO kablam! warning: method is never used: `fill_rand`
Oct 31 17:31:02.508 INFO kablam!    --> src/math.rs:335:5
Oct 31 17:31:02.508 INFO kablam!     |
Oct 31 17:31:02.508 INFO kablam! 335 |     pub fn fill_rand(&mut self) {
Oct 31 17:31:02.508 INFO kablam!     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
Oct 31 17:31:02.508 INFO kablam! 
Oct 31 17:31:02.508 INFO kablam! warning: constant item is never used: `NANOS_IN_SECOND`
Oct 31 17:31:02.508 INFO kablam!   --> src/mnist.rs:28:1
Oct 31 17:31:02.508 INFO kablam!    |
Oct 31 17:31:02.508 INFO kablam! 28 | const NANOS_IN_SECOND: u64 = 1_000_000_000;
Oct 31 17:31:02.508 INFO kablam!    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Oct 31 17:31:02.508 INFO kablam! 
Oct 31 17:31:02.508 INFO kablam! warning: method is never used: `get_layer_mut`
Oct 31 17:31:02.508 INFO kablam!   --> src/network.rs:46:5
Oct 31 17:31:02.508 INFO kablam!    |
Oct 31 17:31:02.508 INFO kablam! 46 |     fn get_layer_mut(&mut self, id: LayerID) -> &mut Layer {
Oct 31 17:31:02.508 INFO kablam!    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Oct 31 17:31:02.508 INFO kablam! 
Oct 31 17:31:02.511 INFO kablam! warning: method is never used: `predict`
Oct 31 17:31:02.511 INFO kablam!    --> src/network.rs:466:5
Oct 31 17:31:02.511 INFO kablam!     |
Oct 31 17:31:02.511 INFO kablam! 466 |     pub fn predict(&mut self, input_data: &[f64]) -> &Vector {
Oct 31 17:31:02.511 INFO kablam!     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Oct 31 17:31:02.511 INFO kablam! 
Oct 31 17:31:02.511 INFO kablam! warning: method is never used: `backward_propagation`
Oct 31 17:31:02.511 INFO kablam!    --> src/network.rs:470:5
Oct 31 17:31:02.511 INFO kablam!     |
Oct 31 17:31:02.511 INFO kablam! 470 |     pub fn backward_propagation(&mut self, true_outputs: &Vector) {
Oct 31 17:31:02.511 INFO kablam!     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Oct 31 17:31:02.511 INFO kablam! 
Oct 31 17:31:02.511 INFO kablam! warning: method is never used: `apply_batch`
Oct 31 17:31:02.511 INFO kablam!    --> src/network.rs:530:5
Oct 31 17:31:02.511 INFO kablam!     |
Oct 31 17:31:02.511 INFO kablam! 530 |     pub fn apply_batch(&mut self) {
Oct 31 17:31:02.511 INFO kablam!     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Oct 31 17:31:02.511 INFO kablam! 
Oct 31 17:31:02.511 INFO kablam! warning: field is never used: `shared_training_data`
Oct 31 17:31:02.511 INFO kablam!   --> src/parallel_trainer.rs:22:5
Oct 31 17:31:02.511 INFO kablam!    |
Oct 31 17:31:02.511 INFO kablam! 22 |     shared_training_data: Arc<D>,
Oct 31 17:31:02.511 INFO kablam!    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Oct 31 17:31:02.511 INFO kablam! 
Oct 31 17:31:02.511 INFO kablam! warning: field is never used: `job_receiver`
Oct 31 17:31:02.511 INFO kablam!   --> src/parallel_trainer.rs:29:5
Oct 31 17:31:02.511 INFO kablam!    |
Oct 31 17:31:02.511 INFO kablam! 29 |     job_receiver: Arc<Mutex<Receiver<TrainingJob>>>,
Oct 31 17:31:02.511 INFO kablam!    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Oct 31 17:31:02.511 INFO kablam! 
Oct 31 17:31:02.511 INFO kablam! warning: field is never used: `output_sender`
Oct 31 17:31:02.511 INFO kablam!   --> src/parallel_trainer.rs:30:5
Oct 31 17:31:02.511 INFO kablam!    |
Oct 31 17:31:02.511 INFO kablam! 30 |     output_sender: Sender<Arc<Mutex<NetworkTrainer>>>,
Oct 31 17:31:02.511 INFO kablam!    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Oct 31 17:31:02.511 INFO kablam! 
Oct 31 17:31:02.511 INFO kablam! warning: field is never used: `join_handles`
Oct 31 17:31:02.511 INFO kablam!   --> src/parallel_trainer.rs:32:5
Oct 31 17:31:02.511 INFO kablam!    |
Oct 31 17:31:02.511 INFO kablam! 32 |     join_handles: Vec<JoinHandle<()>>,
Oct 31 17:31:02.511 INFO kablam!    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Oct 31 17:31:02.511 INFO kablam! 
Oct 31 17:31:02.511 INFO kablam! warning: function is never used: `teach_nn`
Oct 31 17:31:02.511 INFO kablam!    --> src/snake_nn.rs:384:1
Oct 31 17:31:02.511 INFO kablam!     |
Oct 31 17:31:02.511 INFO kablam! 384 | / fn teach_nn(
Oct 31 17:31:02.511 INFO kablam! 385 | |     nn: &mut network::Network,
Oct 31 17:31:02.511 INFO kablam! 386 | |     state: &GameState,
Oct 31 17:31:02.511 INFO kablam! 387 | |     snake_input: SnakeInput,
Oct 31 17:31:02.511 INFO kablam! ...   |
Oct 31 17:31:02.511 INFO kablam! 398 | |     nn.backward_propagation(&true_output_vec);
Oct 31 17:31:02.512 INFO kablam! 399 | | }
Oct 31 17:31:02.512 INFO kablam!     | |_^
Oct 31 17:31:02.512 INFO kablam! 
Oct 31 17:31:02.512 INFO kablam! warning: method is never used: `elapsed`
Oct 31 17:31:02.512 INFO kablam!   --> src/timing.rs:46:5
Oct 31 17:31:02.512 INFO kablam!    |
Oct 31 17:31:02.512 INFO kablam! 46 |     pub fn elapsed(&self, name: &str) -> time::Duration {
Oct 31 17:31:02.512 INFO kablam!    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Oct 31 17:31:02.512 INFO kablam! 
Oct 31 17:31:02.527 INFO kablam! warning: unused `std::result::Result` that must be used
Oct 31 17:31:02.527 INFO kablam!   --> src/parallel_trainer.rs:85:13
Oct 31 17:31:02.527 INFO kablam!    |
Oct 31 17:31:02.527 INFO kablam! 85 | /             self.job_sender.send(TrainingJob {
Oct 31 17:31:02.527 INFO kablam! 86 | |                 examples_indices: chunk,
Oct 31 17:31:02.527 INFO kablam! 87 | |                 network_parameters: self.shared_nn_parameters.clone(),
Oct 31 17:31:02.527 INFO kablam! 88 | |             });
Oct 31 17:31:02.527 INFO kablam!    | |_______________^
Oct 31 17:31:02.527 INFO kablam!    |
Oct 31 17:31:02.527 INFO kablam!    = note: #[warn(unused_must_use)] on by default
Oct 31 17:31:02.527 INFO kablam!    = note: this `Result` may be an `Err` variant, which should be handled
Oct 31 17:31:02.527 INFO kablam! 
Oct 31 17:31:02.527 INFO kablam! warning: unused `std::result::Result` that must be used
Oct 31 17:31:02.527 INFO kablam!    --> src/parallel_trainer.rs:160:9
Oct 31 17:31:02.527 INFO kablam!     |
Oct 31 17:31:02.527 INFO kablam! 160 |         output_sender.send(local_nn_trainer.clone());
Oct 31 17:31:02.527 INFO kablam!     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Oct 31 17:31:02.527 INFO kablam!     |
Oct 31 17:31:02.527 INFO kablam!     = note: this `Result` may be an `Err` variant, which should be handled
Oct 31 17:31:02.527 INFO kablam! 
Oct 31 17:31:02.531 INFO kablam! warning: unused `std::result::Result` that must be used
Oct 31 17:31:02.531 INFO kablam!    --> src/snake.rs:118:9
Oct 31 17:31:02.531 INFO kablam!     |
Oct 31 17:31:02.531 INFO kablam! 118 |         writer.write("\n".as_bytes());
Oct 31 17:31:02.531 INFO kablam!     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Oct 31 17:31:02.531 INFO kablam!     |
Oct 31 17:31:02.531 INFO kablam!     = note: this `Result` may be an `Err` variant, which should be handled
Oct 31 17:31:02.531 INFO kablam! 
Oct 31 17:31:02.531 INFO kablam! warning: unused `std::result::Result` that must be used
Oct 31 17:31:02.531 INFO kablam!    --> src/snake.rs:120:5
Oct 31 17:31:02.531 INFO kablam!     |
Oct 31 17:31:02.531 INFO kablam! 120 |     writer.flush();
Oct 31 17:31:02.531 INFO kablam!     |     ^^^^^^^^^^^^^^^
Oct 31 17:31:02.531 INFO kablam!     |
Oct 31 17:31:02.531 INFO kablam!     = note: this `Result` may be an `Err` variant, which should be handled
Oct 31 17:31:02.531 INFO kablam! 
Oct 31 17:31:02.531 INFO kablam! warning: unused `std::result::Result` that must be used
Oct 31 17:31:02.531 INFO kablam!    --> src/snake.rs:131:5
Oct 31 17:31:02.531 INFO kablam!     |
Oct 31 17:31:02.531 INFO kablam! 131 |     writer.write(character.as_bytes());
Oct 31 17:31:02.531 INFO kablam!     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Oct 31 17:31:02.531 INFO kablam!     |
Oct 31 17:31:02.531 INFO kablam!     = note: this `Result` may be an `Err` variant, which should be handled
Oct 31 17:31:02.531 INFO kablam! 
Oct 31 17:31:02.535 INFO kablam! warning: unused `std::result::Result` that must be used
Oct 31 17:31:02.535 INFO kablam!    --> src/snake_nn.rs:150:9
Oct 31 17:31:02.535 INFO kablam!     |
Oct 31 17:31:02.535 INFO kablam! 150 |         jh.join();
Oct 31 17:31:02.535 INFO kablam!     |         ^^^^^^^^^^
Oct 31 17:31:02.535 INFO kablam!     |
Oct 31 17:31:02.535 INFO kablam!     = note: this `Result` may be an `Err` variant, which should be handled
Oct 31 17:31:02.535 INFO kablam! 
Oct 31 17:31:02.535 INFO kablam! warning: the `game_over:` in this pattern is redundant
Oct 31 17:31:02.535 INFO kablam!    --> src/snake_nn.rs:203:17
Oct 31 17:31:02.535 INFO kablam!     |
Oct 31 17:31:02.535 INFO kablam! 203 |                 game_over: game_over,
Oct 31 17:31:02.535 INFO kablam!     |                 ----------^^^^^^^^^^
Oct 31 17:31:02.535 INFO kablam!     |                 |
Oct 31 17:31:02.535 INFO kablam!     |                 help: remove this
Oct 31 17:31:02.535 INFO kablam!     |
Oct 31 17:31:02.535 INFO kablam!     = note: #[warn(non_shorthand_field_patterns)] on by default
Oct 31 17:31:02.535 INFO kablam! 
Oct 31 17:31:02.535 INFO kablam! warning: the `game_over:` in this pattern is redundant
Oct 31 17:31:02.535 INFO kablam!    --> src/snake_nn.rs:271:13
Oct 31 17:31:02.535 INFO kablam!     |
Oct 31 17:31:02.535 INFO kablam! 271 |             game_over: game_over,
Oct 31 17:31:02.535 INFO kablam!     |             ----------^^^^^^^^^^
Oct 31 17:31:02.535 INFO kablam!     |             |
Oct 31 17:31:02.535 INFO kablam!     |             help: remove this
Oct 31 17:31:02.535 INFO kablam! 
Oct 31 17:31:02.535 INFO kablam! warning: the `game_over:` in this pattern is redundant
Oct 31 17:31:02.535 INFO kablam!    --> src/snake_nn.rs:308:17
Oct 31 17:31:02.535 INFO kablam!     |
Oct 31 17:31:02.535 INFO kablam! 308 |                 game_over: game_over,
Oct 31 17:31:02.535 INFO kablam!     |                 ----------^^^^^^^^^^
Oct 31 17:31:02.535 INFO kablam!     |                 |
Oct 31 17:31:02.535 INFO kablam!     |                 help: remove this
Oct 31 17:31:02.535 INFO kablam! 
Oct 31 17:31:02.535 INFO kablam! warning: unused attribute
Oct 31 17:31:02.535 INFO kablam!  --> src/snake_nn.rs:1:1
Oct 31 17:31:02.535 INFO kablam!   |
Oct 31 17:31:02.535 INFO kablam! 1 | #![feature(test)]
Oct 31 17:31:02.535 INFO kablam!   | ^^^^^^^^^^^^^^^^^
Oct 31 17:31:02.535 INFO kablam!   |
Oct 31 17:31:02.535 INFO kablam!   = note: #[warn(unused_attributes)] on by default
Oct 31 17:31:02.535 INFO kablam! 
Oct 31 17:31:02.535 INFO kablam! warning: crate-level attribute should be in the root module
Oct 31 17:31:02.535 INFO kablam!  --> src/snake_nn.rs:1:1
Oct 31 17:31:02.535 INFO kablam!   |
Oct 31 17:31:02.535 INFO kablam! 1 | #![feature(test)]
Oct 31 17:31:02.535 INFO kablam!   | ^^^^^^^^^^^^^^^^^
Oct 31 17:31:02.535 INFO kablam! 
Oct 31 17:31:04.085 INFO kablam!     Finished dev [unoptimized + debuginfo] target(s) in 3.76s
Oct 31 17:31:04.090 INFO kablam! su: No module specific data is present
Oct 31 17:31:04.335 INFO running `"docker" "rm" "-f" "59836311c1d9a78e759b792f3f297bc71c57d67695fbc5ff9651d83ee1d538fe"`
Oct 31 17:31:04.430 INFO blam! 59836311c1d9a78e759b792f3f297bc71c57d67695fbc5ff9651d83ee1d538fe
Oct 31 17:31:04.433 INFO running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/beta-1.31-1/worker-3/beta-2018-10-30:/target:rw,Z" "-v" "/mnt/big/crater/work/local/test-source/worker-3/beta-1.31-1/beta-2018-10-30:/source:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/source" "-e" "USER_ID=1000" "-e" "CMD=cargo +beta-2018-10-30 test --frozen" "-e" "CARGO_TARGET_DIR=/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/cargo-home" "-e" "RUSTUP_HOME=/rustup-home" "-m" "1536M" "--network" "none" "crater"`
Oct 31 17:31:04.743 INFO blam! 38dcb550fda5f53f03b511c74ead467b9b0b30ba6bf444908b0273806d203cfc
Oct 31 17:31:04.749 INFO running `"docker" "start" "-a" "38dcb550fda5f53f03b511c74ead467b9b0b30ba6bf444908b0273806d203cfc"`
Oct 31 17:31:05.142 INFO kablam! usermod: no changes
Oct 31 17:31:05.219 INFO kablam!     Finished dev [unoptimized + debuginfo] target(s) in 0.06s
Oct 31 17:31:05.235 INFO kablam!      Running /target/debug/deps/nnrs-3992cd171e33fb27
Oct 31 17:31:05.237 INFO blam! 
Oct 31 17:31:05.238 INFO blam! running 6 tests
Oct 31 17:31:05.238 INFO blam! test network::tests::layer_order_skip ... ok
Oct 31 17:31:05.239 INFO blam! test network::tests::layer_order_forward ... ok
Oct 31 17:31:05.239 INFO blam! test math::tests::transpose ... ok
Oct 31 17:31:05.239 INFO blam! test math::tests::add_dot_vec ... ok
Oct 31 17:31:05.251 INFO blam! test math::tests::transpose_add_dot_vec ... ok
Oct 31 17:31:05.272 INFO blam! test network::tests::layer_order_cycle ... ok
Oct 31 17:31:05.272 INFO blam! 
Oct 31 17:31:05.272 INFO blam! test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
Oct 31 17:31:05.272 INFO blam! 
Oct 31 17:31:05.275 INFO kablam! su: No module specific data is present
Oct 31 17:31:05.619 INFO running `"docker" "rm" "-f" "38dcb550fda5f53f03b511c74ead467b9b0b30ba6bf444908b0273806d203cfc"`
Oct 31 17:31:05.724 INFO blam! 38dcb550fda5f53f03b511c74ead467b9b0b30ba6bf444908b0273806d203cfc
