hitimes 1.1.1 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. data/CONTRIBUTING.md +45 -0
  2. data/{HISTORY → HISTORY.rdoc} +14 -1
  3. data/LICENSE +11 -8
  4. data/Manifest.txt +44 -0
  5. data/{README → README.rdoc} +20 -6
  6. data/Rakefile +20 -62
  7. data/ext/hitimes/{extconf.rb → c/extconf.rb} +3 -3
  8. data/ext/hitimes/{hitimes_ext.c → c/hitimes.c} +1 -1
  9. data/ext/hitimes/{hitimes_instant_clock_gettime.c → c/hitimes_instant_clock_gettime.c} +0 -0
  10. data/ext/hitimes/c/hitimes_instant_osx.c +45 -0
  11. data/ext/hitimes/{hitimes_instant_windows.c → c/hitimes_instant_windows.c} +0 -0
  12. data/ext/hitimes/{hitimes_interval.c → c/hitimes_interval.c} +15 -7
  13. data/ext/hitimes/{hitimes_interval.h → c/hitimes_interval.h} +5 -5
  14. data/ext/hitimes/{hitimes_stats.c → c/hitimes_stats.c} +0 -0
  15. data/ext/hitimes/{hitimes_stats.h → c/hitimes_stats.h} +0 -0
  16. data/ext/hitimes/java/src/hitimes/Hitimes.java +54 -0
  17. data/ext/hitimes/java/src/hitimes/HitimesInterval.java +181 -0
  18. data/ext/hitimes/java/src/hitimes/HitimesService.java +16 -0
  19. data/ext/hitimes/java/src/hitimes/HitimesStats.java +112 -0
  20. data/lib/hitimes.rb +15 -5
  21. data/lib/hitimes/version.rb +1 -50
  22. data/spec/hitimes_spec.rb +14 -0
  23. data/spec/interval_spec.rb +24 -21
  24. data/spec/metric_spec.rb +8 -10
  25. data/spec/mutex_stats_spec.rb +8 -6
  26. data/spec/paths_spec.rb +1 -3
  27. data/spec/spec_helper.rb +7 -3
  28. data/spec/stats_spec.rb +26 -28
  29. data/spec/timed_metric_spec.rb +33 -33
  30. data/spec/timed_value_metric_spec.rb +45 -46
  31. data/spec/value_metric_spec.rb +21 -23
  32. data/spec/version_spec.rb +4 -30
  33. data/tasks/default.rake +267 -0
  34. data/tasks/extension.rake +31 -101
  35. data/tasks/this.rb +209 -0
  36. metadata +139 -143
  37. data/ext/hitimes/hitimes_instant_osx.c +0 -16
  38. data/gemspec.rb +0 -64
  39. data/tasks/announce.rake +0 -42
  40. data/tasks/config.rb +0 -109
  41. data/tasks/distribution.rake +0 -93
  42. data/tasks/documentation.rake +0 -32
  43. data/tasks/rspec.rake +0 -33
  44. data/tasks/rubyforge.rake +0 -55
  45. data/tasks/utils.rb +0 -80
