rice 4.3.3 → 4.6.0

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.
Files changed (237) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +86 -26
  3. data/CMakeLists.txt +31 -0
  4. data/CMakePresets.json +75 -0
  5. data/COPYING +3 -2
  6. data/FindRuby.cmake +437 -0
  7. data/README.md +7 -2
  8. data/Rakefile +12 -5
  9. data/include/rice/rice.hpp +9522 -4426
  10. data/include/rice/stl.hpp +2831 -1198
  11. data/lib/make_rice_headers.rb +79 -0
  12. data/lib/mkmf-rice.rb +40 -94
  13. data/lib/rice/version.rb +3 -0
  14. data/lib/rice.rb +1 -0
  15. data/lib/rubygems/builder.rb +11 -0
  16. data/lib/rubygems/cmake_builder.rb +113 -0
  17. data/lib/rubygems_plugin.rb +9 -0
  18. data/rice/Address_Registration_Guard.hpp +72 -3
  19. data/rice/Arg.hpp +26 -6
  20. data/rice/Arg.ipp +35 -2
  21. data/rice/Buffer.hpp +123 -0
  22. data/rice/Buffer.ipp +599 -0
  23. data/rice/Callback.hpp +21 -0
  24. data/rice/Callback.ipp +13 -0
  25. data/rice/Constructor.hpp +4 -27
  26. data/rice/Constructor.ipp +79 -0
  27. data/rice/Data_Object.hpp +73 -3
  28. data/rice/Data_Object.ipp +388 -96
  29. data/rice/Data_Type.hpp +214 -3
  30. data/rice/Data_Type.ipp +144 -67
  31. data/rice/Director.hpp +0 -2
  32. data/rice/Enum.hpp +4 -7
  33. data/rice/Enum.ipp +102 -55
  34. data/rice/Exception.hpp +62 -2
  35. data/rice/Exception.ipp +7 -12
  36. data/rice/Init.hpp +8 -0
  37. data/rice/Init.ipp +8 -0
  38. data/rice/JumpException.hpp +44 -0
  39. data/rice/JumpException.ipp +48 -0
  40. data/rice/MemoryView.hpp +11 -0
  41. data/rice/MemoryView.ipp +3 -0
  42. data/rice/Return.hpp +7 -27
  43. data/rice/Return.ipp +13 -13
  44. data/rice/cpp_api/Array.hpp +209 -0
  45. data/rice/cpp_api/Array.ipp +304 -0
  46. data/rice/cpp_api/Builtin_Object.hpp +31 -0
  47. data/rice/cpp_api/Builtin_Object.ipp +37 -0
  48. data/rice/cpp_api/Class.hpp +70 -0
  49. data/rice/cpp_api/Class.ipp +97 -0
  50. data/rice/cpp_api/Encoding.hpp +32 -0
  51. data/rice/cpp_api/Encoding.ipp +59 -0
  52. data/rice/cpp_api/Hash.hpp +194 -0
  53. data/rice/cpp_api/Hash.ipp +257 -0
  54. data/rice/{Identifier.hpp → cpp_api/Identifier.hpp} +2 -6
  55. data/rice/{Identifier.ipp → cpp_api/Identifier.ipp} +4 -2
  56. data/rice/cpp_api/Module.hpp +72 -0
  57. data/rice/cpp_api/Module.ipp +101 -0
  58. data/rice/cpp_api/Object.hpp +272 -0
  59. data/rice/cpp_api/Object.ipp +235 -0
  60. data/rice/cpp_api/String.hpp +74 -0
  61. data/rice/cpp_api/String.ipp +120 -0
  62. data/rice/cpp_api/Struct.hpp +113 -0
  63. data/rice/cpp_api/Struct.ipp +92 -0
  64. data/rice/cpp_api/Symbol.hpp +46 -0
  65. data/rice/cpp_api/Symbol.ipp +93 -0
  66. data/rice/cpp_api/shared_methods.hpp +134 -0
  67. data/rice/detail/DefaultHandler.hpp +12 -0
  68. data/rice/detail/DefaultHandler.ipp +8 -0
  69. data/rice/detail/HandlerRegistry.hpp +5 -35
  70. data/rice/detail/HandlerRegistry.ipp +7 -11
  71. data/rice/detail/InstanceRegistry.hpp +1 -4
  72. data/rice/detail/MethodInfo.hpp +12 -10
  73. data/rice/detail/MethodInfo.ipp +26 -21
  74. data/rice/detail/Native.hpp +33 -0
  75. data/rice/detail/Native.ipp +157 -0
  76. data/rice/detail/NativeAttributeGet.hpp +52 -0
  77. data/rice/detail/NativeAttributeGet.ipp +57 -0
  78. data/rice/detail/NativeAttributeSet.hpp +44 -0
  79. data/rice/detail/NativeAttributeSet.ipp +88 -0
  80. data/rice/detail/NativeCallbackFFI.hpp +55 -0
  81. data/rice/detail/NativeCallbackFFI.ipp +151 -0
  82. data/rice/detail/NativeCallbackSimple.hpp +30 -0
  83. data/rice/detail/NativeCallbackSimple.ipp +29 -0
  84. data/rice/detail/NativeFunction.hpp +33 -23
  85. data/rice/detail/NativeFunction.ipp +309 -70
  86. data/rice/detail/NativeIterator.hpp +9 -11
  87. data/rice/detail/NativeIterator.ipp +33 -31
  88. data/rice/detail/NativeRegistry.hpp +24 -15
  89. data/rice/detail/NativeRegistry.ipp +23 -48
  90. data/rice/detail/Proc.hpp +4 -0
  91. data/rice/detail/Proc.ipp +85 -0
  92. data/rice/detail/Registries.hpp +0 -7
  93. data/rice/detail/Registries.ipp +0 -18
  94. data/rice/detail/RubyFunction.hpp +0 -3
  95. data/rice/detail/RubyFunction.ipp +4 -8
  96. data/rice/detail/RubyType.hpp +16 -0
  97. data/rice/detail/RubyType.ipp +232 -0
  98. data/rice/detail/Type.hpp +7 -6
  99. data/rice/detail/Type.ipp +192 -45
  100. data/rice/detail/TypeRegistry.hpp +15 -7
  101. data/rice/detail/TypeRegistry.ipp +105 -12
  102. data/rice/detail/Wrapper.hpp +68 -32
  103. data/rice/detail/Wrapper.ipp +121 -109
  104. data/rice/detail/cpp_protect.hpp +5 -6
  105. data/rice/detail/default_allocation_func.ipp +0 -2
  106. data/rice/detail/from_ruby.hpp +38 -3
  107. data/rice/detail/from_ruby.ipp +1321 -492
  108. data/rice/detail/ruby.hpp +18 -0
  109. data/rice/detail/to_ruby.hpp +41 -3
  110. data/rice/detail/to_ruby.ipp +1424 -194
  111. data/rice/global_function.hpp +0 -4
  112. data/rice/global_function.ipp +0 -1
  113. data/rice/libc/file.hpp +11 -0
  114. data/rice/libc/file.ipp +32 -0
  115. data/rice/rice.hpp +116 -26
  116. data/rice/ruby_mark.hpp +4 -3
  117. data/rice/stl/complex.hpp +6 -0
  118. data/rice/stl/complex.ipp +93 -0
  119. data/rice/stl/exception.hpp +11 -0
  120. data/rice/stl/exception.ipp +29 -0
  121. data/rice/stl/exception_ptr.hpp +6 -0
  122. data/rice/stl/exception_ptr.ipp +27 -0
  123. data/rice/stl/map.hpp +12 -0
  124. data/rice/stl/map.ipp +469 -0
  125. data/rice/stl/monostate.hpp +6 -0
  126. data/rice/stl/monostate.ipp +80 -0
  127. data/rice/stl/multimap.hpp +14 -0
  128. data/rice/stl/multimap.ipp +448 -0
  129. data/rice/stl/optional.hpp +6 -0
  130. data/rice/stl/optional.ipp +118 -0
  131. data/rice/stl/pair.hpp +13 -0
  132. data/rice/stl/pair.ipp +155 -0
  133. data/rice/stl/reference_wrapper.hpp +6 -0
  134. data/rice/stl/reference_wrapper.ipp +41 -0
  135. data/rice/stl/set.hpp +12 -0
  136. data/rice/stl/set.ipp +495 -0
  137. data/rice/stl/shared_ptr.hpp +28 -0
  138. data/rice/stl/shared_ptr.ipp +224 -0
  139. data/rice/stl/string.hpp +6 -0
  140. data/rice/stl/string.ipp +158 -0
  141. data/rice/stl/string_view.hpp +6 -0
  142. data/rice/stl/string_view.ipp +65 -0
  143. data/rice/stl/tuple.hpp +6 -0
  144. data/rice/stl/tuple.ipp +128 -0
  145. data/rice/stl/type_index.hpp +6 -0
  146. data/rice/stl/type_index.ipp +30 -0
  147. data/rice/stl/type_info.hpp +6 -0
  148. data/rice/stl/type_info.ipp +29 -0
  149. data/rice/stl/unique_ptr.hpp +22 -0
  150. data/rice/stl/unique_ptr.ipp +139 -0
  151. data/rice/stl/unordered_map.hpp +12 -0
  152. data/rice/stl/unordered_map.ipp +469 -0
  153. data/rice/stl/variant.hpp +6 -0
  154. data/rice/stl/variant.ipp +242 -0
  155. data/rice/stl/vector.hpp +12 -0
  156. data/rice/stl/vector.ipp +590 -0
  157. data/rice/stl.hpp +11 -3
  158. data/rice/traits/attribute_traits.hpp +26 -0
  159. data/rice/traits/function_traits.hpp +95 -0
  160. data/rice/traits/method_traits.hpp +47 -0
  161. data/rice/traits/rice_traits.hpp +160 -0
  162. data/rice.gemspec +85 -0
  163. data/test/embed_ruby.cpp +7 -1
  164. data/test/extconf.rb +2 -0
  165. data/test/test_Address_Registration_Guard.cpp +5 -0
  166. data/test/test_Array.cpp +18 -4
  167. data/test/test_Attribute.cpp +136 -21
  168. data/test/test_Buffer.cpp +285 -0
  169. data/test/test_Builtin_Object.cpp +5 -0
  170. data/test/test_Callback.cpp +230 -0
  171. data/test/test_Class.cpp +5 -31
  172. data/test/test_Constructor.cpp +69 -6
  173. data/test/test_Data_Object.cpp +97 -38
  174. data/test/test_Data_Type.cpp +470 -65
  175. data/test/test_Director.cpp +17 -8
  176. data/test/test_Enum.cpp +155 -40
  177. data/test/test_Exception.cpp +235 -0
  178. data/test/test_File.cpp +70 -0
  179. data/test/test_From_Ruby.cpp +609 -0
  180. data/test/test_Hash.cpp +5 -0
  181. data/test/test_Identifier.cpp +5 -0
  182. data/test/test_Inheritance.cpp +6 -1
  183. data/test/test_Iterator.cpp +6 -1
  184. data/test/test_Jump_Exception.cpp +23 -0
  185. data/test/test_Keep_Alive.cpp +13 -19
  186. data/test/test_Keep_Alive_No_Wrapper.cpp +5 -1
  187. data/test/test_Memory_Management.cpp +5 -0
  188. data/test/test_Module.cpp +128 -67
  189. data/test/test_Native_Registry.cpp +2 -34
  190. data/test/test_Object.cpp +5 -0
  191. data/test/test_Overloads.cpp +806 -0
  192. data/test/test_Ownership.cpp +160 -54
  193. data/test/test_Proc.cpp +44 -0
  194. data/test/test_Self.cpp +9 -4
  195. data/test/test_Stl_Exception.cpp +109 -0
  196. data/test/test_Stl_Map.cpp +54 -42
  197. data/test/test_Stl_Multimap.cpp +693 -0
  198. data/test/test_Stl_Optional.cpp +5 -0
  199. data/test/test_Stl_Pair.cpp +14 -9
  200. data/test/test_Stl_Reference_Wrapper.cpp +9 -2
  201. data/test/test_Stl_Set.cpp +790 -0
  202. data/test/test_Stl_SharedPtr.cpp +458 -0
  203. data/test/test_Stl_String.cpp +5 -0
  204. data/test/test_Stl_String_View.cpp +5 -0
  205. data/test/test_Stl_Tuple.cpp +116 -0
  206. data/test/test_Stl_Type.cpp +147 -0
  207. data/test/test_Stl_UniquePtr.cpp +202 -0
  208. data/test/test_Stl_Unordered_Map.cpp +43 -38
  209. data/test/test_Stl_Variant.cpp +217 -84
  210. data/test/test_Stl_Vector.cpp +306 -58
  211. data/test/test_String.cpp +5 -0
  212. data/test/test_Struct.cpp +5 -0
  213. data/test/test_Symbol.cpp +5 -0
  214. data/test/test_Template.cpp +192 -0
  215. data/test/test_To_Ruby.cpp +524 -0
  216. data/test/test_Tracking.cpp +1 -0
  217. data/test/test_Type.cpp +171 -0
  218. data/test/test_global_functions.cpp +67 -7
  219. data/test/unittest.cpp +8 -0
  220. metadata +127 -26
  221. data/lib/version.rb +0 -3
  222. data/rice/Address_Registration_Guard_defn.hpp +0 -79
  223. data/rice/Data_Object_defn.hpp +0 -84
  224. data/rice/Data_Type_defn.hpp +0 -190
  225. data/rice/Exception_defn.hpp +0 -68
  226. data/rice/HandlerRegistration.hpp +0 -15
  227. data/rice/detail/ExceptionHandler.hpp +0 -8
  228. data/rice/detail/ExceptionHandler.ipp +0 -28
  229. data/rice/detail/ExceptionHandler_defn.hpp +0 -77
  230. data/rice/detail/Jump_Tag.hpp +0 -21
  231. data/rice/detail/NativeAttribute.hpp +0 -64
  232. data/rice/detail/NativeAttribute.ipp +0 -112
  233. data/rice/detail/from_ruby_defn.hpp +0 -38
  234. data/rice/detail/to_ruby_defn.hpp +0 -48
  235. data/test/test_Jump_Tag.cpp +0 -17
  236. data/test/test_Stl_SmartPointer.cpp +0 -283
  237. data/test/test_To_From_Ruby.cpp +0 -399
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 20166e7dba31a0e143cdc5a0be57c36a61ae93975ff2aaefbb1682e55382a40d
4
- data.tar.gz: dff13c1a5eb9ea2672754cd30ddcd817d7865c497f6869f34dc920cfb3d0f111
3
+ metadata.gz: 0415303e9003a2751cb4fcf3488f068359a805ed3a3df83010aa6ca032c504c9
4
+ data.tar.gz: 895d2ce47c9daa951362c7854e3bf228a3d88c3efd04a0d79f0a8acc898c6cec
5
5
  SHA512:
