Issue #6701 has been updated by ko1 (Koichi Sasada).

Target version changed from 2.0.0 to next minor

timeup.

----------------------------------------
Bug #6701: once literal doesn't care escape
https://bugs.ruby-lang.org/issues/6701#change-34873

Author: ko1 (Koichi Sasada)
Status: Assigned
Priority: Normal
Assignee: ko1 (Koichi Sasada)
Category: core
Target version: next minor
ruby -v: ruby 2.0.0dev (2012-07-05 trunk 36311) [i386-mswin32_100]


=begin

= ??

/#{expr}/o ????expr ????????????????????????????????????????????価???????????? expr ????価?????????????正????????????????????????????????????????????expr 中????????大???????????????????度??価??????????????????????? expr ?????中???????????????????????????????????????????

= ?𳡣

次???????????????止???????????

  2.times{
    catch(:escape){
      p:before
      r = /#{throw :escape}/o
      # ?????1度????????????????????????????????????????
      # 2???????????????????????????????????1度????????????
      # ????????????1度??? throw ???????? cancel ?????????????????????????????????
      p:after
    }
  }

???????????絡????????????????????????

  (1..2).map{
    Thread.new{
      begin
        r = /#{raise}/o
        # ????????????????????????????????????????????????????????
        # ??????????????????????????????????????????
        # ?????????????????????????????????????????????????
      rescue
        p :raised
      ensure
        p :exit
      end
    }
  }.each{|t| t.join}

= 쯡?

expr ??????????????????????????????????????????????????????????????????????????????????????????????? expr ?????????????????????????????????????????????????????????? ensure ????????????????????????????????

?????????????????????????2.0 ???????????????????

1.9 ?????????????????????????????????????????????????????????????????誰?? /#{expr}/o ??????使???????????????????????

?????????????????????????????? expr ????価??? nil ????????????????????????????????????? nil ?????????????????説?????????????????????????????????????

= ??

??????????????????????????????????次???????????????????????????????

  def foo
    r = /#{foo}/o
  end
  
  foo

??????????????????????????????????????????????????????????????????????????deadlock ???????????recursive ??? once ???????????????????????????????????????????????????????????????????

???????1.8 ??????????????????????????????????

  t.rb:3:in `foo': stack level too deep (SystemStackError)


=end




-- 
http://bugs.ruby-lang.org/