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

ruby-changes:52627

From: k0kubun <ko1@a...>
Date: Wed, 26 Sep 2018 02:20:10 +0900 (JST)
Subject: [ruby-changes:52627] k0kubun:r64839 (trunk): insns.def: drop bitblt insn

k0kubun	2018-09-26 02:20:02 +0900 (Wed, 26 Sep 2018)

  New Revision: 64839

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

  Log:
    insns.def: drop bitblt insn
    
    as a workaround to fix the build pipeline broken by r64824,
    because optimizing Ruby should be prioritized higher than supporting unused jokes.
    
    In the current build system, exceeding 200 insns somehow crashes C
    extension build on some of MinGW environments like "mingw32-make[1]:
    *** No rule to make target 'note'.  Stop."
    https://ci.appveyor.com/project/ruby/ruby/build/9725/job/co4nu9jugm8qwdrp
    and on some of Linux environments like "cannot load such file -- stringio (LoadError)"
    
    ```
    build_install        /home/ko1/ruby/src/trunk_gcc5/lib/rubygems/specification.rb:18:in `require': cannot load such file -- stringio (LoadError)
    from /home/ko1/ruby/src/trunk_gcc5/lib/rubygems/specification.rb:18:in `<top (required)>'
    from /home/ko1/ruby/src/trunk_gcc5/lib/rubygems.rb:1365:in `require'
    from /home/ko1/ruby/src/trunk_gcc5/lib/rubygems.rb:1365:in `<module:Gem>'
    from /home/ko1/ruby/src/trunk_gcc5/lib/rubygems.rb:116:in `<top (required)>'
    from /home/ko1/ruby/src/trunk_gcc5/tool/rbinstall.rb:24:in `require'
    from /home/ko1/ruby/src/trunk_gcc5/tool/rbinstall.rb:24:in `<main>'
    make: *** [do-install-nodoc] Error 1
    ```
    
    http://ci.rvm.jp/results/trunk_gcc5@silicon-docker/1353447
    
    This commit removes "bitblt" and "trace_bitblt" insns, which reduces the
    number of insns from 202 to 200 and fixes at least the latter build
    failure. I hope this fixes the MinGW build failure as well. Let me
    confirm the situation on AppVeyor CI.
    
    Note that this is hard to fix because some MinGW environments (MSP-Greg's
    MinGW CI on AppVeyor) don't reproduce this and some Linux environments
    (including my local machine) don't reproduce it either. Make sure you
    have the reproductive environment and confirm it's fixed when reverting
    this commit.

  Modified files:
    trunk/compile.c
    trunk/insns.def
    trunk/test/ruby/test_jit.rb
Index: insns.def
===================================================================
--- insns.def	(revision 64838)
+++ insns.def	(revision 64839)
@@ -1438,16 +1438,6 @@ opt_call_c_function https://github.com/ruby/ruby/blob/trunk/insns.def#L1438
     NEXT_INSN();
 }
 
-/* BLT */
-DEFINE_INSN
-bitblt
-()
-()
-(VALUE ret)
-{
-    ret = rb_str_new2("a bit of bacon, lettuce and tomato");
-}
-
 /* The Answer to Life, the Universe, and Everything */
 DEFINE_INSN
 answer
Index: compile.c
===================================================================
--- compile.c	(revision 64838)
+++ compile.c	(revision 64839)
@@ -6443,17 +6443,11 @@ iseq_compile_each0(rb_iseq_t *iseq, LINK https://github.com/ruby/ruby/blob/trunk/compile.c#L6443
 	INIT_ANCHOR(args);
 #if SUPPORT_JOKE
 	if (nd_type(node) == NODE_VCALL) {
-	    ID id_bitblt;
 	    ID id_answer;
 
-	    CONST_ID(id_bitblt, "bitblt");
 	    CONST_ID(id_answer, "the_answer_to_life_the_universe_and_everything");
 
-	    if (mid == id_bitblt) {
-		ADD_INSN(ret, line, bitblt);
-		break;
-	    }
-	    else if (mid == id_answer) {
+            if (mid == id_answer) {
 		ADD_INSN(ret, line, answer);
 		break;
 	    }
Index: test/ruby/test_jit.rb
===================================================================
--- test/ruby/test_jit.rb	(revision 64838)
+++ test/ruby/test_jit.rb	(revision 64839)
@@ -19,7 +19,6 @@ class TestJIT < Test::Unit::TestCase https://github.com/ruby/ruby/blob/trunk/test/ruby/test_jit.rb#L19
     :opt_call_c_function,
 
     # joke
-    :bitblt,
     :answer,
 
     # TODO: write tests for them

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

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