[#47548] [ruby-trunk - Feature #8696][Open] Process.setproctitle — "znz (Kazuhiro NISHIYAMA)" <redmine@...>

13 messages 2013/07/27

[#47559] [ruby-trunk - Bug #8711][Open] 最近NoMemoryErrorが多い — "naruse (Yui NARUSE)" <naruse@...>

13 messages 2013/07/31

[ruby-dev:47511] Re: [ruby-cvs:49177] glass:r42008 (trunk): * configure.in: check strcasecmp().

From: Tanaka Akira <akr@...>
Date: 2013-07-16 13:34:21 UTC
List: ruby-dev #47511
2013年7月16日 22:03 Masaki Matsushita <glass.saga@gmail.com>:
> 2013/7/16 Tanaka Akira <akr@fsij.org>
>> st_strcasecmp は locale に依存しないようにするために定義したのですが、
>  > システムの strcasecmp を使うと locale に依存してしまいませんか。
>
> ASCIIの範囲内で動くものだと勘違いしていました。
> BSDのman pageにはlocaleに依存する旨書いてありますね。
> revertしました。すみません。

せっかくなので実際に動かないところを試してみました。

tr_TR という、その筋では有名な locale を使うと、
test-all は起動時に失敗します。

% ./ruby -v
ruby 2.1.0dev (2013-07-16 trunk 42008) [x86_64-linux]
% LC_ALL=tr_TR.UTF-8 make test-all
	CC = gcc
	LD = ld
	LDSHARED = gcc -shared
	CFLAGS = -O0 -fno-fast-math -g3 -Wall -Wextra -Wno-unused-parameter
-Wno-parentheses -Wno-long-long -Wno-missing-field-initializers
-Wunused-variable -Werror=pointer-arith -Werror=write-strings
-Werror=declaration-after-statement
-Werror=implicit-function-declaration -ansi -std=iso9899:199409
	XCFLAGS = -D_FORTIFY_SOURCE=2 -fstack-protector -fno-strict-overflow
-fvisibility=hidden -DRUBY_EXPORT -fPIE
	CPPFLAGS = -DRUBY_DEBUG_ENV   -I. -I.ext/include/x86_64-linux -I./include -I.
	DLDFLAGS = -fstack-protector -pie
	SOLIBS =
Using built-in specs.
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian
4.4.5-8' --with-bugurl=file:///usr/share/doc/gcc-4.4/README.Bugs
--enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr
--program-suffix=-4.4 --enable-shared --enable-multiarch
--enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib
--without-included-gettext --enable-threads=posix
--with-gxx-include-dir=/usr/include/c++/4.4 --libdir=/usr/lib
--enable-nls --enable-clocale=gnu --enable-libstdcxx-debug
--enable-objc-gc --with-arch-32=i586 --with-tune=generic
--enable-checking=release --build=x86_64-linux-gnu
--host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 4.4.5 (Debian 4.4.5-8)
./miniruby -I./lib -I. -I.ext/common  ./tool/runruby.rb --extout=.ext
-- --disable-gems "./test/runner.rb" --ruby="./miniruby -I./lib -I.
-I.ext/common  ./tool/runruby.rb --extout=.ext  -- --disable-gems"
/home/akr/ruby/tst2/ruby/lib/rubygems/core_ext/kernel_require.rb:51:in
`find': unknown encoding name - ascii-8bit (ArgumentError)
	from /home/akr/ruby/tst2/ruby/lib/rubygems/core_ext/kernel_require.rb:51:in
`require'
	from /home/akr/ruby/tst2/ruby/lib/rubygems/core_ext/kernel_require.rb:51:in
`require'
	from /home/akr/ruby/tst2/ruby/.ext/common/json/ext.rb:13:in `<module:Ext>'
	from /home/akr/ruby/tst2/ruby/.ext/common/json/ext.rb:12:in `<module:JSON>'
	from /home/akr/ruby/tst2/ruby/.ext/common/json/ext.rb:9:in `<top (required)>'
	from /home/akr/ruby/tst2/ruby/lib/rubygems/core_ext/kernel_require.rb:51:in
`require'
	from /home/akr/ruby/tst2/ruby/lib/rubygems/core_ext/kernel_require.rb:51:in
`require'
	from /home/akr/ruby/tst2/ruby/.ext/common/json.rb:58:in `<module:JSON>'
	from /home/akr/ruby/tst2/ruby/.ext/common/json.rb:54:in `<top (required)>'
	from /home/akr/ruby/tst2/ruby/lib/rubygems/core_ext/kernel_require.rb:51:in
`require'
	from /home/akr/ruby/tst2/ruby/lib/rubygems/core_ext/kernel_require.rb:51:in
`require'
	from /home/akr/ruby/tst2/ruby/lib/rdoc/text.rb:16:in `<top (required)>'
	from /home/akr/ruby/tst2/ruby/test/rdoc/test_rdoc_generator_markup.rb:5:in
`<class:TestRDocGeneratorMarkup>'
	from /home/akr/ruby/tst2/ruby/test/rdoc/test_rdoc_generator_markup.rb:3:in
`<top (required)>'
	from /home/akr/ruby/tst2/ruby/lib/rubygems/core_ext/kernel_require.rb:51:in
`require'
	from /home/akr/ruby/tst2/ruby/lib/rubygems/core_ext/kernel_require.rb:51:in
`require'
	from /home/akr/ruby/tst2/ruby/lib/test/unit.rb:245:in `block in non_options'
	from /home/akr/ruby/tst2/ruby/lib/test/unit.rb:239:in `each'
	from /home/akr/ruby/tst2/ruby/lib/test/unit.rb:239:in `non_options'
	from /home/akr/ruby/tst2/ruby/lib/test/unit.rb:52:in `process_args'
	from /home/akr/ruby/tst2/ruby/lib/test/unit.rb:826:in `process_args'
	from /home/akr/ruby/tst2/ruby/lib/test/unit.rb:831:in `run'
	from /home/akr/ruby/tst2/ruby/lib/test/unit.rb:838:in `run'
	from ./test/runner.rb:29:in `<main>'
gmake: *** [yes-test-all] Hata 1

ascii-8bit という encoding が見つからないというエラーですが、
これはきっと i という文字が入っているからでしょう。
tr_TR では I と i は対応する大文字小文字の関係にないので、
ASCII-8BIT とは strcasecmp では等しくないことになってしまうのだと思います。

(revert された r42009 なら tr_TR でもちゃんと動きます。)
-- 
[田中 哲][たなか あきら][Tanaka Akira]

In This Thread