From 241dced625f9ba8a4071954579778a0940e75179 Mon Sep 17 00:00:00 2001 From: nobu Date: Wed, 12 Dec 2018 05:46:13 +0000 Subject: Disable tailcall optimization [Bug #15303] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66349 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ext/rubyvm/lib/forwardable/impl.rb | 5 +---- lib/forwardable.rb | 2 +- lib/forwardable/impl.rb | 8 -------- template/prelude.c.tmpl | 2 +- 4 files changed, 3 insertions(+), 14 deletions(-) diff --git a/ext/rubyvm/lib/forwardable/impl.rb b/ext/rubyvm/lib/forwardable/impl.rb index e9ada26e74..e9bde2f299 100644 --- a/ext/rubyvm/lib/forwardable/impl.rb +++ b/ext/rubyvm/lib/forwardable/impl.rb @@ -1,7 +1,5 @@ # :stopdoc: module Forwardable - FILTER_EXCEPTION = "" - def self._valid_method?(method) iseq = RubyVM::InstructionSequence.compile("().#{method}", nil, nil, 0, false) rescue SyntaxError @@ -12,8 +10,7 @@ module Forwardable def self._compile_method(src, file, line) RubyVM::InstructionSequence.compile(src, file, file, line, - trace_instruction: false, - tailcall_optimization: true) + trace_instruction: false) .eval end end diff --git a/lib/forwardable.rb b/lib/forwardable.rb index 7791a97b06..bcd462a97c 100644 --- a/lib/forwardable.rb +++ b/lib/forwardable.rb @@ -222,7 +222,7 @@ module Forwardable #{pre} begin #{accessor} - end#{method_call}#{FILTER_EXCEPTION} + end#{method_call} end end end; diff --git a/lib/forwardable/impl.rb b/lib/forwardable/impl.rb index 220d25aa95..58a9dfb69c 100644 --- a/lib/forwardable/impl.rb +++ b/lib/forwardable/impl.rb @@ -1,13 +1,5 @@ # :stopdoc: module Forwardable - FILE_REGEXP = %r"#{Regexp.quote(File.dirname(__FILE__))}" - FILTER_EXCEPTION = <<-'END' - - rescue ::Exception - $@.delete_if {|s| ::Forwardable::FILE_REGEXP =~ s} unless ::Forwardable::debug - ::Kernel::raise - END - def self._valid_method?(method) catch {|tag| eval("BEGIN{throw tag}; ().#{method}", binding, __FILE__, __LINE__) diff --git a/template/prelude.c.tmpl b/template/prelude.c.tmpl index f642398921..aa760dc054 100644 --- a/template/prelude.c.tmpl +++ b/template/prelude.c.tmpl @@ -148,7 +148,7 @@ prelude_eval(VALUE code, VALUE name, int line) static const rb_compile_option_t optimization = { TRUE, /* int inline_const_cache; */ TRUE, /* int peephole_optimization; */ - TRUE, /* int tailcall_optimization; */ + FALSE,/* int tailcall_optimization; */ TRUE, /* int specialized_instruction; */ TRUE, /* int operands_unification; */ TRUE, /* int instructions_unification; */ -- cgit v1.2.3