rjbs/Dist-Zilla — pull request #366 by kentfredric (2014-10-30 18:02:19+00:00)
Title: Trim unneeded Moose::Autobox use from the App::Cmd layer

Moose::Autobox pulls in 27 extra dependencies that are not really used within the command ecosystem.

None of dzils' own commands use it, and only `Dist::Zilla::App` has any use of it which is a mere `->flatten` call.

Thus, these reasonably simple changes remove those 27 dependencies:

```
git checkout trim_autobox_command
PERL5LIB="$PWD/lib" strace -e trace=open -o /tmp/trace perl -S dzil version ; wc -l /tmp/trace
dzil (Dist::Zilla::App) version dev (/home/kent/perl5/perlbrew/perls/blead/bin/dzil)
296 /tmp/trace
PERL5LIB="$PWD/lib" /usr/bin/time -v bash -c 'for i in $(seq 0 20); do perl -S dzil version; done' |& tee /tmp/fast
```
```
git checkout trim_autobox_command~3
PERL5LIB="$PWD/lib" strace -e trace=open -o /tmp/trace perl -S dzil version ; wc -l /tmp/trace
dzil (Dist::Zilla::App) version dev (/home/kent/perl5/perlbrew/perls/blead/bin/dzil)
323 /tmp/trace
PERL5LIB="$PWD/lib" /usr/bin/time -v bash -c 'for i in $(seq 0 20); do perl -S dzil version; done' |& tee /tmp/slow
```

```diff
--- /tmp/slow 2014-10-31 06:57:43.784203263 +1300
+++ /tmp/fast 2014-10-31 06:57:27.225209917 +1300
@@ -20,20 +20,20 @@
dzil (Dist::Zilla::App) version dev (/home/kent/perl5/perlbrew/perls/blead/bin/dzil)
dzil (Dist::Zilla::App) version dev (/home/kent/perl5/perlbrew/perls/blead/bin/dzil)
Command being timed: "bash -c for i in $(seq 0 20); do perl -S dzil version; done"
- User time (seconds): 8.98
- System time (seconds): 0.95
+ User time (seconds): 7.91
+ System time (seconds): 0.85
Percent of CPU this job got: 99%
- Elapsed (wall clock) time (h:mm:ss or m:ss): 0:09.94
+ Elapsed (wall clock) time (h:mm:ss or m:ss): 0:08.77
Average shared text size (kbytes): 0
Average unshared data size (kbytes): 0
Average stack size (kbytes): 0
Average total size (kbytes): 0
- Maximum resident set size (kbytes): 144352
+ Maximum resident set size (kbytes): 136400
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 0
- Minor (reclaiming a frame) page faults: 160298
- Voluntary context switches: 48
- Involuntary context switches: 55
+ Minor (reclaiming a frame) page faults: 150185
+ Voluntary context switches: 47
+ Involuntary context switches: 51
Swaps: 0
File system inputs: 0
File system outputs: 0
```

Note you need either a clean install with only dzil's `::command`'s or to have only `::command`'s without `Moose::Autobox` to experience this benefit, but that's very easy to achieve.