[#46309] [ruby-trunk - Bug #2154][Assigned] filesystem encoding of UNIX — "usa (Usaku NAKAMURA)" <usa@...>

13 messages 2012/10/29
[#46310] Re: [ruby-trunk - Bug #2154][Assigned] filesystem encoding of UNIX — Tanaka Akira <akr@...> 2012/10/29

2012年10月29日 10:31 usa (Usaku NAKAMURA) <usa@garbagecollect.jp>:

[#46366] Re: [ruby-trunk - Bug #2154][Assigned] filesystem encoding of UNIX — "U.Nakamura" <usa@...> 2012/11/02

こんにちは、なかむら(う)です。

[#46375] Re: [ruby-trunk - Bug #2154][Assigned] filesystem encoding of UNIX — KOSAKI Motohiro <kosaki.motohiro@...> 2012/11/02

>> とくに指定しなければ、default external は locale から設定されるので、

[ruby-dev:46234] requireしたファイルからのthrowをcatchするとNotImplementedErrorが起きる

From: Yoshihiko Fujita <starfish@...6.so-net.ne.jp>
Date: 2012-10-18 13:26:19 UTC
List: ruby-dev #46234
はじめまして、yfujitaと申します.

以下の2つのファイルを用意して、./req.rb を実行するとエラーになります.
これは、1.9 以降はこういう記述はできなくなったという事なのでしょうか?

require される側(dep.rb)を途中で抜けるために使っていたのですが、
良い方法はないでしょうか?


==== ./dep.rb ====
#!/usr/local/bin/ruby

throw :extdep
==================

==== ./req.rb ====
#!/usr/local/bin/ruby
$:.unshift(".")

catch(:extdep){
  require 'dep.rb'
}
==================

# ./req.rb
/usr/local/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require':
method `backtrace' called on unexpected T_NODE object (0x00000002337d20
flags=0x381c klass=0x0) (NotImplementedError)
	from /usr/local/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
	from ./req.rb:5:in `block in <main>'
	from ./req.rb:4:in `catch'
	from ./req.rb:4:in `<main>'

# ruby -v
ruby 1.9.3p286 (2012-10-12 revision 37165) [x86_64-linux]


ruby 1.8.7 では正常に終了します.
# ruby -v
ruby 1.8.7 (2011-06-30 patchlevel 352) [x86_64-linux]
# ./req.rb

ubuntu に入っているruby1.9.3p0でもエラーで終了します.
# ruby -v
ruby 1.9.3p0 (2011-10-30 revision 33570) [x86_64-linux]
# ./req.rb
/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': method
`backtrace' called on unexpected T_NODE object (0x000000011fce20
flags=0x381c klass=0x0) (NotImplementedError)
	from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
	from ./req.rb:5:in `block in <main>'
	from ./req.rb:4:in `catch'
	from ./req.rb:4:in `<main>'

* 環境
1.
Ubuntu 12.04 server 64 bit
仮想PC(Virtualbox)
ruby 1.9.3p286

ruby1.9.3p286は、Ubuntu 12.04 server 上でコンパイルしたものです.
make test-all でいくつかエラーがありましたが無視して
インストールしてみたものです.

2.
Ubuntu 12.04 client 64 bit
実PC
ruby 1.9.3p0
ruby 1.8.7
どちらもubuntu付属のrubyです.


-- 
Yoshihiko Fujita

In This Thread

Prev Next