hitimes 1.2.2-java → 1.2.3-java

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d94ad885b546cfabd2429bb32edb587cb5bdffce
4
- data.tar.gz: 83cc096240320c96147dc18f9305345a14e64e87
3
+ metadata.gz: e88c13d5ede9b4ff83db2278d377572cc527be34
4
+ data.tar.gz: 700bc9d2e3a08c80eeeec494a6143e7a5b9c40cc
5
5
  SHA512:
6
- metadata.gz: bd6ffe724b229edd4ccd3d2a348a9696e1d50d4dc732c49e5d0414e61b17598bb361ccf65b5186f45add3832bc4524e136ab05ca8396090fc4671d0728c469d5
7
- data.tar.gz: fb95561d1d465d57faa6325df9fa0eafba5779a4eae813c8ada010673071edf60a08c8b27d9a01d29da03138ac56414cb08868f770ad5b46bc4dad5b80c8f38d
6
+ metadata.gz: 0aab8572f5cb56e331b15881d12fc29b39102c145801f5cd435995a62a645e3d89f82ff0d7be5873f4dac6021ee5dc6dccc03c5149b7a43dc6605091a4dc7424
7
+ data.tar.gz: 27f55ad2f013631ee64dd73d2f33e7ecde22b3e3abdf8e116f126fb07ee735678bd8ab3f0f27d8f3feab374e66c60b9c774a0329bb0d3036235c26490fa91fd5
data/HISTORY.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Hitimes Changelog
2
2
 
3
+ ## Version 1.2.3 2015-09-13
4
+
5
+ * Release new fatbinary version for windows
6
+ * Update README to indicate duration units
7
+ * Provide a more friendly error message if the gem is not installed correctly
8
+
3
9
  ## Version 1.2.2 2014-07-09
4
10
 
5
11
  * fix compilation issue with clock_gettime in libc (reported by eradman and virtualfunction)
data/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  ISC LICENSE - http://opensource.org/licenses/isc-license.txt
2
2
 
3
- Copyright (c) 2008-2012 Jeremy Hinegardner
3
+ Copyright (c) 2008-2015 Jeremy Hinegardner
4
4
 
5
5
  Permission to use, copy, modify, and/or distribute this software for any
6
6
  purpose with or without fee is hereby granted, provided that the above
data/Manifest.txt CHANGED
@@ -1,4 +1,3 @@
1
- .travis.yml
2
1
  CONTRIBUTING.md
3
2
  HISTORY.md
4
3
  LICENSE
data/README.md CHANGED
@@ -13,7 +13,7 @@
13
13
 
14
14
  Hitimes is a fast, high resolution timer library for recording
15
15
  performance metrics. It uses the appropriate low method calls for each
16
- system to get the highest granularity time increments possible.
16
+ system to get the highest granularity time increments possible.
17
17
 
18
18
  It currently supports any of the following systems:
19
19
 
@@ -30,14 +30,17 @@ using `Process.times`.
30
30
 
31
31
  ### Interval
32
32
 
33
- Use Hitimes::Interval to calculate only the duration of a block of code
33
+ Use Hitimes::Interval to calculate only the duration of a block of code. Returns
34
+ the time as seconds.
34
35
 
35
36
  ``` ruby
36
37
  duration = Hitimes::Interval.measure do
37
- # some operation ...
38
+ 1_000_000.times do |x|
39
+ 2 + 2
40
+ end
38
41
  end
39
42
 
40
- puts duration
43
+ puts duration # => 0.047414297 (seconds)
41
44
  ```
42
45
 
43
46
  ### TimedMetric
@@ -126,21 +129,14 @@ Read the HISTORY.md file.
126
129
 
127
130
  ## BUILDING FOR WINDOWS
128
131
 
