startup-time 1.0.0 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +7 -1
- data/README.md +75 -44
- data/lib/startup_time/app.rb +44 -15
- data/lib/startup_time/options.rb +6 -7
- data/lib/startup_time/registry.rb +1 -1
- data/lib/startup_time/version.rb +1 -1
- data/resources/src/hello.c +1 -0
- data/resources/tests.yaml +22 -5
- metadata +17 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b4a81d32c87d33dc6e8dd9099982be606ac59256d5968350e109f97979ee96eb
|
4
|
+
data.tar.gz: 0200de23b714da4f6d45f4267e563e54217573fb58fbf66bf1d0ca1016eebd63
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 49c7f9e3e518859dcd7735bb101f6f4e5f48bf6d5a7da890efaf1951de58c0e89cef93a2f447fa4bc677d4cda2fa2aaf24ae9d58fe09683507a65dd9f6b5ca1c
|
7
|
+
data.tar.gz: 9b7dfff84fb1b333aefdd5ff19c176f9e9238754fd52aeac4c9cdf2c18f3fdc5930af7d9ed61ce4fdd2ec44520e15ce8a268a453ed367afd5b4e4d7c4bd60a44
|
data/CHANGELOG.md
CHANGED
@@ -1,6 +1,12 @@
|
|
1
|
+
## 1.1.0 - 2019-02-27
|
2
|
+
|
3
|
+
- dump the version of the compiler/interpreter in verbose mode
|
4
|
+
- fix gcc 4 (hello.c): add missing return value
|
5
|
+
- update obsolete dmd options
|
6
|
+
|
1
7
|
## 1.0.0 - 2019-02-21
|
2
8
|
|
3
|
-
-
|
9
|
+
- convert the script to a gem and release it
|
4
10
|
- add tests for Deno, GraalVM JavaScript, Nim, and TruffleRuby
|
5
11
|
- add --json option to render the results as a JSON array
|
6
12
|
- add changelog
|
data/README.md
CHANGED
@@ -7,17 +7,18 @@
|
|
7
7
|
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
|
8
8
|
|
9
9
|
- [NAME](#name)
|
10
|
-
- [USAGE](#usage)
|
11
10
|
- [INSTALLATION](#installation)
|
11
|
+
- [SYNOPSIS](#synopsis)
|
12
12
|
- [DESCRIPTION](#description)
|
13
13
|
- [Why?](#why)
|
14
|
-
|
14
|
+
- [OPTIONS](#options)
|
15
|
+
- [SAMPLE OUTPUT](#sample-output)
|
15
16
|
- [PREREQUISITES](#prerequisites)
|
16
|
-
- [
|
17
|
-
- [
|
18
|
-
- [
|
19
|
-
- [
|
20
|
-
- [
|
17
|
+
- [REFERENCES](#references)
|
18
|
+
- [SEE ALSO](#see-also)
|
19
|
+
- [AUTHOR](#author)
|
20
|
+
- [VERSION](#version)
|
21
|
+
- [COPYRIGHT AND LICENSE](#copyright-and-license)
|
21
22
|
|
22
23
|
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
|
23
24
|
|
@@ -25,7 +26,13 @@
|
|
25
26
|
|
26
27
|
startup-time - a command-line benchmarking tool which measures the startup times of programs in various languages
|
27
28
|
|
28
|
-
##
|
29
|
+
## INSTALLATION
|
30
|
+
|
31
|
+
```sh
|
32
|
+
$ gem install startup-time
|
33
|
+
```
|
34
|
+
|
35
|
+
## SYNOPSIS
|
29
36
|
|
30
37
|
```sh
|
31
38
|
# run all available tests
|
@@ -44,48 +51,73 @@ $ startup-time --only jvm
|
|
44
51
|
$ startup-time --only fast --omit slow-compile
|
45
52
|
|
46
53
|
# increase the number of times each test is run (default: 10)
|
47
|
-
$ startup-time --
|
48
|
-
```
|
49
|
-
|
50
|
-
## INSTALLATION
|
51
|
-
|
52
|
-
```sh
|
53
|
-
$ gem install startup-time
|
54
|
+
$ startup-time --count 100
|
54
55
|
```
|
55
56
|
|
56
57
|
## DESCRIPTION
|
57
58
|
|
58
|
-
A command-line tool which measures how long it takes to execute ["Hello, world!"](https://en.wikipedia.org/wiki/%22Hello,_World!%22_program)
|
59
|
+
A command-line tool which measures how long it takes to execute ["Hello, world!"](https://en.wikipedia.org/wiki/%22Hello,_World!%22_program)
|
60
|
+
programs written in various languages. It records the fastest time for each program and prints a sorted table of the times after each run.
|
61
|
+
Apart from the [prerequisites](#prerequisites) listed below, the tool doesn't require any of the tested languages to be installed: if a
|
62
|
+
compiler/interpreter is not available, the test is skipped.
|
59
63
|
|
60
64
|
### Why?
|
61
65
|
|
62
|
-
To determine which languages are practical (or impractical) to use for command-line interface (CLI)
|
63
|
-
[100 milliseconds](https://www.nngroup.com/articles/response-times-3-important-limits/) is perceived as instantaneous.
|
66
|
+
To determine which languages are practical (or impractical) to use for command-line interface (CLI) tools. Anything under
|
67
|
+
[100 milliseconds](https://www.nngroup.com/articles/response-times-3-important-limits/) is perceived as instantaneous.
|
68
|
+
Anything over that is perceptibly delayed, which can impair interactivity and productivity on the command line, and can
|
69
|
+
mean the difference between staying in the zone and losing your train of thought.
|
70
|
+
|
71
|
+
## OPTIONS
|
72
|
+
|
73
|
+
```
|
74
|
+
USAGE:
|
75
|
+
|
76
|
+
startup-time [options]
|
77
|
+
|
78
|
+
OPTIONS:
|
79
|
+
|
80
|
+
-c, --count, --rounds INTEGER The number of times to execute each test (default: 10)
|
81
|
+
--clean Remove the build directory and exit
|
82
|
+
(targets will be recompiled on the next run)
|
83
|
+
-d, --dir PATH Specify the build directory
|
84
|
+
(default: ${XDG_CONFIG_HOME:-~/.cache/startup-time})
|
85
|
+
-h, --help Show this help message and exit
|
86
|
+
-H, --help-only, --help-omit Show the IDs and groups that can be passed to --only and --omit
|
87
|
+
-j, --json Output the results in JSON format (implies --quiet)
|
88
|
+
-o, --only LIST Only execute the specified tests (comma-separated list of IDs/groups)
|
89
|
+
-O, --omit LIST Don't execute the specified tests (comma-separated list of IDs/groups)
|
90
|
+
-q, --quiet Suppress all inessential output
|
91
|
+
-v, --verbose Enable verbose logging
|
92
|
+
-V, --version Display the version and exit
|
93
|
+
```
|
64
94
|
|
65
|
-
|
95
|
+
## SAMPLE OUTPUT
|
66
96
|
|
67
97
|
Test Time (ms)
|
68
98
|
C (gcc) 0.33
|
69
|
-
Nim 0.
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
99
|
+
Nim 0.44
|
100
|
+
Kotlin Native 0.61
|
101
|
+
LuaJIT 0.64
|
102
|
+
Go 0.66
|
103
|
+
Rust 0.67
|
104
|
+
D (DMD) 0.88
|
105
|
+
Lua 0.98
|
106
|
+
D (GDC) 1.10
|
107
|
+
Haskell (GHC) 1.14
|
76
108
|
C++ (g++) 1.24
|
77
|
-
Perl 1.
|
109
|
+
Perl 1.69
|
78
110
|
Java Native (GraalVM) 1.95
|
79
|
-
Crystal 2.
|
80
|
-
Bash 3.
|
81
|
-
JavaScript (Deno) 11.
|
82
|
-
Python 3
|
83
|
-
JavaScript (GraalVM)
|
84
|
-
Java
|
85
|
-
Python 2
|
86
|
-
JavaScript (Node.js)
|
87
|
-
Ruby 77.
|
88
|
-
Ruby (TruffleRuby)
|
111
|
+
Crystal 2.10
|
112
|
+
Bash 3.36
|
113
|
+
JavaScript (Deno) 11.15
|
114
|
+
Python 3 25.68
|
115
|
+
JavaScript (GraalVM) 32.38
|
116
|
+
Java 54.59
|
117
|
+
Python 2 56.30
|
118
|
+
JavaScript (Node.js) 70.39
|
119
|
+
Ruby 77.04
|
120
|
+
Ruby (TruffleRuby) 81.77
|
89
121
|
Kotlin 103.02
|
90
122
|
Scala 801.21
|
91
123
|
|
@@ -93,27 +125,26 @@ To determine which languages are practical (or impractical) to use for command-l
|
|
93
125
|
|
94
126
|
- Ruby >= 2.4
|
95
127
|
|
96
|
-
##
|
128
|
+
## REFERENCES
|
97
129
|
|
98
130
|
- [Response Times: The 3 Important Limits](https://www.nngroup.com/articles/response-times-3-important-limits/)
|
99
131
|
- [100 milliseconds](http://cogsci.stackexchange.com/questions/1664/what-is-the-threshold-where-actions-are-perceived-as-instant)
|
100
|
-
- [The Great Startup Problem](http://mail.openjdk.java.net/pipermail/mlvm-dev/2014-August/005866.html)
|
101
132
|
|
102
|
-
##
|
133
|
+
## SEE ALSO
|
103
134
|
|
104
135
|
- [gnustavo/startup-times](https://github.com/gnustavo/startup-times) - a script to investigate the startup times of several programming languages
|
105
136
|
- [jwiegley/helloworld](https://github.com/jwiegley/helloworld) - a comparison of "Hello, world" startup times in various languages
|
106
137
|
- [sharkdp/hyperfine](https://github.com/sharkdp/hyperfine) - a command-line benchmarking tool
|
107
138
|
|
108
|
-
##
|
139
|
+
## AUTHOR
|
109
140
|
|
110
141
|
[chocolateboy](mailto:chocolate@cpan.org)
|
111
142
|
|
112
|
-
##
|
143
|
+
## VERSION
|
113
144
|
|
114
|
-
1.
|
145
|
+
1.1.0
|
115
146
|
|
116
|
-
##
|
147
|
+
## COPYRIGHT AND LICENSE
|
117
148
|
|
118
149
|
Copyright © 2015-2019 by chocolateboy
|
119
150
|
|
data/lib/startup_time/app.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'benchmark'
|
4
|
+
require 'bundler/setup'
|
4
5
|
require 'komenda'
|
5
6
|
require 'shellwords' # for Array#shelljoin
|
6
7
|
require 'tty/table'
|
@@ -11,8 +12,9 @@ module StartupTime
|
|
11
12
|
class App
|
12
13
|
EXPECTED_OUTPUT = /\AHello, world!\r?\n\z/
|
13
14
|
|
15
|
+
include FileUtils # for `sh`
|
14
16
|
include Util # for `which`
|
15
|
-
include Services.mixin %i[builder ids_to_groups
|
17
|
+
include Services.mixin %i[builder ids_to_groups selected_tests]
|
16
18
|
|
17
19
|
def initialize(args = ARGV)
|
18
20
|
@options = Options.new(args)
|
@@ -65,7 +67,7 @@ module StartupTime
|
|
65
67
|
|
66
68
|
sorted = @times.sort_by { |result| result[:time] }
|
67
69
|
|
68
|
-
if options.format == :json
|
70
|
+
if @options.format == :json
|
69
71
|
require 'json'
|
70
72
|
puts sorted.to_json
|
71
73
|
elsif !sorted.empty?
|
@@ -94,16 +96,47 @@ module StartupTime
|
|
94
96
|
args = Array(test[:command])
|
95
97
|
|
96
98
|
if args.size == 1 # native executable
|
99
|
+
compiler = test[:compiler] || id
|
97
100
|
cmd = File.absolute_path(args.first)
|
98
|
-
return unless File.exist?
|
101
|
+
return unless File.exist?(cmd)
|
99
102
|
else # interpreter + source
|
100
|
-
|
103
|
+
compiler = args.first
|
104
|
+
cmd = which(compiler)
|
101
105
|
return unless cmd
|
102
106
|
end
|
103
107
|
|
108
|
+
# dump the compiler/interpreter's version if running in verbose mode
|
109
|
+
if @verbosity == :verbose
|
110
|
+
puts
|
111
|
+
puts "test: #{id}"
|
112
|
+
|
113
|
+
# false (don't print the program's version); otherwise, a command
|
114
|
+
# (template string) to execute to dump the version
|
115
|
+
version = test[:version]
|
116
|
+
|
117
|
+
unless version == false
|
118
|
+
version ||= '%{compiler} --version'
|
119
|
+
|
120
|
+
# the compiler may have been uninstalled since the target was
|
121
|
+
# built, so make sure it still exists
|
122
|
+
if (compiler_path = which(compiler))
|
123
|
+
version_command = version % { compiler: compiler_path }
|
124
|
+
sh version_command
|
125
|
+
end
|
126
|
+
end
|
127
|
+
end
|
128
|
+
|
104
129
|
argv0 = args.shift
|
105
130
|
command = [cmd, *args]
|
106
131
|
|
132
|
+
unless @verbosity == :quiet
|
133
|
+
if @verbosity == :verbose
|
134
|
+
puts "command: #{command.shelljoin}"
|
135
|
+
else
|
136
|
+
print '.'
|
137
|
+
end
|
138
|
+
end
|
139
|
+
|
107
140
|
# make sure the command produces the expected output
|
108
141
|
result = Komenda.run(command)
|
109
142
|
output = result.output
|
@@ -118,17 +151,13 @@ module StartupTime
|
|
118
151
|
|
119
152
|
times = []
|
120
153
|
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
@options.rounds.times do
|
130
|
-
times << Benchmark.realtime do
|
131
|
-
system([cmd, argv0], *args, out: File::NULL)
|
154
|
+
# the bundler environment slows down ruby and breaks truffle-ruby,
|
155
|
+
# so make sure it's disabled for the benchmark
|
156
|
+
Bundler.with_clean_env do
|
157
|
+
@options.rounds.times do
|
158
|
+
times << Benchmark.realtime do
|
159
|
+
system([cmd, argv0], *args, out: File::NULL)
|
160
|
+
end
|
132
161
|
end
|
133
162
|
end
|
134
163
|
|
data/lib/startup_time/options.rb
CHANGED
@@ -48,8 +48,8 @@ module StartupTime
|
|
48
48
|
|
49
49
|
opts.on(
|
50
50
|
'--clean',
|
51
|
-
'Remove the build directory and exit
|
52
|
-
'recompiled on the next run)'
|
51
|
+
'Remove the build directory and exit',
|
52
|
+
'(targets will be recompiled on the next run)'
|
53
53
|
) do
|
54
54
|
@action = :clean
|
55
55
|
end
|
@@ -58,7 +58,8 @@ module StartupTime
|
|
58
58
|
'-d',
|
59
59
|
'--dir PATH',
|
60
60
|
String,
|
61
|
-
|
61
|
+
'Specify the build directory',
|
62
|
+
"(default: #{BUILD_DIR})"
|
62
63
|
) do |value|
|
63
64
|
@build_dir = value
|
64
65
|
end
|
@@ -93,8 +94,7 @@ module StartupTime
|
|
93
94
|
'-o',
|
94
95
|
'--only LIST',
|
95
96
|
Array, # comma-separated strings
|
96
|
-
'Only execute the specified tests (comma-separated list of '
|
97
|
-
'IDs/groups)'
|
97
|
+
'Only execute the specified tests (comma-separated list of IDs/groups)'
|
98
98
|
) do |values|
|
99
99
|
values.each { |value| registry.only(value.strip) }
|
100
100
|
end
|
@@ -103,8 +103,7 @@ module StartupTime
|
|
103
103
|
'-O',
|
104
104
|
'--omit LIST',
|
105
105
|
Array, # comma-separated strings
|
106
|
-
"Don't execute the specified tests (comma-separated list "
|
107
|
-
'of IDs/groups)'
|
106
|
+
"Don't execute the specified tests (comma-separated list of IDs/groups)"
|
108
107
|
) do |values|
|
109
108
|
values.each { |value| registry.omit(value.strip) }
|
110
109
|
end
|
data/lib/startup_time/version.rb
CHANGED
data/resources/src/hello.c
CHANGED
data/resources/tests.yaml
CHANGED
@@ -1,12 +1,13 @@
|
|
1
1
|
---
|
2
|
-
# anything <
|
3
|
-
# anything >
|
2
|
+
# anything < 10 ms on my system is arbitrarily tagged :fast
|
3
|
+
# anything > ~100 ms on my system is tagged :slow
|
4
4
|
|
5
5
|
bash:
|
6
6
|
name: Bash
|
7
7
|
groups:
|
8
8
|
- fast
|
9
9
|
- script
|
10
|
+
version: '%{compiler} --version | head -n1'
|
10
11
|
command:
|
11
12
|
- bash
|
12
13
|
- hello.bash
|
@@ -17,6 +18,7 @@ crystal:
|
|
17
18
|
- compiled
|
18
19
|
- fast
|
19
20
|
- native
|
21
|
+
- slow-compile
|
20
22
|
source: hello.cr
|
21
23
|
compile: '%{compiler} build --release -o %{target} %{source}'
|
22
24
|
command: hello.cr.out
|
@@ -40,7 +42,8 @@ dmd:
|
|
40
42
|
- fast
|
41
43
|
- native
|
42
44
|
source: hello.d
|
43
|
-
compile: '%{compiler} -
|
45
|
+
compile: '%{compiler} -O -of=%{target} %{source}'
|
46
|
+
version: '%{compiler} --version | head -n1'
|
44
47
|
command: hello.dmd.d.out
|
45
48
|
|
46
49
|
g++:
|
@@ -53,6 +56,7 @@ g++:
|
|
53
56
|
- native
|
54
57
|
source: hello.cpp
|
55
58
|
compile: '%{compiler} -O3 -o %{target} %{source}'
|
59
|
+
version: '%{compiler} --version | head -n1'
|
56
60
|
command: hello.gpp.out
|
57
61
|
|
58
62
|
gcc:
|
@@ -62,9 +66,9 @@ gcc:
|
|
62
66
|
- compiled
|
63
67
|
- fast
|
64
68
|
- native
|
65
|
-
- no-ci # XXX flaky on Travis
|
66
69
|
source: hello.c
|
67
70
|
compile: '%{compiler} -O3 -o %{target} %{source}'
|
71
|
+
version: '%{compiler} --version | head -n1'
|
68
72
|
command: hello.gcc.out
|
69
73
|
|
70
74
|
gdc:
|
@@ -76,6 +80,7 @@ gdc:
|
|
76
80
|
- native
|
77
81
|
source: hello.d
|
78
82
|
compile: '%{compiler} -O3 -o %{target} %{source}'
|
83
|
+
version: '%{compiler} --version | head -n1'
|
79
84
|
command: hello.gdc.d.out
|
80
85
|
|
81
86
|
ghc:
|
@@ -97,6 +102,7 @@ go:
|
|
97
102
|
- native
|
98
103
|
source: hello.go
|
99
104
|
compile: '%{compiler} build -o %{target} %{source}'
|
105
|
+
version: '%{compiler} version'
|
100
106
|
command: hello.go.out
|
101
107
|
|
102
108
|
graalvm-js:
|
@@ -104,6 +110,7 @@ graalvm-js:
|
|
104
110
|
groups:
|
105
111
|
- js
|
106
112
|
- script
|
113
|
+
version: '%{compiler} --version'
|
107
114
|
command:
|
108
115
|
- js
|
109
116
|
- hello.js
|
@@ -115,6 +122,7 @@ javac:
|
|
115
122
|
- java
|
116
123
|
- jvm
|
117
124
|
source: HelloJava.java
|
125
|
+
version: '%{compiler} -version'
|
118
126
|
command:
|
119
127
|
- java
|
120
128
|
- HelloJava
|
@@ -140,6 +148,8 @@ kotlinc-native:
|
|
140
148
|
- native
|
141
149
|
- slow-compile
|
142
150
|
source: HelloKotlin.kt
|
151
|
+
compiler: konanc
|
152
|
+
version: '%{compiler} -version'
|
143
153
|
command: hello.kt.out
|
144
154
|
|
145
155
|
kotlinc:
|
@@ -152,6 +162,7 @@ kotlinc:
|
|
152
162
|
source: HelloKotlin.kt
|
153
163
|
target: HelloKotlinKt.class
|
154
164
|
compile: '%{compiler} %{source}'
|
165
|
+
version: '%{compiler} -version'
|
155
166
|
command:
|
156
167
|
- kotlin
|
157
168
|
- HelloKotlinKt
|
@@ -173,6 +184,7 @@ lua:
|
|
173
184
|
- fast
|
174
185
|
- luas
|
175
186
|
- script
|
187
|
+
version: '%{compiler} -v'
|
176
188
|
command:
|
177
189
|
- lua
|
178
190
|
- hello.lua
|
@@ -183,6 +195,7 @@ luajit:
|
|
183
195
|
- fast
|
184
196
|
- luas
|
185
197
|
- script
|
198
|
+
version: '%{compiler} -v'
|
186
199
|
command:
|
187
200
|
- luajit
|
188
201
|
- hello.lua
|
@@ -195,6 +208,7 @@ nim:
|
|
195
208
|
- native
|
196
209
|
source: hello.nim
|
197
210
|
compile: '%{compiler} compile --out:%{target} --opt:speed --verbosity:0 --hints:off %{source}'
|
211
|
+
version: '%{compiler} --version | head -n1'
|
198
212
|
command: hello.nim.out
|
199
213
|
|
200
214
|
node:
|
@@ -212,6 +226,8 @@ perl5:
|
|
212
226
|
- fast
|
213
227
|
- perl
|
214
228
|
- script
|
229
|
+
# trim perl's lengthy version output
|
230
|
+
version: "%{compiler} -MConfig -le 'print qq($^V $Config{archname})'"
|
215
231
|
command:
|
216
232
|
- perl
|
217
233
|
- hello.pl
|
@@ -271,6 +287,7 @@ scalac:
|
|
271
287
|
- slowest
|
272
288
|
source: HelloScala.scala
|
273
289
|
compile: '%{compiler} %{source}'
|
290
|
+
version: '%{compiler} -version'
|
274
291
|
command:
|
275
292
|
- scala
|
276
293
|
- HelloScala
|
@@ -278,9 +295,9 @@ scalac:
|
|
278
295
|
truffle-ruby:
|
279
296
|
name: Ruby (TruffleRuby)
|
280
297
|
groups:
|
281
|
-
- no-test # doesn't work inside bundler
|
282
298
|
- rubies
|
283
299
|
- script
|
300
|
+
version: '%{compiler} --version'
|
284
301
|
command:
|
285
302
|
- truffleruby
|
286
303
|
- hello.rb
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: startup-time
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- chocolateboy
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-02-
|
11
|
+
date: 2019-02-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '5.2'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: bundler
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '2.0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '2.0'
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: cli-pasta
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -122,20 +136,6 @@ dependencies:
|
|
122
136
|
- - "~>"
|
123
137
|
- !ruby/object:Gem::Version
|
124
138
|
version: 0.0.2
|
125
|
-
- !ruby/object:Gem::Dependency
|
126
|
-
name: bundler
|
127
|
-
requirement: !ruby/object:Gem::Requirement
|
128
|
-
requirements:
|
129
|
-
- - "~>"
|
130
|
-
- !ruby/object:Gem::Version
|
131
|
-
version: '2.0'
|
132
|
-
type: :development
|
133
|
-
prerelease: false
|
134
|
-
version_requirements: !ruby/object:Gem::Requirement
|
135
|
-
requirements:
|
136
|
-
- - "~>"
|
137
|
-
- !ruby/object:Gem::Version
|
138
|
-
version: '2.0'
|
139
139
|
- !ruby/object:Gem::Dependency
|
140
140
|
name: rubocop
|
141
141
|
requirement: !ruby/object:Gem::Requirement
|
@@ -150,7 +150,7 @@ dependencies:
|
|
150
150
|
- - "~>"
|
151
151
|
- !ruby/object:Gem::Version
|
152
152
|
version: 0.65.0
|
153
|
-
description: A benchmarking tool which
|
153
|
+
description: A benchmarking tool which measures how long it takes to execute "Hello,
|
154
154
|
world!" programs in various languages.
|
155
155
|
email: chocolate@cpan.org
|
156
156
|
executables:
|