numo-liblinear 1.1.0 → 1.1.1

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: 4e69ca89df0a86fdc4be7d1a3074a4722ead3997a6f7ba2fff84b48c6d1c36ea
4
- data.tar.gz: 992d8f8606dbf272ac18c1f6502e923d69ce3242d6cb35a460b3856cace29671
3
+ metadata.gz: 582af5c3cacbe43a05329bd6d355a89c4bff8ac52aceacedb50a20ae61703dd0
4
+ data.tar.gz: c522cd810baa4f5b57065a52675479ea9ad563b32d2608e03f42639b929a6753
5
5
  SHA512:
6
- metadata.gz: 46f453f5b9ee23640a7131d92d3f666806e182265654cec321ebae22c97ae6af06a5b35726e4ab0cfde96407d0fb828391a2c5578c3e27644c487df66432cce8
7
- data.tar.gz: d1e0fc15d4227491823fe4ed8f631c491e6cd4c8fb9c078ccf230785e2881fa12134dbfca9e84069bd8d995c140523bfc0572cbaa38761b114d162015dea5be1
6
+ metadata.gz: 4b1d93cbcadf64aa4eddb44f47b1d0725d6002201393b8dc926f8288214609b140381beaa1ed09a47180a640c0d9b93612b5d2d1fb70c1c81c74caebcc1fc7de
7
+ data.tar.gz: 3d254a3ca1ab5075c1b5a5cc84a64e40473d7e8575368f5eface0585eaa52eaa6c515fd7f43be4460c82b7aad7e95e02982a8c1e45c06cbe550266da8dee6db2
@@ -0,0 +1,27 @@
1
+ name: build
2
+
3
+ on: [push, pull_request]
4
+
5
+ jobs:
6
+ build:
7
+ runs-on: ubuntu-latest
8
+ strategy:
9
+ matrix:
10
+ ruby: [ '2.5', '2.6', '2.7' ]
11
+ steps:
12
+ - uses: actions/checkout@v2
13
+ - name: Checkout submodule
14
+ shell: bash
15
+ run: |
16
+ auth_header="$(git config --local --get http.https://github.com/.extraheader)"
17
+ git submodule sync --recursive
18
+ git -c "http.extraheader=$auth_header" -c protocol.version=2 submodule update --init --force --recursive --depth=1
19
+ - name: Set up Ruby ${{ matrix.ruby }}
20
+ uses: actions/setup-ruby@v1
21
+ with:
22
+ ruby-version: ${{ matrix.ruby }}
23
+ - name: Build and test with Rake
24
+ run: |
25
+ gem install bundler
26
+ bundle install --jobs 4 --retry 3
27
+ bundle exec rake
@@ -1,3 +1,7 @@
1
+ # 1.1.1
2
+ - Add GC guard codes.
3
+ - Fix some configuration files.
4
+
1
5
  # 1.1.0
2
6
  - Update bundled LIBLINEAR version to 2.4.1.
3
7
  - Support one-class SVM implemented on LIBLINEAR ver. 2.4.0.
@@ -1,4 +1,4 @@
1
- Copyright (c) 2019-2020 Atsushi Tatsuma
1
+ Copyright (c) 2019-2021 Atsushi Tatsuma
2
2
  All rights reserved.
3
3
 
4
4
  Redistribution and use in source and binary forms, with or without
data/README.md CHANGED
@@ -1,8 +1,8 @@
1
1
  # Numo::Liblinear
2
2
 
