mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
Disable tailcall optimization [Bug #15303]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66349 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
c33e716d6d
commit
241dced625
4 changed files with 3 additions and 14 deletions
|
@ -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
|
||||
|
|
|
@ -222,7 +222,7 @@ module Forwardable
|
|||
#{pre}
|
||||
begin
|
||||
#{accessor}
|
||||
end#{method_call}#{FILTER_EXCEPTION}
|
||||
end#{method_call}
|
||||
end
|
||||
end
|
||||
end;
|
||||
|
|
|
@ -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__)
|
||||
|
|
|
@ -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; */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue