[前][次][番号順一覧][スレッド一覧]

ruby-changes:52617

From: k0kubun <ko1@a...>
Date: Tue, 25 Sep 2018 13:03:40 +0900 (JST)
Subject: [ruby-changes:52617] k0kubun:r64829 (trunk): Revert r64824 to fix build failure on AppVeyor

k0kubun	2018-09-25 13:03:35 +0900 (Tue, 25 Sep 2018)

  New Revision: 64829

  https://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=64829

  Log:
    Revert r64824 to fix build failure on AppVeyor
    
    AppVeyor msys2/MinGW build started to fail like:
    https://ci.appveyor.com/project/ruby/ruby/build/9722/job/b94kixi004klmye3
    
    Until I can investigate that, I revert this for now.

  Modified files:
    trunk/compile.c
    trunk/defs/id.def
    trunk/insns.def
    trunk/test/ruby/test_jit.rb
    trunk/test/ruby/test_optimization.rb
    trunk/tool/transform_mjit_header.rb
    trunk/vm.c
    trunk/vm_core.h
    trunk/vm_insnhelper.c
Index: vm.c
===================================================================
--- vm.c	(revision 64828)
+++ vm.c	(revision 64829)
@@ -1610,8 +1610,6 @@ vm_init_redefined_flag(void) https://github.com/ruby/ruby/blob/trunk/vm.c#L1610
     OP(Max, MAX), (C(Array));
     OP(Min, MIN), (C(Array));
     OP(Call, CALL), (C(Proc));
-    OP(And, AND), (C(Integer));
-    OP(Or, OR), (C(Integer));
 #undef C
 #undef OP
 }
Index: compile.c
===================================================================
--- compile.c	(revision 64828)
+++ compile.c	(revision 64829)
@@ -3245,8 +3245,6 @@ iseq_specialized_instruction(rb_iseq_t * https://github.com/ruby/ruby/blob/trunk/compile.c#L3245
 		  case idGE:	 SP_INSN(ge);	  return COMPILE_OK;
 		  case idLTLT:	 SP_INSN(ltlt);	  return COMPILE_OK;
 		  case idAREF:	 SP_INSN(aref);	  return COMPILE_OK;
-                  case idAnd:    SP_INSN(and);    return COMPILE_OK;
-                  case idOr:     SP_INSN(or);    return COMPILE_OK;
 		}
 		break;
 	      case 2:
Index: tool/transform_mjit_header.rb
===================================================================
--- tool/transform_mjit_header.rb	(revision 64828)
+++ tool/transform_mjit_header.rb	(revision 64829)
@@ -52,8 +52,6 @@ module MJITHeader https://github.com/ruby/ruby/blob/trunk/tool/transform_mjit_header.rb#L52
     'vm_opt_gt',
     'vm_opt_ge',
     'vm_opt_ltlt',
-    'vm_opt_and',
-    'vm_opt_or',
     'vm_opt_aref',
     'vm_opt_aset',
     'vm_opt_aref_with',
Index: test/ruby/test_jit.rb
===================================================================
--- test/ruby/test_jit.rb	(revision 64828)
+++ test/ruby/test_jit.rb	(revision 64829)
@@ -478,14 +478,6 @@ class TestJIT < Test::Unit::TestCase https://github.com/ruby/ruby/blob/trunk/test/ruby/test_jit.rb#L478
     assert_compile_once('[1] << 2', result_inspect: '[1, 2]', insns: %i[opt_ltlt])
   end
 
-  def test_compile_insn_opt_and
-    assert_compile_once('1 & 3', result_inspect: '1', insns: %i[opt_and])
-  end
-
-  def test_compile_insn_opt_or
-    assert_compile_once('1 | 3', result_inspect: '3', insns: %i[opt_or])
-  end
-
   def test_compile_insn_opt_aref
     skip_on_mswin
     # optimized call (optimized JIT) -> send call
