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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +86 -26
- data/CMakeLists.txt +31 -0
- data/CMakePresets.json +75 -0
- data/COPYING +3 -2
- data/FindRuby.cmake +437 -0
- data/README.md +7 -2
- data/Rakefile +12 -5
- data/include/rice/rice.hpp +9522 -4426
- data/include/rice/stl.hpp +2831 -1198
- data/lib/make_rice_headers.rb +79 -0
- data/lib/mkmf-rice.rb +40 -94
- data/lib/rice/version.rb +3 -0
- data/lib/rice.rb +1 -0
- data/lib/rubygems/builder.rb +11 -0
- data/lib/rubygems/cmake_builder.rb +113 -0
- data/lib/rubygems_plugin.rb +9 -0
- data/rice/Address_Registration_Guard.hpp +72 -3
- data/rice/Arg.hpp +26 -6
- data/rice/Arg.ipp +35 -2
- data/rice/Buffer.hpp +123 -0
- data/rice/Buffer.ipp +599 -0
- data/rice/Callback.hpp +21 -0
- data/rice/Callback.ipp +13 -0
- data/rice/Constructor.hpp +4 -27
- data/rice/Constructor.ipp +79 -0
- data/rice/Data_Object.hpp +73 -3
- data/rice/Data_Object.ipp +388 -96
- data/rice/Data_Type.hpp +214 -3
- data/rice/Data_Type.ipp +144 -67
- data/rice/Director.hpp +0 -2
- data/rice/Enum.hpp +4 -7
- data/rice/Enum.ipp +102 -55
- data/rice/Exception.hpp +62 -2
- data/rice/Exception.ipp +7 -12
- data/rice/Init.hpp +8 -0
- data/rice/Init.ipp +8 -0
- data/rice/JumpException.hpp +44 -0
- data/rice/JumpException.ipp +48 -0
- data/rice/MemoryView.hpp +11 -0
- data/rice/MemoryView.ipp +3 -0
- data/rice/Return.hpp +7 -27
- data/rice/Return.ipp +13 -13
- data/rice/cpp_api/Array.hpp +209 -0
- data/rice/cpp_api/Array.ipp +304 -0
- data/rice/cpp_api/Builtin_Object.hpp +31 -0
- data/rice/cpp_api/Builtin_Object.ipp +37 -0
- data/rice/cpp_api/Class.hpp +70 -0
- data/rice/cpp_api/Class.ipp +97 -0
- data/rice/cpp_api/Encoding.hpp +32 -0
- data/rice/cpp_api/Encoding.ipp +59 -0
- data/rice/cpp_api/Hash.hpp +194 -0
- data/rice/cpp_api/Hash.ipp +257 -0
- data/rice/{Identifier.hpp → cpp_api/Identifier.hpp} +2 -6
- data/rice/{Identifier.ipp → cpp_api/Identifier.ipp} +4 -2
- data/rice/cpp_api/Module.hpp +72 -0
- data/rice/cpp_api/Module.ipp +101 -0
- data/rice/cpp_api/Object.hpp +272 -0
- data/rice/cpp_api/Object.ipp +235 -0
- data/rice/cpp_api/String.hpp +74 -0
- data/rice/cpp_api/String.ipp +120 -0
- data/rice/cpp_api/Struct.hpp +113 -0
- data/rice/cpp_api/Struct.ipp +92 -0
- data/rice/cpp_api/Symbol.hpp +46 -0
- data/rice/cpp_api/Symbol.ipp +93 -0
- data/rice/cpp_api/shared_methods.hpp +134 -0
- data/rice/detail/DefaultHandler.hpp +12 -0
- data/rice/detail/DefaultHandler.ipp +8 -0
- data/rice/detail/HandlerRegistry.hpp +5 -35
- data/rice/detail/HandlerRegistry.ipp +7 -11
- data/rice/detail/InstanceRegistry.hpp +1 -4
- data/rice/detail/MethodInfo.hpp +12 -10
- data/rice/detail/MethodInfo.ipp +26 -21
- data/rice/detail/Native.hpp +33 -0
- data/rice/detail/Native.ipp +157 -0
- data/rice/detail/NativeAttributeGet.hpp +52 -0
- data/rice/detail/NativeAttributeGet.ipp +57 -0
- data/rice/detail/NativeAttributeSet.hpp +44 -0
- data/rice/detail/NativeAttributeSet.ipp +88 -0
- data/rice/detail/NativeCallbackFFI.hpp +55 -0
- data/rice/detail/NativeCallbackFFI.ipp +151 -0
- data/rice/detail/NativeCallbackSimple.hpp +30 -0
- data/rice/detail/NativeCallbackSimple.ipp +29 -0
- data/rice/detail/NativeFunction.hpp +33 -23
- data/rice/detail/NativeFunction.ipp +309 -70
- data/rice/detail/NativeIterator.hpp +9 -11
- data/rice/detail/NativeIterator.ipp +33 -31
- data/rice/detail/NativeRegistry.hpp +24 -15
- data/rice/detail/NativeRegistry.ipp +23 -48
- data/rice/detail/Proc.hpp +4 -0
- data/rice/detail/Proc.ipp +85 -0
- data/rice/detail/Registries.hpp +0 -7
- data/rice/detail/Registries.ipp +0 -18
- data/rice/detail/RubyFunction.hpp +0 -3
- data/rice/detail/RubyFunction.ipp +4 -8
- data/rice/detail/RubyType.hpp +16 -0
- data/rice/detail/RubyType.ipp +232 -0
- data/rice/detail/Type.hpp +7 -6
- data/rice/detail/Type.ipp +192 -45
- data/rice/detail/TypeRegistry.hpp +15 -7
- data/rice/detail/TypeRegistry.ipp +105 -12
- data/rice/detail/Wrapper.hpp +68 -32
- data/rice/detail/Wrapper.ipp +121 -109
- data/rice/detail/cpp_protect.hpp +5 -6
- data/rice/detail/default_allocation_func.ipp +0 -2
- data/rice/detail/from_ruby.hpp +38 -3
- data/rice/detail/from_ruby.ipp +1321 -492
- data/rice/detail/ruby.hpp +18 -0
- data/rice/detail/to_ruby.hpp +41 -3
- data/rice/detail/to_ruby.ipp +1424 -194
- data/rice/global_function.hpp +0 -4
- data/rice/global_function.ipp +0 -1
- data/rice/libc/file.hpp +11 -0
- data/rice/libc/file.ipp +32 -0
- data/rice/rice.hpp +116 -26
- data/rice/ruby_mark.hpp +4 -3
- data/rice/stl/complex.hpp +6 -0
- data/rice/stl/complex.ipp +93 -0
- data/rice/stl/exception.hpp +11 -0
- data/rice/stl/exception.ipp +29 -0
- data/rice/stl/exception_ptr.hpp +6 -0
- data/rice/stl/exception_ptr.ipp +27 -0
- data/rice/stl/map.hpp +12 -0
- data/rice/stl/map.ipp +469 -0
- data/rice/stl/monostate.hpp +6 -0
- data/rice/stl/monostate.ipp +80 -0
- data/rice/stl/multimap.hpp +14 -0
- data/rice/stl/multimap.ipp +448 -0
- data/rice/stl/optional.hpp +6 -0
- data/rice/stl/optional.ipp +118 -0
- data/rice/stl/pair.hpp +13 -0
- data/rice/stl/pair.ipp +155 -0
- data/rice/stl/reference_wrapper.hpp +6 -0
- data/rice/stl/reference_wrapper.ipp +41 -0
- data/rice/stl/set.hpp +12 -0
- data/rice/stl/set.ipp +495 -0
- data/rice/stl/shared_ptr.hpp +28 -0
- data/rice/stl/shared_ptr.ipp +224 -0
- data/rice/stl/string.hpp +6 -0
- data/rice/stl/string.ipp +158 -0
- data/rice/stl/string_view.hpp +6 -0
- data/rice/stl/string_view.ipp +65 -0
- data/rice/stl/tuple.hpp +6 -0
- data/rice/stl/tuple.ipp +128 -0
- data/rice/stl/type_index.hpp +6 -0
- data/rice/stl/type_index.ipp +30 -0
- data/rice/stl/type_info.hpp +6 -0
- data/rice/stl/type_info.ipp +29 -0
- data/rice/stl/unique_ptr.hpp +22 -0
- data/rice/stl/unique_ptr.ipp +139 -0
- data/rice/stl/unordered_map.hpp +12 -0
- data/rice/stl/unordered_map.ipp +469 -0
- data/rice/stl/variant.hpp +6 -0
- data/rice/stl/variant.ipp +242 -0
- data/rice/stl/vector.hpp +12 -0
- data/rice/stl/vector.ipp +590 -0
- data/rice/stl.hpp +11 -3
- data/rice/traits/attribute_traits.hpp +26 -0
- data/rice/traits/function_traits.hpp +95 -0
- data/rice/traits/method_traits.hpp +47 -0
- data/rice/traits/rice_traits.hpp +160 -0
- data/rice.gemspec +85 -0
- data/test/embed_ruby.cpp +7 -1
- data/test/extconf.rb +2 -0
- data/test/test_Address_Registration_Guard.cpp +5 -0
- data/test/test_Array.cpp +18 -4
- data/test/test_Attribute.cpp +136 -21
- data/test/test_Buffer.cpp +285 -0
- data/test/test_Builtin_Object.cpp +5 -0
- data/test/test_Callback.cpp +230 -0
- data/test/test_Class.cpp +5 -31
- data/test/test_Constructor.cpp +69 -6
- data/test/test_Data_Object.cpp +97 -38
- data/test/test_Data_Type.cpp +470 -65
- data/test/test_Director.cpp +17 -8
- data/test/test_Enum.cpp +155 -40
- data/test/test_Exception.cpp +235 -0
- data/test/test_File.cpp +70 -0
- data/test/test_From_Ruby.cpp +609 -0
- data/test/test_Hash.cpp +5 -0
- data/test/test_Identifier.cpp +5 -0
- data/test/test_Inheritance.cpp +6 -1
- data/test/test_Iterator.cpp +6 -1
- data/test/test_Jump_Exception.cpp +23 -0
- data/test/test_Keep_Alive.cpp +13 -19
- data/test/test_Keep_Alive_No_Wrapper.cpp +5 -1
- data/test/test_Memory_Management.cpp +5 -0
- data/test/test_Module.cpp +128 -67
- data/test/test_Native_Registry.cpp +2 -34
- data/test/test_Object.cpp +5 -0
- data/test/test_Overloads.cpp +806 -0
- data/test/test_Ownership.cpp +160 -54
- data/test/test_Proc.cpp +44 -0
- data/test/test_Self.cpp +9 -4
- data/test/test_Stl_Exception.cpp +109 -0
- data/test/test_Stl_Map.cpp +54 -42
- data/test/test_Stl_Multimap.cpp +693 -0
- data/test/test_Stl_Optional.cpp +5 -0
- data/test/test_Stl_Pair.cpp +14 -9
- data/test/test_Stl_Reference_Wrapper.cpp +9 -2
- data/test/test_Stl_Set.cpp +790 -0
- data/test/test_Stl_SharedPtr.cpp +458 -0
- data/test/test_Stl_String.cpp +5 -0
- data/test/test_Stl_String_View.cpp +5 -0
- data/test/test_Stl_Tuple.cpp +116 -0
- data/test/test_Stl_Type.cpp +147 -0
- data/test/test_Stl_UniquePtr.cpp +202 -0
- data/test/test_Stl_Unordered_Map.cpp +43 -38
- data/test/test_Stl_Variant.cpp +217 -84
- data/test/test_Stl_Vector.cpp +306 -58
- data/test/test_String.cpp +5 -0
- data/test/test_Struct.cpp +5 -0
- data/test/test_Symbol.cpp +5 -0
- data/test/test_Template.cpp +192 -0
- data/test/test_To_Ruby.cpp +524 -0
- data/test/test_Tracking.cpp +1 -0
- data/test/test_Type.cpp +171 -0
- data/test/test_global_functions.cpp +67 -7
- data/test/unittest.cpp +8 -0
- metadata +127 -26
- data/lib/version.rb +0 -3
- data/rice/Address_Registration_Guard_defn.hpp +0 -79
- data/rice/Data_Object_defn.hpp +0 -84
- data/rice/Data_Type_defn.hpp +0 -190
- data/rice/Exception_defn.hpp +0 -68
- data/rice/HandlerRegistration.hpp +0 -15
- data/rice/detail/ExceptionHandler.hpp +0 -8
- data/rice/detail/ExceptionHandler.ipp +0 -28
- data/rice/detail/ExceptionHandler_defn.hpp +0 -77
- data/rice/detail/Jump_Tag.hpp +0 -21
- data/rice/detail/NativeAttribute.hpp +0 -64
- data/rice/detail/NativeAttribute.ipp +0 -112
- data/rice/detail/from_ruby_defn.hpp +0 -38
- data/rice/detail/to_ruby_defn.hpp +0 -48
- data/test/test_Jump_Tag.cpp +0 -17
- data/test/test_Stl_SmartPointer.cpp +0 -283
- data/test/test_To_From_Ruby.cpp +0 -399
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0415303e9003a2751cb4fcf3488f068359a805ed3a3df83010aa6ca032c504c9
|
4
|
+
data.tar.gz: 895d2ce47c9daa951362c7854e3bf228a3d88c3efd04a0d79f0a8acc898c6cec
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3ee378cf6732ec73edd4ea33c47f58c87a996b380b019edeb3b2f279e4576924de79529ddfc086898e6d3d0f713859d8363ace294f3a621848e1d401a477b10d
|
7
|
+
data.tar.gz: 3d9834d152b559902cd378d4d00de32efbffc06ab8e5104bd895ae4f96848de2e0b42536b212cb83e154d1eb503cb9eefc2a4dad0b27a510b9fa1da5d40a9b9a
|
data/CHANGELOG.md
CHANGED
@@ -1,16 +1,76 @@
|
|
1
|
-
## 4.
|
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)
|
2
|
-
|
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
|