rubyduino 0.1.3 → 0.2.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 +4 -4
- data/.gitmodules +1 -0
- data/CHANGELOG.md +12 -0
- data/README.md +1 -2
- data/examples/hc_sr04.rb +39 -0
- data/lib/rubyduino/arduino_uno.rb +76 -0
- data/lib/rubyduino/sp_runtime.h +287 -0
- data/lib/rubyduino/spinel.rb +1 -1
- data/lib/rubyduino/spinel_arduino_codegen.rb +53 -13
- data/lib/rubyduino/version.rb +1 -1
- data/vendor/spinel/Makefile +463 -54
- data/vendor/spinel/README.md +248 -68
- data/vendor/spinel/benchmark/bm_jekyll_lite.rb +241 -0
- data/vendor/spinel/benchmark/bm_micro_lisp.rb +282 -0
- data/vendor/spinel/benchmark/bm_poly_cells.rb +75 -0
- data/vendor/spinel/benchmark/bm_range_each.rb +15 -0
- data/vendor/spinel/benchmark/bm_sinatra_mini.rb +126 -0
- data/vendor/spinel/compiler_helpers.rb +1506 -0
- data/vendor/spinel/docs/ANALYZE-IR.md +411 -0
- data/vendor/spinel/docs/AST.md +360 -0
- data/vendor/spinel/docs/CLASS-OBJECT.md +521 -0
- data/vendor/spinel/docs/FFI.md +9 -0
- data/vendor/spinel/docs/FLOAT-ROUNDING.md +47 -0
- data/vendor/spinel/docs/HASH-NULLABLE.md +379 -0
- data/vendor/spinel/docs/INCOMPATIBILITIES.md +102 -0
- data/vendor/spinel/docs/RBS-EXTRACT.md +128 -0
- data/vendor/spinel/docs/fast-bootstrap.md +74 -0
- data/vendor/spinel/docs/issue-646-plan.md +159 -0
- data/vendor/spinel/docs/promote-mode-plan.md +227 -0
- data/vendor/spinel/docs/setbyte-semantic-plan.md +203 -0
- data/vendor/spinel/examples/ffi/sqlite/README.md +7 -6
- data/vendor/spinel/examples/ffi/sqlite/sqlite3_lib.rb +7 -4
- data/vendor/spinel/experiments/rbs/box.rb +32 -0
- data/vendor/spinel/experiments/rbs/box.seed +18 -0
- data/vendor/spinel/experiments/rbs/harness.rb +117 -0
- data/vendor/spinel/lib/regexp/re_compile.c +265 -25
- data/vendor/spinel/lib/regexp/re_exec.c +80 -19
- data/vendor/spinel/lib/regexp/re_internal.h +22 -2
- data/vendor/spinel/lib/regexp/re_utf8.c +21 -2
- data/vendor/spinel/lib/sp_bigint.c +67 -3
- data/vendor/spinel/lib/sp_core.c +248 -0
- data/vendor/spinel/lib/sp_core.h +37 -0
- data/vendor/spinel/lib/sp_crypto.c +583 -0
- data/vendor/spinel/lib/sp_crypto.h +79 -0
- data/vendor/spinel/lib/sp_fiber.c +95 -0
- data/vendor/spinel/lib/sp_fiber.h +41 -0
- data/vendor/spinel/lib/sp_gc.c +89 -0
- data/vendor/spinel/lib/sp_gc.h +81 -0
- data/vendor/spinel/lib/sp_io.c +98 -0
- data/vendor/spinel/lib/sp_io.h +31 -0
- data/vendor/spinel/lib/sp_net.c +350 -0
- data/vendor/spinel/lib/sp_net.h +97 -0
- data/vendor/spinel/lib/sp_pack.c +431 -0
- data/vendor/spinel/lib/sp_runtime.h +3485 -341
- data/vendor/spinel/lib/sp_strscan.c +320 -0
- data/vendor/spinel/lib/sp_system.c +173 -0
- data/vendor/spinel/lib/sp_system.h +16 -0
- data/vendor/spinel/lib/sp_time.c +204 -0
- data/vendor/spinel/lib/sp_time.h +63 -0
- data/vendor/spinel/lib/sp_types.h +144 -0
- data/vendor/spinel/lib/stringio.c +31 -3
- data/vendor/spinel/lib/strscan.c +34 -7
- data/vendor/spinel/lib/strscan.rb +6 -53
- data/vendor/spinel/node_table_loader.rb +150 -0
- data/vendor/spinel/spinel +319 -21
- data/vendor/spinel/spinel_analyze.rb +37556 -0
- data/vendor/spinel/spinel_codegen.rb +47620 -33346
- data/vendor/spinel/spinel_parse +0 -0
- data/vendor/spinel/spinel_parse.c +801 -91
- data/vendor/spinel/spinel_rbs_extract.c +931 -0
- data/vendor/spinel/test/alias_attr_reader_source.rb +38 -0
- data/vendor/spinel/test/alias_attr_reader_source.rb.expected +7 -0
- data/vendor/spinel/test/alias_inherited_method.rb +20 -0
- data/vendor/spinel/test/alias_inherited_method.rb.expected +3 -0
- data/vendor/spinel/test/alias_method_dispatch.rb +14 -0
- data/vendor/spinel/test/analyze_fail/attributes_non_symbol.rb +3 -0
- data/vendor/spinel/test/analyze_fail/attributes_non_symbol.stderr.expected +1 -0
- data/vendor/spinel/test/analyze_fail/dynamic_define_method.rb +4 -0
- data/vendor/spinel/test/analyze_fail/dynamic_define_method.stderr.expected +1 -0
- data/vendor/spinel/test/analyze_fail/instance_exec_def_in_block.rb +14 -0
- data/vendor/spinel/test/analyze_fail/instance_exec_def_in_block.stderr.expected +1 -0
- data/vendor/spinel/test/analyze_fail/instance_exec_define_method.rb +15 -0
- data/vendor/spinel/test/analyze_fail/instance_exec_define_method.stderr.expected +1 -0
- data/vendor/spinel/test/analyze_fail/instance_exec_no_block.rb +13 -0
- data/vendor/spinel/test/analyze_fail/instance_exec_no_block.stderr.expected +1 -0
- data/vendor/spinel/test/analyze_fail/nonliteral_define_method_each.rb +7 -0
- data/vendor/spinel/test/analyze_fail/nonliteral_define_method_each.stderr.expected +1 -0
- data/vendor/spinel/test/argv_gc.rb +45 -0
- data/vendor/spinel/test/argv_gc.rb.args +1 -0
- data/vendor/spinel/test/argv_gc.rb.expected +6 -0
- data/vendor/spinel/test/array_at_out_of_bounds.rb +23 -0
- data/vendor/spinel/test/array_at_out_of_bounds.rb.expected +12 -0
- data/vendor/spinel/test/array_clear_expr.rb +26 -0
- data/vendor/spinel/test/array_clear_expr.rb.expected +10 -0
- data/vendor/spinel/test/array_combination_block.rb +11 -0
- data/vendor/spinel/test/array_compact_eq.rb +16 -0
- data/vendor/spinel/test/array_compact_eq.rb.expected +10 -0
- data/vendor/spinel/test/array_fill_poly.rb.expected +1 -0
- data/vendor/spinel/test/array_first_last_empty.rb +12 -0
- data/vendor/spinel/test/array_first_last_empty.rb.expected +8 -0
- data/vendor/spinel/test/array_flatten_typed_elements.rb +19 -0
- data/vendor/spinel/test/array_frozen_mutate_raises.rb +36 -0
- data/vendor/spinel/test/array_frozen_mutate_raises.rb.expected +20 -0
- data/vendor/spinel/test/array_frozen_slice_bang.rb +19 -0
- data/vendor/spinel/test/array_frozen_slice_bang.rb.expected +2 -0
- data/vendor/spinel/test/array_get_oob_negative.rb +22 -0
- data/vendor/spinel/test/array_get_oob_negative.rb.expected +6 -0
- data/vendor/spinel/test/array_grep.rb +12 -0
- data/vendor/spinel/test/array_grep.rb.expected +8 -0
- data/vendor/spinel/test/array_index_int_opt_narrow.rb +30 -0
- data/vendor/spinel/test/array_index_int_opt_narrow.rb.expected +7 -0
- data/vendor/spinel/test/array_map_bang.rb +28 -0
- data/vendor/spinel/test/array_map_bang.rb.expected +7 -0
- data/vendor/spinel/test/array_minmax_block.rb +14 -0
- data/vendor/spinel/test/array_negative_index_too_small.rb +22 -0
- data/vendor/spinel/test/array_negative_index_too_small.rb.expected +5 -0
- data/vendor/spinel/test/array_object_id.rb +12 -0
- data/vendor/spinel/test/array_object_id.rb.expected +6 -0
- data/vendor/spinel/test/array_pack_returns_string.expected +2 -0
- data/vendor/spinel/test/array_pack_returns_string.rb +4 -0
- data/vendor/spinel/test/array_pack_string_unpack.rb +12 -0
- data/vendor/spinel/test/array_pattern_match_basic.rb +27 -0
- data/vendor/spinel/test/array_predicate_no_block.rb +14 -0
- data/vendor/spinel/test/array_predicate_no_block.rb.expected +11 -0
- data/vendor/spinel/test/array_predicate_no_block_param.rb +14 -0
- data/vendor/spinel/test/array_predicate_no_block_param.rb.expected +10 -0
- data/vendor/spinel/test/array_product.rb +5 -0
- data/vendor/spinel/test/array_push_multi_arg.rb +32 -0
- data/vendor/spinel/test/array_push_multi_arg.rb.expected +10 -0
- data/vendor/spinel/test/array_select_bang.rb +34 -0
- data/vendor/spinel/test/array_select_bang.rb.expected +8 -0
- data/vendor/spinel/test/array_slice_before_after.rb +6 -0
- data/vendor/spinel/test/array_slice_when_chunk.rb +7 -0
- data/vendor/spinel/test/array_to_h_sort_bang_block.rb +26 -0
- data/vendor/spinel/test/array_to_h_sort_bang_block.rb.expected +10 -0
- data/vendor/spinel/test/array_transpose_poly_elements.rb +34 -0
- data/vendor/spinel/test/array_transpose_typed_elements.rb +19 -0
- data/vendor/spinel/test/array_unresolved_inspect_no_segv.rb +9 -0
- data/vendor/spinel/test/array_unresolved_inspect_no_segv.rb.expected +2 -0
- data/vendor/spinel/test/at_exit_lifo.rb +6 -0
- data/vendor/spinel/test/at_exit_lifo.rb.expected +4 -0
- data/vendor/spinel/test/back_ref.rb +15 -1
- data/vendor/spinel/test/back_ref.rb.expected +5 -0
- data/vendor/spinel/test/bang_op_ruby_truthy.expected +7 -0
- data/vendor/spinel/test/bang_op_ruby_truthy.rb +10 -0
- data/vendor/spinel/test/bare_arg_in_module_body.rb +29 -0
- data/vendor/spinel/test/bare_sibling_cls_method_call.rb +67 -0
- data/vendor/spinel/test/bare_sibling_cls_method_call.rb.expected +4 -0
- data/vendor/spinel/test/begin_rescue_as_expression.expected +5 -0
- data/vendor/spinel/test/begin_rescue_as_expression.rb +14 -0
- data/vendor/spinel/test/begin_rescue_else_clause.rb +63 -0
- data/vendor/spinel/test/begin_rescue_else_clause.rb.expected +7 -0
- data/vendor/spinel/test/bigint_propagation_chain.rb +33 -0
- data/vendor/spinel/test/bigint_propagation_chain.rb.expected +9 -0
- data/vendor/spinel/test/bigint_volatile_combo.rb +69 -0
- data/vendor/spinel/test/bigint_volatile_combo.rb.expected +18 -0
- data/vendor/spinel/test/block_given_block_param.rb +21 -3
- data/vendor/spinel/test/block_given_block_param.rb.expected +2 -0
- data/vendor/spinel/test/block_given_inline_call_site.expected +2 -0
- data/vendor/spinel/test/block_given_inline_call_site.rb +9 -0
- data/vendor/spinel/test/block_optional_unused.rb +18 -0
- data/vendor/spinel/test/block_optional_unused.rb.expected +4 -0
- data/vendor/spinel/test/block_param_call_block_given.rb +46 -0
- data/vendor/spinel/test/block_param_call_block_given.rb.expected +6 -0
- data/vendor/spinel/test/block_param_call_value_return.rb +32 -0
- data/vendor/spinel/test/block_param_call_value_return.rb.expected +5 -0
- data/vendor/spinel/test/bm_instance_eval.rb +9 -8
- data/vendor/spinel/test/bool_case_equality.rb +10 -0
- data/vendor/spinel/test/bool_logical_operators.rb +9 -0
- data/vendor/spinel/test/bool_logical_operators.rb.expected +8 -0
- data/vendor/spinel/test/builtin_array_method_capture.rb +38 -0
- data/vendor/spinel/test/builtin_array_method_capture.rb.expected +11 -0
- data/vendor/spinel/test/bundle_array_e.rb +250 -0
- data/vendor/spinel/test/bundle_array_e.rb.expected +57 -0
- data/vendor/spinel/test/bundle_array_f.rb +169 -0
- data/vendor/spinel/test/bundle_class_01.rb +43 -0
- data/vendor/spinel/test/bundle_class_01.rb.expected +4 -0
- data/vendor/spinel/test/bundle_class_03.rb +57 -0
- data/vendor/spinel/test/bundle_class_03.rb.expected +6 -0
- data/vendor/spinel/test/bundle_class_05.rb +187 -0
- data/vendor/spinel/test/bundle_class_05.rb.expected +14 -0
- data/vendor/spinel/test/bundle_class_06.rb +201 -0
- data/vendor/spinel/test/bundle_class_06.rb.expected +12 -0
- data/vendor/spinel/test/bundle_class_07.rb +72 -0
- data/vendor/spinel/test/bundle_class_07.rb.expected +6 -0
- data/vendor/spinel/test/bundle_class_08.rb +101 -0
- data/vendor/spinel/test/bundle_class_08.rb.expected +9 -0
- data/vendor/spinel/test/bundle_class_09.rb +171 -0
- data/vendor/spinel/test/bundle_class_09.rb.expected +9 -0
- data/vendor/spinel/test/bundle_class_10.rb +189 -0
- data/vendor/spinel/test/bundle_class_10.rb.expected +5 -0
- data/vendor/spinel/test/bundle_class_11.rb +191 -0
- data/vendor/spinel/test/bundle_class_11.rb.expected +8 -0
- data/vendor/spinel/test/bundle_class_12.rb +234 -0
- data/vendor/spinel/test/bundle_class_12.rb.expected +15 -0
- data/vendor/spinel/test/bundle_class_13.rb +61 -0
- data/vendor/spinel/test/bundle_class_13.rb.expected +2 -0
- data/vendor/spinel/test/bundle_class_14.rb +162 -0
- data/vendor/spinel/test/bundle_class_14.rb.expected +10 -0
- data/vendor/spinel/test/bundle_class_15.rb +184 -0
- data/vendor/spinel/test/bundle_class_15.rb.expected +8 -0
- data/vendor/spinel/test/bundle_class_18.rb +101 -0
- data/vendor/spinel/test/bundle_class_18.rb.expected +13 -0
- data/vendor/spinel/test/bundle_class_19.rb +67 -0
- data/vendor/spinel/test/bundle_class_19.rb.expected +8 -0
- data/vendor/spinel/test/bundle_class_20.rb +122 -0
- data/vendor/spinel/test/bundle_class_20.rb.expected +6 -0
- data/vendor/spinel/test/bundle_class_21.rb +208 -0
- data/vendor/spinel/test/bundle_class_21.rb.expected +27 -0
- data/vendor/spinel/test/bundle_class_22.rb +218 -0
- data/vendor/spinel/test/bundle_class_22.rb.expected +23 -0
- data/vendor/spinel/test/bundle_class_23.rb +187 -0
- data/vendor/spinel/test/bundle_class_23.rb.expected +19 -0
- data/vendor/spinel/test/bundle_class_a.rb +111 -0
- data/vendor/spinel/test/bundle_class_a.rb.expected +14 -0
- data/vendor/spinel/test/bundle_classd_04.rb +149 -0
- data/vendor/spinel/test/bundle_classd_04.rb.expected +15 -0
- data/vendor/spinel/test/bundle_classd_05.rb +65 -0
- data/vendor/spinel/test/bundle_classd_05.rb.expected +15 -0
- data/vendor/spinel/test/bundle_classd_08.rb +44 -0
- data/vendor/spinel/test/bundle_classd_08.rb.expected +4 -0
- data/vendor/spinel/test/bundle_classd_09.rb +221 -0
- data/vendor/spinel/test/bundle_classd_09.rb.expected +16 -0
- data/vendor/spinel/test/bundle_classd_10.rb +77 -0
- data/vendor/spinel/test/bundle_classd_10.rb.expected +10 -0
- data/vendor/spinel/test/bundle_classd_11.rb +89 -0
- data/vendor/spinel/test/bundle_classd_11.rb.expected +6 -0
- data/vendor/spinel/test/bundle_classd_12.rb +211 -0
- data/vendor/spinel/test/bundle_classd_12.rb.expected +19 -0
- data/vendor/spinel/test/bundle_classd_13.rb +246 -0
- data/vendor/spinel/test/bundle_classd_13.rb.expected +20 -0
- data/vendor/spinel/test/bundle_classd_14.rb +72 -0
- data/vendor/spinel/test/bundle_classd_14.rb.expected +10 -0
- data/vendor/spinel/test/bundle_classd_17.rb +206 -0
- data/vendor/spinel/test/bundle_classd_17.rb.expected +17 -0
- data/vendor/spinel/test/bundle_classd_18.rb +89 -0
- data/vendor/spinel/test/bundle_classd_18.rb.expected +3 -0
- data/vendor/spinel/test/bundle_classd_19.rb +134 -0
- data/vendor/spinel/test/bundle_classd_19.rb.expected +23 -0
- data/vendor/spinel/test/bundle_classd_26.rb +103 -0
- data/vendor/spinel/test/bundle_classd_26.rb.expected +7 -0
- data/vendor/spinel/test/bundle_classd_27.rb +241 -0
- data/vendor/spinel/test/bundle_classd_27.rb.expected +15 -0
- data/vendor/spinel/test/bundle_classd_28.rb +80 -0
- data/vendor/spinel/test/bundle_classd_28.rb.expected +10 -0
- data/vendor/spinel/test/bundle_classd_32.rb +63 -0
- data/vendor/spinel/test/bundle_classd_32.rb.expected +7 -0
- data/vendor/spinel/test/bundle_classd_33.rb +117 -0
- data/vendor/spinel/test/bundle_classd_33.rb.expected +17 -0
- data/vendor/spinel/test/bundle_classd_35.rb +90 -0
- data/vendor/spinel/test/bundle_classd_35.rb.expected +5 -0
- data/vendor/spinel/test/bundle_classd_36.rb +97 -0
- data/vendor/spinel/test/bundle_classd_36.rb.expected +5 -0
- data/vendor/spinel/test/bundle_classd_38.rb +50 -0
- data/vendor/spinel/test/bundle_classd_38.rb.expected +7 -0
- data/vendor/spinel/test/bundle_classd_39.rb +76 -0
- data/vendor/spinel/test/bundle_classd_39.rb.expected +15 -0
- data/vendor/spinel/test/bundle_classd_43.rb +84 -0
- data/vendor/spinel/test/bundle_classd_43.rb.expected +7 -0
- data/vendor/spinel/test/bundle_classd_45.rb +115 -0
- data/vendor/spinel/test/bundle_classd_45.rb.expected +7 -0
- data/vendor/spinel/test/bundle_classd_46.rb +72 -0
- data/vendor/spinel/test/bundle_classd_46.rb.expected +5 -0
- data/vendor/spinel/test/bundle_classd_48.rb +85 -0
- data/vendor/spinel/test/bundle_classd_49.rb +153 -0
- data/vendor/spinel/test/bundle_classd_50.rb +200 -0
- data/vendor/spinel/test/bundle_classd_50.rb.expected +10 -0
- data/vendor/spinel/test/bundle_classd_51.rb +191 -0
- data/vendor/spinel/test/bundle_classd_51.rb.expected +12 -0
- data/vendor/spinel/test/bundle_file_a.rb +119 -0
- data/vendor/spinel/test/bundle_file_a.rb.expected +23 -0
- data/vendor/spinel/test/bundle_hash_b1.rb +99 -0
- data/vendor/spinel/test/bundle_hash_b2.rb +107 -0
- data/vendor/spinel/test/bundle_int_a.rb +104 -0
- data/vendor/spinel/test/bundle_int_a.rb.expected +23 -0
- data/vendor/spinel/test/bundle_misc_c_08.rb +170 -0
- data/vendor/spinel/test/bundle_misc_c_08.rb.expected +33 -0
- data/vendor/spinel/test/bundle_misc_c_09.rb +72 -0
- data/vendor/spinel/test/bundle_misc_c_09.rb.expected +6 -0
- data/vendor/spinel/test/bundle_misc_c_10.rb +73 -0
- data/vendor/spinel/test/bundle_misc_c_10.rb.expected +8 -0
- data/vendor/spinel/test/bundle_misc_c_17.rb +124 -0
- data/vendor/spinel/test/bundle_misc_c_17.rb.expected +18 -0
- data/vendor/spinel/test/bundle_misc_c_23.rb +97 -0
- data/vendor/spinel/test/bundle_misc_c_23.rb.expected +10 -0
- data/vendor/spinel/test/bundle_misc_c_26.rb +107 -0
- data/vendor/spinel/test/bundle_misc_c_26.rb.expected +24 -0
- data/vendor/spinel/test/bundle_misc_c_30.rb +94 -0
- data/vendor/spinel/test/bundle_misc_c_31.rb +89 -0
- data/vendor/spinel/test/bundle_misc_c_31.rb.expected +14 -0
- data/vendor/spinel/test/bundle_misc_c_33.rb +163 -0
- data/vendor/spinel/test/bundle_misc_c_33.rb.expected +53 -0
- data/vendor/spinel/test/bundle_misc_c_34.rb +106 -0
- data/vendor/spinel/test/bundle_misc_c_34.rb.expected +11 -0
- data/vendor/spinel/test/bundle_misc_c_35.rb +143 -0
- data/vendor/spinel/test/bundle_misc_c_35.rb.expected +44 -0
- data/vendor/spinel/test/bundle_misc_c_36.rb +165 -0
- data/vendor/spinel/test/bundle_misc_c_36.rb.expected +59 -0
- data/vendor/spinel/test/bundle_misc_c_37.rb +119 -0
- data/vendor/spinel/test/bundle_misc_c_37.rb.expected +22 -0
- data/vendor/spinel/test/bundle_poly_b1.rb +44 -0
- data/vendor/spinel/test/bundle_poly_b1.rb.expected +7 -0
- data/vendor/spinel/test/bundle_string_c.rb +250 -0
- data/vendor/spinel/test/bundle_string_c.rb.expected +51 -0
- data/vendor/spinel/test/bundle_sym.rb +2 -4
- data/vendor/spinel/test/bundle_tiny_array.rb +160 -0
- data/vendor/spinel/test/bundle_tiny_array.rb.expected +53 -0
- data/vendor/spinel/test/bundle_tiny_misc.rb +187 -0
- data/vendor/spinel/test/bundle_tiny_misc.rb.expected +59 -0
- data/vendor/spinel/test/bundle_tiny_num.rb +87 -0
- data/vendor/spinel/test/bundle_tiny_num.rb.expected +27 -0
- data/vendor/spinel/test/bundle_tiny_string.rb +226 -0
- data/vendor/spinel/test/bundle_tiny_string.rb.expected +78 -0
- data/vendor/spinel/test/captured_block_call_value.rb +45 -0
- data/vendor/spinel/test/captured_block_call_value.rb.expected +5 -0
- data/vendor/spinel/test/case_fallthrough_returns_nil.expected +5 -0
- data/vendor/spinel/test/case_fallthrough_returns_nil.rb +8 -0
- data/vendor/spinel/test/case_in_no_match_error.rb +54 -0
- data/vendor/spinel/test/case_in_no_match_error.rb.expected +6 -0
- data/vendor/spinel/test/case_local_in_lambda.rb +57 -0
- data/vendor/spinel/test/case_local_in_lambda.rb.expected +5 -0
- data/vendor/spinel/test/case_when_class.rb +28 -66
- data/vendor/spinel/test/case_when_class.rb.expected +5 -5
- data/vendor/spinel/test/case_when_class_scalar_predicate.rb +53 -0
- data/vendor/spinel/test/case_when_class_scalar_predicate.rb.expected +3 -0
- data/vendor/spinel/test/case_when_poly_scrutinee_bound_to_local.rb +36 -0
- data/vendor/spinel/test/case_when_poly_scrutinee_bound_to_local.rb.expected +5 -0
- data/vendor/spinel/test/case_when_qualified_class.rb +47 -0
- data/vendor/spinel/test/case_when_qualified_class.rb.expected +2 -0
- data/vendor/spinel/test/case_when_regex.rb +23 -0
- data/vendor/spinel/test/case_when_regex.rb.expected +3 -0
- data/vendor/spinel/test/chained_aset_on_poly_hash_recv.rb +19 -0
- data/vendor/spinel/test/chained_aset_on_poly_hash_recv.rb.expected +1 -0
- data/vendor/spinel/test/clamp_string_and_range.rb +14 -0
- data/vendor/spinel/test/clamp_string_and_range.rb.expected +8 -0
- data/vendor/spinel/test/class_const_as_value.rb +58 -0
- data/vendor/spinel/test/class_const_as_value.rb.expected +4 -0
- data/vendor/spinel/test/class_hierarchy.rb +41 -0
- data/vendor/spinel/test/class_hierarchy.rb.expected +10 -0
- data/vendor/spinel/test/class_hierarchy_builtin.rb +43 -0
- data/vendor/spinel/test/class_hierarchy_builtin.rb.expected +14 -0
- data/vendor/spinel/test/class_hierarchy_module.rb +55 -0
- data/vendor/spinel/test/class_hierarchy_module.rb.expected +6 -0
- data/vendor/spinel/test/class_in_collection.rb +22 -0
- data/vendor/spinel/test/class_in_collection.rb.expected +10 -0
- data/vendor/spinel/test/class_ivar_in_class_method.rb +66 -0
- data/vendor/spinel/test/class_ivar_in_class_method.rb.expected +11 -0
- data/vendor/spinel/test/class_lt_builtin_parent.rb +13 -0
- data/vendor/spinel/test/class_name_in_cmeth.rb +30 -0
- data/vendor/spinel/test/class_name_in_cmeth.rb.expected +3 -0
- data/vendor/spinel/test/class_of_primitive.rb +14 -0
- data/vendor/spinel/test/class_of_primitive.rb.expected +9 -0
- data/vendor/spinel/test/class_phase2_name_eq.rb +61 -0
- data/vendor/spinel/test/class_phase2_name_eq.rb.expected +15 -0
- data/vendor/spinel/test/class_reopen_replaces_methods.rb +40 -0
- data/vendor/spinel/test/class_reopen_replaces_methods.rb.expected +3 -0
- data/vendor/spinel/test/class_singleton_def.rb +27 -0
- data/vendor/spinel/test/class_singleton_def.rb.expected +4 -0
- data/vendor/spinel/test/class_superclass.rb +15 -0
- data/vendor/spinel/test/class_superclass.rb.expected +3 -0
- data/vendor/spinel/test/class_value_builtin_and_nested.rb +36 -0
- data/vendor/spinel/test/cls_method_specialization_boxer.expected +2 -0
- data/vendor/spinel/test/cls_method_specialization_boxer.rb +47 -0
- data/vendor/spinel/test/cmeth_name_collision_with_kernel.rb +56 -0
- data/vendor/spinel/test/cmeth_name_collision_with_kernel.rb.expected +5 -0
- data/vendor/spinel/test/cmeth_return_nil_or_obj_via_intermediate.rb +89 -0
- data/vendor/spinel/test/cmeth_return_nil_or_obj_via_intermediate.rb.expected +6 -0
- data/vendor/spinel/test/comparable_between_user_type.rb +26 -0
- data/vendor/spinel/test/comparable_between_user_type.rb.expected +10 -0
- data/vendor/spinel/test/compile_time_attribute_singular.rb +12 -0
- data/vendor/spinel/test/compile_time_attribute_singular.rb.expected +2 -0
- data/vendor/spinel/test/compile_time_attribute_wrapped_record.rb +72 -0
- data/vendor/spinel/test/compile_time_attribute_wrapped_record.rb.expected +2 -0
- data/vendor/spinel/test/compile_time_attributes.rb +14 -0
- data/vendor/spinel/test/compile_time_attributes.rb.expected +3 -0
- data/vendor/spinel/test/compile_time_define_method_direct.rb +8 -0
- data/vendor/spinel/test/compile_time_define_method_direct.rb.expected +2 -0
- data/vendor/spinel/test/compile_time_define_method_int.rb +9 -0
- data/vendor/spinel/test/compile_time_define_method_int.rb.expected +2 -0
- data/vendor/spinel/test/compile_time_define_method_predicates.rb +18 -0
- data/vendor/spinel/test/compile_time_define_method_predicates.rb.expected +4 -0
- data/vendor/spinel/test/compile_time_define_method_strings.rb +9 -0
- data/vendor/spinel/test/compile_time_define_method_strings.rb.expected +2 -0
- data/vendor/spinel/test/complex_polar.rb +37 -0
- data/vendor/spinel/test/complex_polar.rb.expected +10 -0
- data/vendor/spinel/test/concat_chain_operand_gc_root.rb +16 -0
- data/vendor/spinel/test/concat_chain_operand_gc_root.rb.expected +4 -0
- data/vendor/spinel/test/concat_print_poly_unbox.rb +115 -0
- data/vendor/spinel/test/concat_print_poly_unbox.rb.expected +9 -0
- data/vendor/spinel/test/const_aliased_class_reopen_include.rb +33 -0
- data/vendor/spinel/test/const_aliased_class_reopen_include.rb.expected +2 -0
- data/vendor/spinel/test/const_compound_assign.rb +34 -0
- data/vendor/spinel/test/const_path_compound_assign.rb +15 -0
- data/vendor/spinel/test/const_path_deep_nesting.rb +30 -0
- data/vendor/spinel/test/const_path_deep_nesting.rb.expected +2 -0
- data/vendor/spinel/test/const_path_unresolved_require.rb +11 -0
- data/vendor/spinel/test/const_path_unresolved_require.rb.expected +2 -0
- data/vendor/spinel/test/const_self_ref_raises_name_error.rb +44 -0
- data/vendor/spinel/test/const_self_ref_raises_name_error.rb.expected +3 -0
- data/vendor/spinel/test/crashers_536.rb +32 -0
- data/vendor/spinel/test/crashers_536.rb.expected +4 -0
- data/vendor/spinel/test/cvar_method_first_assign.rb +6 -0
- data/vendor/spinel/test/data_define.rb +27 -0
- data/vendor/spinel/test/data_define.rb.expected +5 -0
- data/vendor/spinel/test/default_nil_param_with_str_return.rb +30 -0
- data/vendor/spinel/test/default_nil_param_with_str_return.rb.expected +4 -0
- data/vendor/spinel/test/defined_globals_methods.rb +15 -0
- data/vendor/spinel/test/defined_globals_methods.rb.expected +5 -0
- data/vendor/spinel/test/defined_op.rb +17 -0
- data/vendor/spinel/test/defined_op.rb.expected +8 -0
- data/vendor/spinel/test/destructure_typed_ptr_array_return.rb +30 -0
- data/vendor/spinel/test/destructure_typed_ptr_array_return.rb.expected +2 -0
- data/vendor/spinel/test/dir_exist.rb +2 -0
- data/vendor/spinel/test/dir_methods.rb +15 -0
- data/vendor/spinel/test/double_splat_kwargs.rb +26 -0
- data/vendor/spinel/test/double_splat_kwargs.rb.expected +6 -0
- data/vendor/spinel/test/dynamic_class_new.rb +44 -0
- data/vendor/spinel/test/dynamic_class_new.rb.expected +4 -0
- data/vendor/spinel/test/dynamic_is_a.rb +41 -0
- data/vendor/spinel/test/dynamic_is_a.rb.expected +5 -0
- data/vendor/spinel/test/each_cons_block_destructure.rb +10 -0
- data/vendor/spinel/test/each_cons_with_index_map_no_double_gets.rb +21 -0
- data/vendor/spinel/test/each_cons_with_index_map_no_double_gets.rb.expected +3 -0
- data/vendor/spinel/test/each_entry_reverse_each.rb +8 -0
- data/vendor/spinel/test/each_slice_map.rb +7 -0
- data/vendor/spinel/test/empty_array_local_arg_widen.rb +57 -0
- data/vendor/spinel/test/empty_array_local_arg_widen.rb.expected +2 -0
- data/vendor/spinel/test/empty_array_loop_intermediate_push.rb +103 -0
- data/vendor/spinel/test/empty_array_loop_intermediate_push.rb.expected +5 -0
- data/vendor/spinel/test/empty_array_push_container_elem.rb +35 -0
- data/vendor/spinel/test/empty_array_push_ptr.rb +26 -0
- data/vendor/spinel/test/empty_array_push_ptr.rb.expected +3 -0
- data/vendor/spinel/test/empty_hash_arg_param_widen.rb +44 -0
- data/vendor/spinel/test/empty_hash_arg_param_widen.rb.expected +6 -0
- data/vendor/spinel/test/empty_hash_int_int_no_widen.rb +46 -0
- data/vendor/spinel/test/empty_hash_int_int_no_widen.rb.expected +4 -0
- data/vendor/spinel/test/empty_hash_int_int_promote.rb +32 -0
- data/vendor/spinel/test/empty_hash_int_int_promote.rb.expected +8 -0
- data/vendor/spinel/test/empty_int_array_min_max.rb +15 -0
- data/vendor/spinel/test/empty_int_array_min_max.rb.expected +4 -0
- data/vendor/spinel/test/empty_method_returns_nil.rb +8 -0
- data/vendor/spinel/test/empty_method_returns_nil.rb.expected +3 -0
- data/vendor/spinel/test/empty_symbol_literal.rb +23 -0
- data/vendor/spinel/test/empty_symbol_literal.rb.expected +9 -0
- data/vendor/spinel/test/eq_string_vs_int.rb +20 -0
- data/vendor/spinel/test/eq_string_vs_int.rb.expected +9 -0
- data/vendor/spinel/test/exception_backtrace_empty.rb +12 -0
- data/vendor/spinel/test/exception_backtrace_empty.rb.expected +4 -0
- data/vendor/spinel/test/exception_class_new.rb +46 -0
- data/vendor/spinel/test/exception_class_new.rb.expected +10 -0
- data/vendor/spinel/test/exception_namespaced_default_message.rb +28 -0
- data/vendor/spinel/test/exception_namespaced_default_message.rb.expected +4 -0
- data/vendor/spinel/test/exception_object_methods.rb +3 -2
- data/vendor/spinel/test/exception_object_methods.rb.expected +1 -1
- data/vendor/spinel/test/exception_super_interpolated_message.rb +41 -0
- data/vendor/spinel/test/exception_super_interpolated_message.rb.expected +5 -0
- data/vendor/spinel/test/exception_user_subclass.rb +35 -0
- data/vendor/spinel/test/exception_user_subclass.rb.expected +10 -0
- data/vendor/spinel/test/extend_module.rb +30 -0
- data/vendor/spinel/test/extend_module.rb.expected +4 -0
- data/vendor/spinel/test/ffi_array_specs_decl.rb +25 -0
- data/vendor/spinel/test/ffi_int_arg_poly_value.rb +27 -0
- data/vendor/spinel/test/ffi_ptr_array.rb +35 -0
- data/vendor/spinel/test/ffi_ptr_int_literal.rb +31 -0
- data/vendor/spinel/test/ffi_str_arg_poly_value.rb +26 -0
- data/vendor/spinel/test/fiber_capture_no_leak_to_sibling.rb +27 -0
- data/vendor/spinel/test/fiber_capture_no_leak_to_sibling.rb.expected +1 -0
- data/vendor/spinel/test/fiber_gc_root_isolation.rb +76 -0
- data/vendor/spinel/test/file_dir_methods.rb +11 -0
- data/vendor/spinel/test/file_dir_methods.rb.expected +8 -0
- data/vendor/spinel/test/file_expand_path.rb +10 -0
- data/vendor/spinel/test/file_expand_path.rb.expected +8 -0
- data/vendor/spinel/test/file_mtime.rb +10 -0
- data/vendor/spinel/test/file_mtime.rb.expected +2 -0
- data/vendor/spinel/test/file_read_count.rb +19 -0
- data/vendor/spinel/test/file_read_count.rb.expected +5 -0
- data/vendor/spinel/test/file_readlines.rb +15 -0
- data/vendor/spinel/test/file_readlines.rb.expected +4 -0
- data/vendor/spinel/test/file_write_at_tail_position.rb +16 -0
- data/vendor/spinel/test/float_array_first_last_nil.rb +20 -0
- data/vendor/spinel/test/float_array_first_last_nil.rb.expected +8 -0
- data/vendor/spinel/test/float_divmod_zerodiv.rb +57 -0
- data/vendor/spinel/test/float_divmod_zerodiv.rb.expected +7 -0
- data/vendor/spinel/test/float_limit_constants.rb +14 -0
- data/vendor/spinel/test/float_round_ndigits_return_type.rb +24 -0
- data/vendor/spinel/test/float_round_ndigits_return_type.rb.expected +14 -0
- data/vendor/spinel/test/float_round_value_based_type.rb +17 -0
- data/vendor/spinel/test/float_round_value_based_type.rb.expected +14 -0
- data/vendor/spinel/test/float_round_zero.rb +18 -0
- data/vendor/spinel/test/float_round_zero.rb.expected +11 -0
- data/vendor/spinel/test/float_spaceship.rb +13 -0
- data/vendor/spinel/test/float_step_block.rb +16 -0
- data/vendor/spinel/test/float_step_block.rb.expected +3 -0
- data/vendor/spinel/test/float_step_to_a.rb +20 -0
- data/vendor/spinel/test/float_step_to_a.rb.expected +10 -0
- data/vendor/spinel/test/gc_grandparent_ivar_scan.rb +28 -0
- data/vendor/spinel/test/gc_grandparent_ivar_scan.rb.expected +2 -0
- data/vendor/spinel/test/gc_poly_local_int.rb +11 -0
- data/vendor/spinel/test/gc_poly_local_int.rb.expected +1 -0
- data/vendor/spinel/test/gc_poly_local_root.rb +19 -0
- data/vendor/spinel/test/gc_poly_local_root.rb.expected +1 -0
- data/vendor/spinel/test/gc_poly_local_setjmp.rb +16 -0
- data/vendor/spinel/test/gc_poly_local_setjmp.rb.expected +1 -0
- data/vendor/spinel/test/gc_root_call_args.rb +35 -0
- data/vendor/spinel/test/gc_root_call_args.rb.expected +3 -0
- data/vendor/spinel/test/gc_root_heap_param.rb +21 -0
- data/vendor/spinel/test/gc_root_heap_param.rb.expected +1 -0
- data/vendor/spinel/test/global_multi_assign.rb +28 -0
- data/vendor/spinel/test/global_var_punct.rb +9 -0
- data/vendor/spinel/test/gsub_sub_block.rb +14 -0
- data/vendor/spinel/test/gsub_sub_block.rb.expected +7 -0
- data/vendor/spinel/test/gsub_with_hash_replacement.rb +19 -0
- data/vendor/spinel/test/gsub_with_hash_replacement.rb.expected +3 -0
- data/vendor/spinel/test/hangs_548.rb +66 -0
- data/vendor/spinel/test/hangs_548.rb.expected +4 -0
- data/vendor/spinel/test/hash_block_methods_variants.rb +15 -0
- data/vendor/spinel/test/hash_block_methods_variants.rb.expected +12 -0
- data/vendor/spinel/test/hash_clear.rb +43 -0
- data/vendor/spinel/test/hash_clear.rb.expected +12 -0
- data/vendor/spinel/test/hash_compound_assign_more.rb +21 -0
- data/vendor/spinel/test/hash_delete_if_select_reject_bang.rb +19 -0
- data/vendor/spinel/test/hash_delete_if_select_reject_bang.rb.expected +4 -0
- data/vendor/spinel/test/hash_delete_returns_value.rb +21 -0
- data/vendor/spinel/test/hash_delete_returns_value.rb.expected +8 -0
- data/vendor/spinel/test/hash_dispatch_missing_cells.rb +24 -0
- data/vendor/spinel/test/hash_dispatch_missing_cells.rb.expected +8 -0
- data/vendor/spinel/test/hash_each_key_value.rb +85 -0
- data/vendor/spinel/test/hash_each_key_value.rb.expected +72 -0
- data/vendor/spinel/test/hash_each_with_object.rb +16 -0
- data/vendor/spinel/test/hash_each_with_object.rb.expected +2 -0
- data/vendor/spinel/test/hash_fetch_block.rb +31 -0
- data/vendor/spinel/test/hash_fetch_block.rb.expected +13 -0
- data/vendor/spinel/test/hash_fetch_block_key.rb +9 -0
- data/vendor/spinel/test/hash_fetch_block_key.rb.expected +4 -0
- data/vendor/spinel/test/hash_fetch_block_key_type.rb +37 -0
- data/vendor/spinel/test/hash_fetch_block_key_type.rb.expected +7 -0
- data/vendor/spinel/test/hash_fetch_keyerror.rb +23 -0
- data/vendor/spinel/test/hash_flatten_rassoc_compact.rb +33 -0
- data/vendor/spinel/test/hash_float_value_preserved.rb +27 -0
- data/vendor/spinel/test/hash_float_value_preserved.rb.expected +6 -0
- data/vendor/spinel/test/hash_index_assign_expression.rb +21 -0
- data/vendor/spinel/test/hash_inspect_poly.rb +13 -0
- data/vendor/spinel/test/hash_inspect_poly.rb.expected +6 -0
- data/vendor/spinel/test/hash_int_and_or_assign.rb +30 -0
- data/vendor/spinel/test/hash_int_and_or_assign.rb.expected +8 -0
- data/vendor/spinel/test/hash_invert.rb +16 -0
- data/vendor/spinel/test/hash_invert.rb.expected +4 -0
- data/vendor/spinel/test/hash_key_via_intermediate_local.rb +32 -0
- data/vendor/spinel/test/hash_map_block.rb +6 -0
- data/vendor/spinel/test/hash_merge_with_block.rb +10 -0
- data/vendor/spinel/test/hash_new_default_block_assign.rb +16 -0
- data/vendor/spinel/test/hash_param_each_kv_inference.rb +67 -0
- data/vendor/spinel/test/hash_param_each_kv_inference.rb.expected +3 -0
- data/vendor/spinel/test/hash_param_each_kv_weak_default.rb +75 -0
- data/vendor/spinel/test/hash_param_each_kv_weak_default.rb.expected +6 -0
- data/vendor/spinel/test/hash_param_widen_from_callee_slot.rb +43 -0
- data/vendor/spinel/test/hash_replace_variants.rb +17 -0
- data/vendor/spinel/test/hash_replace_variants.rb.expected +6 -0
- data/vendor/spinel/test/hash_temp_gc_root.rb +26 -0
- data/vendor/spinel/test/hash_transform_keys_cross.rb +12 -0
- data/vendor/spinel/test/hash_transform_keys_cross.rb.expected +5 -0
- data/vendor/spinel/test/hash_value_p.rb +19 -0
- data/vendor/spinel/test/hash_value_p.rb.expected +7 -0
- data/vendor/spinel/test/hash_value_split_widen.rb +22 -0
- data/vendor/spinel/test/hash_value_split_widen.rb.expected +2 -0
- data/vendor/spinel/test/hash_values_at_fetch_values.rb +23 -0
- data/vendor/spinel/test/hash_variant_call_boundary_sym.rb +27 -0
- data/vendor/spinel/test/hash_variant_call_boundary_sym.rb.expected +2 -0
- data/vendor/spinel/test/heterogeneous_tuple_return.rb +32 -0
- data/vendor/spinel/test/heterogeneous_tuple_return.rb.expected +7 -0
- data/vendor/spinel/test/i1006.rb +21 -0
- data/vendor/spinel/test/i1006.rb.expected +7 -0
- data/vendor/spinel/test/i1007.rb +25 -0
- data/vendor/spinel/test/i1007.rb.expected +4 -0
- data/vendor/spinel/test/i1009.rb +9 -0
- data/vendor/spinel/test/i1009.rb.expected +4 -0
- data/vendor/spinel/test/i1011.rb +12 -0
- data/vendor/spinel/test/i1011.rb.expected +2 -0
- data/vendor/spinel/test/i1015.rb +11 -0
- data/vendor/spinel/test/i1015.rb.expected +2 -0
- data/vendor/spinel/test/i1017.rb +37 -0
- data/vendor/spinel/test/i1017.rb.expected +1 -0
- data/vendor/spinel/test/i1020.rb +31 -0
- data/vendor/spinel/test/i1020.rb.expected +2 -0
- data/vendor/spinel/test/i1021.rb +12 -0
- data/vendor/spinel/test/i1021.rb.expected +9 -0
- data/vendor/spinel/test/i1027.rb +28 -0
- data/vendor/spinel/test/i1027.rb.expected +1 -0
- data/vendor/spinel/test/i1031.rb +64 -0
- data/vendor/spinel/test/i1031.rb.expected +4 -0
- data/vendor/spinel/test/i1035.rb +18 -0
- data/vendor/spinel/test/i1035.rb.expected +3 -0
- data/vendor/spinel/test/i1038.rb +7 -0
- data/vendor/spinel/test/i1038.rb.expected +4 -0
- data/vendor/spinel/test/i1041.rb +31 -0
- data/vendor/spinel/test/i1041.rb.expected +4 -0
- data/vendor/spinel/test/i709.rb +41 -0
- data/vendor/spinel/test/i709.rb.expected +3 -0
- data/vendor/spinel/test/i898.rb +23 -0
- data/vendor/spinel/test/i898.rb.expected +7 -0
- data/vendor/spinel/test/i912.rb +15 -0
- data/vendor/spinel/test/i912.rb.expected +8 -0
- data/vendor/spinel/test/i916.rb +14 -0
- data/vendor/spinel/test/i916.rb.expected +4 -0
- data/vendor/spinel/test/i918.rb +45 -0
- data/vendor/spinel/test/i918.rb.expected +13 -0
- data/vendor/spinel/test/i919.rb +12 -0
- data/vendor/spinel/test/i919.rb.expected +5 -0
- data/vendor/spinel/test/i920.rb +9 -0
- data/vendor/spinel/test/i920.rb.expected +4 -0
- data/vendor/spinel/test/i960.rb +13 -0
- data/vendor/spinel/test/i960.rb.expected +5 -0
- data/vendor/spinel/test/i972.rb +38 -0
- data/vendor/spinel/test/i972.rb.expected +11 -0
- data/vendor/spinel/test/i974.rb +23 -0
- data/vendor/spinel/test/i974.rb.expected +19 -0
- data/vendor/spinel/test/i994.rb +18 -0
- data/vendor/spinel/test/i994.rb.expected +9 -0
- data/vendor/spinel/test/i997.rb +20 -0
- data/vendor/spinel/test/i997.rb.expected +6 -0
- data/vendor/spinel/test/if_expr_multi_stmt_body.rb +78 -0
- data/vendor/spinel/test/if_expr_multi_stmt_body.rb.expected +13 -0
- data/vendor/spinel/test/implicit_alloc_site_cache_helper_specialization.rb +112 -0
- data/vendor/spinel/test/implicit_alloc_site_cache_helper_specialization.rb.expected +6 -0
- data/vendor/spinel/test/implicit_alloc_site_escape_layout.rb +30 -0
- data/vendor/spinel/test/implicit_alloc_site_escape_layout.rb.expected +2 -0
- data/vendor/spinel/test/implicit_alloc_site_escape_param.rb +27 -0
- data/vendor/spinel/test/implicit_alloc_site_escape_param.rb.expected +2 -0
- data/vendor/spinel/test/implicit_alloc_site_escape_scoped_locals.rb +44 -0
- data/vendor/spinel/test/implicit_alloc_site_escape_scoped_locals.rb.expected +2 -0
- data/vendor/spinel/test/implicit_alloc_site_holder_poly_array.rb +23 -0
- data/vendor/spinel/test/implicit_alloc_site_holder_poly_array.rb.expected +3 -0
- data/vendor/spinel/test/implicit_alloc_site_holder_shared_method.rb +23 -0
- data/vendor/spinel/test/implicit_alloc_site_holder_shared_method.rb.expected +3 -0
- data/vendor/spinel/test/implicit_alloc_site_holder_specialization.rb +19 -0
- data/vendor/spinel/test/implicit_alloc_site_holder_specialization.rb.expected +3 -0
- data/vendor/spinel/test/implicit_alloc_site_ivar_helper_return_specialization.rb +46 -0
- data/vendor/spinel/test/implicit_alloc_site_ivar_helper_return_specialization.rb.expected +3 -0
- data/vendor/spinel/test/implicit_alloc_site_store_specialization.rb +28 -0
- data/vendor/spinel/test/implicit_alloc_site_store_specialization.rb.expected +4 -0
- data/vendor/spinel/test/implicit_new_local_method_scope.rb +65 -0
- data/vendor/spinel/test/implicit_new_local_method_scope.rb.expected +2 -0
- data/vendor/spinel/test/include_chain_const_lookup.rb +48 -0
- data/vendor/spinel/test/include_chain_const_lookup.rb.expected +3 -0
- data/vendor/spinel/test/include_chain_module_nested_const.rb +62 -0
- data/vendor/spinel/test/include_chain_module_nested_const.rb.expected +2 -0
- data/vendor/spinel/test/include_constant_path.rb +98 -0
- data/vendor/spinel/test/include_constant_path.rb.expected +5 -0
- data/vendor/spinel/test/include_nested_module.rb +99 -0
- data/vendor/spinel/test/include_nested_module.rb.expected +3 -0
- data/vendor/spinel/test/include_skips_module_class_methods.rb +27 -0
- data/vendor/spinel/test/include_skips_module_class_methods.rb.expected +3 -0
- data/vendor/spinel/test/inherited_factory_poly_param_narrow_attr.rb +25 -0
- data/vendor/spinel/test/inherited_kwarg_nil_default_string_ivar.rb +61 -0
- data/vendor/spinel/test/inherited_kwarg_nil_default_string_ivar.rb.expected +2 -0
- data/vendor/spinel/test/inherited_method_kwarg_block_self.rb +67 -0
- data/vendor/spinel/test/inherited_method_kwarg_block_self.rb.expected +2 -0
- data/vendor/spinel/test/initialize_override_param_inference.rb +68 -0
- data/vendor/spinel/test/inject_symbol_op.rb +11 -0
- data/vendor/spinel/test/inject_symbol_op.rb.expected +7 -0
- data/vendor/spinel/test/inject_symbol_to_proc.rb +41 -0
- data/vendor/spinel/test/inject_symbol_to_proc.rb.expected +12 -0
- data/vendor/spinel/test/inlined_yield_block_param_type.rb +32 -0
- data/vendor/spinel/test/inlined_yield_block_param_type.rb.expected +2 -0
- data/vendor/spinel/test/inlined_yield_self_locals.rb +49 -0
- data/vendor/spinel/test/inlined_yield_self_locals.rb.expected +5 -0
- data/vendor/spinel/test/instance_eval_block_params.rb +93 -0
- data/vendor/spinel/test/instance_eval_block_params.rb.expected +10 -0
- data/vendor/spinel/test/instance_eval_trampoline.rb +17 -0
- data/vendor/spinel/test/instance_eval_trampoline.rb.expected +1 -0
- data/vendor/spinel/test/instance_exec_capture.rb +48 -0
- data/vendor/spinel/test/instance_exec_capture.rb.expected +7 -0
- data/vendor/spinel/test/instance_exec_direct.rb +72 -0
- data/vendor/spinel/test/instance_exec_direct.rb.expected +5 -0
- data/vendor/spinel/test/instance_exec_override.rb +69 -0
- data/vendor/spinel/test/instance_exec_override.rb.expected +4 -0
- data/vendor/spinel/test/instance_exec_parity.rb +44 -0
- data/vendor/spinel/test/instance_exec_parity.rb.expected +6 -0
- data/vendor/spinel/test/instance_exec_return.rb +54 -0
- data/vendor/spinel/test/instance_exec_return.rb.expected +7 -0
- data/vendor/spinel/test/instance_exec_trampoline.rb +101 -0
- data/vendor/spinel/test/instance_exec_trampoline.rb.expected +6 -0
- data/vendor/spinel/test/instance_exec_valuetype.rb +48 -0
- data/vendor/spinel/test/instance_exec_valuetype.rb.expected +7 -0
- data/vendor/spinel/test/instance_methods_false.rb +41 -0
- data/vendor/spinel/test/instance_methods_false.rb.expected +14 -0
- data/vendor/spinel/test/int_array_bracket_assign_expr.rb +30 -0
- data/vendor/spinel/test/int_array_bracket_assign_expr.rb.expected +8 -0
- data/vendor/spinel/test/int_array_tally.rb +14 -0
- data/vendor/spinel/test/int_array_tally.rb.expected +8 -0
- data/vendor/spinel/test/int_array_uniq_bang.rb +15 -0
- data/vendor/spinel/test/int_array_uniq_bang.rb.expected +3 -0
- data/vendor/spinel/test/int_ceil_floor_round.rb +11 -0
- data/vendor/spinel/test/int_ceil_floor_round.rb.expected +8 -0
- data/vendor/spinel/test/int_ceil_floor_round_truncate_ndigits.rb +17 -0
- data/vendor/spinel/test/int_ceil_floor_round_truncate_ndigits.rb.expected +12 -0
- data/vendor/spinel/test/int_hash_missing_nil_check.rb +27 -0
- data/vendor/spinel/test/int_hash_missing_nil_check.rb.expected +14 -0
- data/vendor/spinel/test/int_int_hash_literal.rb +13 -0
- data/vendor/spinel/test/int_int_hash_literal.rb.expected +7 -0
- data/vendor/spinel/test/int_int_hash_missing_key_nil.rb +10 -0
- data/vendor/spinel/test/int_int_hash_missing_key_nil.rb.expected +8 -0
- data/vendor/spinel/test/int_opt_p_inspect.rb +8 -0
- data/vendor/spinel/test/int_opt_p_inspect.rb.expected +5 -0
- data/vendor/spinel/test/int_overflow_promote.rb +41 -0
- data/vendor/spinel/test/int_overflow_raises.rb +34 -0
- data/vendor/spinel/test/int_overflow_raises.rb.expected +6 -0
- data/vendor/spinel/test/int_round_large_precision.rb +11 -0
- data/vendor/spinel/test/int_round_large_precision.rb.expected +8 -0
- data/vendor/spinel/test/integer_argument_error.rb +116 -0
- data/vendor/spinel/test/integer_argument_error.rb.expected +36 -0
- data/vendor/spinel/test/integer_extra_methods.rb +12 -0
- data/vendor/spinel/test/integer_extra_methods.rb.expected +8 -0
- data/vendor/spinel/test/integer_pow_negative_exponent.rb +17 -0
- data/vendor/spinel/test/integer_pow_negative_exponent.rb.expected +6 -0
- data/vendor/spinel/test/integer_times_as_expr.rb +9 -0
- data/vendor/spinel/test/integer_times_as_expr.rb.expected +3 -0
- data/vendor/spinel/test/interp_array_container.rb +41 -0
- data/vendor/spinel/test/interp_array_container.rb.expected +8 -0
- data/vendor/spinel/test/interpolation_multistmt.rb +15 -0
- data/vendor/spinel/test/interpolation_multistmt.rb.expected +3 -0
- data/vendor/spinel/test/interpolation_symbol_name.rb +23 -0
- data/vendor/spinel/test/interpolation_symbol_name.rb.expected +6 -0
- data/vendor/spinel/test/introspection_constant_path.rb +60 -0
- data/vendor/spinel/test/introspection_constant_path.rb.expected +13 -0
- data/vendor/spinel/test/io_pipe.rb +6 -0
- data/vendor/spinel/test/io_pipe.rb.expected +3 -0
- data/vendor/spinel/test/is_a_descendant_runtime.rb +59 -0
- data/vendor/spinel/test/is_a_descendant_runtime.rb.expected +11 -0
- data/vendor/spinel/test/is_a_included_module.rb +28 -0
- data/vendor/spinel/test/is_a_included_module.rb.expected +9 -0
- data/vendor/spinel/test/ivar_assign_and_expr.rb +22 -0
- data/vendor/spinel/test/ivar_assign_and_expr.rb.expected +3 -0
- data/vendor/spinel/test/ivar_lazy_init_push_via_inherited_getter.rb +67 -0
- data/vendor/spinel/test/ivar_lazy_init_push_via_inherited_getter.rb.expected +6 -0
- data/vendor/spinel/test/json_generate_basic.rb +16 -0
- data/vendor/spinel/test/json_generate_basic.rb.expected +12 -0
- data/vendor/spinel/test/json_generate_struct_record.rb +9 -0
- data/vendor/spinel/test/json_generate_struct_record.rb.expected +4 -0
- data/vendor/spinel/test/kernel_complex.rb +9 -0
- data/vendor/spinel/test/kernel_dir.rb +9 -0
- data/vendor/spinel/test/kernel_dir.rb.expected +2 -0
- data/vendor/spinel/test/kernel_float_strict.rb +16 -0
- data/vendor/spinel/test/kernel_float_strict.rb.expected +6 -0
- data/vendor/spinel/test/kernel_integer_with_base.rb +16 -0
- data/vendor/spinel/test/kernel_integer_with_base.rb.expected +6 -0
- data/vendor/spinel/test/kwarg_back_propagate_callee_type.rb +26 -0
- data/vendor/spinel/test/kwarg_back_propagate_callee_type.rb.expected +1 -0
- data/vendor/spinel/test/kwargs_double_splat.rb +15 -0
- data/vendor/spinel/test/kwargs_double_splat.rb.expected +2 -0
- data/vendor/spinel/test/kwargs_merge_default_hash.rb +51 -0
- data/vendor/spinel/test/lambda_arrow_string_return.rb +8 -0
- data/vendor/spinel/test/lambda_arrow_string_return.rb.expected +2 -0
- data/vendor/spinel/test/lambda_inference_chain.rb +35 -0
- data/vendor/spinel/test/lambda_inference_chain.rb.expected +5 -0
- data/vendor/spinel/test/local_empty_array_push_promotion_propagates.rb +61 -0
- data/vendor/spinel/test/local_empty_array_push_promotion_propagates.rb.expected +3 -0
- data/vendor/spinel/test/logical_pointer_guard.rb +20 -0
- data/vendor/spinel/test/logical_pointer_guard.rb.expected +2 -0
- data/vendor/spinel/test/logical_value_return.rb +15 -0
- data/vendor/spinel/test/lv_widen_from_callee_arg_slot.rb +56 -0
- data/vendor/spinel/test/lv_widen_from_callee_arg_slot.rb.expected +1 -0
- data/vendor/spinel/test/map_block_string_new_join.rb +33 -0
- data/vendor/spinel/test/map_block_string_new_join.rb.expected +3 -0
- data/vendor/spinel/test/map_obj_array_poly_field.rb +28 -0
- data/vendor/spinel/test/map_recv_emitted_once.rb +44 -0
- data/vendor/spinel/test/map_recv_emitted_once.rb.expected +7 -0
- data/vendor/spinel/test/map_to_heap_objects.rb +16 -0
- data/vendor/spinel/test/map_to_heap_objects.rb.expected +4 -0
- data/vendor/spinel/test/map_to_value_type_objects.rb +26 -0
- data/vendor/spinel/test/map_to_value_type_objects.rb.expected +7 -0
- data/vendor/spinel/test/masgn_classvar_target.rb +13 -0
- data/vendor/spinel/test/masgn_constpath_target.rb +11 -0
- data/vendor/spinel/test/method_level_rescue_return.rb +42 -0
- data/vendor/spinel/test/method_level_rescue_return.rb.expected +6 -0
- data/vendor/spinel/test/method_level_rescue_return_string.rb +39 -0
- data/vendor/spinel/test/method_level_rescue_return_string.rb.expected +6 -0
- data/vendor/spinel/test/method_return_mixed_int_string.rb +65 -0
- data/vendor/spinel/test/method_return_mixed_int_string.rb.expected +10 -0
- data/vendor/spinel/test/middle_splat_param.rb +14 -0
- data/vendor/spinel/test/middle_splat_param.rb.expected +4 -0
- data/vendor/spinel/test/missing_positional_arg_warns.rb +23 -0
- data/vendor/spinel/test/missing_positional_arg_warns.rb.expected +2 -0
- data/vendor/spinel/test/module_accessor_delete_chain.rb +32 -0
- data/vendor/spinel/test/module_accessor_delete_chain.rb.expected +1 -0
- data/vendor/spinel/test/module_accessor_nil_check.rb +40 -0
- data/vendor/spinel/test/module_accessor_nil_check.rb.expected +2 -0
- data/vendor/spinel/test/module_body_string_const_interp.rb +40 -0
- data/vendor/spinel/test/module_body_string_const_interp.rb.expected +5 -0
- data/vendor/spinel/test/module_class_body_side_effects.rb +32 -0
- data/vendor/spinel/test/module_class_body_side_effects.rb.expected +7 -0
- data/vendor/spinel/test/module_class_reflection.rb +27 -0
- data/vendor/spinel/test/module_class_reflection.rb.expected +14 -0
- data/vendor/spinel/test/module_const_defined.rb +13 -0
- data/vendor/spinel/test/module_const_defined.rb.expected +4 -0
- data/vendor/spinel/test/module_cvars.rb +32 -0
- data/vendor/spinel/test/module_cvars.rb.expected +4 -0
- data/vendor/spinel/test/module_def_self_ivar.rb +14 -0
- data/vendor/spinel/test/module_def_self_ivar.rb.expected +2 -0
- data/vendor/spinel/test/module_function_dead_method_dce.rb +29 -0
- data/vendor/spinel/test/module_function_dead_method_dce.rb.expected +2 -0
- data/vendor/spinel/test/module_function_namespace.rb.expected +3 -0
- data/vendor/spinel/test/module_function_str_method_param.rb +14 -0
- data/vendor/spinel/test/module_function_str_method_param.rb.expected +1 -0
- data/vendor/spinel/test/module_ivar_empty_hash_reset.rb +64 -0
- data/vendor/spinel/test/module_ivar_empty_hash_reset.rb.expected +7 -0
- data/vendor/spinel/test/module_ivar_nil_poly.rb +17 -0
- data/vendor/spinel/test/module_ivar_op_write.rb +53 -0
- data/vendor/spinel/test/module_ivar_op_write.rb.expected +3 -0
- data/vendor/spinel/test/module_reopen_after_include_ivar.rb +33 -0
- data/vendor/spinel/test/module_reopen_after_include_ivar.rb.expected +2 -0
- data/vendor/spinel/test/module_reopen_after_include_namespaced.rb +33 -0
- data/vendor/spinel/test/module_reopen_after_include_namespaced.rb.expected +1 -0
- data/vendor/spinel/test/module_reopen_cmeth_redefine.rb +26 -0
- data/vendor/spinel/test/module_reopen_cmeth_redefine.rb.expected +2 -0
- data/vendor/spinel/test/module_singleton_attr_accessor.rb +41 -0
- data/vendor/spinel/test/module_singleton_attr_accessor.rb.expected +4 -0
- data/vendor/spinel/test/module_singleton_new_user_method.rb +23 -0
- data/vendor/spinel/test/module_singleton_new_user_method.rb.expected +2 -0
- data/vendor/spinel/test/module_singleton_self_accessor.rb +31 -0
- data/vendor/spinel/test/module_singleton_self_accessor.rb.expected +4 -0
- data/vendor/spinel/test/more_truthies_nil_compare.rb +31 -0
- data/vendor/spinel/test/more_truthies_nil_compare.rb.expected +9 -0
- data/vendor/spinel/test/multi_arg_lambda.rb +31 -0
- data/vendor/spinel/test/multi_arg_lambda.rb.expected +6 -0
- data/vendor/spinel/test/multi_assign_ivar_type.rb +21 -0
- data/vendor/spinel/test/multi_assign_ivar_type.rb.expected +3 -0
- data/vendor/spinel/test/multi_write_call_rhs_as_expr.rb +31 -0
- data/vendor/spinel/test/multi_write_call_rhs_as_expr.rb.expected +10 -0
- data/vendor/spinel/test/multi_write_scalar_rhs.rb +12 -0
- data/vendor/spinel/test/multi_write_scalar_rhs.rb.expected +5 -0
- data/vendor/spinel/test/mutable_str_alias_uaf.rb +62 -0
- data/vendor/spinel/test/mutable_str_alias_uaf.rb.expected +4 -0
- data/vendor/spinel/test/mutable_str_force_encoding_return.rb +21 -0
- data/vendor/spinel/test/mutable_str_force_encoding_return.rb.expected +1 -0
- data/vendor/spinel/test/mutable_str_into_str_array.rb +46 -0
- data/vendor/spinel/test/mutable_str_into_str_array.rb.expected +7 -0
- data/vendor/spinel/test/mutex_synchronize_block.rb +29 -0
- data/vendor/spinel/test/mutex_synchronize_block.rb.expected +6 -0
- data/vendor/spinel/test/narrow_and_predicate.rb +23 -0
- data/vendor/spinel/test/narrow_and_predicate.rb.expected +1 -0
- data/vendor/spinel/test/negative_range_slice.rb +32 -0
- data/vendor/spinel/test/negative_range_slice.rb.expected +12 -0
- data/vendor/spinel/test/nested_array_eq.rb +22 -0
- data/vendor/spinel/test/nested_array_eq.rb.expected +12 -0
- data/vendor/spinel/test/nested_yield_with_block_param.rb +33 -0
- data/vendor/spinel/test/nil_default_param_widens_to_poly.rb +26 -0
- data/vendor/spinel/test/nil_default_param_widens_to_poly.rb.expected +4 -0
- data/vendor/spinel/test/nil_guard_narrows_int_or_nil.rb +40 -0
- data/vendor/spinel/test/nil_guard_narrows_int_or_nil.rb.expected +5 -0
- data/vendor/spinel/test/not_match_op.rb +8 -0
- data/vendor/spinel/test/not_match_op.rb.expected +4 -0
- data/vendor/spinel/test/nullable_hash_recv_bracket.expected +3 -0
- data/vendor/spinel/test/nullable_hash_recv_bracket.rb +33 -0
- data/vendor/spinel/test/nullable_obj_nil_compare.rb +92 -0
- data/vendor/spinel/test/nullable_obj_nil_compare.rb.expected +8 -0
- data/vendor/spinel/test/nullable_poly_hash_arg_unbox.rb +85 -0
- data/vendor/spinel/test/nullable_poly_hash_arg_unbox.rb.expected +4 -0
- data/vendor/spinel/test/numeric_coerce.rb +24 -0
- data/vendor/spinel/test/numeric_coerce.rb.expected +9 -0
- data/vendor/spinel/test/obj_class_dispatch.rb +69 -0
- data/vendor/spinel/test/obj_class_dispatch.rb.expected +4 -0
- data/vendor/spinel/test/object_id_basic.rb +19 -0
- data/vendor/spinel/test/object_id_basic.rb.expected +8 -0
- data/vendor/spinel/test/object_method_gaps_callee_clone_itself.rb +23 -0
- data/vendor/spinel/test/object_method_gaps_callee_clone_itself.rb.expected +7 -0
- data/vendor/spinel/test/op_assign_user_operator.rb.expected +2 -0
- data/vendor/spinel/test/op_method_bitwise.rb +30 -0
- data/vendor/spinel/test/op_method_bitwise.rb.expected +8 -0
- data/vendor/spinel/test/op_method_shift.rb +30 -0
- data/vendor/spinel/test/op_method_shift.rb.expected +3 -0
- data/vendor/spinel/test/open_class_array_builtin.rb +11 -0
- data/vendor/spinel/test/open_class_array_builtin.rb.expected +1 -0
- data/vendor/spinel/test/open_class_bool_builtin.rb +28 -0
- data/vendor/spinel/test/open_class_bool_builtin.rb.expected +6 -0
- data/vendor/spinel/test/open_class_default_arg.rb +47 -0
- data/vendor/spinel/test/open_class_default_arg.rb.expected +9 -0
- data/vendor/spinel/test/open_class_object.rb +26 -0
- data/vendor/spinel/test/open_class_object.rb.expected +5 -0
- data/vendor/spinel/test/pack_utf8.rb +12 -0
- data/vendor/spinel/test/pack_utf8.rb.expected +10 -0
- data/vendor/spinel/test/param_body_array_hash_inference.rb +58 -0
- data/vendor/spinel/test/param_body_array_hash_inference.rb.expected +3 -0
- data/vendor/spinel/test/param_body_hash_inference.rb +72 -0
- data/vendor/spinel/test/param_body_hash_inference.rb.expected +6 -0
- data/vendor/spinel/test/param_include_body_widen.rb +32 -0
- data/vendor/spinel/test/param_include_body_widen.rb.expected +5 -0
- data/vendor/spinel/test/param_lengthlike_body_widen.rb +53 -0
- data/vendor/spinel/test/param_lengthlike_body_widen.rb.expected +6 -0
- data/vendor/spinel/test/param_ptr_from_callee_slot.rb +42 -0
- data/vendor/spinel/test/param_ptr_from_callee_slot.rb.expected +6 -0
- data/vendor/spinel/test/parser_long_ast_record.rb +132 -0
- data/vendor/spinel/test/parser_long_ast_record.rb.expected +3 -0
- data/vendor/spinel/test/pattern_match_as_and_guard.rb +33 -0
- data/vendor/spinel/test/pattern_match_as_and_guard.rb.expected +4 -0
- data/vendor/spinel/test/pattern_match_splat_rest.rb +15 -0
- data/vendor/spinel/test/pattern_match_splat_rest.rb.expected +4 -0
- data/vendor/spinel/test/pattern_pin.rb +105 -0
- data/vendor/spinel/test/pattern_pin.rb.expected +11 -0
- data/vendor/spinel/test/poly_arg_int_keyed_hash.rb +42 -0
- data/vendor/spinel/test/poly_arg_int_keyed_hash.rb.expected +5 -0
- data/vendor/spinel/test/poly_arg_to_typed_method_param.rb +28 -0
- data/vendor/spinel/test/poly_arg_to_typed_method_param.rb.expected +4 -0
- data/vendor/spinel/test/poly_array_assoc.rb +9 -0
- data/vendor/spinel/test/poly_array_compact.rb +15 -0
- data/vendor/spinel/test/poly_array_compact.rb.expected +3 -0
- data/vendor/spinel/test/poly_array_compact_bang.rb +17 -0
- data/vendor/spinel/test/poly_array_compact_bang.rb.expected +3 -0
- data/vendor/spinel/test/poly_array_dup.rb +52 -0
- data/vendor/spinel/test/poly_array_dup.rb.expected +5 -0
- data/vendor/spinel/test/poly_array_flatten.rb +17 -0
- data/vendor/spinel/test/poly_array_flatten.rb.expected +4 -0
- data/vendor/spinel/test/poly_attr_reader_box_dispatch.expected +1 -0
- data/vendor/spinel/test/poly_attr_reader_box_dispatch.rb +35 -0
- data/vendor/spinel/test/poly_attr_writer.rb +95 -0
- data/vendor/spinel/test/poly_attr_writer.rb.expected +5 -0
- data/vendor/spinel/test/poly_class_dispatch.rb +11 -0
- data/vendor/spinel/test/poly_class_dispatch.rb.expected +7 -0
- data/vendor/spinel/test/poly_dispatch_inherited_attr_reader.rb +20 -0
- data/vendor/spinel/test/poly_dispatch_inherited_attr_reader.rb.expected +2 -0
- data/vendor/spinel/test/poly_dispatch_inherited_method.rb +19 -0
- data/vendor/spinel/test/poly_dispatch_inherited_method.rb.expected +2 -0
- data/vendor/spinel/test/poly_dispatch_multilevel_inheritance.rb +28 -0
- data/vendor/spinel/test/poly_dispatch_multilevel_inheritance.rb.expected +4 -0
- data/vendor/spinel/test/poly_dispatch_narrow_return_type.rb +53 -0
- data/vendor/spinel/test/poly_dispatch_narrow_return_type.rb.expected +3 -0
- data/vendor/spinel/test/poly_each_receiver_gc_root.rb +40 -0
- data/vendor/spinel/test/poly_each_receiver_gc_root.rb.expected +1 -0
- data/vendor/spinel/test/poly_gsub_str_arm.rb +24 -0
- data/vendor/spinel/test/poly_gsub_str_arm.rb.expected +1 -0
- data/vendor/spinel/test/poly_gsub_str_str_hash.rb +37 -0
- data/vendor/spinel/test/poly_gsub_str_str_hash.rb.expected +1 -0
- data/vendor/spinel/test/poly_idx_int_nullable.rb +14 -0
- data/vendor/spinel/test/poly_idx_int_nullable.rb.expected +1 -0
- data/vendor/spinel/test/poly_length_string_tag.rb +20 -0
- data/vendor/spinel/test/poly_length_string_tag.rb.expected +3 -0
- data/vendor/spinel/test/poly_local_is_a_string_narrow_in_non_tail_if.rb +39 -0
- data/vendor/spinel/test/poly_local_is_a_string_narrow_in_non_tail_if.rb.expected +1 -0
- data/vendor/spinel/test/poly_local_is_a_string_narrow_in_tail_if.rb +23 -0
- data/vendor/spinel/test/poly_local_is_a_string_narrow_in_tail_if.rb.expected +1 -0
- data/vendor/spinel/test/poly_local_is_a_string_narrow_in_y1_inline.rb +27 -0
- data/vendor/spinel/test/poly_local_is_a_string_narrow_in_y1_inline.rb.expected +1 -0
- data/vendor/spinel/test/poly_poly_hash_each_value.rb +34 -0
- data/vendor/spinel/test/poly_poly_hash_each_value.rb.expected +11 -0
- data/vendor/spinel/test/poly_poly_hash_fetch_dup.rb +26 -0
- data/vendor/spinel/test/poly_poly_hash_fetch_dup.rb.expected +2 -0
- data/vendor/spinel/test/poly_recv_aset_poly_key.rb +30 -0
- data/vendor/spinel/test/poly_recv_aset_poly_key.rb.expected +1 -0
- data/vendor/spinel/test/poly_recv_dispatch_narrow_module.rb +37 -0
- data/vendor/spinel/test/poly_recv_dispatch_narrow_module.rb.expected +3 -0
- data/vendor/spinel/test/poly_recv_fetch_arm_incompat.rb +37 -0
- data/vendor/spinel/test/poly_recv_fetch_arm_incompat.rb.expected +1 -0
- data/vendor/spinel/test/poly_recv_fetch_hash_arms.rb +31 -0
- data/vendor/spinel/test/poly_recv_fetch_hash_arms.rb.expected +2 -0
- data/vendor/spinel/test/poly_recv_hash_dup.rb +48 -0
- data/vendor/spinel/test/poly_recv_hash_each_dispatch.rb +40 -0
- data/vendor/spinel/test/poly_recv_hash_each_dispatch.rb.expected +5 -0
- data/vendor/spinel/test/poly_recv_map_join.rb +31 -0
- data/vendor/spinel/test/poly_recv_map_join.rb.expected +5 -0
- data/vendor/spinel/test/poly_recv_range_sym_hash_dispatch.rb +55 -0
- data/vendor/spinel/test/poly_recv_range_sym_hash_dispatch.rb.expected +9 -0
- data/vendor/spinel/test/poly_recv_two_arg_slice.rb +27 -0
- data/vendor/spinel/test/poly_value_into_str_str_hash.rb +44 -0
- data/vendor/spinel/test/poly_value_into_str_str_hash.rb.expected +2 -0
- data/vendor/spinel/test/prepend_super_basic.rb +18 -0
- data/vendor/spinel/test/prepend_super_basic.rb.expected +1 -0
- data/vendor/spinel/test/prepend_super_chain.rb +23 -0
- data/vendor/spinel/test/prepend_super_chain.rb.expected +1 -0
- data/vendor/spinel/test/prepend_super_forward.rb +17 -0
- data/vendor/spinel/test/prepend_super_forward.rb.expected +1 -0
- data/vendor/spinel/test/prepend_super_multi.rb +25 -0
- data/vendor/spinel/test/prepend_super_multi.rb.expected +1 -0
- data/vendor/spinel/test/prepend_super_subclass.rb +21 -0
- data/vendor/spinel/test/prepend_super_subclass.rb.expected +1 -0
- data/vendor/spinel/test/primitive_eq_user_class.rb +84 -0
- data/vendor/spinel/test/primitive_eq_user_class.rb.expected +49 -0
- data/vendor/spinel/test/proc_anon_dot_call.rb +50 -0
- data/vendor/spinel/test/proc_anon_dot_call.rb.expected +5 -0
- data/vendor/spinel/test/proc_arg_object.rb +17 -0
- data/vendor/spinel/test/proc_arg_object.rb.expected +1 -0
- data/vendor/spinel/test/proc_call_value_return.rb +20 -0
- data/vendor/spinel/test/proc_call_value_return.rb.expected +5 -0
- data/vendor/spinel/test/proc_introspection.rb +11 -0
- data/vendor/spinel/test/proc_introspection.rb.expected +6 -0
- data/vendor/spinel/test/process_pid.rb +5 -0
- data/vendor/spinel/test/process_pid.rb.expected +2 -0
- data/vendor/spinel/test/ptr_array_to_poly_array_at_call.rb +39 -0
- data/vendor/spinel/test/ptr_array_to_poly_array_at_call.rb.expected +2 -0
- data/vendor/spinel/test/public_send.rb +12 -0
- data/vendor/spinel/test/public_send.rb.expected +4 -0
- data/vendor/spinel/test/puts_class_value.rb +10 -0
- data/vendor/spinel/test/puts_class_value.rb.expected +2 -0
- data/vendor/spinel/test/puts_nil.rb +7 -0
- data/vendor/spinel/test/raise_reraise_in_def.rb +44 -0
- data/vendor/spinel/test/raise_unless_isa_narrow.rb +72 -0
- data/vendor/spinel/test/raise_unless_isa_narrow.rb.expected +3 -0
- data/vendor/spinel/test/range_and_array_range_args.rb +43 -0
- data/vendor/spinel/test/range_and_array_range_args.rb.expected +18 -0
- data/vendor/spinel/test/range_begin_end_polyarr_include_delete_bang.rb +21 -0
- data/vendor/spinel/test/range_bsearch.rb +11 -0
- data/vendor/spinel/test/range_bsearch.rb.expected +8 -0
- data/vendor/spinel/test/range_case_eq_type_mismatch.rb +10 -0
- data/vendor/spinel/test/range_case_eq_type_mismatch.rb.expected +7 -0
- data/vendor/spinel/test/range_each_fusion.rb +109 -0
- data/vendor/spinel/test/range_each_fusion.rb.expected +16 -0
- data/vendor/spinel/test/range_each_no_block.rb +5 -0
- data/vendor/spinel/test/range_equality.rb +9 -0
- data/vendor/spinel/test/range_exclude_end_size.rb +24 -0
- data/vendor/spinel/test/range_exclude_end_size.rb.expected +18 -0
- data/vendor/spinel/test/range_exclusive_nonliteral.rb +34 -0
- data/vendor/spinel/test/range_overlap_array_flatten_depth.rb +14 -0
- data/vendor/spinel/test/range_overlap_array_flatten_depth.rb.expected +8 -0
- data/vendor/spinel/test/range_step.rb +15 -0
- data/vendor/spinel/test/range_step.rb.expected +5 -0
- data/vendor/spinel/test/range_string_cover.rb +10 -0
- data/vendor/spinel/test/rational_complex_literals.rb +27 -0
- data/vendor/spinel/test/rational_complex_literals.rb.expected +12 -0
- data/vendor/spinel/test/rbs/README.md +45 -0
- data/vendor/spinel/test/rbs/arrays.rbs +10 -0
- data/vendor/spinel/test/rbs/arrays.seed.expected +7 -0
- data/vendor/spinel/test/rbs/dropped_members.rbs +13 -0
- data/vendor/spinel/test/rbs/dropped_members.seed.expected +2 -0
- data/vendor/spinel/test/rbs/dropped_sigs.rbs +14 -0
- data/vendor/spinel/test/rbs/dropped_sigs.seed.expected +2 -0
- data/vendor/spinel/test/rbs/dropped_types.rbs +14 -0
- data/vendor/spinel/test/rbs/dropped_types.seed.expected +2 -0
- data/vendor/spinel/test/rbs/hashes.rbs +11 -0
- data/vendor/spinel/test/rbs/hashes.seed.expected +7 -0
- data/vendor/spinel/test/rbs/ivars.rbs +8 -0
- data/vendor/spinel/test/rbs/ivars.seed.expected +5 -0
- data/vendor/spinel/test/rbs/members.rbs +7 -0
- data/vendor/spinel/test/rbs/members.seed.expected +5 -0
- data/vendor/spinel/test/rbs/nominal.rbs +7 -0
- data/vendor/spinel/test/rbs/nominal.seed.expected +3 -0
- data/vendor/spinel/test/rbs/nullable.rbs +8 -0
- data/vendor/spinel/test/rbs/nullable.seed.expected +5 -0
- data/vendor/spinel/test/rbs/overloads.rbs +13 -0
- data/vendor/spinel/test/rbs/overloads.seed.expected +3 -0
- data/vendor/spinel/test/rbs/scalars.rbs +12 -0
- data/vendor/spinel/test/rbs/scalars.seed.expected +9 -0
- data/vendor/spinel/test/rbs/union_poly.rbs +9 -0
- data/vendor/spinel/test/rbs/union_poly.seed.expected +4 -0
- data/vendor/spinel/test/rbs/unqualified.rbs +13 -0
- data/vendor/spinel/test/rbs/unqualified.seed.expected +4 -0
- data/vendor/spinel/test/recursive_block_forward_value.rb +19 -0
- data/vendor/spinel/test/recursive_block_forward_value.rb.expected +3 -0
- data/vendor/spinel/test/recursive_implicit_yield_value.rb +35 -0
- data/vendor/spinel/test/recursive_implicit_yield_value.rb.expected +7 -0
- data/vendor/spinel/test/regex.rb +7 -0
- data/vendor/spinel/test/regex.rb.expected +2 -0
- data/vendor/spinel/test/regex_backref_oob_nil.rb +13 -0
- data/vendor/spinel/test/regex_backref_oob_nil.rb.expected +5 -0
- data/vendor/spinel/test/regex_const_freeze.rb +17 -0
- data/vendor/spinel/test/regex_const_freeze.rb.expected +3 -0
- data/vendor/spinel/test/regex_hex_shorthand.rb +13 -0
- data/vendor/spinel/test/regex_hex_shorthand.rb.expected +12 -0
- data/vendor/spinel/test/regex_match_nonstring.rb +18 -0
- data/vendor/spinel/test/regex_match_nonstring.rb.expected +3 -0
- data/vendor/spinel/test/regex_namespaced_const.rb +17 -0
- data/vendor/spinel/test/regex_namespaced_const.rb.expected +4 -0
- data/vendor/spinel/test/regex_negated_shorthand_toplevel.rb +9 -0
- data/vendor/spinel/test/regex_negated_shorthand_toplevel.rb.expected +13 -0
- data/vendor/spinel/test/regex_sub_backref.rb +11 -0
- data/vendor/spinel/test/regex_unanchored_class_seq.rb +13 -0
- data/vendor/spinel/test/regex_unanchored_class_seq.rb.expected +6 -0
- data/vendor/spinel/test/regexp_capture_ivar_hash.rb +48 -0
- data/vendor/spinel/test/regexp_capture_ivar_hash.rb.expected +7 -0
- data/vendor/spinel/test/regexp_error_catchable.rb +14 -0
- data/vendor/spinel/test/regexp_error_catchable.rb.expected +3 -0
- data/vendor/spinel/test/regexp_gsub_zero_width.rb +27 -0
- data/vendor/spinel/test/regexp_gsub_zero_width.rb.expected +12 -0
- data/vendor/spinel/test/regexp_last_match_capture.rb +21 -0
- data/vendor/spinel/test/regexp_last_match_capture.rb.expected +7 -0
- data/vendor/spinel/test/regexp_line_anchors.rb +34 -0
- data/vendor/spinel/test/regexp_line_anchors.rb.expected +15 -0
- data/vendor/spinel/test/regexp_local_if_else_union.rb +36 -0
- data/vendor/spinel/test/regexp_local_if_else_union.rb.expected +5 -0
- data/vendor/spinel/test/regexp_match_data.rb +17 -0
- data/vendor/spinel/test/regexp_match_data.rb.expected +8 -0
- data/vendor/spinel/test/regexp_match_p_position.rb +7 -0
- data/vendor/spinel/test/regexp_match_p_position.rb.expected +4 -0
- data/vendor/spinel/test/regexp_new_literal.rb +72 -0
- data/vendor/spinel/test/regexp_new_literal.rb.expected +24 -0
- data/vendor/spinel/test/regexp_source_options.rb +10 -0
- data/vendor/spinel/test/regexp_source_options.rb.expected +5 -0
- data/vendor/spinel/test/regexp_sub_gsub_length.rb +17 -0
- data/vendor/spinel/test/regexp_sub_gsub_length.rb.expected +10 -0
- data/vendor/spinel/test/regexp_sub_gsub_realloc.rb +25 -0
- data/vendor/spinel/test/regexp_sub_gsub_realloc.rb.expected +6 -0
- data/vendor/spinel/test/regexp_threeq.rb +15 -0
- data/vendor/spinel/test/regexp_threeq.rb.expected +4 -0
- data/vendor/spinel/test/require_first_line.rb +7 -0
- data/vendor/spinel/test/require_first_line.rb.expected +1 -0
- data/vendor/spinel/test/require_modifier.rb +12 -0
- data/vendor/spinel/test/require_same_line.rb +5 -0
- data/vendor/spinel/test/require_same_line.rb.expected +2 -0
- data/vendor/spinel/test/require_unsupported_lib.rb +8 -0
- data/vendor/spinel/test/require_unsupported_lib.rb.expected +2 -0
- data/vendor/spinel/test/rescue_bind_in_fiber_body.rb +24 -0
- data/vendor/spinel/test/rescue_bind_in_fiber_body.rb.expected +6 -0
- data/vendor/spinel/test/rescue_bind_in_lambda_proc_body.rb +16 -0
- data/vendor/spinel/test/rescue_bind_in_lambda_proc_body.rb.expected +4 -0
- data/vendor/spinel/test/rescue_walks_class_hierarchy.rb +37 -0
- data/vendor/spinel/test/rescue_walks_class_hierarchy.rb.expected +7 -0
- data/vendor/spinel/test/rescue_widens_nil_local_to_exception.expected +1 -0
- data/vendor/spinel/test/rescue_widens_nil_local_to_exception.rb +11 -0
- data/vendor/spinel/test/respond_to_def_self_method.rb +14 -0
- data/vendor/spinel/test/respond_to_module_singleton_accessor.rb +10 -0
- data/vendor/spinel/test/respond_to_module_singleton_accessor.rb.expected +3 -0
- data/vendor/spinel/test/respond_to_primitive.rb +9 -0
- data/vendor/spinel/test/respond_to_primitive.rb.expected +5 -0
- data/vendor/spinel/test/return_unify_int_vs_pointer.rb +37 -0
- data/vendor/spinel/test/return_unify_int_vs_pointer.rb.expected +4 -0
- data/vendor/spinel/test/return_unify_isa_early_return.rb +29 -0
- data/vendor/spinel/test/return_unify_isa_early_return.rb.expected +2 -0
- data/vendor/spinel/test/rightward_assign_destructure.rb +27 -0
- data/vendor/spinel/test/rightward_assign_destructure.rb.expected +8 -0
- data/vendor/spinel/test/safe_navigation_returns_nil.expected +6 -0
- data/vendor/spinel/test/safe_navigation_returns_nil.rb +28 -0
- data/vendor/spinel/test/same_named_attr_no_widen.rb +24 -0
- data/vendor/spinel/test/same_named_attr_no_widen.rb.expected +1 -0
- data/vendor/spinel/test/scan_locals_def_boundary.rb +58 -0
- data/vendor/spinel/test/scan_locals_def_boundary.rb.expected +2 -0
- data/vendor/spinel/test/scan_walkers_def_boundary.rb +52 -0
- data/vendor/spinel/test/scan_walkers_def_boundary.rb.expected +4 -0
- data/vendor/spinel/test/self_class_divergent_returns.rb +61 -0
- data/vendor/spinel/test/self_class_divergent_returns.rb.expected +3 -0
- data/vendor/spinel/test/self_class_new_construction.rb +16 -0
- data/vendor/spinel/test/self_class_new_construction.rb.expected +2 -0
- data/vendor/spinel/test/self_operator_subclass_dispatch.rb +40 -0
- data/vendor/spinel/test/self_operator_subclass_dispatch.rb.expected +2 -0
- data/vendor/spinel/test/signal_trap_stub.rb +30 -0
- data/vendor/spinel/test/signal_trap_stub.rb.expected +3 -0
- data/vendor/spinel/test/sort_min_max_block_comparator.rb +18 -0
- data/vendor/spinel/test/sort_min_max_block_comparator.rb.expected +7 -0
- data/vendor/spinel/test/source_encoding.rb +19 -0
- data/vendor/spinel/test/source_encoding.rb.expected +9 -0
- data/vendor/spinel/test/sp_crypto_basic.rb +45 -0
- data/vendor/spinel/test/sp_crypto_basic.rb.expected +6 -0
- data/vendor/spinel/test/sp_crypto_sha1.rb +18 -0
- data/vendor/spinel/test/sp_crypto_sha1.rb.expected +3 -0
- data/vendor/spinel/test/sp_net_basic.rb +17 -0
- data/vendor/spinel/test/sp_net_basic.rb.expected +2 -0
- data/vendor/spinel/test/splat_heterogeneous_call.rb +14 -0
- data/vendor/spinel/test/splat_params_instance.rb +21 -0
- data/vendor/spinel/test/splat_params_instance.rb.expected +8 -0
- data/vendor/spinel/test/sprintf_long_interp.rb +23 -0
- data/vendor/spinel/test/sprintf_long_interp.rb.expected +3 -0
- data/vendor/spinel/test/stdlib_class_in_ivar.rb +85 -0
- data/vendor/spinel/test/stdlib_class_in_ivar.rb.expected +7 -0
- data/vendor/spinel/test/str_array_max_min_by.rb +6 -0
- data/vendor/spinel/test/str_array_sort_by.rb +11 -0
- data/vendor/spinel/test/str_array_sort_by.rb.expected +5 -0
- data/vendor/spinel/test/str_chomp_paragraph_mode.rb +16 -0
- data/vendor/spinel/test/str_chomp_paragraph_mode.rb.expected +9 -0
- data/vendor/spinel/test/str_count_multi_arg.rb +11 -0
- data/vendor/spinel/test/str_count_multi_arg.rb.expected +4 -0
- data/vendor/spinel/test/str_delete_count_negation.rb +16 -0
- data/vendor/spinel/test/str_delete_count_negation.rb.expected +6 -0
- data/vendor/spinel/test/str_force_encoding_return.rb +26 -0
- data/vendor/spinel/test/str_force_encoding_return.rb.expected +3 -0
- data/vendor/spinel/test/str_int_hash_missing_key_nil.rb +16 -0
- data/vendor/spinel/test/str_int_hash_missing_key_nil.rb.expected +10 -0
- data/vendor/spinel/test/str_match_position.rb +15 -0
- data/vendor/spinel/test/str_match_position.rb.expected +8 -0
- data/vendor/spinel/test/str_method_nil_arg_no_segv.rb +47 -0
- data/vendor/spinel/test/str_method_nil_arg_no_segv.rb.expected +7 -0
- data/vendor/spinel/test/str_oct_prefix.rb +11 -0
- data/vendor/spinel/test/str_oct_prefix.rb.expected +5 -0
- data/vendor/spinel/test/str_ord_empty.rb +11 -0
- data/vendor/spinel/test/str_ord_empty.rb.expected +3 -0
- data/vendor/spinel/test/str_poly_hash_dup_widen.rb +21 -0
- data/vendor/spinel/test/str_poly_hash_dup_widen.rb.expected +4 -0
- data/vendor/spinel/test/str_poly_hash_dup_widen_from_int.rb +17 -0
- data/vendor/spinel/test/str_poly_hash_dup_widen_from_int.rb.expected +3 -0
- data/vendor/spinel/test/str_rindex_position.rb +23 -0
- data/vendor/spinel/test/str_rindex_position.rb.expected +17 -0
- data/vendor/spinel/test/str_split_space_whitespace.rb +10 -0
- data/vendor/spinel/test/str_split_space_whitespace.rb.expected +4 -0
- data/vendor/spinel/test/str_split_trailing_empty.rb +12 -0
- data/vendor/spinel/test/str_split_trailing_empty.rb.expected +7 -0
- data/vendor/spinel/test/str_squeeze_arg.rb +18 -0
- data/vendor/spinel/test/str_squeeze_arg.rb.expected +7 -0
- data/vendor/spinel/test/str_str_hash_nullable_bracket_assign.rb +39 -0
- data/vendor/spinel/test/str_str_hash_nullable_bracket_assign.rb.expected +5 -0
- data/vendor/spinel/test/str_to_i_overflow.rb +32 -0
- data/vendor/spinel/test/str_to_i_overflow.rb.expected +6 -0
- data/vendor/spinel/test/str_tr_negation.rb +10 -0
- data/vendor/spinel/test/str_tr_negation.rb.expected +4 -0
- data/vendor/spinel/test/string_byteslice.rb +9 -0
- data/vendor/spinel/test/string_byteslice.rb.expected +6 -0
- data/vendor/spinel/test/string_casecmp.rb +9 -0
- data/vendor/spinel/test/string_casecmp.rb.expected +7 -0
- data/vendor/spinel/test/string_charset_range_notation.rb +9 -0
- data/vendor/spinel/test/string_charset_range_notation.rb.expected +5 -0
- data/vendor/spinel/test/string_chomp_bang_mutates.rb +20 -0
- data/vendor/spinel/test/string_chomp_bang_mutates.rb.expected +4 -0
- data/vendor/spinel/test/string_crypt.rb +22 -0
- data/vendor/spinel/test/string_crypt.rb.expected +7 -0
- data/vendor/spinel/test/string_delete_prefix_suffix_bang.rb +29 -0
- data/vendor/spinel/test/string_delete_prefix_suffix_bang.rb.expected +5 -0
- data/vendor/spinel/test/string_each_char_returns_self.rb +15 -0
- data/vendor/spinel/test/string_each_line_expr.rb +25 -0
- data/vendor/spinel/test/string_each_line_expr.rb.expected +19 -0
- data/vendor/spinel/test/string_each_line_keeps_newline.rb +15 -0
- data/vendor/spinel/test/string_encoding.rb +8 -0
- data/vendor/spinel/test/string_encoding.rb.expected +5 -0
- data/vendor/spinel/test/string_enum_block_returns_self.rb +27 -0
- data/vendor/spinel/test/string_enum_block_returns_self.rb.expected +11 -0
- data/vendor/spinel/test/string_format_polyarr.rb +6 -0
- data/vendor/spinel/test/string_frozen_mutation_raises.rb +27 -0
- data/vendor/spinel/test/string_frozen_mutation_raises.rb.expected +4 -0
- data/vendor/spinel/test/string_gsub_block.rb +8 -0
- data/vendor/spinel/test/string_index_nil_typeerror.rb +9 -0
- data/vendor/spinel/test/string_index_nil_typeerror.rb.expected +1 -0
- data/vendor/spinel/test/string_index_regex.rb +9 -0
- data/vendor/spinel/test/string_index_regex.rb.expected +6 -0
- data/vendor/spinel/test/string_lshift_int_codepoint.rb +9 -0
- data/vendor/spinel/test/string_lshift_int_codepoint.rb.expected +2 -0
- data/vendor/spinel/test/string_multiply_overflow.rb +14 -0
- data/vendor/spinel/test/string_multiply_overflow.rb.expected +4 -0
- data/vendor/spinel/test/string_nil_arg_typeerror.rb +38 -0
- data/vendor/spinel/test/string_nil_arg_typeerror.rb.expected +5 -0
- data/vendor/spinel/test/string_param_inference_from_body.rb +40 -0
- data/vendor/spinel/test/string_param_inference_from_body.rb.expected +3 -0
- data/vendor/spinel/test/string_partition_regex_and_puts.rb +8 -0
- data/vendor/spinel/test/string_partition_regex_and_puts.rb.expected +6 -0
- data/vendor/spinel/test/string_range_to_a.rb +10 -0
- data/vendor/spinel/test/string_range_to_a.rb.expected +4 -0
- data/vendor/spinel/test/string_replace_prepend_insert_clear.rb +34 -0
- data/vendor/spinel/test/string_rpartition_regex.rb +10 -0
- data/vendor/spinel/test/string_scanner_basic.rb +35 -0
- data/vendor/spinel/test/string_scanner_check_unscan.rb +24 -0
- data/vendor/spinel/test/string_scanner_getch_utf8.rb +26 -0
- data/vendor/spinel/test/string_scanner_nullable.rb +75 -0
- data/vendor/spinel/test/string_scanner_nullable.rb.expected +37 -0
- data/vendor/spinel/test/string_scanner_scan_to_local.rb +11 -0
- data/vendor/spinel/test/string_scanner_unscan_error.rb +54 -0
- data/vendor/spinel/test/string_scrub.rb +7 -0
- data/vendor/spinel/test/string_slice_range.rb +18 -0
- data/vendor/spinel/test/string_split_capture.rb +8 -0
- data/vendor/spinel/test/string_split_inline_arg_gc_root.rb +77 -0
- data/vendor/spinel/test/string_split_inline_arg_gc_root.rb.expected +1 -0
- data/vendor/spinel/test/string_squeeze_no_trailing_nul.rb +12 -0
- data/vendor/spinel/test/string_sub_hash_replacement.rb +8 -0
- data/vendor/spinel/test/string_to_i_base.rb +9 -0
- data/vendor/spinel/test/string_to_i_base.rb.expected +6 -0
- data/vendor/spinel/test/string_to_i_base_zero.rb +9 -0
- data/vendor/spinel/test/string_to_i_overflow_raises.rb +30 -0
- data/vendor/spinel/test/string_to_i_overflow_raises.rb.expected +6 -0
- data/vendor/spinel/test/string_undump.rb +9 -0
- data/vendor/spinel/test/string_upto.rb +20 -0
- data/vendor/spinel/test/string_with_embedded_nul.rb +46 -0
- data/vendor/spinel/test/string_with_embedded_nul.rb.expected +16 -0
- data/vendor/spinel/test/stringio_new_mode.rb +21 -0
- data/vendor/spinel/test/stringio_new_mode.rb.expected +5 -0
- data/vendor/spinel/test/stringio_new_nil.rb +14 -0
- data/vendor/spinel/test/stringio_new_nil.rb.expected +2 -0
- data/vendor/spinel/test/stringio_open.rb +30 -0
- data/vendor/spinel/test/stringio_open.rb.expected +10 -0
- data/vendor/spinel/test/stringio_putc_fsync.rb +24 -0
- data/vendor/spinel/test/stringio_putc_fsync.rb.expected +3 -0
- data/vendor/spinel/test/strip_nul.rb +13 -0
- data/vendor/spinel/test/strip_nul.rb.expected +8 -0
- data/vendor/spinel/test/struct_dig.rb +16 -0
- data/vendor/spinel/test/struct_int_member_unboxed.rb +14 -0
- data/vendor/spinel/test/struct_int_member_unboxed.rb.expected +6 -0
- data/vendor/spinel/test/struct_member_name_no_global_merge.rb +28 -0
- data/vendor/spinel/test/struct_member_name_no_global_merge.rb.expected +3 -0
- data/vendor/spinel/test/struct_to_a_values.rb +12 -0
- data/vendor/spinel/test/struct_to_a_values.rb.expected +6 -0
- data/vendor/spinel/test/struct_to_h.rb +8 -0
- data/vendor/spinel/test/struct_to_h.rb.expected +4 -0
- data/vendor/spinel/test/struct_to_h_block.rb +30 -0
- data/vendor/spinel/test/super_in_non_initialize.rb +44 -0
- data/vendor/spinel/test/super_in_non_initialize.rb.expected +3 -0
- data/vendor/spinel/test/super_with_args.rb +25 -0
- data/vendor/spinel/test/super_with_args.rb.expected +4 -0
- data/vendor/spinel/test/sym_hash_cross_variant_merge.rb +40 -0
- data/vendor/spinel/test/sym_hash_cross_variant_merge.rb.expected +3 -0
- data/vendor/spinel/test/sym_int_hash_merge.rb +52 -0
- data/vendor/spinel/test/sym_int_hash_merge.rb.expected +11 -0
- data/vendor/spinel/test/sym_int_hash_missing_key_nil.rb +15 -0
- data/vendor/spinel/test/sym_int_hash_missing_key_nil.rb.expected +11 -0
- data/vendor/spinel/test/sym_poly_hash_merge_sym_int.rb +18 -0
- data/vendor/spinel/test/sym_poly_hash_merge_sym_int.rb.expected +4 -0
- data/vendor/spinel/test/symbol_id2name_ruby_desc_minmax.rb +13 -0
- data/vendor/spinel/test/symbol_id2name_ruby_desc_minmax.rb.expected +7 -0
- data/vendor/spinel/test/symbol_to_proc_after_positional.rb +18 -0
- data/vendor/spinel/test/symbol_to_proc_after_positional.rb.expected +5 -0
- data/vendor/spinel/test/symbol_upcase_interpolation.rb +24 -0
- data/vendor/spinel/test/symbol_upcase_interpolation.rb.expected +5 -0
- data/vendor/spinel/test/system_argument_list.rb +15 -0
- data/vendor/spinel/test/system_argument_list.rb.expected +7 -0
- data/vendor/spinel/test/thread_new_value.rb +5 -0
- data/vendor/spinel/test/thread_new_value.rb.expected +2 -0
- data/vendor/spinel/test/time_localtime_gmtime.rb +19 -0
- data/vendor/spinel/test/time_mktime_local_utc.rb +24 -0
- data/vendor/spinel/test/time_mktime_local_utc.rb.expected +13 -0
- data/vendor/spinel/test/time_strftime_long_format.rb +21 -0
- data/vendor/spinel/test/time_strftime_long_format.rb.expected +5 -0
- data/vendor/spinel/test/time_subsec_utc.rb +19 -0
- data/vendor/spinel/test/time_subsec_utc.rb.expected +9 -0
- data/vendor/spinel/test/time_to_s.rb +5 -0
- data/vendor/spinel/test/toplevel_include_module_function.rb +101 -0
- data/vendor/spinel/test/toplevel_include_module_function.rb.expected +8 -0
- data/vendor/spinel/test/toplevel_kwrest_block_param.rb +19 -0
- data/vendor/spinel/test/toplevel_kwrest_block_param.rb.expected +2 -0
- data/vendor/spinel/test/tuple_inspect.rb +9 -0
- data/vendor/spinel/test/tuple_inspect.rb.expected +4 -0
- data/vendor/spinel/test/typed_array_empty_returns_nil.rb +19 -0
- data/vendor/spinel/test/typed_array_empty_returns_nil.rb.expected +8 -0
- data/vendor/spinel/test/typed_array_include_cross_type.rb +6 -0
- data/vendor/spinel/test/typed_hash_caller_no_body_widen.rb +46 -0
- data/vendor/spinel/test/typed_hash_caller_no_body_widen.rb.expected +1 -0
- data/vendor/spinel/test/typed_hash_inspect_and_each_value.rb +12 -0
- data/vendor/spinel/test/typed_hash_inspect_and_each_value.rb.expected +6 -0
- data/vendor/spinel/test/typed_hash_missing_returns_nil.rb +17 -0
- data/vendor/spinel/test/typed_hash_missing_returns_nil.rb.expected +4 -0
- data/vendor/spinel/test/unary_operator_methods.rb +19 -0
- data/vendor/spinel/test/unary_operator_methods.rb.expected +3 -0
- data/vendor/spinel/test/undef_method_raises.rb +34 -0
- data/vendor/spinel/test/undef_method_raises.rb.expected +3 -0
- data/vendor/spinel/test/uninit_const_raises_nameerror.rb +18 -0
- data/vendor/spinel/test/uninit_ivar_returns_nil.rb +23 -0
- data/vendor/spinel/test/uninit_ivar_returns_nil.rb.expected +4 -0
- data/vendor/spinel/test/unless_return_path_hash.rb +39 -0
- data/vendor/spinel/test/unless_return_path_hash.rb.expected +6 -0
- data/vendor/spinel/test/user_class_aset_dispatch.rb +75 -0
- data/vendor/spinel/test/user_class_aset_dispatch.rb.expected +3 -0
- data/vendor/spinel/test/value_type_tuple_gc_scan.rb +28 -0
- data/vendor/spinel/test/value_type_tuple_gc_scan.rb.expected +2 -0
- data/vendor/spinel/test/values_at.rb +19 -0
- data/vendor/spinel/test/values_at.rb.expected +4 -0
- data/vendor/spinel/test/volatile_strip_skips_coerced_arg.expected +1 -0
- data/vendor/spinel/test/volatile_strip_skips_coerced_arg.rb +30 -0
- data/vendor/spinel/test/warn_kernel.rb +13 -0
- data/vendor/spinel/test/warn_kernel.rb.expected +3 -0
- data/vendor/spinel/test/warn_unresolved_call_context.rb +20 -0
- data/vendor/spinel/test/when_splat_rational_complex.rb +30 -0
- data/vendor/spinel/test/when_splat_rational_complex.rb.expected +6 -0
- data/vendor/spinel/test/yield_call_assigned_return.rb +41 -0
- data/vendor/spinel/test/yield_call_assigned_return.rb.expected +6 -0
- data/vendor/spinel/test/yield_typed_hash_block_local.rb +41 -0
- data/vendor/spinel/test/yield_typed_hash_block_local.rb.expected +2 -0
- data/vendor/spinel/test/yield_value_return.rb +52 -0
- data/vendor/spinel/test/yield_value_return.rb.expected +8 -0
- data/vendor/spinel/test/yield_value_returns_from_method.expected +6 -0
- data/vendor/spinel/test/yield_value_returns_from_method.rb +27 -0
- data/vendor/spinel/tools/fast-bootstrap +74 -0
- metadata +1326 -279
- data/vendor/spinel/test/alias_method.rb +0 -28
- data/vendor/spinel/test/alias_method.rb.expected +0 -5
- data/vendor/spinel/test/and_node_poly_operand.rb +0 -24
- data/vendor/spinel/test/array_3d_nested.rb +0 -48
- data/vendor/spinel/test/array_clear_typed.rb +0 -40
- data/vendor/spinel/test/array_clear_typed.rb.expected +0 -7
- data/vendor/spinel/test/array_concat.rb +0 -18
- data/vendor/spinel/test/array_concat.rb.expected +0 -2
- data/vendor/spinel/test/array_each_with_object.rb +0 -17
- data/vendor/spinel/test/array_flat_map.rb +0 -16
- data/vendor/spinel/test/array_flat_map.rb.expected +0 -2
- data/vendor/spinel/test/array_keyed_hash_int_array_eql.rb +0 -29
- data/vendor/spinel/test/array_keyed_hash_int_array_eql.rb.expected +0 -6
- data/vendor/spinel/test/array_method_name_clash.rb +0 -15
- data/vendor/spinel/test/array_new_block_typed_container.rb +0 -37
- data/vendor/spinel/test/array_new_block_typed_container.rb.expected +0 -7
- data/vendor/spinel/test/array_new_empty_inner_deferred.rb +0 -47
- data/vendor/spinel/test/array_new_empty_inner_deferred.rb.expected +0 -8
- data/vendor/spinel/test/array_partition_gc.rb +0 -20
- data/vendor/spinel/test/array_partition_gc.rb.expected +0 -3
- data/vendor/spinel/test/array_plus.rb +0 -18
- data/vendor/spinel/test/array_plus.rb.expected +0 -2
- data/vendor/spinel/test/array_rotate_bang.rb +0 -54
- data/vendor/spinel/test/array_rotate_bang.rb.expected +0 -34
- data/vendor/spinel/test/array_shuffle_ptr.rb +0 -11
- data/vendor/spinel/test/attr_writer_poly_box.rb +0 -24
- data/vendor/spinel/test/attr_writer_poly_no_double_eval.rb +0 -29
- data/vendor/spinel/test/attr_writer_poly_no_double_eval.rb.expected +0 -3
- data/vendor/spinel/test/attr_writer_returns_rhs.rb +0 -23
- data/vendor/spinel/test/auto_unbox_keeps_int_slot.rb +0 -38
- data/vendor/spinel/test/auto_unbox_keeps_int_slot.rb.expected +0 -3
- data/vendor/spinel/test/auto_unbox_poly_to_int_local.rb +0 -36
- data/vendor/spinel/test/auto_unbox_poly_to_int_local.rb.expected +0 -2
- data/vendor/spinel/test/bare_return_in_cls_method.rb +0 -46
- data/vendor/spinel/test/bare_return_in_cls_method.rb.expected +0 -2
- data/vendor/spinel/test/bare_return_in_poly_method.rb +0 -26
- data/vendor/spinel/test/bare_return_in_poly_method.rb.expected +0 -2
- data/vendor/spinel/test/bound_method_array.rb +0 -22
- data/vendor/spinel/test/bound_method_array.rb.expected +0 -4
- data/vendor/spinel/test/bound_method_basic.rb +0 -27
- data/vendor/spinel/test/bound_method_basic.rb.expected +0 -2
- data/vendor/spinel/test/call_op_write.rb +0 -51
- data/vendor/spinel/test/call_op_write.rb.expected +0 -11
- data/vendor/spinel/test/chained_attr_setter.rb +0 -55
- data/vendor/spinel/test/chained_ivar_op_assign_emits_inner_write.rb +0 -28
- data/vendor/spinel/test/chained_ivar_op_assign_emits_inner_write.rb.expected +0 -3
- data/vendor/spinel/test/chained_ivar_write_split.rb +0 -26
- data/vendor/spinel/test/chained_ivar_write_split.rb.expected +0 -3
- data/vendor/spinel/test/chained_ivar_write_subclass.rb +0 -26
- data/vendor/spinel/test/chained_ivar_write_subclass.rb.expected +0 -2
- data/vendor/spinel/test/chained_or_assign_collection_array_nested.rb +0 -32
- data/vendor/spinel/test/chained_or_assign_collection_array_nested.rb.expected +0 -3
- data/vendor/spinel/test/chained_or_assign_collection_element.rb +0 -29
- data/vendor/spinel/test/chained_or_assign_collection_element.rb.expected +0 -2
- data/vendor/spinel/test/chained_or_assign_collection_poly_array.rb +0 -25
- data/vendor/spinel/test/chained_or_assign_collection_poly_array.rb.expected +0 -3
- data/vendor/spinel/test/chained_or_assign_collection_str_keys.rb +0 -24
- data/vendor/spinel/test/chained_or_assign_collection_str_keys.rb.expected +0 -3
- data/vendor/spinel/test/class_constant_sym_array.rb +0 -19
- data/vendor/spinel/test/class_var_write.rb +0 -19
- data/vendor/spinel/test/cls_ivar_type_parent_defer.rb +0 -32
- data/vendor/spinel/test/cls_method_object.rb +0 -31
- data/vendor/spinel/test/cls_method_object.rb.expected +0 -2
- data/vendor/spinel/test/comparable.rb +0 -21
- data/vendor/spinel/test/comparable.rb.expected +0 -5
- data/vendor/spinel/test/default_argv_narrows_from_string_call_site.rb +0 -32
- data/vendor/spinel/test/each_poly_recv_block_auto_splat.rb +0 -43
- data/vendor/spinel/test/each_poly_recv_block_auto_splat.rb.expected +0 -2
- data/vendor/spinel/test/each_with_object_seed_shadow.rb +0 -14
- data/vendor/spinel/test/each_with_object_seed_shadow.rb.expected +0 -4
- data/vendor/spinel/test/empty_hash_ivar_string_value.rb +0 -51
- data/vendor/spinel/test/empty_hash_ivar_string_value.rb.expected +0 -4
- data/vendor/spinel/test/ensure_raise_overrides_body_raise.rb +0 -19
- data/vendor/spinel/test/ensure_raise_overrides_body_raise.rb.expected +0 -1
- data/vendor/spinel/test/ensure_runs_on_raise.rb +0 -32
- data/vendor/spinel/test/ensure_runs_on_raise.rb.expected +0 -3
- data/vendor/spinel/test/ensure_runs_on_raise_nested.rb +0 -38
- data/vendor/spinel/test/ensure_runs_on_raise_nested.rb.expected +0 -4
- data/vendor/spinel/test/ensure_runs_on_return_from_rescue.rb +0 -26
- data/vendor/spinel/test/ensure_runs_on_return_from_rescue.rb.expected +0 -2
- data/vendor/spinel/test/ensure_runs_on_return_nested.rb +0 -37
- data/vendor/spinel/test/ensure_runs_on_return_nested.rb.expected +0 -3
- data/vendor/spinel/test/enumerable.rb +0 -19
- data/vendor/spinel/test/enumerable.rb.expected +0 -2
- data/vendor/spinel/test/exceptions.rb +0 -34
- data/vendor/spinel/test/exceptions.rb.expected +0 -4
- data/vendor/spinel/test/fiber_ivar_persists_across_yield.rb +0 -22
- data/vendor/spinel/test/fiber_ivar_persists_across_yield.rb.expected +0 -3
- data/vendor/spinel/test/fiber_yield_across_method_call.rb +0 -28
- data/vendor/spinel/test/fiber_yield_across_method_call.rb.expected +0 -3
- data/vendor/spinel/test/file_class_methods_int_recv.rb +0 -20
- data/vendor/spinel/test/file_class_methods_int_recv.rb.expected +0 -3
- data/vendor/spinel/test/float_array_sort.rb +0 -18
- data/vendor/spinel/test/float_array_sort.rb.expected +0 -8
- data/vendor/spinel/test/forward_call_class_method_inherited_init.rb +0 -36
- data/vendor/spinel/test/forward_call_class_method_inherited_init.rb.expected +0 -1
- data/vendor/spinel/test/forward_call_class_method_inherited_init_int_array.rb +0 -32
- data/vendor/spinel/test/forward_call_class_method_inherited_init_obj.rb +0 -41
- data/vendor/spinel/test/forward_call_class_method_inherited_init_obj.rb.expected +0 -1
- data/vendor/spinel/test/forward_call_class_method_int_array.rb +0 -26
- data/vendor/spinel/test/forward_call_class_method_int_array.rb.expected +0 -1
- data/vendor/spinel/test/forward_call_class_method_nested.rb +0 -35
- data/vendor/spinel/test/forward_call_class_method_obj.rb +0 -36
- data/vendor/spinel/test/forward_call_class_method_obj.rb.expected +0 -1
- data/vendor/spinel/test/forward_call_param_type_int_array.rb +0 -34
- data/vendor/spinel/test/forward_call_param_type_int_array.rb.expected +0 -1
- data/vendor/spinel/test/forward_call_param_type_obj.rb +0 -38
- data/vendor/spinel/test/forward_call_param_type_obj.rb.expected +0 -1
- data/vendor/spinel/test/gc_save_double_in_new.rb +0 -13
- data/vendor/spinel/test/gc_save_double_in_new.rb.expected +0 -1
- data/vendor/spinel/test/gc_scan_skip_inherited_ivar.rb +0 -54
- data/vendor/spinel/test/gc_scan_skip_inherited_ivar.rb.expected +0 -2
- data/vendor/spinel/test/heterogeneous_dispatch_int_return_narrow.rb +0 -46
- data/vendor/spinel/test/heterogeneous_dispatch_int_return_narrow.rb.expected +0 -2
- data/vendor/spinel/test/if_static_false_skips_dead_branch_compile.rb +0 -50
- data/vendor/spinel/test/if_static_false_skips_dead_branch_compile.rb.expected +0 -3
- data/vendor/spinel/test/implicit_self_param_poly.rb +0 -17
- data/vendor/spinel/test/implicit_self_param_poly.rb.expected +0 -1
- data/vendor/spinel/test/inherit.rb +0 -52
- data/vendor/spinel/test/inherit.rb.expected +0 -7
- data/vendor/spinel/test/inherited_method_param_widen.rb +0 -49
- data/vendor/spinel/test/init_locals.rb +0 -43
- data/vendor/spinel/test/init_locals.rb.expected +0 -3
- data/vendor/spinel/test/initialize_param_poly_call_sites.rb +0 -20
- data/vendor/spinel/test/initialize_param_poly_call_sites.rb.expected +0 -2
- data/vendor/spinel/test/initialize_param_through_call.rb +0 -15
- data/vendor/spinel/test/initialize_void_wrapper_gc_save.rb +0 -40
- data/vendor/spinel/test/int_array_replace_expr.rb +0 -23
- data/vendor/spinel/test/int_array_replace_expr.rb.expected +0 -7
- data/vendor/spinel/test/intarray_slice_assign_from_intarray_ptr_array_first.rb +0 -25
- data/vendor/spinel/test/intarray_slice_assign_from_intarray_ptr_array_first.rb.expected +0 -1
- data/vendor/spinel/test/integer_div.rb +0 -21
- data/vendor/spinel/test/integer_div.rb.expected +0 -10
- data/vendor/spinel/test/introspect.rb +0 -35
- data/vendor/spinel/test/introspect.rb.expected +0 -11
- data/vendor/spinel/test/issue176_empty_hash_default.rb +0 -34
- data/vendor/spinel/test/issue176_empty_hash_default.rb.expected +0 -3
- data/vendor/spinel/test/issue204_user_find_fetch.rb +0 -25
- data/vendor/spinel/test/issue204_user_find_fetch.rb.expected +0 -5
- data/vendor/spinel/test/issue207_factory_pattern.rb +0 -35
- data/vendor/spinel/test/issue207_factory_pattern.rb.expected +0 -1
- data/vendor/spinel/test/issue207_full_repro.rb +0 -52
- data/vendor/spinel/test/issue207_full_repro.rb.expected +0 -1
- data/vendor/spinel/test/issue208_inherited_class_method.rb +0 -24
- data/vendor/spinel/test/issue208_inherited_class_method.rb.expected +0 -4
- data/vendor/spinel/test/issue219_aref_chain.rb +0 -36
- data/vendor/spinel/test/issue219_aref_chain.rb.expected +0 -5
- data/vendor/spinel/test/issue235_chain_tail_widening.rb +0 -48
- data/vendor/spinel/test/issue235_chain_tail_widening.rb.expected +0 -5
- data/vendor/spinel/test/ivar_and_write_basic.rb +0 -34
- data/vendor/spinel/test/ivar_and_write_basic.rb.expected +0 -5
- data/vendor/spinel/test/ivar_c_keyword.rb +0 -14
- data/vendor/spinel/test/ivar_c_keyword.rb.expected +0 -1
- data/vendor/spinel/test/ivar_float_array.rb +0 -59
- data/vendor/spinel/test/ivar_float_array.rb.expected +0 -11
- data/vendor/spinel/test/ivar_op_assign_bitwise_and_shift.rb +0 -22
- data/vendor/spinel/test/ivar_op_assign_bitwise_and_shift.rb.expected +0 -6
- data/vendor/spinel/test/ivar_or_write_basic.rb +0 -57
- data/vendor/spinel/test/ivar_or_write_basic.rb.expected +0 -9
- data/vendor/spinel/test/ivar_writer_heterogeneity.rb +0 -34
- data/vendor/spinel/test/ivar_writer_heterogeneity.rb.expected +0 -2
- data/vendor/spinel/test/known_constants.rb +0 -25
- data/vendor/spinel/test/known_constants.rb.expected +0 -4
- data/vendor/spinel/test/kw_nil_default_string_call.rb +0 -6
- data/vendor/spinel/test/kw_nil_default_string_call.rb.expected +0 -2
- data/vendor/spinel/test/map_array_block_result.rb +0 -29
- data/vendor/spinel/test/map_array_block_result.rb.expected +0 -2
- data/vendor/spinel/test/map_block_returns_nested_array.rb +0 -53
- data/vendor/spinel/test/map_empty_block.rb +0 -26
- data/vendor/spinel/test/map_empty_block.rb.expected +0 -6
- data/vendor/spinel/test/map_range_recv_array_block.rb +0 -31
- data/vendor/spinel/test/method_param_unify_to_poly.rb +0 -40
- data/vendor/spinel/test/method_param_unify_to_poly.rb.expected +0 -2
- data/vendor/spinel/test/multi_arg_block_call.rb +0 -56
- data/vendor/spinel/test/multi_arg_block_call.rb.expected +0 -5
- data/vendor/spinel/test/multi_assign_ivar.rb +0 -33
- data/vendor/spinel/test/multi_assign_ivar.rb.expected +0 -1
- data/vendor/spinel/test/multi_write_const.rb +0 -36
- data/vendor/spinel/test/multi_write_const.rb.expected +0 -9
- data/vendor/spinel/test/multi_write_from_poly_recv.rb +0 -34
- data/vendor/spinel/test/multi_write_ivar.rb +0 -34
- data/vendor/spinel/test/multi_write_ivar.rb.expected +0 -3
- data/vendor/spinel/test/multi_write_ivar_widening.rb +0 -10
- data/vendor/spinel/test/multi_write_ivar_widening.rb.expected +0 -2
- data/vendor/spinel/test/multi_write_map_block.rb +0 -31
- data/vendor/spinel/test/multi_write_map_block.rb.expected +0 -7
- data/vendor/spinel/test/multi_write_setter.rb +0 -28
- data/vendor/spinel/test/multi_write_setter.rb.expected +0 -3
- data/vendor/spinel/test/multi_write_typed_array_dispatch.rb +0 -44
- data/vendor/spinel/test/multi_write_typed_array_dispatch.rb.expected +0 -3
- data/vendor/spinel/test/nested_class_in_class.rb +0 -38
- data/vendor/spinel/test/nested_class_in_class.rb.expected +0 -3
- data/vendor/spinel/test/no_attr_write_shortcut_complex.rb +0 -33
- data/vendor/spinel/test/no_attr_write_shortcut_complex.rb.expected +0 -3
- data/vendor/spinel/test/no_attr_write_shortcut_multi.rb +0 -38
- data/vendor/spinel/test/no_attr_write_shortcut_multi.rb.expected +0 -4
- data/vendor/spinel/test/no_keywords_param.rb +0 -15
- data/vendor/spinel/test/no_keywords_param.rb.expected +0 -2
- data/vendor/spinel/test/obj_array.rb +0 -26
- data/vendor/spinel/test/obj_array.rb.expected +0 -6
- data/vendor/spinel/test/obj_class_returns_string.rb +0 -24
- data/vendor/spinel/test/obj_class_returns_string.rb.expected +0 -2
- data/vendor/spinel/test/optional_string_param_method.rb +0 -11
- data/vendor/spinel/test/optional_string_param_method.rb.expected +0 -3
- data/vendor/spinel/test/poly_array_literal_callnode_typed_elem.rb +0 -37
- data/vendor/spinel/test/poly_array_literal_callnode_typed_elem.rb.expected +0 -9
- data/vendor/spinel/test/poly_array_slot_literal.rb +0 -41
- data/vendor/spinel/test/poly_array_slot_sized_default.rb +0 -33
- data/vendor/spinel/test/poly_box_int_array.rb +0 -13
- data/vendor/spinel/test/poly_box_int_array.rb.expected +0 -2
- data/vendor/spinel/test/poly_dispatch_args_ret.rb +0 -45
- data/vendor/spinel/test/poly_dispatch_args_ret.rb.expected +0 -4
- data/vendor/spinel/test/poly_dispatch_arity_padding.rb +0 -36
- data/vendor/spinel/test/poly_dispatch_arity_truncate.rb +0 -45
- data/vendor/spinel/test/poly_hash_literal_from_ivar.rb +0 -47
- data/vendor/spinel/test/poly_hash_literal_from_ivar.rb.expected +0 -5
- data/vendor/spinel/test/poly_int_arith_auto_unify.rb +0 -26
- data/vendor/spinel/test/poly_int_arith_auto_unify.rb.expected +0 -4
- data/vendor/spinel/test/poly_int_bit_index.rb +0 -50
- data/vendor/spinel/test/poly_int_bit_index.rb.expected +0 -14
- data/vendor/spinel/test/poly_or_returns_value.rb +0 -13
- data/vendor/spinel/test/poly_or_returns_value.rb.expected +0 -4
- data/vendor/spinel/test/poly_recv_bracket_assign.rb +0 -31
- data/vendor/spinel/test/poly_recv_bracket_assign.rb.expected +0 -1
- data/vendor/spinel/test/poly_recv_each.rb +0 -35
- data/vendor/spinel/test/poly_recv_each.rb.expected +0 -7
- data/vendor/spinel/test/poly_shl_array_push_dispatch.rb +0 -35
- data/vendor/spinel/test/poly_shl_array_push_dispatch.rb.expected +0 -5
- data/vendor/spinel/test/proc_hash_value.rb +0 -27
- data/vendor/spinel/test/regexp.rb +0 -34
- data/vendor/spinel/test/regexp.rb.expected +0 -12
- data/vendor/spinel/test/reopen_class.rb +0 -33
- data/vendor/spinel/test/reopen_class.rb.expected +0 -5
- data/vendor/spinel/test/runtime_widen_int_to_poly_array.rb +0 -27
- data/vendor/spinel/test/runtime_widen_int_to_poly_array.rb.expected +0 -3
- data/vendor/spinel/test/sample_user_method.rb +0 -20
- data/vendor/spinel/test/scan_ivars_inherited_slot.rb +0 -32
- data/vendor/spinel/test/scan_new_calls_class_scope.rb +0 -35
- data/vendor/spinel/test/send.rb +0 -15
- data/vendor/spinel/test/send.rb.expected +0 -2
- data/vendor/spinel/test/stdlib.rb +0 -28
- data/vendor/spinel/test/stdlib.rb.expected +0 -5
- data/vendor/spinel/test/strip_nullable_int_cast.rb +0 -24
- data/vendor/spinel/test/super_arg_cross_class_cast.rb +0 -39
- data/vendor/spinel/test/super_arg_cross_class_cast.rb.expected +0 -2
- data/vendor/spinel/test/super_forwarding.rb +0 -25
- data/vendor/spinel/test/super_forwarding.rb.expected +0 -3
- data/vendor/spinel/test/sym_case.rb +0 -15
- data/vendor/spinel/test/sym_case.rb.expected +0 -4
- data/vendor/spinel/test/symbol_ivar_reassign.rb +0 -25
- data/vendor/spinel/test/symbol_ivar_reassign.rb.expected +0 -2
- data/vendor/spinel/test/toplevel_ivar_array.rb +0 -19
- data/vendor/spinel/test/toplevel_ivar_array.rb.expected +0 -4
- data/vendor/spinel/test/unbox_poly_index_in_dispatch.rb +0 -20
- data/vendor/spinel/test/unbox_poly_index_in_dispatch.rb.expected +0 -1
- data/vendor/spinel/test/undef.rb +0 -33
- data/vendor/spinel/test/undef.rb.expected +0 -2
- data/vendor/spinel/test/user_method_named_like_mutator.rb +0 -30
- data/vendor/spinel/test/user_method_named_like_mutator.rb.expected +0 -2
- data/vendor/spinel/test/value_type_ctor_gc_save.rb +0 -46
- data/vendor/spinel/test/value_type_ctor_gc_save.rb.expected +0 -3
- data/vendor/spinel/test/widen_int_obj_to_poly.rb +0 -29
- /data/vendor/spinel/test/{multi_write_from_poly_recv.rb.expected → bare_arg_in_module_body.rb.expected} +0 -0
- /data/vendor/spinel/test/{default_argv_narrows_from_string_call_site.rb.expected → cvar_method_first_assign.rb.expected} +0 -0
- /data/vendor/spinel/test/{array_each_with_object.rb.expected → empty_array_push_container_elem.rb.expected} +0 -0
- /data/vendor/spinel/test/{class_var_write.rb.expected → ffi_array_specs_decl.rb.expected} +0 -0
- /data/vendor/spinel/test/{array_method_name_clash.rb.expected → ffi_int_arg_poly_value.rb.expected} +0 -0
- /data/vendor/spinel/test/{initialize_void_wrapper_gc_save.rb.expected → ffi_ptr_array.rb.expected} +0 -0
- /data/vendor/spinel/test/{inherited_method_param_widen.rb.expected → ffi_ptr_int_literal.rb.expected} +0 -0
- /data/vendor/spinel/test/{forward_call_class_method_nested.rb.expected → ffi_str_arg_poly_value.rb.expected} +0 -0
- /data/vendor/spinel/test/{proc_hash_value.rb.expected → file_write_at_tail_position.rb.expected} +0 -0
- /data/vendor/spinel/test/{array_shuffle_ptr.rb.expected → hash_key_via_intermediate_local.rb.expected} +0 -0
- /data/vendor/spinel/test/{forward_call_class_method_inherited_init_int_array.rb.expected → hash_param_widen_from_callee_slot.rb.expected} +0 -0
- /data/vendor/spinel/test/{strip_nullable_int_cast.rb.expected → hash_temp_gc_root.rb.expected} +0 -0
- /data/vendor/spinel/test/{scan_new_calls_class_scope.rb.expected → poly_recv_hash_dup.rb.expected} +0 -0
- /data/vendor/spinel/test/{class_constant_sym_array.rb.expected → respond_to_def_self_method.rb.expected} +0 -0
- /data/vendor/spinel/test/{initialize_param_through_call.rb.expected → warn_unresolved_call_context.rb.expected} +0 -0
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
# Issue #646 修正計画
|
|
2
|
+
|
|
3
|
+
## 現象
|
|
4
|
+
|
|
5
|
+
```ruby
|
|
6
|
+
class App
|
|
7
|
+
def initialize
|
|
8
|
+
APP.something # APP is being initialized RIGHT NOW
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
APP = App.new
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
MRI: `NameError: uninitialized constant App::APP` を init 中に raise。
|
|
15
|
+
spinel: `cst_APP` は `NULL`。read は NULL を返し、`.something` で segfault。
|
|
16
|
+
|
|
17
|
+
reporter の実例 (tep#13) は transitive ケース:
|
|
18
|
+
```
|
|
19
|
+
APP = App.new
|
|
20
|
+
→ App#initialize
|
|
21
|
+
→ PG::Connection.new(...)
|
|
22
|
+
→ ... → Tep::Scheduler.scheduled_context?
|
|
23
|
+
→ Tep::APP.sched_current # APP is still NULL
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
dispatch が compile-time に static resolve した結果、`cst_Tep_APP->iv_sched_current` が直接 emit され、NULL deref で SEGV。
|
|
27
|
+
|
|
28
|
+
## 現在の対応 (765b984)
|
|
29
|
+
|
|
30
|
+
直接 shape (`Class#initialize` が `CONST` を直接 read、ただし `CONST = Class.new` 形式) を compile-time に detect して clearer warning を emit。Runtime crash の plug は無し。
|
|
31
|
+
|
|
32
|
+
## ゴール
|
|
33
|
+
|
|
34
|
+
issue の expected behaviour:
|
|
35
|
+
1. **Best**: MRI 互換の `NameError` raise (option 1)
|
|
36
|
+
2. **Acceptable**: `nil` を返して method dispatch で NoMethodError (option 2)
|
|
37
|
+
3. **現状 / Worst**: silent partial-init pointer / SEGV (option 3)
|
|
38
|
+
|
|
39
|
+
option 1 を目指す。
|
|
40
|
+
|
|
41
|
+
## 修正案: per-const in-progress flag + read-side guard
|
|
42
|
+
|
|
43
|
+
### Phase 1: 直接 shape (`<C>` init reads `<X>` where `<X> = <C>.new`)
|
|
44
|
+
|
|
45
|
+
#### Analyzer 側 (spinel_analyze.rb)
|
|
46
|
+
|
|
47
|
+
新しい table `@const_init_class`:
|
|
48
|
+
- 要素: `@const_expr_ids[i]` が `<Class>.new(...)` shape なら `<Class>` の名前。そうでなければ `""`。
|
|
49
|
+
- IR export: `SA @const_init_class N value;value;...`
|
|
50
|
+
|
|
51
|
+
```ruby
|
|
52
|
+
def detect_const_init_classes
|
|
53
|
+
@const_init_class = "".split(",")
|
|
54
|
+
i = 0
|
|
55
|
+
while i < @const_expr_ids.length
|
|
56
|
+
init_cls = ""
|
|
57
|
+
eid = @const_expr_ids[i]
|
|
58
|
+
if eid >= 0 && @nd_type[eid] == "CallNode" && @nd_name[eid] == "new"
|
|
59
|
+
recv = @nd_receiver[eid]
|
|
60
|
+
if recv >= 0 && @nd_type[recv] == "ConstantReadNode"
|
|
61
|
+
init_cls = @nd_name[recv]
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
@const_init_class.push(init_cls)
|
|
65
|
+
i = i + 1
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
`generate_code` 内の早めのタイミング (precompute_all_scope_decls 後) で 1 回呼び出し。
|
|
71
|
+
|
|
72
|
+
#### Runtime 側 (lib/sp_runtime.h)
|
|
73
|
+
|
|
74
|
+
`sp_raise_cls("NameError", msg)` は既存。再利用する。新しいヘルパは不要。
|
|
75
|
+
|
|
76
|
+
#### Codegen 側 (spinel_codegen.rb)
|
|
77
|
+
|
|
78
|
+
1. **Per-const in-progress flag emit** (`emit_const_init` 周辺):
|
|
79
|
+
- `@const_init_class[i]` が空でない const に対し、`static int sp_init_in_progress_<X> = 0;` を const 宣言と一緒に emit。
|
|
80
|
+
|
|
81
|
+
2. **Const init assignment を guard で包む** (`emit_const_init` 内):
|
|
82
|
+
```c
|
|
83
|
+
sp_init_in_progress_X = 1;
|
|
84
|
+
cst_X = sp_C_new();
|
|
85
|
+
sp_init_in_progress_X = 0;
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
3. **Const read site で in-progress check** (`compile_expr` ConstantReadNode arm):
|
|
89
|
+
- resolve した const X の `@const_init_class[ci]` が空でない場合のみ、wrap で emit:
|
|
90
|
+
```c
|
|
91
|
+
((sp_init_in_progress_X) ? (sp_raise_cls("NameError", "uninitialized constant X"), (sp_C *)NULL) : cst_X)
|
|
92
|
+
```
|
|
93
|
+
- sp_raise_cls 後の cast は dead code だが C compile を通すために必要。
|
|
94
|
+
|
|
95
|
+
### Phase 2 (任意 - 最適化)
|
|
96
|
+
|
|
97
|
+
- 完全に static に "init 経路外" と判明する read site (e.g., main の APP = App.new の後 emit される statements) では in-progress check を skip。
|
|
98
|
+
- これにより hot path の overhead をゼロにできる (call graph 解析が必要)。
|
|
99
|
+
- Phase 1 だけでも MRI 互換 + 性能影響は branch 1 つ per const read のみ。許容範囲。
|
|
100
|
+
|
|
101
|
+
## 影響範囲
|
|
102
|
+
|
|
103
|
+
| ファイル | 変更内容 | 行数概算 |
|
|
104
|
+
|---|---|---|
|
|
105
|
+
| spinel_analyze.rb | `detect_const_init_classes` 追加 + `generate_code` 呼び出し + IR export | ~30 |
|
|
106
|
+
| spinel_codegen.rb | `@const_init_class` ロード + const decl で flag emit + assign を guard + read 側 wrap | ~50 |
|
|
107
|
+
| lib/sp_runtime.h | 変更不要 (sp_raise_cls 再利用) | 0 |
|
|
108
|
+
| test/ | 新規 regression test (NameError raise + rescue) | ~20 |
|
|
109
|
+
|
|
110
|
+
## 検証
|
|
111
|
+
|
|
112
|
+
```ruby
|
|
113
|
+
# test/const_self_ref_raises_name_error.rb
|
|
114
|
+
class App
|
|
115
|
+
def initialize
|
|
116
|
+
APP # ← raises NameError
|
|
117
|
+
rescue NameError => e
|
|
118
|
+
puts "caught: " + e.message
|
|
119
|
+
end
|
|
120
|
+
end
|
|
121
|
+
APP = App.new
|
|
122
|
+
puts "after"
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
Expected:
|
|
126
|
+
```
|
|
127
|
+
caught: uninitialized constant APP
|
|
128
|
+
after
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
## エッジケース
|
|
132
|
+
|
|
133
|
+
1. **Transitive (`APP = build_app()` where build_app does `App.new`)**: Phase 1 では Catch しない。`@const_init_class[APP]` は `""` (build_app は CallNode `new` でも recv が ConstantReadNode でもない)。Phase 2 でも難しい (call graph + dispatch resolve が必要)。Reporter の workaround で対応可能。
|
|
134
|
+
|
|
135
|
+
2. **Class hierarchy: `APP = SubApp.new` で SubApp < App**: `@const_init_class[APP] = "SubApp"`。SubApp#initialize 内 + 継承された App#initialize 内の APP read は guard 対象。inheritance walk を `@const_init_class` のチェックに加える必要あり。Phase 1 では SubApp の直接 init のみ catch、parent init は miss する可能性 — phase 1.5 で追加するか。
|
|
136
|
+
|
|
137
|
+
3. **Module const (`APP = App.new` inside `module Tep`)**: const 名は `Tep_APP`。`@const_init_class` は qualified 名で record。標準パスで動く。
|
|
138
|
+
|
|
139
|
+
4. **`||=` re-init**: `APP ||= App.new` (rare)。`@nd_type[eid]` が ConstantOrWriteNode と違う。最初の `=` パスでのみ guard、`||=` は skip。妥当。
|
|
140
|
+
|
|
141
|
+
5. **Setter on partially-init recv (`APP.foo = bar`)**: const recv が NULL の attr_writer dispatch。setter は usually `cst_APP->iv_foo = ...` を emit → NULL deref で SEGV。Guard の wrap がここでも必要。compile_call_expr の `[]=` / attr_writer setter dispatch でも cst_X recv detect が要る。
|
|
142
|
+
|
|
143
|
+
## 段階的な実装
|
|
144
|
+
|
|
145
|
+
Phase 1 で issue #646 のメインケース (直接 shape) を MRI 互換に raise する。
|
|
146
|
+
Phase 1.5 で inheritance walk と setter path を追加。
|
|
147
|
+
Phase 2 (任意) で call graph による guard 削減。
|
|
148
|
+
Transitive case (build_app 経由) は inherently 難しく、document する方が pragmatic。
|
|
149
|
+
|
|
150
|
+
## 実装順序
|
|
151
|
+
|
|
152
|
+
1. `detect_const_init_classes` 追加、IR export 動作確認
|
|
153
|
+
2. Codegen で `@const_init_class` をロード、in-progress flag を decl
|
|
154
|
+
3. Const assignment を guard で包む emit
|
|
155
|
+
4. Const read site の wrap
|
|
156
|
+
5. Regression test 追加
|
|
157
|
+
6. setter path 追加 (Phase 1.5)
|
|
158
|
+
7. inheritance walk (Phase 1.5)
|
|
159
|
+
8. push + close #646
|
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
# `--int-overflow=promote` 完全動作計画
|
|
2
|
+
|
|
3
|
+
## ゴール
|
|
4
|
+
|
|
5
|
+
`SPINEL_INT_OVERFLOW=promote` (`-DSP_INT_OVERFLOW_MODE_PROMOTE`) で:
|
|
6
|
+
- `make test` 全 pass
|
|
7
|
+
- `make bench` 全 pass
|
|
8
|
+
- `make optcarrot` PASS + checksum 59662 (Makefile から `--int-overflow=wrap` pin 除去)
|
|
9
|
+
|
|
10
|
+
## 現状 (master HEAD, commit `bc7e1a1`)
|
|
11
|
+
|
|
12
|
+
| Target | promote 結果 | 主要 error |
|
|
13
|
+
|---|---|---|
|
|
14
|
+
| `make test` | 557 / 52 fail / 22 error | 23 errors の多くは bit-ops / typed-call-args poly→bigint |
|
|
15
|
+
| `make bench` | 36 / 7 fail / 14 error | bit-ops, IntArray index with bigint, FFI float arg |
|
|
16
|
+
| `make optcarrot` (--int-overflow=promote) | C compile failed | 72 errors、 80%以上が bit-op (`&`, `\|`, `^`, `<<`, `>>`, `~`) |
|
|
17
|
+
|
|
18
|
+
## Error バケット分類
|
|
19
|
+
|
|
20
|
+
### Bucket A: Bit operators on `sp_Bigint *` (LARGEST — optcarrot の 80%)
|
|
21
|
+
|
|
22
|
+
```
|
|
23
|
+
error: invalid operands to binary & (have 'sp_Bigint *' and 'long long int')
|
|
24
|
+
error: wrong type argument to bit-complement
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Ruby の `a & b`, `a | b`, `a ^ b`, `a << n`, `a >> n`, `~a` で operands が bigint の時 C 演算子が使えない。 optcarrot は CPU emulator なので bit-op が大量。
|
|
28
|
+
|
|
29
|
+
**修正**: runtime helpers + codegen 分岐:
|
|
30
|
+
- `sp_bigint_and(a, b)`, `_or`, `_xor`, `_shl`, `_shr`, `_not`, `_inv`
|
|
31
|
+
- `compile_operator_expr` / `compile_bitop_expr` で bigint operands を検出 → helper call emit
|
|
32
|
+
- 混在 (bigint + int_literal) → 一方を unbox / box して揃える
|
|
33
|
+
|
|
34
|
+
### Bucket B: Builtin container helpers with bigint args
|
|
35
|
+
|
|
36
|
+
```
|
|
37
|
+
sp_IntArray_push(a, bigint_lv) ← needs sp_bigint_to_int
|
|
38
|
+
sp_IntArray_get(a, bigint_idx)
|
|
39
|
+
sp_FloatArray_set(a, idx, bigint_val) ← unbox + cast to mrb_float
|
|
40
|
+
sp_IntStrHash_set(h, bigint_key, val)
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
memory に partial fix 言及あり。 残るのは `_push` / `_get` / `_set` の特定 site と FloatArray の bigint→float cast。
|
|
44
|
+
|
|
45
|
+
### Bucket C: 反復 / index で bigint
|
|
46
|
+
|
|
47
|
+
```
|
|
48
|
+
range.each { |i| arr[i] = ... } ← i bigint、 arr[i] で unbox 必要
|
|
49
|
+
n.times { |i| ... }
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
block param が bigint で IntArray index 等に使われる shape。 既に部分対応済みだが取りこぼし。
|
|
53
|
+
|
|
54
|
+
### Bucket D: FFI / typed user method call の poly → bigint coerce
|
|
55
|
+
|
|
56
|
+
```
|
|
57
|
+
sp_Counter_cls_double(poly_val) ← param bigint、 arg poly
|
|
58
|
+
sp_mandelbrot(bigint, bigint) ← FFI param float、 arg bigint
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
`compile_typed_call_args` で poly arg → bigint param の coerce を追加 (mirror of #639 IVW unbox)。 FFI :float / :int arg は bigint で `sp_bigint_to_int` → cast。
|
|
62
|
+
|
|
63
|
+
### Bucket E: Bigint slot init / return from poly
|
|
64
|
+
|
|
65
|
+
```
|
|
66
|
+
sp_Bigint * x = poly_expr ← .v.p extract 必要
|
|
67
|
+
return poly_expr (function return bigint)
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
`compile_expr_for_expected_type` の poly→bigint arm が無い / 不完全。
|
|
71
|
+
|
|
72
|
+
### Bucket F: Bigint → string 変換漏れ
|
|
73
|
+
|
|
74
|
+
```
|
|
75
|
+
puts bigint_val
|
|
76
|
+
"prefix" + bigint_val
|
|
77
|
+
sp_int_to_s(bigint_val) ← should be sp_bigint_to_s
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
memory に「文字列補間 / str_concat / str << の bigint→string 変換 (sp_bigint_to_s)」とあり partial fix 済み。 残りの emit site を探す。
|
|
81
|
+
|
|
82
|
+
### Bucket G: Test/bench infrastructure issues
|
|
83
|
+
|
|
84
|
+
promote と無関係に表面化する shape:
|
|
85
|
+
- `int_eq_nil_strict` — int slot が bigint 化したので nil check の挙動が変わる
|
|
86
|
+
- `pattern_pin` — pin pattern が int を期待してるが bigint で型不一致
|
|
87
|
+
- `const_self_ref_init_warns` — 出力 format 変化 (`0` vs `0LL`?)
|
|
88
|
+
|
|
89
|
+
これらは個別調査。
|
|
90
|
+
|
|
91
|
+
## Phases (実装順)
|
|
92
|
+
|
|
93
|
+
### Phase 1 — Bit-op support for bigint (大ブロッカー解消)
|
|
94
|
+
|
|
95
|
+
最大の塊。 これで optcarrot の 80% errors が消える。
|
|
96
|
+
|
|
97
|
+
1.1 `lib/sp_runtime.h`: 新 helpers
|
|
98
|
+
- `sp_bigint_and(a, b)`, `_or(a, b)`, `_xor(a, b)` — 既存 GMP wrapper 経由
|
|
99
|
+
- `sp_bigint_shl(a, n)`, `_shr(a, n)` — n は mrb_int
|
|
100
|
+
- `sp_bigint_not(a)` — 1's complement (符号反転 + 1 で signed と同じ)
|
|
101
|
+
|
|
102
|
+
1.2 `lib/sp_bigint.c`: GMP `mpz_and` / `mpz_ior` / `mpz_xor` / `mpz_mul_2exp` / `mpz_fdiv_q_2exp` / `mpz_com` ラップ
|
|
103
|
+
|
|
104
|
+
1.3 `spinel_codegen.rb`:
|
|
105
|
+
- `compile_operator_expr` で `op in {"&", "|", "^", "<<", ">>"}` && (lt == bigint || rt == bigint) → helper
|
|
106
|
+
- `~` の単項 (`compile_call_expr` で recv bigint mname `~`) → `sp_bigint_not`
|
|
107
|
+
- mixed (bigint + int literal): literal を `sp_bigint_new_int` で box して helper、 OR 両方 unbox して C 演算子 → re-box
|
|
108
|
+
|
|
109
|
+
1.4 `optcarrot` で動作確認、 checksum 59662 維持確認
|
|
110
|
+
|
|
111
|
+
期待: optcarrot promote PASS、 test promote +20〜30 cases
|
|
112
|
+
|
|
113
|
+
### Phase 2 — Builtin container helpers の bigint unbox 取りこぼし
|
|
114
|
+
|
|
115
|
+
2.1 `sp_IntArray_push` emit site: arg が bigint なら `sp_bigint_to_int` を wrap
|
|
116
|
+
2.2 `sp_IntArray_get` / `_set` / `_index` 同様
|
|
117
|
+
2.3 `sp_FloatArray_set` の val が bigint なら `(mrb_float)sp_bigint_to_int(...)` で cast
|
|
118
|
+
2.4 `sp_*IntHash_*` で key/val bigint の unbox
|
|
119
|
+
|
|
120
|
+
期待: bench bm_loops_times / bm_matmul / bm_fannkuch PASS。 test promote +10〜15 cases
|
|
121
|
+
|
|
122
|
+
### Phase 3 — Typed user method call の poly→bigint coerce
|
|
123
|
+
|
|
124
|
+
3.1 `compile_typed_call_args` (positional + kwarg):
|
|
125
|
+
- 引数の static type が `poly` で param expected が `bigint` → `(arg).v.p` 経由
|
|
126
|
+
- mirror of #639 の IVW unbox path
|
|
127
|
+
|
|
128
|
+
3.2 FFI :float / :int arg with bigint:
|
|
129
|
+
- `compile_ffi_func_call` で arg が bigint なら `sp_bigint_to_int` → cast
|
|
130
|
+
|
|
131
|
+
期待: nullable_poly_hash_arg_unbox 等 +5 tests、 bm_mandel_term / bm_so_mandelbrot 系 PASS
|
|
132
|
+
|
|
133
|
+
### Phase 4 — Bigint slot init / return from poly
|
|
134
|
+
|
|
135
|
+
4.1 `compile_expr_for_expected_type`: at == "poly" && expected == "bigint" → `(... ).v.p`
|
|
136
|
+
4.2 `compile_return_stmt`: rt == "poly" && method return == "bigint" → 同様 unbox
|
|
137
|
+
|
|
138
|
+
期待: 残 test promote errors +5
|
|
139
|
+
|
|
140
|
+
### Phase 5 — Bigint → string 変換取りこぼし
|
|
141
|
+
|
|
142
|
+
5.1 `puts bigint`, string interpolation `"x=#{bigint}"`, `<<` chain の emit site で bigint operand → `sp_bigint_to_s` 経由
|
|
143
|
+
|
|
144
|
+
期待: bench bm_csv_process / bm_jekyll_lite 系 PASS
|
|
145
|
+
|
|
146
|
+
### Phase 6 — 個別 test failure 調査
|
|
147
|
+
|
|
148
|
+
残 test failures を個別に潰す。 各々小さな shape:
|
|
149
|
+
- `int_eq_nil_strict` — bigint slot で nil compare 挙動
|
|
150
|
+
- `pattern_pin` — pattern matching の bigint scrutinee
|
|
151
|
+
- `const_self_ref_init_warns` — output format 微差
|
|
152
|
+
|
|
153
|
+
期待: test promote 100% pass
|
|
154
|
+
|
|
155
|
+
### Phase 7 — Bench 残り + Makefile 整理
|
|
156
|
+
|
|
157
|
+
7.1 残 bench failures 個別に潰す
|
|
158
|
+
7.2 Makefile から `optcarrot` 用 `--int-overflow=wrap` pin 除去 (or `--int-overflow=$(SPINEL_INT_OVERFLOW)` defaulting to wrap だが promote でも通る)
|
|
159
|
+
|
|
160
|
+
期待: bench promote 100% pass
|
|
161
|
+
|
|
162
|
+
## 検証フロー (各 phase で)
|
|
163
|
+
|
|
164
|
+
```bash
|
|
165
|
+
# default mode は壊さない
|
|
166
|
+
rm -rf build/test-results/
|
|
167
|
+
make -j8 test 2>&1 | tail -2 # 631/0/0 維持
|
|
168
|
+
make optcarrot 2>&1 | tail -3 # checksum 59662 維持
|
|
169
|
+
|
|
170
|
+
# promote mode 進捗
|
|
171
|
+
rm -rf build/test-results/
|
|
172
|
+
SPINEL_INT_OVERFLOW=promote make \
|
|
173
|
+
CFLAGS="-O2 -Wno-all -Wno-unknown-warning-option -Wno-alloc-size-larger-than -DSP_INT_OVERFLOW_MODE_PROMOTE" \
|
|
174
|
+
-j8 test 2>&1 | tail -2
|
|
175
|
+
|
|
176
|
+
SPINEL_INT_OVERFLOW=promote make \
|
|
177
|
+
CFLAGS="-O2 -Wno-all -Wno-unknown-warning-option -Wno-alloc-size-larger-than -DSP_INT_OVERFLOW_MODE_PROMOTE" \
|
|
178
|
+
-j8 bench 2>&1 | tail -2
|
|
179
|
+
|
|
180
|
+
# optcarrot single
|
|
181
|
+
SPINEL_INT_OVERFLOW=promote ./spinel --int-overflow=promote build/optcarrot-single.rb -o /tmp/op_p
|
|
182
|
+
/tmp/op_p
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
## 効果量予想 (累積)
|
|
186
|
+
|
|
187
|
+
| Phase | test | bench | optcarrot |
|
|
188
|
+
|---|---|---|---|
|
|
189
|
+
| 現状 | 557/52/22 | 36/7/14 | C compile fail |
|
|
190
|
+
| 1完了 | ~580/45/15 | ~45/5/7 | **PASS** (checksum 59662) |
|
|
191
|
+
| 2完了 | ~595/40/8 | ~52/3/2 | PASS |
|
|
192
|
+
| 3完了 | ~610/15/4 | ~55/2/0 | PASS |
|
|
193
|
+
| 4完了 | ~620/8/2 | ~56/1/0 | PASS |
|
|
194
|
+
| 5完了 | ~625/5/0 | ~57/0/0 | PASS |
|
|
195
|
+
| 6完了 | **631/0/0** | 57/0/0 | PASS |
|
|
196
|
+
| 7完了 | 631/0/0 | **57/0/0** | PASS (Makefile clean) |
|
|
197
|
+
|
|
198
|
+
## 工数概算
|
|
199
|
+
|
|
200
|
+
- Phase 1 (bit-ops): 2-4 hours
|
|
201
|
+
- Phase 2 (containers): 1-2 hours
|
|
202
|
+
- Phase 3 (call args): 1-2 hours
|
|
203
|
+
- Phase 4 (return/slot): 0.5-1 hour
|
|
204
|
+
- Phase 5 (string conv): 0.5-1 hour
|
|
205
|
+
- Phase 6 (個別 test): 2-4 hours (varies)
|
|
206
|
+
- Phase 7 (bench + Makefile): 1-2 hours
|
|
207
|
+
|
|
208
|
+
**合計**: 8-16 hours focused work
|
|
209
|
+
|
|
210
|
+
## 進め方の注意
|
|
211
|
+
|
|
212
|
+
- **default を壊さない**: 各 commit 直後に `make test` (default 631/0/0) + `make optcarrot` (wrap pin、 checksum 59662) を回す
|
|
213
|
+
- **commit を小刻みに**: bucket 1 つ ≒ 1 commit (memory `feedback_commit_often`)
|
|
214
|
+
- **inline 関数 vs macro**: `sp_int_*` は macro。 新規 helper も同じ pattern で (memory `feedback_promote_mode_inline_pitfall`)
|
|
215
|
+
- **stale cache 注意**: promote_int_to_bigint_globally 後の cache invalidation 漏れに警戒
|
|
216
|
+
- **記録**: 各 phase の commit 後、 残り errors / fails の数を memo して進捗トラック
|
|
217
|
+
|
|
218
|
+
## Risks
|
|
219
|
+
|
|
220
|
+
1. **optcarrot は --int-overflow=wrap が最速**: promote だと bigint helper call overhead で fps 低下が予想される。 Makefile のデフォルトは wrap のままにする (promote は opt-in mode という設計に沿う)
|
|
221
|
+
2. **bigint memory pressure**: 全 int slot が heap-allocated bigint になる → GC 圧と allocator churn。 既存 GC で対応できるか測定要
|
|
222
|
+
3. **既存 default test の non-determinism**: 不変なはずだが、 stale cache invalidation 経由で稀に regression が出る可能性あり。 毎 commit で default test 必須
|
|
223
|
+
4. **新 helper の signedness**: GMP の `mpz_and` 等は arbitrary-precision で signed 自然サポート。 spinel 側で signedness 維持確認
|
|
224
|
+
|
|
225
|
+
## 開始 phase
|
|
226
|
+
|
|
227
|
+
**Phase 1 (bit-ops)** を最優先。 optcarrot を unblock し、 影響が最も大きい。 着手後、 各 helper を 1 つずつ追加 → optcarrot で動作確認 → commit。
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
# String#setbyte semantic-preserving plan (改訂版: frozen literal 採用)
|
|
2
|
+
|
|
3
|
+
## 方針
|
|
4
|
+
|
|
5
|
+
**spinel は `# frozen_string_literal: true` がグローバルに有効な Ruby として振る舞う。**
|
|
6
|
+
|
|
7
|
+
- string literal は frozen (rodata に置く既存設計と整合)
|
|
8
|
+
- 変更操作 (setbyte, <<, concat, replace, !-suffix mutators, …) を frozen literal に対して行うと `FrozenError` を raise
|
|
9
|
+
- mutable string が必要なら `.dup` で heap allocate
|
|
10
|
+
|
|
11
|
+
## 何故これが正しいか
|
|
12
|
+
|
|
13
|
+
1. **spinel の既存設計と一致**: literal は既に rodata に dedup されている。 frozen として扱うのが本質的に正しい
|
|
14
|
+
2. **Ruby の方向性**: 3.0+ で frozen-string-literal を推奨、 将来的にデフォルト化の議論あり
|
|
15
|
+
3. **subset の identity と一致**: spinel は Ruby のサブセット → サブセット内では一貫した強い保証を提供する設計
|
|
16
|
+
4. **silent failure を排除**: no-op は最悪。 raise なら user は問題を即座に発見し `.dup` で fix できる
|
|
17
|
+
5. **aliasing 曖昧さの解消**: COW にあった `a = "ab"; b = a; a.setbyte(...)` の divergence 問題が起きない (mutation 試行で必ず raise)
|
|
18
|
+
|
|
19
|
+
## 現在の問題
|
|
20
|
+
|
|
21
|
+
`commit bbfc3b3` (sp_str_setbyte) の挙動:
|
|
22
|
+
- heap (0xfe/0xfc/0xfd) → mutate ✓
|
|
23
|
+
- literal (0xff) → **silent no-op** ✗
|
|
24
|
+
- FFI / unknown → silent no-op ✗
|
|
25
|
+
|
|
26
|
+
silent no-op は受け入れられない。 frozen literal semantics で raise に切り替える。
|
|
27
|
+
|
|
28
|
+
## Phase 1: setbyte の frozen literal raise
|
|
29
|
+
|
|
30
|
+
### Runtime 変更
|
|
31
|
+
|
|
32
|
+
`lib/sp_runtime.h` の `sp_str_setbyte`:
|
|
33
|
+
|
|
34
|
+
```c
|
|
35
|
+
static inline mrb_int sp_str_setbyte(const char *s, mrb_int i, mrb_int v) {
|
|
36
|
+
if (!s) return v;
|
|
37
|
+
unsigned char m = ((const unsigned char *)s)[-1];
|
|
38
|
+
if (m == 0xfe || m == 0xfc || m == 0xfd) {
|
|
39
|
+
((char *)s)[i] = (char)v;
|
|
40
|
+
return v;
|
|
41
|
+
}
|
|
42
|
+
/* literal (0xff) or FFI / unknown -> frozen, raise. spinel
|
|
43
|
+
treats all string literals as frozen-string-literal: true. */
|
|
44
|
+
sp_raise_cls("FrozenError", "can't modify frozen String");
|
|
45
|
+
return v; /* unreachable; longjmp via sp_raise_cls */
|
|
46
|
+
}
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### Codegen 変更
|
|
50
|
+
|
|
51
|
+
なし。 既存の `sp_str_setbyte(rc, idx, val)` emit がそのまま runtime check を経由する。
|
|
52
|
+
|
|
53
|
+
### Test 更新
|
|
54
|
+
|
|
55
|
+
`test/str_method_nil_arg_no_segv.rb` の setbyte 部分が FrozenError raise するように:
|
|
56
|
+
|
|
57
|
+
```ruby
|
|
58
|
+
# 旧:
|
|
59
|
+
(str = "a")
|
|
60
|
+
str.setbyte(0, 98)
|
|
61
|
+
puts str # spinel: "a" (mutation dropped)
|
|
62
|
+
|
|
63
|
+
# 新:
|
|
64
|
+
(str = "a")
|
|
65
|
+
begin
|
|
66
|
+
str.setbyte(0, 98)
|
|
67
|
+
puts "no raise: " + str
|
|
68
|
+
rescue FrozenError => e
|
|
69
|
+
puts "frozen: " + e.message
|
|
70
|
+
end
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
期待値 `"frozen: can't modify frozen String"`。
|
|
74
|
+
|
|
75
|
+
### 新 regression test (`test/str_setbyte_frozen_literal.rb`)
|
|
76
|
+
|
|
77
|
+
```ruby
|
|
78
|
+
# Spinel adopts `# frozen_string_literal: true` semantics globally:
|
|
79
|
+
# string literals are immutable; setbyte on a literal raises
|
|
80
|
+
# FrozenError. To mutate, use .dup or a fresh heap-allocated
|
|
81
|
+
# string from .+/.concat etc.
|
|
82
|
+
|
|
83
|
+
# Literal: raises
|
|
84
|
+
begin
|
|
85
|
+
s = "abc"
|
|
86
|
+
s.setbyte(0, 67)
|
|
87
|
+
puts "no raise"
|
|
88
|
+
rescue FrozenError => e
|
|
89
|
+
puts "literal: " + e.message
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
# Dup'd: mutates
|
|
93
|
+
s2 = "abc".dup
|
|
94
|
+
s2.setbyte(0, 67)
|
|
95
|
+
puts s2 # Cbc
|
|
96
|
+
|
|
97
|
+
# String#+: mutates (returns fresh heap)
|
|
98
|
+
s3 = "x" + "y"
|
|
99
|
+
s3.setbyte(0, 90)
|
|
100
|
+
puts s3 # Zy
|
|
101
|
+
|
|
102
|
+
# ivar on heap string: mutates
|
|
103
|
+
class C
|
|
104
|
+
attr_reader :buf
|
|
105
|
+
def initialize; @buf = "abc".dup; end
|
|
106
|
+
def hit; @buf.setbyte(0, 67); end
|
|
107
|
+
end
|
|
108
|
+
c = C.new
|
|
109
|
+
c.hit
|
|
110
|
+
puts c.buf # Cbc
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
期待値:
|
|
114
|
+
```
|
|
115
|
+
literal: can't modify frozen String
|
|
116
|
+
Cbc
|
|
117
|
+
Zy
|
|
118
|
+
Cbc
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
## Phase 2: 他の mutator にも適用 (follow-up)
|
|
122
|
+
|
|
123
|
+
Phase 1 が安定したら、 同じ frozen-check を以下にも適用:
|
|
124
|
+
|
|
125
|
+
| Method | 現状 | 目標 |
|
|
126
|
+
|---|---|---|
|
|
127
|
+
| String#<< | (調査要) | literal recv で FrozenError |
|
|
128
|
+
| String#concat | (調査要) | 同上 |
|
|
129
|
+
| String#replace | (調査要) | 同上 |
|
|
130
|
+
| String#chomp! | (調査要) | 同上 |
|
|
131
|
+
| String#strip! | (調査要) | 同上 |
|
|
132
|
+
| String#squeeze! | (調査要) | 同上 |
|
|
133
|
+
| String#gsub!, sub! | (調査要) | 同上 |
|
|
134
|
+
| String#upcase!, downcase! 等 | (調査要) | 同上 |
|
|
135
|
+
|
|
136
|
+
各 method の codegen で marker check を runtime emit するか、 共通 helper を経由させる。 Phase 2 は別 issue で個別に対応。
|
|
137
|
+
|
|
138
|
+
## Phase 3: ユーザー視点の error message 改善
|
|
139
|
+
|
|
140
|
+
`FrozenError` の message を spinel-aware に:
|
|
141
|
+
- `can't modify frozen String (literal "<content>")` のように literal 文字列の先頭 32 文字を含めると debug 容易
|
|
142
|
+
- ただし stack trace が無いので line 情報は出ない (既存の sp_raise_cls 仕様)
|
|
143
|
+
|
|
144
|
+
Phase 3 はオプション。
|
|
145
|
+
|
|
146
|
+
## Aliasing semantics — frozen literal 採用で完全互換
|
|
147
|
+
|
|
148
|
+
| Pattern | spinel (frozen literal) | MRI (frozen literal pragma) | 一致? |
|
|
149
|
+
|---|---|---|---|
|
|
150
|
+
| `a = "ab"; a.setbyte(0, 67)` | FrozenError raise | FrozenError raise | ✅ |
|
|
151
|
+
| `a = "ab"; b = "ab"; a.setbyte(0, 67)` | FrozenError raise | FrozenError raise | ✅ |
|
|
152
|
+
| `a = "ab".dup; b = a; a.setbyte(0, 67)` | mutate, b="Cb" (shared) | mutate, b="Cb" (shared) | ✅ |
|
|
153
|
+
| `a = "ab".dup; a.setbyte(0, 67)` | mutate | mutate | ✅ |
|
|
154
|
+
|
|
155
|
+
frozen literal pragma 有効な Ruby と完全一致。
|
|
156
|
+
|
|
157
|
+
## bm_ruby_xor の挙動
|
|
158
|
+
|
|
159
|
+
```ruby
|
|
160
|
+
def xor_strings(a, b)
|
|
161
|
+
result = a.dup # heap (0xfe)
|
|
162
|
+
result.setbyte(i, ...) # heap path で mutate
|
|
163
|
+
result
|
|
164
|
+
end
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
dup で heap 化されるので問題なし。 Phase 1 で PASS。
|
|
168
|
+
|
|
169
|
+
## 影響範囲
|
|
170
|
+
|
|
171
|
+
| File | 変更 | 行数 |
|
|
172
|
+
|---|---|---|
|
|
173
|
+
| lib/sp_runtime.h | `sp_str_setbyte` を frozen-raise 化 | ~5 |
|
|
174
|
+
| test/str_method_nil_arg_no_segv.rb | literal setbyte を rescue で wrap | ~8 |
|
|
175
|
+
| test/str_method_nil_arg_no_segv.rb.expected | "a" → "frozen: ..." | ~1 |
|
|
176
|
+
| test/str_setbyte_frozen_literal.rb | 新 regression test | ~25 |
|
|
177
|
+
| test/str_setbyte_frozen_literal.rb.expected | | ~4 |
|
|
178
|
+
| docs/SPINEL-SEMANTICS.md (任意) | frozen-literal-default の document | ~30 |
|
|
179
|
+
|
|
180
|
+
## 検証
|
|
181
|
+
|
|
182
|
+
- `make test`: 628/0/0 → 629/0/0 (新 regression test 追加、 既存 test の expected 更新)
|
|
183
|
+
- `make bench`: 57/0/0/0 維持 (bm_ruby_xor は dup → heap path)
|
|
184
|
+
- `make optcarrot`: checksum 59662 維持
|
|
185
|
+
|
|
186
|
+
## Risks
|
|
187
|
+
|
|
188
|
+
1. **既存 user code の breakage**: spinel で動いていた `s = "abc"; s.setbyte(...)` が raise に変わる
|
|
189
|
+
- 緩和: error message が明確、 `.dup` で簡単に修正可能
|
|
190
|
+
- spinel は Ruby subset、 frozen literal pragma に依存することは subset 内では妥当
|
|
191
|
+
2. **他の mutator が consistent でない**: Phase 1 では setbyte のみ。 String#<< 等は別挙動のまま
|
|
192
|
+
- 緩和: Phase 2 で順次対応、 個別 issue で track
|
|
193
|
+
3. **FFI / unknown marker への扱い**: 現在は literal 同様 raise (defensive)
|
|
194
|
+
- FFI で返った文字列は通常 spinel-side で `sp_str_dup_external` 経由して heap 化されているので実害は少ない
|
|
195
|
+
|
|
196
|
+
## 実装順
|
|
197
|
+
|
|
198
|
+
1. `sp_str_setbyte` を frozen-raise 化
|
|
199
|
+
2. `test/str_method_nil_arg_no_segv` 更新
|
|
200
|
+
3. 新 regression test `str_setbyte_frozen_literal` 追加
|
|
201
|
+
4. `make test` / `make bench` / `make optcarrot` 全通し
|
|
202
|
+
5. commit + push
|
|
203
|
+
6. Phase 2 (他の mutator) を別 issue として open
|
|
@@ -65,9 +65,10 @@ Comments on the FFI post:
|
|
|
65
65
|
|
|
66
66
|
## Notes
|
|
67
67
|
|
|
68
|
-
The demo uses inline-quoted SQL with `Sql.q` for escaping,
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
68
|
+
The demo uses inline-quoted SQL with `Sql.q` for escaping, kept as the
|
|
69
|
+
minimal path through `prepare_v2` / `step` / `finalize`. For bound
|
|
70
|
+
parameters, `sqlite3_bind_text` is supported directly — pass `-1` as
|
|
71
|
+
the destructor argument to get `SQLITE_TRANSIENT` (`(void *)-1`); the
|
|
72
|
+
FFI accepts an integer literal in a `:ptr` arg slot and emits
|
|
73
|
+
`((void *)-1LL)`. See `sqlite3_lib.rb` for the `ffi_func` declaration
|
|
74
|
+
and `test/ffi_ptr_int_literal.rb` for the regression test.
|
|
@@ -5,10 +5,12 @@
|
|
|
5
5
|
# - exec for DDL + INSERT/UPDATE/DELETE
|
|
6
6
|
# - prepare_v2 / step / finalize + column accessors for SELECT
|
|
7
7
|
#
|
|
8
|
-
# Strings are passed inline into SQL
|
|
9
|
-
#
|
|
10
|
-
#
|
|
11
|
-
#
|
|
8
|
+
# Strings are passed inline into SQL: `Sql.q` doubles single quotes
|
|
9
|
+
# to handle the demo's well-known inputs. `bind_text` is also
|
|
10
|
+
# supported — pass `-1` as the destructor argument for
|
|
11
|
+
# `SQLITE_TRANSIENT` (`((sqlite3_destructor_type)-1)`), the same
|
|
12
|
+
# wire-shape ruby-ffi exposes via `FFI::Pointer.new(-1)`. See
|
|
13
|
+
# test/ffi_ptr_int_literal.rb for the underlying primitive.
|
|
12
14
|
module SQL
|
|
13
15
|
ffi_lib "sqlite3"
|
|
14
16
|
|
|
@@ -21,6 +23,7 @@ module SQL
|
|
|
21
23
|
ffi_func :sqlite3_close, [:ptr], :int
|
|
22
24
|
ffi_func :sqlite3_exec, [:ptr, :str, :ptr, :ptr, :ptr], :int
|
|
23
25
|
ffi_func :sqlite3_prepare_v2, [:ptr, :str, :int, :ptr, :ptr], :int
|
|
26
|
+
ffi_func :sqlite3_bind_text, [:ptr, :int, :str, :int, :ptr], :int
|
|
24
27
|
ffi_func :sqlite3_step, [:ptr], :int
|
|
25
28
|
ffi_func :sqlite3_finalize, [:ptr], :int
|
|
26
29
|
ffi_func :sqlite3_column_int, [:ptr, :int], :int
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Spike fixture: a class whose `relabel` method is never called from
|
|
2
|
+
# main, so without RBS seeding spinel's analyzer has no call-site
|
|
3
|
+
# evidence to infer `s`'s type. Default for unseen params is `int`,
|
|
4
|
+
# which then disagrees with @label (a string ivar) when the method
|
|
5
|
+
# body assigns `@label = s`. Without seeding, that disagreement
|
|
6
|
+
# either widens @label to poly or forces a coercion in codegen.
|
|
7
|
+
#
|
|
8
|
+
# With RBS seeding (see box.seed -> `meth relabel string string`),
|
|
9
|
+
# `s` starts as :string. The body assignment matches the ivar's
|
|
10
|
+
# declared type and no widening / coercion happens.
|
|
11
|
+
#
|
|
12
|
+
# This file alone compiles and runs identically either way -- the
|
|
13
|
+
# observable difference is in the analyzer's IR output for the
|
|
14
|
+
# Box class. See harness.rb for the diff.
|
|
15
|
+
|
|
16
|
+
class Box
|
|
17
|
+
def initialize
|
|
18
|
+
@label = "default"
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def relabel(s)
|
|
22
|
+
@label = s
|
|
23
|
+
@label
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def show
|
|
27
|
+
@label
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
b = Box.new
|
|
32
|
+
puts b.show
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Hand-written seed file for box.rb. In the eventual --rbs flow, this
|
|
2
|
+
# file is generated by scripts/spinel_rbs_extract.rb from a sig/box.rbs
|
|
3
|
+
# declaring the same shapes. For the spike we author it directly so the
|
|
4
|
+
# seeding mechanism can be tested without depending on the rbs gem.
|
|
5
|
+
#
|
|
6
|
+
# Format: see load_rbs_seeds / apply_rbs_seeds in spinel_analyze.rb.
|
|
7
|
+
# class <Name> -- enter class scope
|
|
8
|
+
# meth <name> <ret> <ptypes> -- ret/ptypes are `-` for "leave alone";
|
|
9
|
+
# ptypes is comma-separated
|
|
10
|
+
# ivar <name> <type> -- seed ivar type
|
|
11
|
+
# Any line whose first token isn't a keyword is ignored (so this comment
|
|
12
|
+
# block costs nothing).
|
|
13
|
+
|
|
14
|
+
class Box
|
|
15
|
+
ivar label string
|
|
16
|
+
meth relabel string string
|
|
17
|
+
meth show string -
|
|
18
|
+
meth initialize - -
|