6
- metadata.gz: 4afced2db4bb7f4b5eb2520a5a0d297acf74a738ae2932225ecf2be9c10348cb426252c40f0204f651389d5823aae996065278262101685a2f64e65c0e2472e8
7
- data.tar.gz: 8c2293c0d4159954e7640c148865b51e8263c02ce7b35c3a18d4b5b56c35c853007b8b88799265ab4f389455006fa179a089888791c6c6d88f79a85d95f448fe
6
+ metadata.gz: 3ee378cf6732ec73edd4ea33c47f58c87a996b380b019edeb3b2f279e4576924de79529ddfc086898e6d3d0f713859d8363ace294f3a621848e1d401a477b10d
7
+ data.tar.gz: 3d9834d152b559902cd378d4d00de32efbffc06ab8e5104bd895ae4f96848de2e0b42536b212cb83e154d1eb503cb9eefc2a4dad0b27a510b9fa1da5d40a9b9a
data/CHANGELOG.md CHANGED
@@ -1,16 +1,76 @@
1
- ## 4.3.3
1
+ ## 4.6.0 (2025-06-09)
2
+ Rice 4.6 is a major release that adds significant new functionality based on wrapping the OpenCV library, including:
3
+
4
+ * Add a new Buffer class to provide Ruby API support for pointers sent to or returned by C++
5
+ * Support C style out parameters
6
+ * Support C style arrays
7
+ * Rewrite keyword arguments
8
+ * Rewrite default value handling allowing the removal of a lot of boilerplate
9
+ * Add support for std::multimap
10
+ * Add support for std::set
11
+ * Add support for std::tuple
12
+ * Add support for smart pointers (shared_ptr, unique_ptr) to fundamental types (void, int, etc)
13
+ * Improve std::variant support
14
+ * Update is_convertible documentation
15
+ * Fix missing version.rb file in gemspec
16
+ * Add C++ preprocessor defines for Rice version
17
+ * Include Rice::VERSION in published gem
18
+ * Moved auto-generated C++ STL classes (std::vector, std::map, etc.) from the module Rice::Std module to Std module
19
+ * Make Rice const aware to improve overload method support
20
+ * Improve error messages when Rice cannot determine what overloaded method to call
21
+ * Improve handling of unbound Data_Type instances to avoid crashes when initializing global static variables of type Data_Type<T>
22
+ * Make Enums more useful by adding coerce method to enable stringing together bitwise operators - for example Season::Winter | Season::Spring | Season::Summer.
23
+
24
+ ## 4.5 (2025-02-09)
25
+ Rice 4.5 is a major release that adds significant new functionality, including:
26
+
27
+ * Support method overloading
28
+ * Support constructor overloading
29
+ * Support rvalues
30
+ * Support using keyword arguments in Ruby to call C++ methods
31
+ * Support C style callbacks, including adding a new define_callback method
32
+ * Support wrapping C/C++ functions as Ruby procs
33
+ * Support calling methods that take pointers
34
+ * Add Data_Type#define method to more easily support C++ template classes
35
+ * Adds #define_constant method
36
+ * Be more flexible on type verification by not throwing errors until all classes/methods have been defined and also allow a error message to be printed instead of thrown
37
+ * Add ability to transfer ownership of Ruby created objects to C++ (useful for sending wrapped pointers to APIs that take smart pointers)
38
+ * Add support for *char
39
+ * Add support for **char
40
+ * Improve C++ exception handling when called from Ruby
41
+ * Improve handling of Ruby exceptions
42
+ * Update std::variant to support references
43
+ * Split NativeAttribute support to NativeAttributeGet and NativeAttributeSet
44
+ * Create base class for Native classes (NativeFunction, NativeIterator, NativeAttributeGet, NativeAttributeSet - make the type registry easier to deal with (thus using type erasure like the Wrapper classes do).
45
+ * Support Ruby 3.4
46
+ * Lots of documentation additions and updates
47
+ * Updated FindRuby to support rbenv (this change is also merged upstream to CMake)
48
+
49
+ This release also improves STL support by adding:
50
+
51
+ * std::exception
52
+ * std::exception_ptr
53
+ * std::monostage
54
+ * std::shared_ptr<void>
55
+ * std::type_index
56
+ * std::type_info
57
+ * std::vector<bool>
58
+
59
+ Please see the migration guide for updating your bindings for version 4.5
60
+
61
+ ## 4.3.3 (2024-10-19)
2
62
 
3
63
  * Fix complication issue on Ubuntu 20.04 and GCC 9.
4
64
 
5
- ## 4.3.2
65
+ ## 4.3.2 (2024-10-18)
6
66
 
7
67
  * Improve NativeRegistry to reduce possible hash collisions and weird "bad any cast" errors.
8
68
 
9
- ## 4.3.1
69
+ ## 4.3.1 (2024-3-16)
10
70
 
11
71
  * Update links and related references to the new repo and docs location: ruby-rice.github.io.
12
72
 
13
- ## 4.3
73
+ ## 4.3 (2024-2-25)
14
74
 
15
75
  * Add support for STL containers that contain pointers
16
76
  * Add support for std::string_view
@@ -18,18 +78,18 @@
18
78
  * Fix container iteration so elements are passed by reference and not copied
19
79
  * Avoid unnecessary copies when creating Rice::Identifiers and Rice::Symbols
20
80
 
21
- ## 4.2.1
81
+ ## 4.2.1 (2024-1-20)
22
82
 
23
83
  * Support systems who use `#include <experimental/filesystem>` over `#include<filesystem>`. See [#197](https://github.com/jasonroelofs/rice/issues/197) and [#201](https://github.com/jasonroelofs/rice/pull/201)
24
84
 
25
- ## 4.2
85
+ ## 4.2 (2024-1-10)
26
86
 
27
87
  * Support Ruby 3.3.0.
28
88
  * Split Object.call to an explicit Object.call_kw for calling methods expecting keyword arguments.
29
89
  * Previously, if a wrapper used `keepAlive` on an argument or return value that was itself a Rice type, calling said method would segfault. We've now added an explicit exception to be thrown in this case, prevending the segfault and providing guidance on what was wrong and how to fix it. See [#193](https://github.com/jasonroelofs/rice/pull/193) and [#194](https://github.com/jasonroelofs/rice/pull/194)
30
90
  * Fix wrapping of std::shared_ptr to properly take default arguments into account.
31
91
 
32
- ## 4.1
92
+ ## 4.1 (2023-4-21)
33
93
 
34
94
  Rice 4.1 builds on the 4.0 release and has a number of improvements that both polish Rice and extend its functionality. However, there are three incompatibilities to know about:
35
95
 
@@ -59,7 +119,7 @@ New or improved functionality includes:
59
119
  Rice also includes experimental support for instance tracking so that Rice maps the same C++ instance to the same Ruby instance each time it is passed to Ruby. See the documentation for more information.
60
120
 
61
121
 
62
- ## 4.0
122
+ ## 4.0 (2021-4-8)
63
123
 
64
124
  Rice 4.0 is a significant change from 3.0 and has multiple backwards-incompatible
65
125
  changes. Rice 4.0 no longer requires pre-compilation and is now a header-only library,
@@ -75,7 +135,7 @@ There are a ton of changes, but some of the most important ones:
75
135
  * [Built-in STL support](https://ruby-rice.github.io/4.x/stl/stl.html)
76
136
  * And so much more. See the documentation for more details.
77
137
 
78
- ## 3.0
138
+ ## 3.0 (2021-1-8)
79
139
 
80
140
  * Now requires a compiler supporting for C++14 or later
81
141
  * Drop support for Ruby 2.4. Supported versions are now 2.5 through 3.0.
@@ -83,33 +143,33 @@ There are a ton of changes, but some of the most important ones:
83
143
  * Fix a data corruption issue with `Rice::Exception::what`.
84
144
  * Move CI from Travis to GitHub Actions. Now also able to verify Windows builds!
85
145
 
86
- ## 2.2.0
146
+ ## 2.2.0 (2020-1-10)
87
147
 
88
148
  * Deprecate support for Rubies older than 2.4
89
149
  * Provide a few more built-in to_ruby/from_ruby conversions
90
150
  * Fix compilation error when building under Ruby 2.7.0
91
151
 
92
- ## 2.1.3
152
+ ## 2.1.3 (2019-2-28)
93
153
 
94
154
  * Don't lock down HAVE_CXX11 on the Rice build itself.
95
155
 
96
- ## 2.1.2
156
+ ## 2.1.2 (2017-11-20)
97
157
 
98
158
  * Fix defining custom `begin` and `end` methods on an `Iterator`
99
159
 
100
- ## 2.1.1
160
+ ## 2.1.1 (2020-1-10)
101
161
 
102
162
  * Support Ruby 2.4
103
163
  * Re-enable Rice::Enum#hash to support putting Enums in Hashes
104
164
 
105
- ## 2.1.0
165
+ ## 2.1.0 (2016-1-1)
106
166
 
107
167
  * Fix compliation issues related to g++ and Ruby 2.3.0
108
168
  To do this, I had to remove Array::to_c_array which was exposing the internals of a
109
169
  Ruby RArray type to the system. This is not something that we should support going forward
110
170
  as these internals are going to change.
111
171
 
112
- # 2.0.0
172
+ # 2.0.0 (2015-11-27)
113
173
 
114
174
  * Deprecated all versions of Ruby < 2.0
115
175
  * Removed Rice::VM.
@@ -122,7 +182,7 @@ There are a ton of changes, but some of the most important ones:
122
182
  but that seems to be more because newer Ruby versions don't have good static builds.
123
183
  Thanks to @Kagetsuki for his help tracking down what's going on here.
124
184
 
125
- ## 1.7.0
185
+ ## 1.7.0 (2015-1-6)
126
186
 
127
187
  * Ruby 2.2 support
128
188
  Potential breaking changes. Ruby 2.2 removed RHash as a public accessible struct
@@ -131,50 +191,50 @@ There are a ton of changes, but some of the most important ones:
131
191
  objects directly I recommend using either the Rice API or Ruby's CAPI instead for
132
192
  future compatibility.
133
193
 
134
- ## 1.6.3
194
+ ## 1.6.3 (2014-12-18)
135
195
 
136
196
  * Fix complication issue on some 64-bit *nix systems
137
197
 
138
- ## 1.6.2
198
+ ## 1.6.2 (2014-5-5)
139
199
 
140
200
  * Oops! Missed new file in the gemspec
141
201
 
142
- ## 1.6.1
202
+ ## 1.6.1 (2014-5-5)
143
203
 
144
204
  * Support C++x11 uniqe_ptr over auto_ptr
145
205
  * Fix some warnings
146
206
 
147
- ## 1.6.0
207
+ ## 1.6.0 (2014-2-3)
148
208
 
149
209
  * Ruby 2.1 support -- Thanks Chai Zhenhua
150
210
  * Methods and Constructors have correct method access specifiers [#57]
151
211
  * Clean up some 64-bit compiler warnings
152
212
 
153
- ## 1.5.3
213
+ ## 1.5.3 (2013-10-14)
154
214
 
155
215
  * Fix signed / unsigned compiler warning with Hash#each
156
216
  * Fix compilation on clang 5 (Xcode 5)
157
217
 
158
- ## 1.5.2
218
+ ## 1.5.2 (2013-10-5)
159
219
 
160
220
  * Update build system to remove deprecation warnings and allow easier building
161
221
  * Fix String to work as a parameter in a wrapped method (#59)
162
222
  * Update documentation a bit
163
223
 
164
- ## 1.5.1
224
+ ## 1.5.1 (2013-5-2)
165
225
 
166
226
  * Doc string fix
167
227
 
168
- ## 1.5.0
228
+ ## 1.5.0 (2013-5-1)
169
229
 
170
230
  * Ruby 2.0 compatability
171
231
  * Bug fixes
172
232
 
173
- ## 1.4.3
233
+ ## 1.4.3 (2011-10-9)
174
234
 
175
235
  * Various build configuration fixes
176
236
 
177
- ## 1.4.0
237
+ ## 1.4.0 (2010-8-30)
178
238
 
179
239
  * Fully compatible with Ruby 1.9.2
180
240
  * Constructor supports default arguments
data/CMakeLists.txt ADDED
@@ -0,0 +1,31 @@
1
+ cmake_minimum_required (VERSION 3.26)
2
+
3
+ project(Rice)
4
+
5
+ set(CMAKE_CXX_STANDARD 17)
6
+ set(CMAKE_CXX_STANDARD_REQUIRED ON)
7
+
8
+ # For older versions of CMake can use include("./FindRuby.cmake")
9
+ find_package("Ruby")
10
+
11
+ if (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
12
+ set(CMAKE_MSVC_DEBUG_INFORMATION_FORMAT "$<IF:$<AND:$<C_COMPILER_ID:MSVC>,$<CXX_COMPILER_ID:MSVC>>,$<$<CONFIG:Debug,RelWithDebInfo>:EditAndContinue>,$<$<CONFIG:Debug,RelWithDebInfo>:ProgramDatabase>>")
13
+ add_compile_definitions(-D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE)
14
+ add_compile_options(/bigobj /utf-8)
15
+ # The default of /EHsc crashes Ruby when calling longjmp with optimizations on (/O2)
16
+ string(REGEX REPLACE "/EHsc" "/EHs" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
17
+ elseif (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
18
+ add_compile_definitions(-D_CRT_SECURE_NO_WARNINGS)
19
+ elseif (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
20
+ add_compile_options(-ftemplate-backtrace-limit=0)
21
+ # https://github.com/doxygen/doxygen/issues/9269#issuecomment-1094975328
22
+ #add_compile_options(unittest PRIVATE -Wa,-mbig-obj)
23
+ set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Og")
24
+ endif ()
25
+
26
+ # Include sub-projects.
27
+ add_subdirectory ("test")
28
+ add_subdirectory ("sample/callbacks")
29
+ add_subdirectory ("sample/enum")
30
+ add_subdirectory ("sample/inheritance")
31
+ add_subdirectory ("sample/map")
data/CMakePresets.json ADDED
@@ -0,0 +1,75 @@
1
+ {
2
+ "version": 3,
3
+ "configurePresets": [
4
+ {
5
+ "name": "windows-base",
6
+ "hidden": true,
7
+ "generator": "Ninja",
8
+ "binaryDir": "${sourceDir}/out/build/${presetName}",
9
+ "installDir": "${sourceDir}/out/install/${presetName}",
10
+ "cacheVariables": {
11
+ "CMAKE_C_COMPILER": "cl.exe",
12
+ "CMAKE_CXX_COMPILER": "cl.exe"
13
+ },
14
+ "condition": {
15
+ "type": "equals",
16
+ "lhs": "${hostSystemName}",
17
+ "rhs": "Windows"
18
+ }
19
+ },
20
+ {
21
+ "name": "x64-debug",
22
+ "displayName": "MSVC++ Debug",
23
+ "inherits": "windows-base",
24
+ "architecture": {
25
+ "value": "x64",
26
+ "strategy": "external"
27
+ },
28
+ "cacheVariables": {
29
+ "CMAKE_BUILD_TYPE": "Debug"
30
+ }
31
+ },
32
+ {
33
+ "name": "x64-release",
34
+ "displayName": "x64 Release",
35
+ "inherits": "x64-debug",
36
+ "cacheVariables": {
37
+ "CMAKE_BUILD_TYPE": "Release"
38
+ }
39
+ },
40
+ {
41
+ "name": "linux-default",
42
+ "displayName": "Linux Debug",
43
+ "description": "Sets Ninja generator, compilers, build and install directory, debug build type",
44
+ "generator": "Ninja",
45
+ "binaryDir": "${sourceDir}/out/build/${presetName}",
46
+ "cacheVariables": {
47
+ "CMAKE_BUILD_TYPE": "Debug",
48
+ "CMAKE_INSTALL_PREFIX": "${sourceDir}/out/install/${presetName}"
49
+ },
50
+ "vendor": {
51
+ "microsoft.com/VisualStudioSettings/CMake/1.0": {
52
+ "hostOS": [ "Linux" ]
53
+ },
54
+ "microsoft.com/VisualStudioRemoteSettings/CMake/1.0": {
55
+ "sourceDir": "$env{HOME}/.vs/$ms{projectDirName}"
56
+ }
57
+ }
58
+ },
59
+ {
60
+ "name": "x64_debug_clang",
61
+ "displayName": "Clang Debug",
62
+ "description": "Target Windows (64-bit) with the Visual Studio development environment. (Debug)",
63
+ "inherits": "windows-base",
64
+ "architecture": {
65
+ "value": "x64",
66
+ "strategy": "external"
67
+ },
68
+ "cacheVariables": {
69
+ "CMAKE_BUILD_TYPE": "Debug",
70
+ "CMAKE_C_COMPILER": "clang.exe",
71
+ "CMAKE_CXX_COMPILER": "clang.exe"
72
+ }
73
+ }
74
+ ]
75
+ }
data/COPYING CHANGED
@@ -1,5 +1,6 @@
1
- Copyright (C) 2020 Jason Roelofs <jasongroelofs@gmail.com>
2
- Paul Brannan <curlypaul924@gmail.com>,
1
+ Copyright (C) 2025 Jason Roelofs <jasongroelofs@gmail.com>
2
+ Paul Brannan <curlypaul924@gmail.com>,
3
+ Charlie Savage
3
4
 
4
5
  Redistribution and use in source and binary forms, with or without
5
6
  modification, are permitted provided that the following conditions