3
- [![Build Status](https://travis-ci.org/yoshoku/numo-liblinear.svg?branch=master)](https://travis-ci.org/yoshoku/numo-liblinear)
3
+ [![Build Status](https://github.com/yoshoku/numo-liblinear/workflows/build/badge.svg)](https://github.com/yoshoku/numo-liblinear/actions?query=workflow%3Abuild)
4
4
  [![Gem Version](https://badge.fury.io/rb/numo-liblinear.svg)](https://badge.fury.io/rb/numo-liblinear)
5
- [![BSD 3-Clause License](https://img.shields.io/badge/License-BSD%203--Clause-orange.svg)](https://github.com/yoshoku/numo-liblinear/blob/master/LICENSE.txt)
5
+ [![BSD 3-Clause License](https://img.shields.io/badge/License-BSD%203--Clause-orange.svg)](https://github.com/yoshoku/numo-liblinear/blob/main/LICENSE.txt)
6
6
  [![Documentation](http://img.shields.io/badge/docs-rdoc.info-blue.svg)](https://yoshoku.github.io/numo-liblinear/doc/)
7
7
 
8
8
  Numo::Liblinear is a Ruby gem binding to the [LIBLINEAR](https://www.csie.ntu.edu.tw/~cjlin/liblinear/) library.
@@ -148,7 +148,7 @@ Accuracy: 87.9 %
148
148
  ## Note
149
149
  The hyperparemter of LIBLINEAR is given with Ruby Hash on Numo::Liblinear.
150
150
  The hash key of hyperparameter and its meaning match the struct parameter of LIBLINEAR.
151
- The parameter is detailed in [LIBLINEAR README](https://github.com/cjlin1/liblinear/blob/master/README)
151
+ The parameter is detailed in [LIBLINEAR README](https://github.com/cjlin1/liblinear/blob/main/README)
152
152
 
153
153
  ```ruby
154
154
  param = {
@@ -162,17 +162,12 @@ param = {
162
162
  weight: # [Numo::DFloat] Weight values
163
163
  Numo::DFloat[0.4, 0.4, 0.2],
164
164
  p: 0.1, # [Float] Sensitiveness of loss of support vector regression
165
+ nu: 0.5, # [Float] one-class SVM approximates the fraction of data as outliers
165
166
  verbose: false, # [Boolean] Whether to output learning process message
166
167
  random_seed: 1 # [Integer/Nil] Random seed
167
168
  }
168
169
  ```
169
170
 
170
- ## Development
171
-
172
- After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
173
-
174
- To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
175
-
176
171
  ## Contributing
177
172
 
178
173
  Bug reports and pull requests are welcome on GitHub at https://github.com/yoshoku/numo-liblinear.
@@ -181,4 +176,4 @@ This project is intended to be a safe, welcoming space for collaboration, and co
181
176
  ## Code of Conduct
182
177
 
183
178
  Everyone interacting in the Numo::Liblinear project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow
184
- the [code of conduct](https://github.com/yoshoku/numo-liblinear/blob/master/CODE_OF_CONDUCT.md).
179
+ the [code of conduct](https://github.com/yoshoku/numo-liblinear/blob/main/CODE_OF_CONDUCT.md).
@@ -27,6 +27,8 @@ int* nary_to_int_vec(VALUE vec_val)
27
27
  vec_pt = (int32_t*)na_get_pointer_for_read(vec_val);
28
28
  for (i = 0; i < n_elements; i++) { vec[i] = (int)vec_pt[i]; }
29
29
 
30
+ RB_GC_GUARD(vec_val);
31
+
30
32
  return vec;
31
33
  }
32
34
 
@@ -56,6 +58,8 @@ double* nary_to_dbl_vec(VALUE vec_val)
56
58
  vec_pt = (double*)na_get_pointer_for_read(vec_val);
57
59
  memcpy(vec, vec_pt, n_elements * sizeof(double));
58
60
 
61
+ RB_GC_GUARD(vec_val);
62
+
59
63
  return vec;
60
64
  }
61
65
 
@@ -98,6 +102,8 @@ double** nary_to_dbl_mat(VALUE mat_val)
98
102
  }
99
103
  }
100
104
 
105
+ RB_GC_GUARD(mat_val);
106
+
101
107
  return mat;
102
108
  }
103
109
 
@@ -112,6 +112,9 @@ VALUE numo_liblinear_train(VALUE self, VALUE x_val, VALUE y_val, VALUE param_has
112
112
  xfree_problem(problem);
113
113
  xfree_parameter(param);
114
114
 
115
+ RB_GC_GUARD(x_val);
116
+ RB_GC_GUARD(y_val);
117
+
115
118
  return model_hash;
116
119
  }
117
120
 
@@ -225,6 +228,9 @@ VALUE numo_liblinear_cross_validation(VALUE self, VALUE x_val, VALUE y_val, VALU
225
228
  xfree_problem(problem);
226
229
  xfree_parameter(param);
227
230
 
231
+ RB_GC_GUARD(x_val);
232
+ RB_GC_GUARD(y_val);
233
+
228
234
  return t_val;
229
235
  }
230
236
 
@@ -291,6 +297,8 @@ VALUE numo_liblinear_predict(VALUE self, VALUE x_val, VALUE param_hash, VALUE mo
291
297
  xfree_model(model);
292
298
  xfree_parameter(param);
293
299
 
300
+ RB_GC_GUARD(x_val);
301
+
294
302
  return y_val;
295
303
  }
296
304
 
@@ -381,6 +389,8 @@ VALUE numo_liblinear_decision_function(VALUE self, VALUE x_val, VALUE param_hash
381
389
  xfree_model(model);
382
390
  xfree_parameter(param);
383
391
 
392
+ RB_GC_GUARD(x_val);
393
+
384
394
  return y_val;
385
395
  }
386
396
 
@@ -457,6 +467,8 @@ VALUE numo_liblinear_predict_proba(VALUE self, VALUE x_val, VALUE param_hash, VA
457
467
  xfree_model(model);
458
468
  xfree_parameter(param);
459
469
 
470
+ RB_GC_GUARD(x_val);
471
+
460
472
  return y_val;
461
473
  }
462
474
 
@@ -85,5 +85,8 @@ struct problem* dataset_to_problem(VALUE x_val, VALUE y_val)
85
85
  problem->y[i] = y_pt[i];
86
86
  }
87
87
 
88
+ RB_GC_GUARD(x_val);
89
+ RB_GC_GUARD(y_val);
90
+
88
91
  return problem;
89
92
  }
@@ -3,6 +3,6 @@
3
3
  module Numo
4
4
  module Liblinear
5
5
  # The version of Numo::Liblienar you are using.
6
- VERSION = '1.1.0'
6
+ VERSION = '1.1.1'
7
7
  end
8
8
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: numo-liblinear
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - yoshoku
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-08-14 00:00:00.000000000 Z
11
+ date: 2021-01-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: numo-narray
@@ -91,10 +91,10 @@ extensions:
91
91
  - ext/numo/liblinear/extconf.rb
92
92
  extra_rdoc_files: []
93
93
  files:
94
+ - ".github/workflows/build.yml"
94
95
  - ".gitignore"
95
96
  - ".gitmodules"
96
97
  - ".rspec"
97
- - ".travis.yml"
98
98
  - CHANGELOG.md
99
99
  - CODE_OF_CONDUCT.md
100
100
  - Gemfile
@@ -149,7 +149,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
149
149
  - !ruby/object:Gem::Version
150
150
  version: '0'
151
151
  requirements: []
152
- rubygems_version: 3.1.2
152
+ rubygems_version: 3.1.4
153
153
  signing_key:
154
154
  specification_version: 4
155
155
  summary: Numo::Liblinear is a Ruby gem binding to the LIBLINEAR library. Numo::Liblinear
@@ -1,14 +0,0 @@
1
- ---
2
- sudo: true
3
- os: linux
4
- dist: bionic
5
- language: ruby
6
- cache: bundler
7
- rvm:
8
- - '2.4'
9
- - '2.5'
10
- - '2.6'
11
- - '2.7'
12
-
13
- before_install:
14
- - gem install bundler -v 2.0.2