numo-narray-alt 0.9.3 → 0.9.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 97dffa7f83cd2acb55f74fead971a6d0d76bdf70b9c1aa17f3e1799bd80cd3cf
4
- data.tar.gz: 1bc2bb54d66c86942cffefa80e5ba6bc930453a8b1d4bf6f7925cf82d3964e2a
3
+ metadata.gz: 1e9e18fd6506f406eafb8165f2d167f71ab53c77801c5fbcf9124eb9c5aa49e9
4
+ data.tar.gz: 064b228731e03805711f7f2d662ddb71305df3125b75738106e7ed477dc22415
5
5
  SHA512:
6
- metadata.gz: d5be63d5efb393e5a9830aca9557b0c3433ff9b8ded112447e7f05d1f71da1d8342032316c3697afc640882d00a094fa25d2d8a15cc2e5e6131c4125b7e40a74
7
- data.tar.gz: 11f664a3464b58d9ea29e7c34f34b4e03d1280c8f2228546bba3d9420571c6769e3161f6b969d5f04117fa7079308208a1bec0f573c85ae24b91a7864182770f
6
+ metadata.gz: af18cc5d7d017240601b59c80ec8d4a804a03e206ede0ede39fc85c0c50aad62de385c6e0df72931435c16297851a093beda4991baa9a0ce9fdbb20fa8965a44
7
+ data.tar.gz: f1149100a201b20cfda5d8a382e04b19f6b30a19f775139a72c80ae87ce41a55b4ff362f7ea62bc623613f179a009c7ef05811b3b5daddad4f330bafd7a6d0aa
data/Gemfile CHANGED
@@ -5,10 +5,16 @@ source 'https://rubygems.org'
5
5
  # Specify your gem's dependencies in narray-devel.gemspec
6
6
  gemspec
7
7
 
8
+ gem 'minitest', '~> 5.25'
8
9
  gem 'rake', '~> 13.3'
9
10
  gem 'rake-compiler', '~> 1.3'
10
11
  gem 'rubocop', '~> 1.80'
12
+ gem 'rubocop-minitest', '~> 0.38.2'
11
13
  gem 'rubocop-performance', '~> 1.26'
12
14
  gem 'rubocop-rake', '~> 0.7.1'
13
15
  gem 'simplecov', '~> 0.22.0'
14
16
  gem 'test-unit', '~> 3.7'
17
+
18
+ group :memcheck, optional: true do
19
+ gem 'ruby_memcheck', '~> 3.0' if RUBY_VERSION.split('.')[0].to_i >= 3
20
+ end
data/Rakefile CHANGED
@@ -11,13 +11,25 @@ task :doc do
11
11
  sh "rm -rf yard .yardoc; yard doc -o yard -m markdown -r README.md #{src.join(' ')}"
12
12
  end
13
13
 
14
+ require 'ruby_memcheck' if ENV['BUNDLE_WITH'] == 'memcheck'
14
15
  require 'rake/testtask'
15
- Rake::TestTask.new(:test) do |t|
16
- t.libs << 'test'
17
- t.libs << 'lib'
18
- t.verbose = false
19
- t.warning = false
20
- t.test_files = FileList['test/**/*_test.rb']
16
+
17
+ if ENV['BUNDLE_WITH'] == 'memcheck'
18
+ test_config = lambda do |t|
19
+ t.libs << 'test'
20
+ t.libs << 'lib'
21
+ t.test_files = FileList['test/**/test_*.rb']
22
+ end
23
+ Rake::TestTask.new(test: :compile, &test_config)
24
+ namespace :test do
25
+ RubyMemcheck::TestTask.new(valgrind: :compile, &test_config)
26
+ end
27
+ else
28
+ Rake::TestTask.new(:test) do |t|
29
+ t.libs << 'test'
30
+ t.libs << 'lib'
31
+ t.test_files = FileList['test/**/test_*.rb']
32
+ end
21
33
  end
22
34
 
23
35
  require 'rake/extensiontask'
@@ -473,9 +473,11 @@ static size_t na_index_parse_args(VALUE args, narray_t* na, na_index_arg_t* q, i
473
473
 
474
474
  static void na_get_strides_nadata(const narray_data_t* na, ssize_t* strides, ssize_t elmsz) {
475
475
  int i = na->base.ndim - 1;
476
- strides[i] = elmsz;
477
- for (; i > 0; i--) {
478
- strides[i - 1] = strides[i] * na->base.shape[i];
476
+ if (i >= 0) {
477
+ strides[i] = elmsz;
478
+ for (; i > 0; i--) {
479
+ strides[i - 1] = strides[i] * na->base.shape[i];
480
+ }
479
481
  }
480
482
  }
481
483
 
@@ -13,8 +13,8 @@ extern "C" {
13
13
  #endif
14
14
  #endif
15
15
 
16
- #define NARRAY_VERSION "0.9.3"
17
- #define NARRAY_VERSION_CODE 930
16
+ #define NARRAY_VERSION "0.9.4"
17
+ #define NARRAY_VERSION_CODE 940
18
18
 
19
19
  #include <math.h>
20
20
  #include "numo/compat.h"
@@ -63,6 +63,14 @@ void nary_step_array_index(VALUE obj, size_t ary_size, size_t* plen, ssize_t* pb
63
63
  vbeg = rb_funcall(obj, id_beg, 0);
64
64
  vend = rb_funcall(obj, id_end, 0);
65
65
  #endif
66
+ // Range does not have a length instance variable, which causes rb_ivar_get
67
+ // to output a warning when retrieving the length instance variable in Ruby 2.7.
68
+ // Since Range is not frozen in Ruby 2.7, we set the length instance variable.
69
+ if (RUBY_API_VERSION_MAJOR < 3) {
70
+ if (!RTEST(rb_ivar_defined(obj, id_len))) {
71
+ rb_ivar_set(obj, id_len, Qnil);
72
+ }
73
+ }
66
74
  vlen = rb_ivar_get(obj, id_len);
67
75
 
68
76
  if (RTEST(vbeg)) {
@@ -203,6 +211,14 @@ void nary_step_sequence(VALUE obj, size_t* plen, double* pbeg, double* pstep) {
203
211
  dbeg = NUM2DBL(rb_funcall(obj, id_beg, 0));
204
212
  vend = rb_funcall(obj, id_end, 0);
205
213
  #endif
214
+ // Range does not have a length instance variable, which causes rb_ivar_get
215
+ // to output a warning when retrieving the length instance variable in Ruby 2.7.
216
+ // Since Range is not frozen in Ruby 2.7, we set the length instance variable.
217
+ if (RUBY_API_VERSION_MAJOR < 3) {
218
+ if (!RTEST(rb_ivar_defined(obj, id_len))) {
219
+ rb_ivar_set(obj, id_len, Qnil);
220
+ }
221
+ }
206
222
  vlen = rb_ivar_get(obj, id_len);
207
223
 
208
224
  if (RTEST(vlen)) {
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: numo-narray-alt
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.3
4
+ version: 0.9.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - yoshoku
@@ -100,7 +100,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
100
100
  - !ruby/object:Gem::Version
101
101
  version: '0'
102
102
  requirements: []
103
- rubygems_version: 3.7.0
103
+ rubygems_version: 3.6.9
104
104
  specification_version: 4
105
105
  summary: Numo::NArray Alternative is an experimental project forked from Numo::NArray.
106
106
  test_files: []