osqp 0.4.0 → 0.4.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: eaa20f2fcffb79fc2ddea0547c9e2019aa63b710df8ba097809e096437f0eee4
4
- data.tar.gz: 2311853dfdbf7794e584cb6a305a4359906e9f41ae856a7882eb2a5394ee3611
3
+ metadata.gz: 1e146965f2438ae0573b8c96e3db75ea93698909fe2d6d03b8c03c0943d37b11
4
+ data.tar.gz: 5d626037990f92d81be5b8b555a19f03b175e0bf77de6706cec883cd1a1b35d6
5
5
  SHA512:
6
- metadata.gz: 54bb5418bbbe93dcf7809441e1c0ab35c6e2f27891c54e3f2aae245fb4285d8805ed3909f0b8a6ad37ada5f174b70218a6e26a67116ec652a8fa2cfe8f6556ee
7
- data.tar.gz: 3c9691bb46452def08f7aeac289040d5bad84e9fea78c2968659e9abe4d7e7126bda82b894af5bd79e44dac18f3c8924d53f2766246d093d69f2b23689549886
6
+ metadata.gz: 6e02b4c79b5b04e01e05c15c267300e06a69449fa262f82a69c0c3c8ccfae5f17e702d52ef6f5189f0344d4132bda3ff06a293294f122620a55417bf030d2d1c
7
+ data.tar.gz: ef9a8790844d94b93b92b7687ea27e70f1473dd2eac4c4a5ab14720cac395f88a7ca177a9450c521f2ba90f9900a48b83e6a65a57011359aba18e16647326c53
data/CHANGELOG.md CHANGED
@@ -1,3 +1,8 @@
1
+ ## 0.4.1 (2025-04-26)
2
+
3
+ - Fixed memory leaks
4
+ - Fixed error messages for OSQP 1.0.0
5
+
1
6
  ## 0.4.0 (2025-04-01)
2
7
 
3
8
  - Updated OSQP to 1.0.0
data/lib/osqp/solver.rb CHANGED
@@ -17,8 +17,9 @@ module OSQP
17
17
  u = float_array(u)
18
18
 
19
19
  # work
20
- work = Fiddle::Pointer.malloc(Fiddle::SIZEOF_VOIDP)
21
- check_result FFI.osqp_setup(work.ref, matrix_ptr(p), q, matrix_ptr(a), l, u, a.m, a.n, set)
20
+ work_ptr = Fiddle::Pointer.malloc(Fiddle::SIZEOF_VOIDP, Fiddle::RUBY_FREE)
21
+ check_result FFI.osqp_setup(work_ptr, matrix_ptr(p), q, matrix_ptr(a), l, u, a.m, a.n, set)
22
+ work = work_ptr.ptr
22
23
  work.free = FFI["osqp_cleanup"]
23
24
  @work = FFI::Solver.new(work)
24
25
  end
@@ -80,15 +81,23 @@ module OSQP
80
81
  when 2
81
82
  "Settings validation error"
82
83
  when 3
83
- "Linear system solver loading error"
84
- when 4
85
84
  "Linear system solver initialization error"
86
- when 5
85
+ when 4
87
86
  "Non-convex problem"
88
- when 6
87
+ when 5
89
88
  "Memory allocation error"
90
- when 7
89
+ when 6
91
90
  "Workspace not initialized"
91
+ when 7
92
+ "Error loading algebra library"
93
+ when 8
94
+ "Error opening file for writing"
95
+ when 9
96
+ "Error validating given code generation defines"
97
+ when 10
98
+ "Solver data not initialized"
99
+ when 11
100
+ "Function not implemented in current algebra"
92
101
  else
93
102
  "Error code #{ret}"
94
103
  end
@@ -154,14 +163,14 @@ module OSQP
154
163
 
155
164
  def dimensions
156
165
  # OSQP int = long long
157
- m = Fiddle::Pointer.malloc(Fiddle::SIZEOF_LONG_LONG)
158
- n = Fiddle::Pointer.malloc(Fiddle::SIZEOF_LONG_LONG)
166
+ m = Fiddle::Pointer.malloc(Fiddle::SIZEOF_LONG_LONG, Fiddle::RUBY_FREE)
167
+ n = Fiddle::Pointer.malloc(Fiddle::SIZEOF_LONG_LONG, Fiddle::RUBY_FREE)
159
168
  FFI.osqp_get_dimensions(@work, m, n)
160
169
  [read_int(m), read_int(n)]
161
170
  end
162
171
 
163
172
  def create_settings(settings)
164
- set = FFI::Settings.malloc
173
+ set = FFI::Settings.malloc(Fiddle::RUBY_FREE)
165
174
  FFI.osqp_set_default_settings(set)
166
175
 
167
176
  # hack for setting members with []=
data/lib/osqp/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module OSQP
2
- VERSION = "0.4.0"
2
+ VERSION = "0.4.1"
3
3
  end
data/lib/osqp.rb CHANGED
@@ -2,9 +2,9 @@
2
2
  require "fiddle/import"
3
3
 
4
4
  # modules
5
- require "osqp/matrix"
6
- require "osqp/solver"
7
- require "osqp/version"
5
+ require_relative "osqp/matrix"
6
+ require_relative "osqp/solver"
7
+ require_relative "osqp/version"
8
8
 
9
9
  module OSQP
10
10
  class Error < StandardError; end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: osqp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Kane
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2025-04-01 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: fiddle
@@ -80,7 +80,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
80
80
  - !ruby/object:Gem::Version
81
81
  version: '0'
82
82
  requirements: []
83
- rubygems_version: 3.6.2
83
+ rubygems_version: 3.6.7
84
84
  specification_version: 4
85
85
  summary: OSQP (Operator Splitting Quadratic Program) solver for Ruby
86
86
  test_files: []