Project

General

Profile

Actions

Misc #18025

closed

rb_iterate is obsolete since 1.9 but is not marked as deprecated for C compilers

Added by Eregon (Benoit Daloze) 3 months ago. Updated 2 months ago.

Status:
Closed
Priority:
Normal
[ruby-core:104520]

Description

Marked as obsolete in https://github.com/ruby/ruby/blob/master/doc/extension.rdoc#label-Control+Structure.

I think it would be a good to mark it as deprecated so the few places still using that migrate to e.g. rb_block_call().

These 2 places are still using rb_iterate():

Right now there is special logic inside rb_funcall()/vm_call0_body() to handle the block magically passed by rb_iterate(), and I think it would be good to clean that up once rb_iterate() is gone.

FYI, TruffleRuby is recently no longer doing that magic behavior for such an old deprecated method:
https://github.com/oracle/truffleruby/commit/e7ddba79cc64f7beea8a34ef6c14d50d444399f7

Actions #1

Updated by Eregon (Benoit Daloze) 3 months ago

  • Description updated (diff)

Updated by Eregon (Benoit Daloze) 3 months ago

  • Assignee set to Eregon (Benoit Daloze)
Actions #3

Updated by Eregon (Benoit Daloze) 3 months ago

  • Description updated (diff)

Updated by shyouhei (Shyouhei Urabe) 3 months ago

+1. I want Ko1's opinion.

Actions #6

Updated by Eregon (Benoit Daloze) 2 months ago

  • Status changed from Open to Closed

Applied in changeset git|fd0df9c4fb36597e5e3f500670b29dbd77a14eca.


Emit deprecatation warnings for rb_iterate()

Actions

Also available in: Atom PDF