carray 2.0.0 → 3.0.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/.yardopts +5 -25
- data/CHANGELOG.md +16 -0
- data/LICENSE +1 -1
- data/NEWS.md +3 -0
- data/README.md +128 -44
- data/carray.gemspec +22 -24
- data/ext/ca_array_pool.c +91 -0
- data/ext/ca_axis_descriptor.h +186 -0
- data/ext/ca_axis_dispatch.c +924 -0
- data/ext/ca_axis_group.c +1208 -0
- data/ext/ca_bincmp_dispatch.c +76 -0
- data/ext/ca_bincmp_dispatch.h +85 -0
- data/ext/ca_binop_dispatch.c +125 -0
- data/ext/ca_binop_dispatch.h +159 -0
- data/ext/ca_categorical_iterator.c +1375 -0
- data/ext/ca_compare.c +94 -0
- data/ext/ca_compare.h +26 -0
- data/ext/ca_composite_dispatch.c +414 -0
- data/ext/ca_composite_dispatch.h +116 -0
- data/ext/ca_for_buffer.h +96 -0
- data/ext/ca_for_each_element.h +241 -0
- data/ext/ca_group_iter.c +304 -0
- data/ext/ca_iter_substrate.h +325 -0
- data/ext/ca_kernel_iterator.c +4321 -0
- data/ext/ca_kernel_iterator.h +2603 -0
- data/ext/ca_moncmp_dispatch.c +37 -0
- data/ext/ca_moncmp_dispatch.h +62 -0
- data/ext/ca_monop_dispatch.c +200 -0
- data/ext/ca_monop_dispatch.h +235 -0
- data/ext/ca_obj_array.c +355 -359
- data/ext/ca_obj_bincmp.c +809 -0
- data/ext/ca_obj_binop.c +892 -0
- data/ext/ca_obj_bitarray.c +369 -164
- data/ext/ca_obj_bitfield.c +294 -234
- data/ext/ca_obj_block.c +189 -711
- data/ext/ca_obj_byte_swap.c +766 -0
- data/ext/ca_obj_const_string.c +965 -0
- data/ext/ca_obj_face.c +670 -0
- data/ext/ca_obj_face.h +247 -0
- data/ext/ca_obj_fake.c +228 -100
- data/ext/ca_obj_farray.c +54 -441
- data/ext/ca_obj_field.c +82 -529
- data/ext/ca_obj_fixlen_string.c +306 -0
- data/ext/ca_obj_grid.c +858 -440
- data/ext/ca_obj_meld.c +1034 -0
- data/ext/ca_obj_moncmp.c +569 -0
- data/ext/ca_obj_monop.c +1111 -0
- data/ext/ca_obj_object.c +774 -298
- data/ext/ca_obj_record.c +468 -0
- data/ext/ca_obj_reduce.c +97 -82
- data/ext/ca_obj_refer.c +569 -459
- data/ext/ca_obj_remap.c +475 -0
- data/ext/ca_obj_repeat.c +92 -477
- data/ext/ca_obj_roll.c +616 -0
- data/ext/ca_obj_select.c +344 -296
- data/ext/ca_obj_select_axis.c +1296 -0
- data/ext/ca_obj_shift.c +230 -792
- data/ext/ca_obj_source.c +78 -0
- data/ext/ca_obj_stack.c +1173 -0
- data/ext/ca_obj_stride.c +2501 -0
- data/ext/ca_obj_string.c +268 -0
- data/ext/ca_obj_tile.c +614 -0
- data/ext/ca_obj_time.c +546 -0
- data/ext/ca_obj_timedelta.c +435 -0
- data/ext/ca_obj_transpose.c +62 -516
- data/ext/ca_obj_triop.c +746 -0
- data/ext/ca_obj_unbound_repeat.c +208 -241
- data/ext/ca_obj_window.c +1131 -563
- data/ext/ca_op_byte_swap.c +175 -0
- data/ext/ca_op_ipower.c +319 -0
- data/ext/ca_op_powi.h +88 -0
- data/ext/ca_sort_kernels.h +132 -0
- data/ext/ca_sweep_engine.c +430 -0
- data/ext/ca_sweep_engine.h +157 -0
- data/ext/ca_transform_common.c +228 -0
- data/ext/ca_triop_dispatch.c +55 -0
- data/ext/ca_triop_dispatch.h +62 -0
- data/ext/carray.h +795 -402
- data/ext/carray_access.c +831 -711
- data/ext/carray_attribute.c +98 -330
- data/ext/carray_bincount.c +255 -0
- data/ext/carray_broadcast.c +283 -0
- data/ext/carray_call_cfunc.c +1360 -828
- data/ext/carray_call_cfunc.h +160 -0
- data/ext/carray_cast.c +1212 -301
- data/ext/carray_cast_func.rb +81 -40
- data/ext/carray_class.c +53 -63
- data/ext/carray_config.h +28 -0
- data/ext/carray_conversion.c +350 -346
- data/ext/carray_copy.c +156 -268
- data/ext/carray_core.c +1342 -199
- data/ext/carray_count.c +312 -0
- data/ext/carray_data_type.c +43 -19
- data/ext/carray_element.c +585 -213
- data/ext/carray_factorize.c +2542 -0
- data/ext/carray_generate.c +230 -559
- data/ext/carray_histogram.c +490 -0
- data/ext/carray_hold.c +228 -0
- data/ext/carray_index_classifier.c +1035 -0
- data/ext/carray_index_classifier.h +27 -0
- data/ext/carray_internal.h +120 -0
- data/ext/carray_kernels_bincmp.c +4445 -0
- data/ext/carray_kernels_binop.c +10979 -0
- data/ext/carray_kernels_init.c +36 -0
- data/ext/carray_kernels_map.c +3466 -0
- data/ext/carray_kernels_moncmp.c +2096 -0
- data/ext/carray_kernels_monop.c +18312 -0
- data/ext/carray_kernels_reduce_aggregate.c +25836 -0
- data/ext/carray_kernels_reduce_boolean.c +329 -0
- data/ext/carray_kernels_reduce_cumulative.c +14592 -0
- data/ext/carray_kernels_reduce_extreme.c +16947 -0
- data/ext/carray_kernels_reduce_variance.c +3909 -0
- data/ext/carray_kernels_scan.c +3692 -0
- data/ext/carray_kernels_search.c +32137 -0
- data/ext/carray_kernels_sort.c +10625 -0
- data/ext/carray_kernels_triop.c +1391 -0
- data/ext/carray_lazy.c +567 -0
- data/ext/carray_loop.c +88 -200
- data/ext/carray_mask.c +848 -154
- data/ext/carray_math_kernel.h +120 -0
- data/ext/carray_mathfunc.c +10 -241
- data/ext/carray_median_percentile.c +1257 -0
- data/ext/carray_memory_view.c +1625 -0
- data/ext/carray_operator.c +1526 -318
- data/ext/carray_order.c +664 -1394
- data/ext/carray_partition.c +416 -0
- data/ext/carray_random.c +518 -0
- data/ext/carray_scatter.c +357 -0
- data/ext/carray_slab.c +1219 -0
- data/ext/carray_slab.h +84 -0
- data/ext/carray_sort.c +829 -0
- data/ext/carray_sort_kernel.c +620 -0
- data/ext/carray_struct.c +695 -0
- data/ext/carray_test.c +343 -229
- data/ext/carray_undef.c +34 -17
- data/ext/carray_utils.c +175 -74
- data/ext/extconf.rb +216 -55
- data/ext/mk_call_cfunc.rb +480 -0
- data/ext/mkkernel.rb +8842 -0
- data/ext/ruby_carray.c +202 -101
- data/ext/version.h +4 -14
- data/ext/version.rb +5 -13
- data/lib/carray/arrow_tensor.rb +401 -0
- data/lib/carray/attribute.rb +166 -0
- data/lib/carray/autoload_carray.rb +220 -0
- data/lib/carray/autoload_method_extension.rb +44 -0
- data/lib/carray/axis_group.rb +711 -0
- data/lib/carray/basics.rb +481 -0
- data/lib/carray/bincount_nd.rb +358 -0
- data/lib/carray/block_iterator.rb +604 -0
- data/lib/carray/boolean_reduce.rb +109 -0
- data/lib/carray/categorical.rb +561 -0
- data/lib/carray/categorical_iterator.rb +1062 -0
- data/lib/carray/complex.rb +150 -0
- data/lib/carray/conditional.rb +216 -0
- data/lib/carray/const_string.rb +228 -0
- data/lib/carray/construct.rb +139 -328
- data/lib/carray/core_extensions.rb +240 -0
- data/lib/carray/data_type_extension.rb +233 -0
- data/lib/carray/fixlen_string.rb +95 -0
- data/lib/carray/frame/concat.rb +132 -0
- data/lib/carray/frame/convert.rb +95 -0
- data/lib/carray/frame/csv_parser.rb +211 -0
- data/lib/carray/frame/frame.rb +649 -0
- data/lib/carray/frame/group.rb +186 -0
- data/lib/carray/frame/io.rb +164 -0
- data/lib/carray/frame/join.rb +248 -0
- data/lib/carray/frame/records.rb +99 -0
- data/lib/carray/frame/sort.rb +113 -0
- data/lib/carray/frame/verbs.rb +299 -0
- data/lib/carray/frame.rb +16 -0
- data/lib/carray/histogram.rb +512 -0
- data/lib/carray/inspect.rb +37 -20
- data/lib/carray/iterator.rb +57 -349
- data/lib/carray/lazy.rb +889 -0
- data/lib/carray/mask_gap_fill.rb +200 -0
- data/lib/carray/math.rb +78 -342
- data/lib/carray/meld_reduce.rb +289 -0
- data/lib/carray/methods/align_addr.rb +116 -0
- data/lib/carray/methods/bin.rb +128 -0
- data/lib/carray/methods/bincount.rb +87 -0
- data/lib/carray/methods/bit_string.rb +92 -0
- data/lib/carray/methods/broadcast.rb +63 -0
- data/lib/carray/methods/choose.rb +39 -0
- data/lib/carray/methods/composition.rb +280 -0
- data/lib/carray/methods/gather_nd.rb +206 -0
- data/lib/carray/methods/index.rb +39 -0
- data/lib/carray/methods/insert_block.rb +99 -0
- data/lib/carray/methods/is_in.rb +141 -0
- data/lib/carray/methods/join.rb +90 -0
- data/lib/carray/methods/locate_addr.rb +47 -0
- data/lib/carray/methods/mask_duplicates.rb +41 -0
- data/lib/carray/methods/meshgrid.rb +91 -0
- data/lib/carray/methods/mode.rb +126 -0
- data/lib/carray/methods/nunique.rb +46 -0
- data/lib/carray/methods/resize.rb +56 -0
- data/lib/carray/methods/snap.rb +156 -0
- data/lib/carray/methods/string_format.rb +57 -0
- data/lib/carray/methods/unique.rb +47 -0
- data/lib/carray/methods/value_counts.rb +71 -0
- data/lib/carray/mkmf.rb +124 -101
- data/lib/carray/runtime.rb +108 -0
- data/lib/carray/serialize.rb +478 -167
- data/lib/carray/slab_iterator.rb +292 -0
- data/lib/carray/stack.rb +291 -0
- data/lib/carray/string.rb +56 -180
- data/lib/carray/string_operation_extension.rb +289 -0
- data/lib/carray/struct.rb +335 -323
- data/lib/carray/struct_builder.rb +697 -0
- data/lib/carray/table.rb +41 -2
- data/lib/carray/time.rb +2255 -38
- data/lib/carray/window_iterator.rb +655 -0
- data/lib/carray.rb +55 -57
- metadata +163 -130
- data/Rakefile +0 -51
- data/TODO.md +0 -18
- data/ext/ca_iter_block.c +0 -257
- data/ext/ca_iter_dimension.c +0 -299
- data/ext/ca_iter_window.c +0 -214
- data/ext/ca_obj_mapping.c +0 -644
- data/ext/carray_iterator.c +0 -641
- data/ext/carray_math.rb +0 -850
- data/ext/carray_numeric.c +0 -259
- data/ext/carray_sort_addr.c +0 -254
- data/ext/carray_stat.c +0 -2100
- data/ext/carray_stat_proc.rb +0 -1999
- data/ext/mkmath.rb +0 -741
- data/ext/ruby_ccomplex.c +0 -509
- data/ext/ruby_float_func.c +0 -86
- data/lib/carray/array.rb +0 -8
- data/lib/carray/autoload/autoload_base.rb +0 -19
- data/lib/carray/autoload/autoload_gem_cairo.rb +0 -9
- data/lib/carray/autoload/autoload_gem_ffi.rb +0 -9
- data/lib/carray/autoload/autoload_gem_gnuplot.rb +0 -2
- data/lib/carray/autoload/autoload_gem_io_csv.rb +0 -14
- data/lib/carray/autoload/autoload_gem_io_pg.rb +0 -6
- data/lib/carray/autoload/autoload_gem_io_sqlite3.rb +0 -12
- data/lib/carray/autoload/autoload_gem_narray.rb +0 -10
- data/lib/carray/autoload/autoload_gem_numo_narray.rb +0 -15
- data/lib/carray/autoload/autoload_gem_opencv.rb +0 -16
- data/lib/carray/autoload/autoload_gem_random.rb +0 -8
- data/lib/carray/autoload/autoload_gem_rmagick.rb +0 -23
- data/lib/carray/autoload/autoload_gem_zimg.rb +0 -3
- data/lib/carray/autoload/autoload_io_imagemagick.rb +0 -6
- data/lib/carray/autoload/autoload_math_histogram.rb +0 -5
- data/lib/carray/autoload/autoload_math_recurrence.rb +0 -6
- data/lib/carray/autoload/autoload_object_iterator.rb +0 -1
- data/lib/carray/autoload/autoload_object_link.rb +0 -1
- data/lib/carray/autoload/autoload_object_pack.rb +0 -2
- data/lib/carray/autoload.rb +0 -141
- data/lib/carray/basic.rb +0 -191
- data/lib/carray/broadcast.rb +0 -101
- data/lib/carray/compose.rb +0 -315
- data/lib/carray/convert.rb +0 -115
- data/lib/carray/info.rb +0 -110
- data/lib/carray/io/imagemagick.rb +0 -235
- data/lib/carray/mask.rb +0 -102
- data/lib/carray/math/histogram.rb +0 -177
- data/lib/carray/math/recurrence.rb +0 -93
- data/lib/carray/object/ca_obj_iterator.rb +0 -50
- data/lib/carray/object/ca_obj_link.rb +0 -50
- data/lib/carray/object/ca_obj_pack.rb +0 -99
- data/lib/carray/obsolete.rb +0 -256
- data/lib/carray/ordering.rb +0 -181
- data/lib/carray/testing.rb +0 -51
- data/lib/carray/transform.rb +0 -109
- data/misc/Methods.ja.md +0 -182
- data/misc/NOTE +0 -51
- data/spec/Classes/CABitfield_spec.rb +0 -58
- data/spec/Classes/CABlockIterator_spec.rb +0 -114
- data/spec/Classes/CABlock_spec.rb +0 -205
- data/spec/Classes/CAField_spec.rb +0 -39
- data/spec/Classes/CAGrid_spec.rb +0 -75
- data/spec/Classes/CAMap_spec.rb +0 -0
- data/spec/Classes/CAMapping_spec.rb +0 -105
- data/spec/Classes/CAObject_attribute_spec.rb +0 -33
- data/spec/Classes/CAObject_spec.rb +0 -33
- data/spec/Classes/CARefer_spec.rb +0 -93
- data/spec/Classes/CARepeat_spec.rb +0 -65
- data/spec/Classes/CASelect_spec.rb +0 -22
- data/spec/Classes/CAShift_spec.rb +0 -16
- data/spec/Classes/CAStruct_spec.rb +0 -71
- data/spec/Classes/CATranspose_spec.rb +0 -60
- data/spec/Classes/CAUnboudRepeat_spec.rb +0 -102
- data/spec/Classes/CAWindow_spec.rb +0 -54
- data/spec/Classes/CAWrap_spec.rb +0 -8
- data/spec/Classes/CArray_spec.rb +0 -184
- data/spec/Classes/CScalar_spec.rb +0 -55
- data/spec/Classes/ex1.rb +0 -46
- data/spec/Features/feature_130_spec.rb +0 -19
- data/spec/Features/feature_attributes_spec.rb +0 -280
- data/spec/Features/feature_boolean_spec.rb +0 -98
- data/spec/Features/feature_broadcast.rb +0 -116
- data/spec/Features/feature_cast_function.rb +0 -19
- data/spec/Features/feature_cast_spec.rb +0 -33
- data/spec/Features/feature_class_spec.rb +0 -84
- data/spec/Features/feature_complex_spec.rb +0 -42
- data/spec/Features/feature_composite_spec.rb +0 -124
- data/spec/Features/feature_convert_spec.rb +0 -46
- data/spec/Features/feature_copy_spec.rb +0 -123
- data/spec/Features/feature_creation_spec.rb +0 -84
- data/spec/Features/feature_element_spec.rb +0 -144
- data/spec/Features/feature_extream_spec.rb +0 -54
- data/spec/Features/feature_generate_spec.rb +0 -74
- data/spec/Features/feature_index_spec.rb +0 -69
- data/spec/Features/feature_mask_spec.rb +0 -580
- data/spec/Features/feature_math_spec.rb +0 -97
- data/spec/Features/feature_order_spec.rb +0 -146
- data/spec/Features/feature_ref_store_spec.rb +0 -209
- data/spec/Features/feature_serialization_spec.rb +0 -125
- data/spec/Features/feature_stat_spec.rb +0 -397
- data/spec/Features/feature_virtual_spec.rb +0 -48
- data/spec/Features/method_eq_spec.rb +0 -81
- data/spec/Features/method_is_nan_spec.rb +0 -12
- data/spec/Features/method_map_spec.rb +0 -54
- data/spec/Features/method_max_with.rb +0 -20
- data/spec/Features/method_min_with.rb +0 -19
- data/spec/Features/method_ne_spec.rb +0 -18
- data/spec/Features/method_project_spec.rb +0 -188
- data/spec/Features/method_ref_spec.rb +0 -27
- data/spec/Features/method_round_spec.rb +0 -11
- data/spec/Features/method_s_linspace_spec.rb +0 -48
- data/spec/Features/method_s_span_spec.rb +0 -14
- data/spec/Features/method_seq_spec.rb +0 -47
- data/spec/Features/method_sort_with.rb +0 -43
- data/spec/Features/method_sorted_with.rb +0 -29
- data/spec/Features/method_span_spec.rb +0 -42
- data/spec/Features/method_wrap_readonly_spec.rb +0 -43
- data/spec/UnitTest/test_CAVirtual.rb +0 -214
- data/spec/spec_all.rb +0 -10
- data/utils/ca_ase.rb +0 -21
- data/utils/ca_methods.rb +0 -15
- data/utils/cast_checker.rb +0 -30
- data/utils/convert_test.rb +0 -73
- data/utils/extract_yard.rb +0 -22
- data/utils/guess_shape.rb +0 -76
- data/utils/monkey_patch_methods.rb +0 -62
- data/utils/remove_resource_fork.sh +0 -5
data/ext/ruby_carray.c
CHANGED
|
@@ -1,10 +1,15 @@
|
|
|
1
1
|
/* ---------------------------------------------------------------------------
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Single entry point Init_carray_ext: declares the CArray class
|
|
4
|
+
hierarchy + exception class + CA module, populates top-level
|
|
5
|
+
constants (CA_RANK_MAX / CA_NIL / CA_* data_type Symbols / alignment
|
|
6
|
+
values), then drives the per-module Init_* sequence in load order.
|
|
4
7
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
+
CAREFUL: the Init_* call order below carries real ordering
|
|
9
|
+
invariants in several places (e.g. CAStride before its subclasses,
|
|
10
|
+
ca_op_ipower before mask_fast_paths, ca_face before its concrete
|
|
11
|
+
Faces, lazy before monop). Each load-bearing edge is annotated at
|
|
12
|
+
the callsite; do not reorder without reading those notes.
|
|
8
13
|
|
|
9
14
|
---------------------------------------------------------------------------- */
|
|
10
15
|
|
|
@@ -14,15 +19,15 @@
|
|
|
14
19
|
#ifdef HAVE_RB_ARITHMETIC_SEQUENCE_EXTRACT
|
|
15
20
|
VALUE rb_cArithSeq;
|
|
16
21
|
#endif
|
|
22
|
+
|
|
23
|
+
/* Form-only base of the 3.0 iterator family (defined in Init_carray_ext). */
|
|
24
|
+
VALUE rb_cCAIterator;
|
|
17
25
|
|
|
18
26
|
VALUE rb_eCADataTypeError;
|
|
19
27
|
VALUE rb_mCA;
|
|
20
28
|
|
|
21
29
|
VALUE CA_NIL;
|
|
22
30
|
|
|
23
|
-
void Init_ccomplex ();
|
|
24
|
-
void Init_numeric_float_function ();
|
|
25
|
-
|
|
26
31
|
void Init_carray_core ();
|
|
27
32
|
void Init_carray_undef ();
|
|
28
33
|
void Init_carray_class ();
|
|
@@ -31,51 +36,93 @@ void Init_carray_test ();
|
|
|
31
36
|
void Init_carray_attribute ();
|
|
32
37
|
void Init_carray_loop ();
|
|
33
38
|
void Init_carray_mask ();
|
|
39
|
+
void Init_carray_hold ();
|
|
40
|
+
void Init_carray_mask_fast_paths (); /* patches generated bit-op tables;
|
|
41
|
+
must run AFTER Init_ca_op_ipower */
|
|
34
42
|
void Init_carray_access ();
|
|
43
|
+
void Init_carray_index_classifier ();
|
|
35
44
|
void Init_carray_element ();
|
|
36
|
-
void
|
|
45
|
+
void Init_carray_scatter (); /* scatter_*! family */
|
|
46
|
+
void Init_ca_axis_group (); /* devel/MEMO_AXIS_GROUP.md — axis-group reduction kernel */
|
|
47
|
+
void Init_ca_group_iter (); /* devel/MEMO_AXIS_GROUP.md — axis-group [] surface */
|
|
48
|
+
void Init_carray_bincount (); /* bincount dedicated kernel */
|
|
49
|
+
void Init_carray_factorize (); /* single-pass integer factorization for categorize */
|
|
50
|
+
void Init_carray_histogram (); /* histogram + histbin_ki */
|
|
51
|
+
void Init_ca_categorical_iterator (); /* CACategoricalIterator counting-sort scatter */
|
|
37
52
|
void Init_carray_operator ();
|
|
38
|
-
void
|
|
39
|
-
void Init_carray_math ();
|
|
53
|
+
void Init_ca_op_ipower ();
|
|
40
54
|
void Init_carray_utils ();
|
|
41
55
|
void Init_carray_order ();
|
|
42
|
-
void
|
|
43
|
-
void
|
|
44
|
-
void
|
|
56
|
+
void Init_carray_partition (); /* partition / partition_copy */
|
|
57
|
+
void Init_carray_median_percentile (); /* median / percentile / quantile */
|
|
58
|
+
void Init_carray_sort (); /* sort / sort_copy / sort_addr / axis2addr */
|
|
59
|
+
void Init_carray_count ();
|
|
60
|
+
void Init_carray_kernels (); /* mkkernel-generated: reductions + maps */
|
|
45
61
|
void Init_carray_utils ();
|
|
46
62
|
void Init_carray_generate ();
|
|
47
63
|
void Init_carray_copy ();
|
|
48
64
|
void Init_carray_conversion ();
|
|
49
65
|
void Init_carray_cast ();
|
|
66
|
+
void Init_carray_broadcast ();
|
|
50
67
|
|
|
51
68
|
void Init_ca_obj_array ();
|
|
52
69
|
void Init_ca_obj_refer ();
|
|
53
70
|
void Init_ca_obj_farray ();
|
|
54
71
|
void Init_ca_obj_block ();
|
|
55
72
|
void Init_ca_obj_select ();
|
|
73
|
+
void Init_ca_obj_select_axis ();
|
|
56
74
|
void Init_ca_obj_object ();
|
|
57
75
|
void Init_ca_obj_grid ();
|
|
58
76
|
void Init_ca_obj_window ();
|
|
59
77
|
void Init_ca_obj_shift ();
|
|
78
|
+
void Init_ca_obj_tile ();
|
|
79
|
+
void Init_ca_obj_roll ();
|
|
80
|
+
void Init_ca_obj_stack (); /* multi-parent outer-axis stack */
|
|
81
|
+
void Init_ca_obj_meld (); /* multi-parent ragged concat along existing axis */
|
|
60
82
|
void Init_ca_obj_transpose ();
|
|
61
|
-
void Init_ca_obj_mapping ();
|
|
62
83
|
void Init_ca_obj_repeat ();
|
|
63
84
|
void Init_ca_obj_unbound_repeat ();
|
|
64
85
|
void Init_ca_obj_reduce ();
|
|
65
86
|
void Init_ca_obj_field ();
|
|
66
87
|
void Init_ca_obj_fake ();
|
|
88
|
+
void Init_ca_obj_byte_swap ();
|
|
89
|
+
void Init_ca_face (); /* CAFace abstract base; must precede CATime / CATimedelta / CARecord / CAConstString */
|
|
90
|
+
void Init_ca_source (); /* CASource abstract base; concrete sources live in C extensions */
|
|
91
|
+
void Init_ca_obj_time (); /* first numeric Face */
|
|
92
|
+
void Init_ca_obj_timedelta (); /* CATime sibling */
|
|
93
|
+
void Init_ca_obj_record (); /* composite Face for CAStruct backing */
|
|
94
|
+
void Init_ca_obj_const_string ();/* read-only variable-length string Face */
|
|
95
|
+
void Init_ca_obj_string (); /* mutable string Face over CA_OBJECT storage */
|
|
96
|
+
void Init_ca_obj_fixlen_string ();/* string Face over CA_FIXLEN storage */
|
|
67
97
|
void Init_ca_obj_bitarray ();
|
|
68
98
|
void Init_ca_obj_bitfield ();
|
|
69
|
-
|
|
70
|
-
void
|
|
71
|
-
void
|
|
72
|
-
void
|
|
73
|
-
void
|
|
99
|
+
void Init_ca_obj_stride ();
|
|
100
|
+
void Init_ca_obj_remap (); /* internal-only (no Ruby surface) */
|
|
101
|
+
void Init_carray_lazy (); /* CALazyMarker; must precede Init_ca_obj_monop / _binop / _moncmp / _bincmp */
|
|
102
|
+
void Init_ca_obj_monop (); /* CAMonOp + lazy elementwise monadic dispatch */
|
|
103
|
+
void Init_ca_obj_binop (); /* CABinOp + lazy elementwise binary dispatch */
|
|
104
|
+
void Init_ca_obj_triop (); /* CATriOp + lazy elementwise triadic dispatch */
|
|
105
|
+
void Init_ca_obj_bincmp (); /* CABinCmp + lazy elementwise comparison dispatch */
|
|
106
|
+
void Init_ca_obj_moncmp (); /* CAMonCmp + lazy elementwise predicate dispatch */
|
|
107
|
+
|
|
108
|
+
/* Init_carray_iterator retired; CAIterator is a form-only base defined inline
|
|
109
|
+
in Init_carray_ext (accessors in lib/carray/iterator.rb). The 2.0 C engines
|
|
110
|
+
(dimension / window / block iterators) live at samples/caiterator/. */
|
|
74
111
|
|
|
75
112
|
void Init_carray_mathfunc ();
|
|
76
113
|
|
|
114
|
+
void Init_carray_memory_view ();
|
|
115
|
+
|
|
116
|
+
void Init_carray_struct ();
|
|
117
|
+
|
|
118
|
+
void Init_carray_random ();
|
|
119
|
+
|
|
120
|
+
void Init_ca_kernel_iterator ();
|
|
121
|
+
|
|
122
|
+
void Init_carray_slab ();
|
|
123
|
+
|
|
77
124
|
void
|
|
78
|
-
Init_carray_ext ()
|
|
125
|
+
Init_carray_ext (void)
|
|
79
126
|
{
|
|
80
127
|
|
|
81
128
|
#ifdef HAVE_RB_EXT_RACTOR_SAFE
|
|
@@ -93,17 +140,26 @@ Init_carray_ext ()
|
|
|
93
140
|
rb_cCArray = rb_define_class("CArray", rb_cObject);
|
|
94
141
|
rb_cCAWrap = rb_define_class("CAWrap", rb_cCArray);
|
|
95
142
|
rb_cCScalar = rb_define_class("CScalar", rb_cCArray);
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
143
|
+
rb_cCAView = rb_define_class("CAView", rb_cCArray);
|
|
144
|
+
/* CAREFUL: CAStride must exist before its subclasses (CARefer /
|
|
145
|
+
CABlock / CAField / CARepeat / CAUnboundRepeat / CATranspose /
|
|
146
|
+
CAFarray) are defined or registered. See devel/CAStride.md. */
|
|
147
|
+
rb_cCAStride = rb_define_class("CAStride", rb_cCAView);
|
|
148
|
+
rb_cCARefer = rb_define_class("CARefer", rb_cCAStride);
|
|
149
|
+
rb_cCABlock = rb_define_class("CABlock", rb_cCAStride);
|
|
150
|
+
rb_cCAField = rb_define_class("CAField", rb_cCAStride);
|
|
151
|
+
rb_cCASelect = rb_define_class("CASelect", rb_cCAView);
|
|
152
|
+
rb_cCAObject = rb_define_class("CAObject", rb_cCAView);
|
|
153
|
+
rb_cCARepeat = rb_define_class("CARepeat", rb_cCAStride);
|
|
154
|
+
/* CAUnboundRepeat: a CAStride with stride-0 axes on each `*` position
|
|
155
|
+
and sized (matching parent) on each nil position. */
|
|
156
|
+
rb_cCAUnboundRepeat = rb_define_class("CAUnboundRepeat", rb_cCAStride);
|
|
103
157
|
|
|
104
158
|
rb_cCArrayMask = rb_define_class("CArrayMask", rb_cCArray);
|
|
159
|
+
rb_cCAStrideMask = rb_define_class("CAStrideMask", rb_cCAStride);
|
|
105
160
|
rb_cCAReferMask = rb_define_class("CAReferMask", rb_cCARefer);
|
|
106
161
|
rb_cCABlockMask = rb_define_class("CABlockMask", rb_cCABlock);
|
|
162
|
+
rb_cCAFieldMask = rb_define_class("CAFieldMask", rb_cCAField);
|
|
107
163
|
rb_cCASelectMask = rb_define_class("CASelectMask", rb_cCASelect);
|
|
108
164
|
rb_cCARepeatMask = rb_define_class("CARepeatMask", rb_cCARepeat);
|
|
109
165
|
rb_cCAUnboundRepeatMask = rb_define_class("CAUnboundRepeatMask", rb_cCAUnboundRepeat);
|
|
@@ -113,43 +169,18 @@ Init_carray_ext ()
|
|
|
113
169
|
rb_eCADataTypeError =
|
|
114
170
|
rb_define_class_under(rb_cCArray, "DataTypeError", rb_eStandardError);
|
|
115
171
|
|
|
116
|
-
/*
|
|
117
|
-
class CArray::DataTypeError # :nodoc:
|
|
118
|
-
end
|
|
119
|
-
*/
|
|
120
|
-
|
|
121
|
-
/* -- CA module -- */
|
|
122
|
-
/* a namespace for misc utilities related with CArray */
|
|
172
|
+
/* -- CA module -- namespace for misc utilities related to CArray */
|
|
123
173
|
|
|
124
174
|
rb_mCA = rb_define_module("CA");
|
|
125
175
|
|
|
126
|
-
/* CArray constants */
|
|
127
|
-
|
|
128
176
|
/* -- version -- */
|
|
129
177
|
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
VERSION = nil # :nodoc:
|
|
133
|
-
VERSION_CODE = nil # :nodoc:
|
|
134
|
-
VERSION_MAJOR = nil # :nodoc:
|
|
135
|
-
VERSION_MINOR = nil # :nodoc:
|
|
136
|
-
VERSION_TEENY = nil # :nodoc:
|
|
137
|
-
VERSION_DATE = nil # :nodoc:
|
|
138
|
-
end
|
|
139
|
-
*/
|
|
140
|
-
|
|
141
|
-
/* @private */
|
|
142
|
-
rb_define_const(rb_cCArray, "VERSION", rb_str_new2(CA_VERSION));
|
|
143
|
-
/* @private */
|
|
144
|
-
rb_define_const(rb_cCArray, "VERSION_CODE", INT2NUM(CA_VERSION_CODE));
|
|
145
|
-
/* @private */
|
|
178
|
+
rb_define_const(rb_cCArray, "VERSION", rb_str_new2(CA_VERSION));
|
|
179
|
+
rb_define_const(rb_cCArray, "VERSION_CODE", INT2NUM(CA_VERSION_CODE));
|
|
146
180
|
rb_define_const(rb_cCArray, "VERSION_MAJOR", INT2NUM(CA_VERSION_MAJOR));
|
|
147
|
-
/* @private */
|
|
148
181
|
rb_define_const(rb_cCArray, "VERSION_MINOR", INT2NUM(CA_VERSION_MINOR));
|
|
149
|
-
/* @private */
|
|
150
182
|
rb_define_const(rb_cCArray, "VERSION_TEENY", INT2NUM(CA_VERSION_TEENY));
|
|
151
|
-
|
|
152
|
-
rb_define_const(rb_cCArray, "VERSION_DATE", rb_str_new2(CA_VERSION_DATE));
|
|
183
|
+
rb_define_const(rb_cCArray, "VERSION_DATE", rb_str_new2(CA_VERSION_DATE));
|
|
153
184
|
|
|
154
185
|
/* -- system -- */
|
|
155
186
|
rb_define_const(rb_cObject, "CA_RANK_MAX", INT2NUM(CA_RANK_MAX));
|
|
@@ -166,32 +197,53 @@ Init_carray_ext ()
|
|
|
166
197
|
|
|
167
198
|
/* -- data types -- */
|
|
168
199
|
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
rb_define_const(rb_cObject, "
|
|
192
|
-
rb_define_const(rb_cObject, "
|
|
193
|
-
rb_define_const(rb_cObject, "
|
|
194
|
-
rb_define_const(rb_cObject, "
|
|
200
|
+
/* CAREFUL: precompute the Symbol ID cache for the ca.data_type
|
|
201
|
+
accessor BEFORE the CA_* data_type constants below are defined —
|
|
202
|
+
they read from ca_data_type_sym[]. */
|
|
203
|
+
{
|
|
204
|
+
int i;
|
|
205
|
+
for ( i = 0; i < CA_NTYPE; i++ ) {
|
|
206
|
+
if ( ca_type_name[i] != NULL ) {
|
|
207
|
+
ca_data_type_sym[i] = rb_intern(ca_type_name[i]);
|
|
208
|
+
}
|
|
209
|
+
else {
|
|
210
|
+
ca_data_type_sym[i] = rb_intern("");
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
/* The Ruby-surface CA_* data_type constants are Symbols (the C
|
|
216
|
+
internal `#define CA_INT64 8` etc. is unchanged); both sides flip
|
|
217
|
+
to Symbol together so `case when CA_INT64` over `ca.data_type`
|
|
218
|
+
stays transparent. Alias constants (CA_DOUBLE etc.) share the
|
|
219
|
+
canonical Symbol via Symbol identity, so `CA_DOUBLE ==
|
|
220
|
+
CA_FLOAT64` evaluates true. */
|
|
221
|
+
|
|
222
|
+
rb_define_const(rb_cObject, "CA_FIXLEN", ID2SYM(ca_data_type_sym[CA_FIXLEN]));
|
|
223
|
+
rb_define_const(rb_cObject, "CA_BOOLEAN", ID2SYM(ca_data_type_sym[CA_BOOLEAN]));
|
|
224
|
+
rb_define_const(rb_cObject, "CA_INT8", ID2SYM(ca_data_type_sym[CA_INT8]));
|
|
225
|
+
rb_define_const(rb_cObject, "CA_UINT8", ID2SYM(ca_data_type_sym[CA_UINT8]));
|
|
226
|
+
rb_define_const(rb_cObject, "CA_INT16", ID2SYM(ca_data_type_sym[CA_INT16]));
|
|
227
|
+
rb_define_const(rb_cObject, "CA_UINT16", ID2SYM(ca_data_type_sym[CA_UINT16]));
|
|
228
|
+
rb_define_const(rb_cObject, "CA_INT32", ID2SYM(ca_data_type_sym[CA_INT32]));
|
|
229
|
+
rb_define_const(rb_cObject, "CA_UINT32", ID2SYM(ca_data_type_sym[CA_UINT32]));
|
|
230
|
+
rb_define_const(rb_cObject, "CA_INT64", ID2SYM(ca_data_type_sym[CA_INT64]));
|
|
231
|
+
rb_define_const(rb_cObject, "CA_UINT64", ID2SYM(ca_data_type_sym[CA_UINT64]));
|
|
232
|
+
rb_define_const(rb_cObject, "CA_FLOAT32", ID2SYM(ca_data_type_sym[CA_FLOAT32]));
|
|
233
|
+
rb_define_const(rb_cObject, "CA_FLOAT64", ID2SYM(ca_data_type_sym[CA_FLOAT64]));
|
|
234
|
+
rb_define_const(rb_cObject, "CA_CMPLX64", ID2SYM(ca_data_type_sym[CA_CMPLX64]));
|
|
235
|
+
rb_define_const(rb_cObject, "CA_CMPLX128", ID2SYM(ca_data_type_sym[CA_CMPLX128]));
|
|
236
|
+
rb_define_const(rb_cObject, "CA_OBJECT", ID2SYM(ca_data_type_sym[CA_OBJECT]));
|
|
237
|
+
|
|
238
|
+
/* Aliases share the canonical Symbol: CA_BYTE == CA_UINT8, etc. */
|
|
239
|
+
rb_define_const(rb_cObject, "CA_BYTE", ID2SYM(ca_data_type_sym[CA_BYTE]));
|
|
240
|
+
rb_define_const(rb_cObject, "CA_SHORT", ID2SYM(ca_data_type_sym[CA_INT16]));
|
|
241
|
+
rb_define_const(rb_cObject, "CA_INT", ID2SYM(ca_data_type_sym[CA_INT32]));
|
|
242
|
+
rb_define_const(rb_cObject, "CA_FLOAT", ID2SYM(ca_data_type_sym[CA_FLOAT]));
|
|
243
|
+
rb_define_const(rb_cObject, "CA_DOUBLE", ID2SYM(ca_data_type_sym[CA_DOUBLE]));
|
|
244
|
+
rb_define_const(rb_cObject, "CA_COMPLEX", ID2SYM(ca_data_type_sym[CA_COMPLEX]));
|
|
245
|
+
rb_define_const(rb_cObject, "CA_DCOMPLEX", ID2SYM(ca_data_type_sym[CA_DCOMPLEX]));
|
|
246
|
+
rb_define_const(rb_cObject, "CA_SIZE", ID2SYM(ca_data_type_sym[CA_SIZE]));
|
|
195
247
|
|
|
196
248
|
rb_define_const(rb_cObject, "CA_ALIGN_VOIDP", INT2NUM(CA_ALIGN_VOIDP));
|
|
197
249
|
rb_define_const(rb_cObject, "CA_ALIGN_FIXLEN", INT2NUM(CA_ALIGN_INT8));
|
|
@@ -202,38 +254,44 @@ Init_carray_ext ()
|
|
|
202
254
|
rb_define_const(rb_cObject, "CA_ALIGN_INT64", INT2NUM(CA_ALIGN_INT64));
|
|
203
255
|
rb_define_const(rb_cObject, "CA_ALIGN_FLOAT32", INT2NUM(CA_ALIGN_FLOAT32));
|
|
204
256
|
rb_define_const(rb_cObject, "CA_ALIGN_FLOAT64", INT2NUM(CA_ALIGN_FLOAT64));
|
|
205
|
-
rb_define_const(rb_cObject, "CA_ALIGN_FLOAT128", INT2NUM(CA_ALIGN_FLOAT128));
|
|
206
257
|
rb_define_const(rb_cObject, "CA_ALIGN_CMPLX64", INT2NUM(CA_ALIGN_CMPLX64));
|
|
207
258
|
rb_define_const(rb_cObject, "CA_ALIGN_CMPLX128", INT2NUM(CA_ALIGN_CMPLX128));
|
|
208
|
-
rb_define_const(rb_cObject, "CA_ALIGN_CMPLX256", INT2NUM(CA_ALIGN_CMPLX256));
|
|
209
259
|
rb_define_const(rb_cObject, "CA_ALIGN_OBJECT", INT2NUM(CA_ALIGN_OBJECT));
|
|
210
260
|
|
|
211
261
|
/* load modules in external files */
|
|
212
262
|
|
|
213
263
|
Init_carray_core(); /* Init_carray_core should be called first*/
|
|
214
264
|
|
|
215
|
-
#ifdef HAVE_COMPLEX_H
|
|
216
|
-
Init_ccomplex();
|
|
217
|
-
#endif
|
|
218
|
-
|
|
219
|
-
Init_numeric_float_function();
|
|
220
|
-
|
|
221
265
|
Init_carray_class();
|
|
222
266
|
Init_carray_data_type();
|
|
223
267
|
Init_carray_test();
|
|
224
268
|
Init_carray_attribute();
|
|
225
269
|
Init_carray_undef();
|
|
226
270
|
Init_carray_mask();
|
|
271
|
+
Init_carray_hold();
|
|
227
272
|
Init_carray_loop();
|
|
228
273
|
Init_carray_access();
|
|
274
|
+
Init_carray_index_classifier();
|
|
229
275
|
Init_carray_element();
|
|
276
|
+
Init_carray_scatter();
|
|
277
|
+
Init_ca_axis_group(); /* devel/MEMO_AXIS_GROUP.md — axis-group reduction kernel */
|
|
278
|
+
Init_carray_bincount();
|
|
279
|
+
Init_carray_factorize();
|
|
280
|
+
Init_carray_histogram();
|
|
281
|
+
Init_ca_categorical_iterator();
|
|
230
282
|
Init_carray_operator();
|
|
231
|
-
|
|
232
|
-
|
|
283
|
+
Init_ca_op_ipower(); /* CArray#pow / pow! + ipower fast path.
|
|
284
|
+
CAREFUL: must precede the numeric init
|
|
285
|
+
block that follows. */
|
|
286
|
+
Init_carray_mask_fast_paths(); /* patches bit-op tables for boolean8_t;
|
|
287
|
+
must run AFTER Init_ca_op_ipower
|
|
288
|
+
(which sets up the tables). */
|
|
233
289
|
Init_carray_order();
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
290
|
+
Init_carray_partition(); /* partition / partition_copy */
|
|
291
|
+
Init_carray_median_percentile(); /* needs partition_copy_c from carray_partition */
|
|
292
|
+
Init_carray_sort(); /* sort / sort_copy / sort_addr / axis2addr */
|
|
293
|
+
Init_carray_count();
|
|
294
|
+
Init_carray_kernels(); /* mkkernel-generated: reductions + maps */
|
|
237
295
|
|
|
238
296
|
Init_carray_utils();
|
|
239
297
|
|
|
@@ -241,34 +299,77 @@ Init_carray_ext ()
|
|
|
241
299
|
Init_carray_copy();
|
|
242
300
|
Init_carray_conversion();
|
|
243
301
|
Init_carray_cast();
|
|
302
|
+
Init_carray_broadcast();
|
|
244
303
|
|
|
245
304
|
Init_ca_obj_array();
|
|
246
305
|
Init_ca_obj_refer();
|
|
306
|
+
Init_ca_obj_stride(); /* CAREFUL: must precede CAStride subclasses
|
|
307
|
+
(farray / block / transpose / repeat /
|
|
308
|
+
unbound_repeat / field). */
|
|
247
309
|
Init_ca_obj_farray();
|
|
248
310
|
Init_ca_obj_block();
|
|
249
311
|
Init_ca_obj_select();
|
|
312
|
+
Init_ca_obj_select_axis();
|
|
250
313
|
Init_ca_obj_object();
|
|
251
314
|
Init_ca_obj_grid();
|
|
252
315
|
Init_ca_obj_window();
|
|
253
316
|
Init_ca_obj_shift();
|
|
317
|
+
Init_ca_obj_tile();
|
|
318
|
+
Init_ca_obj_roll(); /* depends on tile */
|
|
319
|
+
Init_ca_obj_stack();
|
|
320
|
+
Init_ca_obj_meld();
|
|
254
321
|
Init_ca_obj_transpose();
|
|
255
|
-
Init_ca_obj_mapping();
|
|
256
322
|
Init_ca_obj_repeat();
|
|
257
323
|
Init_ca_obj_unbound_repeat();
|
|
258
324
|
Init_ca_obj_reduce();
|
|
259
325
|
Init_ca_obj_field();
|
|
260
326
|
Init_ca_obj_fake();
|
|
327
|
+
Init_ca_obj_byte_swap();
|
|
328
|
+
Init_ca_source(); /* CASource: abstract, no obj_type of its own.
|
|
329
|
+
Concrete sources are registered by C
|
|
330
|
+
extensions via ca_install_obj_type. */
|
|
331
|
+
Init_ca_face(); /* CAREFUL: must precede every concrete Face
|
|
332
|
+
(datetime / timedelta / record /
|
|
333
|
+
const_string). */
|
|
334
|
+
Init_ca_obj_time();
|
|
335
|
+
Init_ca_obj_timedelta();
|
|
336
|
+
Init_ca_obj_record();
|
|
337
|
+
Init_ca_obj_const_string();
|
|
338
|
+
Init_ca_obj_string();
|
|
339
|
+
Init_ca_obj_fixlen_string();
|
|
261
340
|
Init_ca_obj_bitarray();
|
|
262
341
|
Init_ca_obj_bitfield();
|
|
342
|
+
Init_ca_obj_remap(); /* internal-only (no Ruby surface) */
|
|
343
|
+
Init_carray_lazy(); /* CALazyMarker; CAREFUL: must precede the
|
|
344
|
+
four lazy elementwise inits below. */
|
|
345
|
+
Init_ca_obj_monop();
|
|
346
|
+
Init_ca_obj_binop();
|
|
347
|
+
Init_ca_obj_triop();
|
|
348
|
+
Init_ca_obj_bincmp();
|
|
349
|
+
Init_ca_obj_moncmp();
|
|
350
|
+
|
|
351
|
+
/* CAIterator is the form-only base of the 3.0 iterator family; its shared
|
|
352
|
+
accessors are plain Ruby attr_readers (lib/carray/iterator.rb). The C
|
|
353
|
+
reduction iterators subclass it and carray_access.c constructs
|
|
354
|
+
CASlabIterator by name, so the class object must exist here. The retired
|
|
355
|
+
2.0 dispatch engines (dimension / window / block C iterators + the
|
|
356
|
+
kernel_at_addr base) are preserved at samples/caiterator/. */
|
|
357
|
+
rb_cCAIterator = rb_define_class("CAIterator", rb_cObject);
|
|
358
|
+
|
|
359
|
+
Init_ca_group_iter(); /* devel/MEMO_AXIS_GROUP.md — axis-group [] surface
|
|
360
|
+
(CAGroupIterator); after CAIterator is defined
|
|
361
|
+
(CAGroupIterator subclasses it). */
|
|
263
362
|
|
|
264
|
-
|
|
363
|
+
Init_carray_mathfunc();
|
|
265
364
|
|
|
266
|
-
|
|
267
|
-
Init_ca_iter_block();
|
|
268
|
-
Init_ca_iter_window();
|
|
365
|
+
Init_carray_memory_view();
|
|
269
366
|
|
|
270
|
-
|
|
367
|
+
Init_carray_struct();
|
|
368
|
+
|
|
369
|
+
Init_carray_random();
|
|
271
370
|
|
|
371
|
+
Init_ca_kernel_iterator();
|
|
272
372
|
|
|
373
|
+
Init_carray_slab();
|
|
273
374
|
}
|
|
274
375
|
|
data/ext/version.h
CHANGED
|
@@ -1,16 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
This file is part of Ruby/CArray extension library.
|
|
6
|
-
|
|
7
|
-
Copyright (C) 2005-2020 Hiroki Motoyoshi
|
|
8
|
-
|
|
9
|
-
---------------------------------------------------------------------------- */
|
|
10
|
-
|
|
11
|
-
#define CA_VERSION "2.0.0"
|
|
12
|
-
#define CA_VERSION_CODE 200
|
|
13
|
-
#define CA_VERSION_MAJOR 2
|
|
1
|
+
#define CA_VERSION "3.0.0"
|
|
2
|
+
#define CA_VERSION_CODE 300
|
|
3
|
+
#define CA_VERSION_MAJOR 3
|
|
14
4
|
#define CA_VERSION_MINOR 0
|
|
15
5
|
#define CA_VERSION_TEENY 0
|
|
16
|
-
#define CA_VERSION_DATE "
|
|
6
|
+
#define CA_VERSION_DATE "2026/08/25"
|
data/ext/version.rb
CHANGED
|
@@ -1,15 +1,3 @@
|
|
|
1
|
-
# ----------------------------------------------------------------------------
|
|
2
|
-
#
|
|
3
|
-
# version.rb
|
|
4
|
-
#
|
|
5
|
-
# This file is part of Ruby/CArray extension library.
|
|
6
|
-
# You can redistribute it and/or modify it under the terms of
|
|
7
|
-
# the Ruby Licence.
|
|
8
|
-
#
|
|
9
|
-
# Copyright (C) 2005 Hiroki Motoyoshi
|
|
10
|
-
#
|
|
11
|
-
# ----------------------------------------------------------------------------
|
|
12
|
-
|
|
13
1
|
def carray_version
|
|
14
2
|
|
|
15
3
|
io = open(File.join(File.dirname(__FILE__), "version.h"))
|
|
@@ -36,7 +24,11 @@ def carray_version
|
|
|
36
24
|
ca_version_code2 =
|
|
37
25
|
100 * ca_version_major + 10*ca_version_minor + ca_version_teeny
|
|
38
26
|
|
|
39
|
-
|
|
27
|
+
# Allow pre-release suffix like "3.0.0.dev" / "3.0.0.alpha1" while still
|
|
28
|
+
# validating the numeric MAJOR.MINOR.TEENY prefix.
|
|
29
|
+
ca_version_numeric = ca_version.split(".")[0, 3].join(".")
|
|
30
|
+
|
|
31
|
+
if ca_version_numeric != ca_version2 or ca_version_code != ca_version_code2
|
|
40
32
|
raise "invalid version.h"
|
|
41
33
|
end
|
|
42
34
|
|