@@ -0,0 +1,45 @@
1
+ # Hi there!
2
+
3
+ I see you are interested in contributing. That is wonderful. I love
4
+ contributions.
5
+
6
+ I guarantee that there are bugs in this software. And I guarantee that there is
7
+ a feature you want that is not in here yet. As such, any and all bugs reports
8
+ are gratefully accepted, bugfixes even more so. Helping out with bugs is the
9
+ easiest way to contribute.
10
+
11
+
12
+ ## The Quick Version
13
+
14
+ * Have a [GitHub Account][].
15
+ * Search the [GitHub Issues][] and see if your issue already present. If so
16
+ add your comments, :thumbsup:, etc.
17
+ * Issue not there? Not a problem, open up a [new issue][].
18
+ * **Bug reports** please be as detailed as possible. Include:
19
+ * full ruby engine and version: `ruby -e 'puts RUBY_DESCRIPTION'`
20
+ * operating system and version
21
+ * version of hitimes `ruby -rubygems -e "require 'hitimes'; puts Hitimes::VERSION"`
22
+ * as much detail about the bug as possible so I can replicated it. Feel free
23
+ to link in a [gist][]
24
+ * **New Feature**
25
+ * What the new feature should do.
26
+ * What benefit the new feature brings to the project.
27
+ * Fork the [repo][].
28
+ * Create a new branch for your issue: `git checkout -b issue/my-issue`
29
+ * Lovingly craft your contribution:
30
+ * `rake develop` to get started, or if you prefer bundler `rake develop:using_bunder && bundle`.
31
+ * `rake test` to run tests
32
+ * Make sure that `rake test` passes. Its important, I said it twice.
33
+ * Add yourself to the contributors section below.
34
+ * Submit your [pull request][].
35
+
36
+ # Contributors
37
+
38
+ * Jeremy Hinegardner
39
+
40
+ [GitHub Account]: https://github.com/signup/free "GitHub Signup"
41
+ [GitHub Issues]: https://github.com/copiousfreetime/hitimes/issues "Hitimes Issues"
42
+ [new issue]: https://github.com/copiousfreetime/hitimes/issues/new "New Hitimes Issue"
43
+ [gist]: https://gist.github.com/ "New Gist"
44
+ [repo]: https://github.com/copiousfreetime/hitimes "hitimes Repo"
45
+ [pull request]: https://help.github.com/articles/using-pull-requests "Using Pull Requests"
@@ -1,4 +1,17 @@
1
- = Changelog
1
+ = Hitimes Changelog
2
+
3
+ == Version 1.2.0 2013-02-09
4
+
5
+ * Update dependencies
6
+ * Documentation cleanup
7
+ * Fix use of deprecated JRuby API in java extension
8
+ * Fix use of deprecated OSX system calls in C extension
9
+ * Make hitimes -w clean
10
+ * Fix ambiguity of calling duration on non-started Interval
11
+ * Use RbConfig instead of Config (eregon)
12
+ * Added Hitimes.measure
13
+ * Switch to using rake-compiler for cross compilation of gems
14
+
2
15
  == Version 1.1.1 2010-09-04
3
16
 
4
17
  * Remove the unnecessary dependencies that should be development dependencies
data/LICENSE CHANGED
@@ -1,13 +1,16 @@
1
- Copyright (c) 2008 Jeremy Hinegardner
1
+ ISC LICENSE - http://opensource.org/licenses/isc-license.txt
2
+
3
+ Copyright (c) 2008-2012 Jeremy Hinegardner
2
4
 
3
5
  Permission to use, copy, modify, and/or distribute this software for any
4
6
  purpose with or without fee is hereby granted, provided that the above
5
7
  copyright notice and this permission notice appear in all copies.
6
8
 
7
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
8
- REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
9
- FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
10
- INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
11
- LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
12
- OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
13
- PERFORMANCE OF THIS SOFTWARE.
9
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10
+ WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11
+ MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12
+ ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13
+ WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14
+ ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15
+ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16
+
@@ -0,0 +1,44 @@
1
+ CONTRIBUTING.md
2
+ HISTORY.rdoc
3
+ LICENSE
4
+ Manifest.txt
5
+ README.rdoc
6
+ Rakefile
7
+ examples/benchmarks.rb
8
+ examples/stats.rb
9
+ ext/hitimes/c/extconf.rb
10
+ ext/hitimes/c/hitimes.c
11
+ ext/hitimes/c/hitimes_instant_clock_gettime.c
12
+ ext/hitimes/c/hitimes_instant_osx.c
13
+ ext/hitimes/c/hitimes_instant_windows.c
14
+ ext/hitimes/c/hitimes_interval.c
15
+ ext/hitimes/c/hitimes_interval.h
16
+ ext/hitimes/c/hitimes_stats.c
17
+ ext/hitimes/c/hitimes_stats.h
18
+ ext/hitimes/java/src/hitimes/Hitimes.java
19
+ ext/hitimes/java/src/hitimes/HitimesInterval.java
20
+ ext/hitimes/java/src/hitimes/HitimesService.java
21
+ ext/hitimes/java/src/hitimes/HitimesStats.java
22
+ lib/hitimes.rb
23
+ lib/hitimes/metric.rb
24
+ lib/hitimes/mutexed_stats.rb
25
+ lib/hitimes/paths.rb
26
+ lib/hitimes/stats.rb
27
+ lib/hitimes/timed_metric.rb
28
+ lib/hitimes/timed_value_metric.rb
29
+ lib/hitimes/value_metric.rb
30
+ lib/hitimes/version.rb
31
+ spec/hitimes_spec.rb
32
+ spec/interval_spec.rb
33
+ spec/metric_spec.rb
34
+ spec/mutex_stats_spec.rb
35
+ spec/paths_spec.rb
36
+ spec/spec_helper.rb
37
+ spec/stats_spec.rb
38
+ spec/timed_metric_spec.rb
39
+ spec/timed_value_metric_spec.rb
40
+ spec/value_metric_spec.rb
41
+ spec/version_spec.rb
42
+ tasks/default.rake
43
+ tasks/extension.rake
44
+ tasks/this.rb
@@ -1,9 +1,9 @@
1
1
  == hitimes
