nlopt 0.1.2 → 0.1.3

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: c779a5c494c4f27159c477063ddf7574c40b9813936d25ca24a0e9b72a6c897c
4
- data.tar.gz: dc7dd6083dfc4696ad9795fcb3565d7a67ecd150ca14b56bc99afdc171908335
3
+ metadata.gz: 602a77cd42c00081de3dede47c44ee742f7e4005e1021147f156748ccd1237d0
4
+ data.tar.gz: b1bc21d5c4623003966dcc5847faf9e72e9c24036103aee70471c0c55d971753
5
5
  SHA512:
6
- metadata.gz: f9dde169b1604d8a2c4a726aff6faecfde7d63180a936ec4f0d640d02bb6f36cee1833718f3486c926da8332b34e0a6cdcf34518b853c1cbcf7a386873ccb378
7
- data.tar.gz: 37b4f469c22ff6e21d4e1012ad1fcd7f6c09cc478cc215917d01a73c9aef04003dbce4c95f44f836dbf6b71c82e604acf43dddc8f9b8bb6ff510a871e6d3bd69
6
+ metadata.gz: 107e857772ea0e4ff58ca66d0d94b4343dd096b85645a7718667cb739cfdf7aa57fb34fd848c12ea0151105cdb99af2e59ccdaff436ca62e19a7743277e23255
7
+ data.tar.gz: 2263fcc3f23bfcd103ff35d4f28357a133e00d82317578649343be47e31018ad7546e23eaffcba9a6061ce40aa936a702028aec6b84533ce4651b9f34969622c
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ ## 0.1.3 (2025-05-04)
2
+
3
+ - Fixed memory leaks
4
+
1
5
  ## 0.1.2 (2024-12-16)
2
6
 
3
7
  - Added `add_inequality_constraint` and `add_equality_constraint` methods
data/lib/nlopt/opt.rb CHANGED
@@ -3,7 +3,7 @@ module NLopt
3
3
  attr_reader :last_optimum_value
4
4
 
5
5
  def initialize(algorithm, n)
6
- algorithm = FFI.nlopt_algorithm_from_string(algorithm)
6
+ algorithm = FFI.nlopt_algorithm_from_string(+algorithm)
7
7
  if algorithm < 0
8
8
  raise ArgumentError, "Invalid algorithm"
9
9
  end
@@ -170,15 +170,15 @@ module NLopt
170
170
  end
171
171
 
172
172
  def set_param(name, val)
173
- check_res FFI.nlopt_set_param(@opt, name, val)
173
+ check_res FFI.nlopt_set_param(@opt, +name, val)
174
174
  end
175
175
 
176
176
  def param(name, defaultval)
177
- FFI.nlopt_get_param(@opt, name, defaultval)
177
+ FFI.nlopt_get_param(@opt, +name, defaultval)
178
178
  end
179
179
 
180
180
  def has_param?(name)
181
- FFI.nlopt_has_param(@opt, name) == 1
181
+ FFI.nlopt_has_param(@opt, +name) == 1
182
182
  end
183
183
 
184
184
  def num_params
@@ -192,7 +192,7 @@ module NLopt
192
192
 
193
193
  def optimize(init)
194
194
  x = alloc_dptr(init)
195
- opt_f = Fiddle::Pointer.malloc(Fiddle::SIZEOF_DOUBLE)
195
+ opt_f = Fiddle::Pointer.malloc(Fiddle::SIZEOF_DOUBLE, Fiddle::RUBY_FREE)
196
196
  res = FFI.nlopt_optimize(@opt, x, opt_f)
197
197
 
198
198
  if res < 0 && res != -4
@@ -266,11 +266,11 @@ module NLopt
266
266
 
267
267
  def read_dptr(ptr, size = nil)
268
268
  size ||= ptr.size
269
- ptr.to_s(size).unpack("d*")
269
+ ptr.to_str(size).unpack("d*")
270
270
  end
271
271
 
272
272
  def out_dptr
273
- ptr = Fiddle::Pointer.malloc(dimension * Fiddle::SIZEOF_DOUBLE)
273
+ ptr = Fiddle::Pointer.malloc(dimension * Fiddle::SIZEOF_DOUBLE, Fiddle::RUBY_FREE)
274
274
  res = yield ptr
275
275
  check_res res
276
276
  read_dptr(ptr)
data/lib/nlopt/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module NLopt
2
- VERSION = "0.1.2"
2
+ VERSION = "0.1.3"
3
3
  end
data/lib/nlopt.rb CHANGED
@@ -33,9 +33,9 @@ module NLopt
33
33
  autoload :FFI, "nlopt/ffi"
34
34
 
35
35
  def self.lib_version
36
- major, minor, bugfix = 3.times.map { Fiddle::Pointer.malloc(Fiddle::SIZEOF_INT) }
36
+ major, minor, bugfix = 3.times.map { Fiddle::Pointer.malloc(Fiddle::SIZEOF_INT, Fiddle::RUBY_FREE) }
37
37
  FFI.nlopt_version(major, minor, bugfix)
38
- [major, minor, bugfix].map { |v| v.to_s(v.size).unpack1("i") }.join(".")
38
+ [major, minor, bugfix].map { |v| v.to_str(v.size).unpack1("i") }.join(".")
39
39
  end
40
40
 
41
41
  def self.srand(seed)
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nlopt
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Kane
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2024-12-16 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: fiddle
@@ -24,7 +23,6 @@ dependencies:
24
23
  - - ">="
25
24
  - !ruby/object:Gem::Version
26
25
  version: '0'
27
- description:
28
26
  email: andrew@ankane.org
29
27
  executables: []
30
28
  extensions: []
@@ -42,7 +40,6 @@ homepage: https://github.com/ankane/nlopt-ruby
42
40
  licenses:
43
41
  - MIT
44
42
  metadata: {}
45
- post_install_message:
46
43
  rdoc_options: []
47
44
  require_paths:
48
45
  - lib
@@ -57,8 +54,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
57
54
  - !ruby/object:Gem::Version
58
55
  version: '0'
59
56
  requirements: []
60
- rubygems_version: 3.5.22
61
- signing_key:
57
+ rubygems_version: 3.6.7
62
58
  specification_version: 4
63
59
  summary: Nonlinear optimization for Ruby
64
60
  test_files: []