Index: test/ruby/test_optimization.rb
===================================================================
--- test/ruby/test_optimization.rb	(revision 64828)
+++ test/ruby/test_optimization.rb	(revision 64829)
@@ -187,16 +187,6 @@ class TestRubyOptimization < Test::Unit: https://github.com/ruby/ruby/blob/trunk/test/ruby/test_optimization.rb#L187
     assert_redefine_method('String', '<<', 'assert_equal "b", "a" << "b"')
   end
 
-  def test_fixnum_and
-    assert_equal 1, 1&3
-    assert_redefine_method('Integer', '&', 'assert_equal 3, 1&3')
-  end
-
-  def test_fixnum_or
-    assert_equal 3, 1|3
-    assert_redefine_method('Integer', '|', 'assert_equal 1, 3|1')
-  end
-
   def test_array_plus
     assert_equal [1,2], [1]+[2]
     assert_redefine_method('Array', '+', 'assert_equal [2], [1]+[2]')
Index: defs/id.def
===================================================================
--- defs/id.def	(revision 64828)
+++ defs/id.def	(revision 64829)
@@ -97,8 +97,6 @@ token_ops = %[\ https://github.com/ruby/ruby/blob/trunk/defs/id.def#L97
   Eqq           ===     EQQ
   Neq           !=      NEQ
   Not           !
-  And           &
-  Or            |
   Backquote     `
   EqTilde       =~      MATCH
   NeqTilde      !~      NMATCH
Index: vm_insnhelper.c
===================================================================
--- vm_insnhelper.c	(revision 64828)
+++ vm_insnhelper.c	(revision 64829)
@@ -3653,30 +3653,6 @@ vm_opt_ltlt(VALUE recv, VALUE obj) https://github.com/ruby/ruby/blob/trunk/vm_insnhelper.c#L3653
 }
 
 static VALUE
-vm_opt_and(VALUE recv, VALUE obj)
-{
-    if (FIXNUM_2_P(recv, obj) &&
-        BASIC_OP_UNREDEFINED_P(BOP_AND, INTEGER_REDEFINED_OP_FLAG)) {
-        return LONG2NUM(FIX2LONG(recv) & FIX2LONG(obj));
-    }
-    else {
-        return Qundef;
-    }
-}
-
-static VALUE
-vm_opt_or(VALUE recv, VALUE obj)
-{
-    if (FIXNUM_2_P(recv, obj) &&
-        BASIC_OP_UNREDEFINED_P(BOP_OR, INTEGER_REDEFINED_OP_FLAG)) {
-        return LONG2NUM(FIX2LONG(recv) | FIX2LONG(obj));
-    }
-    else {
-        return Qundef;
-    }
-}
-
-static VALUE
 vm_opt_aref(VALUE recv, VALUE obj)
 {
     if (SPECIAL_CONST_P(recv)) {
Index: insns.def
===================================================================
--- insns.def	(revision 64828)
+++ insns.def	(revision 64829)
@@ -1216,34 +1216,6 @@ opt_ltlt https://github.com/ruby/ruby/blob/trunk/insns.def#L1216
     }
 }
 
-/* optimized X&Y. */
-DEFINE_INSN
-opt_and
-(CALL_INFO ci, CALL_CACHE cc)
-(VALUE recv, VALUE obj)
-(VALUE val)
-{
-    val = vm_opt_and(recv, obj);
-
-    if (val == Qundef) {
-        CALL_SIMPLE_METHOD();
-    }
-}
-
-/* optimized X|Y. */
-DEFINE_INSN
-opt_or
-(CALL_INFO ci, CALL_CACHE cc)
-(VALUE recv, VALUE obj)
-(VALUE val)
-{
-    val = vm_opt_or(recv, obj);
-
-    if (val == Qundef) {
-        CALL_SIMPLE_METHOD();
-    }
-}
-
 /* [] */
 DEFINE_INSN
 opt_aref
Index: vm_core.h
===================================================================
--- vm_core.h	(revision 64828)
+++ vm_core.h	(revision 64829)
@@ -531,8 +531,6 @@ enum ruby_basic_operators { https://github.com/ruby/ruby/blob/trunk/vm_core.h#L531
     BOP_MAX,
     BOP_MIN,
     BOP_CALL,
-    BOP_AND,
-    BOP_OR,
 
     BOP_LAST_
 };

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]