2
2
 
3
- * Homepage[http://copiousfreetime.rubyforge.org/hitimes]
4
- * {Rubyforge project}[http://rubyforge.org/projects/copiousfreetime/]
3
+ * Homepage[http://github.com/copiousfreetime/hitimes]
4
+ * {Github project}[http://github.com.org/copiousfreetime/hitimes]
5
5
  * email jeremy at copiousfreetime dot org
6
- * git clone url git://github.com/copiousfreetime/hitimes.git
6
+ * `git clone url git://github.com/copiousfreetime/hitimes.git`
7
7
 
8
8
  == INSTALL
9
9
 
@@ -12,7 +12,7 @@
12
12
  == DESCRIPTION
13
13
 
14
14
  Hitimes is a fast, high resolution timer library for recording
15
- performance metrics. It uses the appropriate C method calls for each
15
+ performance metrics. It uses the appropriate low method calls for each
16
16
  system to get the highest granularity time increments possible.
17
17
 
18
18
  It currently supports any of the following systems:
@@ -20,6 +20,7 @@ It currently supports any of the following systems:
20
20
  * any system with the POSIX call <tt>clock_gettime()</tt>,
21
21
  * Mac OS X
22
22
  * Windows
23
+ * JRuby
23
24
 
24
25
  Using Hitimes can be faster than using a series of +Time.new+ calls, and
25
26
  it will have a much higher granularity. It is definitely faster than
@@ -35,7 +36,7 @@ Use Hitimes::Interval to calculate only the duration of a block of code
35
36
  # some operation ...
36
37
  end
37
38
 
38
- puts duration
39
+ puts duration
39
40
 
40
41
  === TimedMetric
41
42
 
@@ -113,13 +114,26 @@ Use a Hitimes::TimedValueMetric to calculate statistics about batches of samples
113
114
 
114
115
  Read the HISTORY file.
115
116
 
117
+ == BUILDING FOR WINDOWS
118
+
119
+ {rake-compiler}(https://github.com/luislavena/rake-compiler) is use for building
120
+ the windows version. For me, on OSX to cross compile the process is:
121
+
122
+ % gem install rake-compiler # in each rvm instance, 1.8.7, 1.9.3
123
+ % rvm use 1.9.3@hitimes
124
+ % rake-compiler cross-ruby VERSION=1.9.3-p374 # or latest
125
+ % rvm use 1.8.7@hitimes
126
+ % rake-compiler cross-ruby VERSION=1.8.7-p371
127
+
128
+ # This only works via 1.8.7 at the current moment
129
+ % rake cross native gem RUBY_CC_VERSION=1.8.7:1.9.3
116
130
  == CREDITS
117
131
 
118
132
  * Bruce Williams for suggesting the idea
119
133
 
120
134
  == ISC License
121
135
 
122
- Copyright (c) 2008 Jeremy Hinegardner
136
+ Copyright (c) 2008-2012 Jeremy Hinegardner
123
137
 
124
138
  Permission to use, copy, modify, and/or distribute this software for any
125
139
  purpose with or without fee is hereby granted, provided that the above
data/Rakefile CHANGED
@@ -1,66 +1,24 @@
1
- #--
2
- # Copyright (c) 2008 Jeremy Hinegardner
3
- # All rights reserved. See LICENSE and/or COPYING for details.
4
- #++
5
-
6
- #-------------------------------------------------------------------------------
7
- # make sure our project's top level directory and the lib directory are added to
8
- # the ruby search path.
9
- #-------------------------------------------------------------------------------
10
- $: << File.expand_path(File.join(File.dirname(__FILE__),"ext"))
11
- $: << File.expand_path(File.join(File.dirname(__FILE__),"lib"))
12
- $: << File.expand_path(File.dirname(__FILE__))
13
-
14
-
15
- #-------------------------------------------------------------------------------
16
- # load the global project configuration and add in the top level clean and
17
- # clobber tasks so that other tasks can utilize those constants if necessary
18
- # This loads up the defaults for the whole project configuration
19
- #-------------------------------------------------------------------------------
20
- require 'rubygems'
21
- require 'tasks/config.rb'
22
- require 'rake/clean'
23
-
24
- #-------------------------------------------------------------------------------
25
- # Main configuration for the project, these overwrite the items that are in
26
- # tasks/config.rb
27
- #-------------------------------------------------------------------------------
28
- require 'hitimes/version'
29
- require 'hitimes/paths'
30
-
31
- Configuration.for("project") {
32
- name "hitimes"
33
- version Hitimes::VERSION
34
- author "Jeremy Hinegardner"
35
- email "jeremy@copiousfreetime.org"
36
- homepage "http://copiousfreetime.rubyforge.org/hitimes/"
37
- }
38
-
39
- #-------------------------------------------------------------------------------
40
- # load up all the project tasks and setup the default task to be the
41
- # test:default task.
42
- #-------------------------------------------------------------------------------
43
- Configuration.for("packaging").files.tasks.each do |tasklib|
44
- import tasklib
1
+ # vim: syntax=ruby
2
+ load 'tasks/this.rb'
3
+
4
+ This.name = "hitimes"
5
+ This.author = "Jeremy Hinegardner"
6
+ This.email = "jeremy@copiousfreetime.org"
7
+ This.homepage = "http://github.com/copiousfreetime/#{ This.name }"
8
+
9
+ This.ruby_gemspec do |spec|
10
+ spec.add_development_dependency( 'rake' , '~> 10.0.3')
11
+ spec.add_development_dependency( 'rspec' , '~> 2.12.0' )
12
+ spec.add_development_dependency( 'rdoc' , '~> 3.12' )
13
+ spec.add_development_dependency( 'json' , '~> 1.7.6' )
14
+ spec.add_development_dependency( 'rake-compiler', '~> 0.8.1' )
15
+
16
+ spec.extensions.concat This.extension_conf_files
45
17
  end
46
- task :default => 'test:default'
47
18
 
48
- #-------------------------------------------------------------------------------
49
- # Finalize the loading of all pending imports and update the top level clobber
50
- # task to depend on all possible sub-level tasks that have a name like
51
- # ':clobber' in other namespaces. This allows us to say:
52
- #
53
- # rake clobber
54
- #
55
- # and it will get everything.
56
- #-------------------------------------------------------------------------------
57
- Rake.application.load_imports
58
- Rake.application.tasks.each do |t|
59
- if t.name =~ /:clobber/ then
60
- task :clobber => [t.name]
61
- end
62
- if t.name =~ /:clean/ then
63
- task :clean => [t.name]
64
- end
19
+ This.java_gemspec( This.ruby_gemspec ) do |spec|
20
+ spec.extensions.clear
65
21
  end
66
22
 
23
+ load 'tasks/default.rake'
24
+ load 'tasks/extension.rake'
@@ -1,10 +1,10 @@
1
1
  require 'rbconfig'
2
2
  require 'mkmf'
3
3
 
4
- if Config::CONFIG['host_os'] =~ /darwin/ then
4
+ if RbConfig::CONFIG['host_os'] =~ /darwin/ then
5
5
  $CFLAGS += " -DUSE_INSTANT_OSX=1 -Wall"
6
6
  $LDFLAGS += " -framework CoreServices"
7
- elsif Config::CONFIG['host_os'] =~ /win32/ or Config::CONFIG['host_os'] =~ /mingw/ then
7
+ elsif RbConfig::CONFIG['host_os'] =~ /win32/ 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
@@ -14,4 +14,4 @@ end
14
14
 
15
15
  # put in a different location if on windows so we can have fat binaries
16
16
  subdir = RUBY_VERSION.gsub(/\.\d$/,'')
17
- create_makefile("hitimes/#{subdir}/hitimes_ext")
17
+ create_makefile("hitimes/#{subdir}/hitimes")
@@ -10,7 +10,7 @@ VALUE eH_Error; /* class Hitimes::Error */
10
10
  *
11
11
  * General error class for the Hitimes module
12
12
  */
13
- void Init_hitimes_ext( )
13
+ void Init_hitimes( )
14
14
  {
15
15
  mH = rb_define_module("Hitimes");
16
16
 
@@ -0,0 +1,45 @@
1
+ #ifdef USE_INSTANT_OSX
2
+
3
+ #include "hitimes_interval.h"
4
+ #include <mach/mach.h>
5
+ #include <mach/mach_time.h>
6
+
7
+ /* All this OSX code is adapted from http://developer.apple.com/library/mac/#qa/qa1398/_index.html */
8
+
9
+ /*
10
+ * returns the conversion factor, this value is used to convert
11
+ * the value from hitimes_get_current_instant() into seconds
12
+ */
13
+ long double hitimes_instant_conversion_factor()
14
+ {
15
+ static mach_timebase_info_data_t s_timebase_info;
16
+ static long double conversion_factor;
17
+ static uint64_t nano_conversion;
18
+
19
+ /**
20
+ * If this is the first time we've run, get the timebase.
21
+ * We can use denom == 0 to indicate that s_timebase_info is
22
+ * uninitialised because it makes no sense to have a zero
23
+ * denominator is a fraction.
24
+ */
25
+
26
+ if ( s_timebase_info.denom == 0 ) {
27
+ mach_timebase_info(&s_timebase_info);
28
+ nano_conversion = s_timebase_info.numer / s_timebase_info.denom;
29
+ conversion_factor = (long double) (nano_conversion) * (1e9l);
30
+ }
31
+
32
+ return conversion_factor;
33
+ }
34
+
35
+ /*
36
+ * returns the mach absolute time, which has no meaning outside of a conversion
37
+ * factor.
38
+ */
39
+ hitimes_instant_t hitimes_get_current_instant()
40
+ {
41
+ return mach_absolute_time();
42
+ }
43
+
44
+
45
+ #endif
@@ -39,7 +39,7 @@ VALUE hitimes_interval_alloc(VALUE klass)
39
39
  *
40
40
  * Create an interval that has already started
41
41
  */
42
- VALUE hitimes_interval_now( VALUE self )
42
+ VALUE hitimes_interval_now( )
43
43
  {
44
44
  VALUE obj;
45
45
  hitimes_interval_t *i = xmalloc( sizeof( hitimes_interval_t ) );
@@ -59,7 +59,7 @@ VALUE hitimes_interval_now( VALUE self )
59
59
  *
60
60
  * Times the execution of the block returning the number of seconds it took
61
61
  */
62
- VALUE hitimes_interval_measure( VALUE self )
62
+ VALUE hitimes_interval_measure( )
63
63
  {
64
64
  hitimes_instant_t before;
65
65
  hitimes_instant_t after;
@@ -68,7 +68,7 @@ VALUE hitimes_interval_measure( VALUE self )
68
68
  if ( !rb_block_given_p() ) {
69
69
  rb_raise(eH_Error, "No block given to Interval.measure" );
70
70
  }
71
-
71
+
72
72
  before = hitimes_get_current_instant( );
73
73
  rb_yield( Qnil );
74
74
  after = hitimes_get_current_instant( );
@@ -105,7 +105,7 @@ VALUE hitimes_interval_split( VALUE self )
105
105
 
106
106
  /**
107
107
  * call-seq:
108
- * interval.start -> boolean
108
+ * interval.start -> boolean
109
109
  *
110
110
  * mark the start of the interval. Calling start on an already started
111
111
  * interval has no effect. An interval can only be started once. If the
@@ -144,7 +144,7 @@ VALUE hitimes_interval_stop( VALUE self )
144
144
 
145
145
  Data_Get_Struct( self, hitimes_interval_t, i );
146
146
  if ( 0L == i->start_instant ) {
147
- rb_raise(eH_Error, "Attempt to stop an interval that has not started.\n" );
147
+ rb_raise(eH_Error, "Attempt to stop an interval that has not started" );
148
148
  }
149
149
 
150
150
  if ( 0L == i->stop_instant ) {
@@ -281,6 +281,8 @@ VALUE hitimes_interval_stop_instant( VALUE self )
281
281
  * Returns the Float value of the interval, the value is in seconds. If the
282
282
  * interval has not had stop called yet, it will report the number of seconds
283
283
  * in the interval up to the current point in time.
284
+ *
285
+ * Raises Error if duration is called on an interval that has not started yet.
284
286
  */
285
287
  VALUE hitimes_interval_duration ( VALUE self )
286
288
  {
@@ -288,7 +290,13 @@ VALUE hitimes_interval_duration ( VALUE self )
288
290
 
289
291
  Data_Get_Struct( self, hitimes_interval_t, i );
290
292
 
291
- /**
293
+ /* raise an error if the internval is not started */
294
+ if ( 0L == i->start_instant ) {
295
+ rb_raise(eH_Error, "Attempt to report a duration on an interval that has not started" );
296
+ }
297
+
298
+
299
+ /**
292
300
  * if stop has not yet been called, then return the amount of time so far
293
301
  */
294
302
  if ( 0L == i->stop_instant ) {
@@ -296,7 +304,7 @@ VALUE hitimes_interval_duration ( VALUE self )
296
304
  hitimes_instant_t now = hitimes_get_current_instant( );
297
305
  d = ( now - i->start_instant ) / HITIMES_INSTANT_CONVERSION_FACTOR;
298
306
  return rb_float_new( d );
299
- }
307
+ }
300
308
 
301
309
  /*
302
310
  * stop has been called, calculate the duration and save the result
@@ -16,8 +16,8 @@
16
16
  # define HITIMES_U64INT unsigned long long int
17
17
  # define HITIMES_INSTANT_CONVERSION_FACTOR 1e9l
18
18
  #elif USE_INSTANT_OSX
19
- # define HITIMES_U64INT unsigned long long int
20
- # define HITIMES_INSTANT_CONVERSION_FACTOR 1e9l
19
+ # define HITIMES_U64INT uint64_t
20
+ # define HITIMES_INSTANT_CONVERSION_FACTOR hitimes_instant_conversion_factor()
21
21
  #elif USE_INSTANT_WINDOWS
22
22
  # define HITIMES_U64INT unsigned __int64
23
23
  # define HITIMES_INSTANT_CONVERSION_FACTOR hitimes_instant_conversion_factor()
@@ -37,7 +37,7 @@ typedef struct hitimes_interval {
37
37
  long double duration;
38
38
  } hitimes_interval_t;
39
39
 
40
- /* all the backends must define this method */
40
+ /* all the backends must define these methods */
41
41
  hitimes_instant_t hitimes_get_current_instant( );
42
42
  long double hitimes_instant_conversion_factor( );
43
43
 
@@ -58,8 +58,8 @@ extern VALUE cH_Interval; /* class Hitimes::Interval */
58
58
 
59
59
  VALUE hitimes_interval_free(hitimes_interval_t* i) ;
60
60
  VALUE hitimes_interval_alloc(VALUE klass);
61
- VALUE hitimes_interval_now( VALUE self );
62
- VALUE hitimes_interval_measure( VALUE self );
61
+ VALUE hitimes_interval_now( );
62
+ VALUE hitimes_interval_measure( );
63
63
  VALUE hitimes_interval_split( VALUE self );
64
64
  VALUE hitimes_interval_start( VALUE self );
65
65
  VALUE hitimes_interval_stop( VALUE self );