129
- [rake-compiler](https://github.com/luislavena/rake-compiler) is use for building
130
- the windows version. For me, on OSX to cross compile the process is:
132
+ This is done using https://github.com/rake-compiler/rake-compiler-dock
131
133
 
132
- ```
133
- % gem install rake-compiler # in each rvm instance, 1.8.7, 1.9.3
134
- % rvm use 2.0.0@hitimes
135
- % rake-compiler cross-ruby VERSION=2.0.0-p0 # or latest
136
- % rvm use 1.9.3@hitimes
137
- % rake-compiler cross-ruby VERSION=1.9.3-p374 # or latest
138
- % rvm use 1.8.7@hitimes
139
- % rake-compiler cross-ruby VERSION=1.8.7-p371
140
-
141
- # This only works via 1.8.7 at the current moment
142
- % rake cross native gem RUBY_CC_VERSION=1.8.7:1.9.3:2.0.0
143
- ```
134
+ 1. have VirtualBox installed
135
+ 2. Install boot2docker `brew install boot2docker`
136
+ 3. `gem install rake-compiler-dock`
137
+ 4. `rake-compiler-dock`
138
+ 5. `bundle`
139
+ 6 `rake cross native gem`
144
140
 
145
141
  ## CREDITS
146
142
 
@@ -148,7 +144,7 @@ the windows version. For me, on OSX to cross compile the process is:
148
144
 
149
145
  ## ISC License
150
146
 
151
- Copyright (c) 2008-2012 Jeremy Hinegardner
147
+ Copyright (c) 2008-2015 Jeremy Hinegardner
152
148
 
153
149
  Permission to use, copy, modify, and/or distribute this software for any
154
150
  purpose with or without fee is hereby granted, provided that the above
data/Rakefile CHANGED
@@ -7,11 +7,12 @@ This.email = "jeremy@copiousfreetime.org"
7
7
  This.homepage = "http://github.com/copiousfreetime/#{ This.name }"
8
8
 
9
9
  This.ruby_gemspec do |spec|
10
- spec.add_development_dependency( 'rake' , '~> 10.0')
11
- spec.add_development_dependency( 'minitest' , '~> 5.3' )
12
- spec.add_development_dependency( 'rdoc' , '~> 4.1' )
13
- spec.add_development_dependency( 'json' , '~> 1.7.7' )
10
+ spec.add_development_dependency( 'rake' , '~> 10.4')
11
+ spec.add_development_dependency( 'minitest' , '~> 5.5' )
12
+ spec.add_development_dependency( 'rdoc' , '~> 4.2' )
13
+ spec.add_development_dependency( 'json' , '~> 1.8' )
14
14
  spec.add_development_dependency( 'rake-compiler', '~> 0.9' )
15
+ spec.add_development_dependency( 'simplecov' , '~> 0.9' )
15
16
 
16
17
  spec.extensions.concat This.extension_conf_files
17
18
  spec.license = "ISC"
@@ -4,7 +4,7 @@ require 'mkmf'
4
4
  if RbConfig::CONFIG['host_os'] =~ /darwin/ then
5
5
  $CFLAGS += " -DUSE_INSTANT_OSX=1 -Wall"
6
6
  $LDFLAGS += " -framework CoreServices"
7
- elsif RbConfig::CONFIG['host_os'] =~ /win32/ or RbConfig::CONFIG['host_os'] =~ /mingw/ then
7
+ elsif RbConfig::CONFIG['host_os'] =~ /win(32|64)/ or RbConfig::CONFIG['host_os'] =~ /mingw/ then
8
8
  $CFLAGS += " -DUSE_INSTANT_WINDOWS=1"
9
9
  else
10
10
  if have_library("rt", "clock_gettime") then
data/lib/hitimes.rb CHANGED
@@ -29,13 +29,21 @@ require 'hitimes/version'
29
29
  # Load the binary extension, try loading one for the specific version of ruby
30
30
  # and if that fails, then fall back to one in the top of the library.
31
31
  # this is the method recommended by rake-compiler
32
- begin
33
- # this will be for windows
34
- require "hitimes/#{RUBY_VERSION.sub(/\.\d$/,'')}/hitimes"
35
- rescue LoadError
36
- # everyone else.
37
- require 'hitimes/hitimes'
32
+
33
+ attempts = [
34
+ "hitimes/#{RUBY_VERSION.sub(/\.\d$/,'')}/hitimes",
35
+ "hitimes/hitimes"
36
+ ]
37
+ loaded = false
38
+
39
+ attempts.each do |path|
40
+ begin
41
+ require path
42
+ loaded = true
43
+ rescue LoadError
44
+ end
38
45
  end
46
+ raise LoadError, "Unable to find binary extension, was hitimes installed correctly?" unless loaded
39
47
 
40
48
  require 'hitimes/stats'
41
49
  require 'hitimes/mutexed_stats'
Binary file
@@ -4,5 +4,5 @@
4
4
  #++
5
5
 
6
6
  module Hitimes
7
- VERSION = "1.2.2"
7
+ VERSION = "1.2.3"
8
8
  end
data/tasks/default.rake CHANGED
@@ -10,21 +10,12 @@ namespace :develop do
10
10
 
11
11
  # Install all the development and runtime dependencies of this gem using the
12
12
  # gemspec.
13
- task :default do
13
+ task :default => 'Gemfile' do
14
14
  require 'rubygems/dependency_installer'
15
15
  installer = ::Gem::DependencyInstaller.new
16
-
17
- This.set_coverage_gem
18
-
19
- puts "Installing gem depedencies needed for development"
20
- This.platform_gemspec.dependencies.each do |dep|
21
- if dep.matching_specs.empty? then
22
- puts "Installing : #{dep}"
23
- installer.install dep
24
- else
25
- puts "Skipping : #{dep} -> already installed #{dep.matching_specs.first.full_name}"
26
- end
27
- end
16
+ puts "Installing bundler..."
17
+ installer.install 'bundler'
18
+ sh 'bundle install'
28
19
  puts "\n\nNow run 'rake test'"
29
20
  end
30
21
 
@@ -37,14 +28,6 @@ namespace :develop do
37
28
  f.puts 'gemspec'
38
29
  end
39
30
  end
40
-
41
- desc "Create a bundler Gemfile"
42
- task :using_bundler => 'Gemfile' do
43
- puts "Now you can 'bundle'"
44
- end
45
-
46
- # Gemfiles are build artifacts
47
- CLOBBER << FileList['Gemfile*']
48
31
  end
49
32
  desc "Boostrap development"
50
33
  task :develop => "develop:default"
@@ -90,31 +73,16 @@ end
90
73
  # Coverage - optional code coverage, rcov for 1.8 and simplecov for 1.9, so
91
74
  # for the moment only rcov is listed.
92
75
  #------------------------------------------------------------------------------
93
- if RUBY_VERSION < "1.9.0"
94
- begin
95
- require 'rcov/rcovtask'
96
- Rcov::RcovTask.new( 'coverage' ) do |t|
97
- t.libs << 'spec'
98
- t.pattern = 'spec/**/*_spec.rb'
99
- t.verbose = true
100
- t.rcov_opts << "-x ^/" # remove all the global files
101
- t.rcov_opts << "--sort coverage" # so we see the worst files at the top
102
- end
103
- rescue LoadError
104
- This.task_warning( 'rcov' )
105
- end
106
- else
107
- begin
108
- require 'simplecov'
109
- desc 'Run tests with code coverage'
110
- task :coverage do
111
- ENV['COVERAGE'] = 'true'
112
- Rake::Task[:test].invoke
113
- end
114
- CLOBBER << FileList["coverage"] if File.directory?( "coverage" )
115
- rescue LoadError
116
- This.task_warning( 'simplecov' )
76
+ begin
77
+ require 'simplecov'
78
+ desc 'Run tests with code coverage'
79
+ task :coverage do
80
+ ENV['COVERAGE'] = 'true'
81
+ Rake::Task[:test].execute
117
82
  end
83
+ CLOBBER << 'coverage' if File.directory?('coverage')
84
+ rescue LoadError
85
+ This.task_warning( 'simplecov' )
118
86
  end
119
87
 
120
88
  #------------------------------------------------------------------------------
@@ -179,9 +147,10 @@ namespace :fixme do
179
147
  end
180
148
 
181
149
  def outdated_fixme_files
182
- local_fixme_files.reject do |local|
150
+ local_fixme_files.select do |local|
183
151
  upstream = fixme_project_path( local )
184
- Digest::SHA256.file( local ) == Digest::SHA256.file( upstream )
152
+ upstream.exist? &&
153
+ ( Digest::SHA256.file( local ) != Digest::SHA256.file( upstream ) )
185
154
  end
186
155
  end
187
156
 
@@ -231,9 +200,6 @@ task :gemspec do
231
200
  end
232
201
  end
233
202
 
234
- # the gemspec is also a dev artifact and should not be kept around.
235
- CLOBBER << This.gemspec_file.to_s
236
-
237
203
  # .rbc files from ruby 2.0
238
204
  CLOBBER << FileList["**/*.rbc"]
239
205
 
data/tasks/extension.rake CHANGED
@@ -24,7 +24,7 @@ begin
24
24
  ext.gem_spec = This.ruby_gemspec
25
25
 
26
26
  ext.cross_compile = true # enable cross compilation (requires cross compile toolchain)
27
- ext.cross_platform = 'i386-mswin32' # forces the Windows platform instead of the default one
27
+ ext.cross_platform = 'i386-mingw32' # forces the Windows platform instead of the default one
28
28
  # configure options only for cross compile
29
29
  end
30
30
  end
@@ -35,4 +35,4 @@ rescue LoadError
35
35
  end
36
36
 
37
37
  CLOBBER << FileList["lib/**/*.{jar,so,bundle}"]
38
- CLOBBER << FileList["lib/#{This.name}/{1.8,1.9,2.0}/"]
38
+ CLOBBER << FileList["lib/#{This.name}/{1.8,1.9,2.0,2.1,2.2}/"]
data/tasks/this.rb CHANGED
@@ -13,7 +13,7 @@ class ThisProject
13
13
  attr_accessor :email
14
14
 
15
15
  # The homepage of this project
16
- attr_accessor :homepage
16
+ attr_accessor :homepage
17
17
 
18
18
  # The regex of files to exclude from the manifest
19
19
  attr_accessor :exclude_from_manifest
@@ -25,7 +25,11 @@ class ThisProject
25
25
  #
26
26
  # Yields self
27
27
  def initialize(&block)
28
- @exclude_from_manifest = %r/\.(git|DS_Store)|^(doc|coverage|pkg|tmp|Gemfile(\.lock)?)|^[^\/]+\.gemspec|\.(swp|jar|bundle|so|rvmrc)$|~$/
28
+ @exclude_from_manifest = Regexp.union(/\.(git|DS_Store)/,
29
+ /^(doc|coverage|pkg|tmp|Gemfile(\.lock)?)/,
30
+ /^[^\/]+\.gemspec/,
31
+ /\.(swp|jar|bundle|so|rvmrc|travis.yml)$/,
32
+ /~$/)
29
33
  @gemspecs = Hash.new
30
34
  yield self if block_given?
31
35
  end
@@ -119,7 +123,7 @@ class ThisProject
119
123
 
120
124
  # Internal: Returns the gemspace associated with the current ruby platform
121
125
  def platform_gemspec
122
- gemspecs[platform]
126
+ gemspecs.fetch(platform) { This.ruby_gemspec }
123
127
  end
124
128
 
125
129
  def core_gemspec
@@ -141,6 +145,8 @@ class ThisProject
141
145
  spec.extra_rdoc_files += spec.files.grep(/(txt|rdoc|md)$/)
142
146
  spec.rdoc_options = [ "--main" , 'README.md',
143
147
  "--markup", "tomdoc" ]
148
+
149
+ spec.required_ruby_version = '>= 1.9.3'
144
150
  end
145
151
  end
146
152
 
@@ -167,20 +173,6 @@ class ThisProject
167
173
  return spec
168
174
  end
169
175
 
170
- # Internal: Set the recovery gem development dependency
171
- #
172
- # These are dynamically set since they cannot be hard coded as there is
173
- # no way to ship them correctly in the gemspec
174
- #
175
- # Returns nothing.
176
- def set_coverage_gem
177
- if RUBY_VERSION < "1.9.0"
178
- platform_gemspec.add_development_dependency( 'rcov', '~> 1.0.0' )
179
- else
180
- platform_gemspec.add_development_dependency( 'simplecov', '~> 0.8.2' )
181
- end
182
- end
183
-
184
176
  # Internal: Return the platform of ThisProject at the current moment in time.
185
177
  def platform
186
178
  (RUBY_PLATFORM == "java") ? 'java' : Gem::Platform::RUBY
@@ -190,8 +182,8 @@ class ThisProject
190
182
  def description_section
191
183
  section_of( 'README.md', 'DESCRIPTION')
192
184
  end
193
-
194
- # Internal: Return the summary text from the README
185
+
186
+ # Internal: Return the summary text from the README
195
187
  def summary
196
188
  description_section.first
197
189
  end
metadata CHANGED
@@ -1,88 +1,102 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hitimes
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.2
4
+ version: 1.2.3
5
5
  platform: java
6
6
  authors:
7
7
  - Jeremy Hinegardner
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-07-09 00:00:00.000000000 Z
11
+ date: 2015-09-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - "~>"
17
+ - !ruby/object:Gem::Version
18
+ version: '10.4'
14
19
  name: rake
20
+ prerelease: false
21
+ type: :development
15
22
  version_requirements: !ruby/object:Gem::Requirement
16
23
  requirements:
17
- - - ~>
24
+ - - "~>"
18
25
  - !ruby/object:Gem::Version
19
- version: '10.0'
26
+ version: '10.4'
27
+ - !ruby/object:Gem::Dependency
20
28
  requirement: !ruby/object:Gem::Requirement
21
29
  requirements:
22
- - - ~>
30
+ - - "~>"
23
31
  - !ruby/object:Gem::Version
24
- version: '10.0'
32
+ version: '5.5'
33
+ name: minitest
25
34
  prerelease: false
26
35
  type: :development
27
- - !ruby/object:Gem::Dependency
28
- name: minitest
29
36
  version_requirements: !ruby/object:Gem::Requirement
30
37
  requirements:
31
- - - ~>
38
+ - - "~>"
32
39
  - !ruby/object:Gem::Version
33
- version: '5.3'
40
+ version: '5.5'
41
+ - !ruby/object:Gem::Dependency
34
42
  requirement: !ruby/object:Gem::Requirement
35
43
  requirements:
36
- - - ~>
44
+ - - "~>"
37
45
  - !ruby/object:Gem::Version
38
- version: '5.3'
46
+ version: '4.2'
47
+ name: rdoc
39
48
  prerelease: false
40
49
  type: :development
41
- - !ruby/object:Gem::Dependency
42
- name: rdoc
43
50
  version_requirements: !ruby/object:Gem::Requirement
44
51
  requirements:
45
- - - ~>
52
+ - - "~>"
46
53
  - !ruby/object:Gem::Version
47
- version: '4.1'
54
+ version: '4.2'
55
+ - !ruby/object:Gem::Dependency
48
56
  requirement: !ruby/object:Gem::Requirement
49
57
  requirements:
50
- - - ~>
58
+ - - "~>"
51
59
  - !ruby/object:Gem::Version
52
- version: '4.1'
60
+ version: '1.8'
61
+ name: json
53
62
  prerelease: false
54
63
  type: :development
55
- - !ruby/object:Gem::Dependency
56
- name: json
57
64
  version_requirements: !ruby/object:Gem::Requirement
58
65
  requirements:
59
- - - ~>
66
+ - - "~>"
60
67
  - !ruby/object:Gem::Version
61
- version: 1.7.7
68
+ version: '1.8'
69
+ - !ruby/object:Gem::Dependency
62
70
  requirement: !ruby/object:Gem::Requirement
63
71
  requirements:
64
- - - ~>
72
+ - - "~>"
65
73
  - !ruby/object:Gem::Version
66
- version: 1.7.7
74
+ version: '0.9'
75
+ name: rake-compiler
67
76
  prerelease: false
68
77
  type: :development
69
- - !ruby/object:Gem::Dependency
70
- name: rake-compiler
71
78
  version_requirements: !ruby/object:Gem::Requirement
72
79
  requirements:
73
- - - ~>
80
+ - - "~>"
74
81
  - !ruby/object:Gem::Version
75
82
  version: '0.9'
83
+ - !ruby/object:Gem::Dependency
76
84
  requirement: !ruby/object:Gem::Requirement
77
85
  requirements:
78
- - - ~>
86
+ - - "~>"
79
87
  - !ruby/object:Gem::Version
80
88
  version: '0.9'
89
+ name: simplecov
81
90
  prerelease: false
82
91
  type: :development
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '0.9'
83
97
  description: 'Hitimes is a fast, high resolution timer library for recording performance
84
98
  metrics. It uses the appropriate low method calls for each system to get the highest
85
- granularity time increments possible. It currently supports any of the following
99
+ granularity time increments possible. It currently supports any of the following
86
100
  systems: * any system with the POSIX call `clock_gettime()` * Mac OS X * Windows
87
101
  * JRuby Using Hitimes can be faster than using a series of `Time.new` calls, and
88
102
  it will have a much higher granularity. It is definitely faster than using `Process.times`.'
@@ -95,7 +109,6 @@ extra_rdoc_files:
95
109
  - Manifest.txt
96
110
  - README.md
97
111
  files:
98
- - .travis.yml
99
112
  - CONTRIBUTING.md
100
113
  - HISTORY.md
101
114
  - LICENSE
@@ -118,6 +131,7 @@ files:
118
131
  - ext/hitimes/java/src/hitimes/HitimesService.java
119
132
  - ext/hitimes/java/src/hitimes/HitimesStats.java
120
133
  - lib/hitimes.rb
134
+ - lib/hitimes/hitimes.jar
121
135
  - lib/hitimes/metric.rb
122
136
  - lib/hitimes/mutexed_stats.rb
123
137
  - lib/hitimes/paths.rb
@@ -140,32 +154,31 @@ files:
140
154
  - tasks/default.rake
141
155
  - tasks/extension.rake
142
156
  - tasks/this.rb
143
- - lib/hitimes/hitimes.jar
144
157
  homepage: http://github.com/copiousfreetime/hitimes
145
158
  licenses:
146
159
  - ISC
147
160
  metadata: {}
148
161
  post_install_message:
149
162
  rdoc_options:
150
- - --main
163
+ - "--main"
151
164
  - README.md
152
- - --markup
165
+ - "--markup"
153
166
  - tomdoc
154
167
  require_paths:
155
168
  - lib
156
169
  required_ruby_version: !ruby/object:Gem::Requirement
157
170
  requirements:
158
- - - '>='
171
+ - - ">="
159
172
  - !ruby/object:Gem::Version
160
- version: '0'
173
+ version: 1.9.3
161
174
  required_rubygems_version: !ruby/object:Gem::Requirement
162
175
  requirements:
163
- - - '>='
176
+ - - ">="
164
177
  - !ruby/object:Gem::Version
165
178
  version: '0'
166
179
  requirements: []
167
180
  rubyforge_project:
168
- rubygems_version: 2.1.9
181
+ rubygems_version: 2.4.8
169
182
  signing_key:
170
183
  specification_version: 4
171
184
  summary: Hitimes is a fast, high resolution timer library for recording performance metrics. It uses the appropriate low method calls for each system to get the highest granularity time increments possible.
data/.travis.yml DELETED
@@ -1,11 +0,0 @@
1
- language: ruby
2
- rvm:
3
- - "1.8.7"
4
- - "1.9.2"
5
- - "1.9.3"
6
- - "2.0.0"
7
- - "2.1.0"
8
- - jruby-18mode # JRuby in 1.8 mode
9
- - jruby-19mode # JRuby in 1.9 mode
10
- - rbx
11
- install: rake develop