[exerb-dev:0578] Exerb で作成したプログラムの Integer.to_s で不具合

Back to archive index

Yuta Kawai yutak****@gmail*****
2012年 2月 21日 (火) 14:12:53 JST


はじめまして、川合と申します。
標題の件ですが、Exerb で作成したプログラムの不具合を発見したので、
投稿させていただきます。

Integer.to_s(16)を繰り返すプログラムですが、
MSWIN32版Rubyでは正常に動作しますが、
Exerbで変換して実行すると、Integer.to_s(16)が突然期待しない文字列に変わってしまうというものです。

少し長くなりますが、環境、再現コード、実行結果を記載します。

色々試行錯誤してみましたが、下のコードに改行を足して、
コードの行数が奇数にするとエラーが起きないという、
不思議なことになっています……

自分でもこれからExerbのソースを読んでみようと思いますが、
バグなのか仕様なのか、僕の環境やコードに問題があるのか、
それだけでもお分かりでしたら、ご回答いただけたら幸いです。

よろしくお願いします!

川合悠太
yutak****@gmail*****

【環境】

Windows XP Service Pack 3
ruby 1.8.7 p357 mswin32
Exerb 5.4.0


【コード test.rb】

START = 0xFF000000
MAX = 0xFF00FFFF

(START..MAX).each{|num|
  str1 = num.to_s(16)
  str2 = num.to_s(16)
  str3 = num.to_s(16)
  if str1 != str2 || str1 != str3
    puts str1
    puts str2
    puts str3
    exit(1)
  end
}

puts "finished"


【レシピファイル test.exy】

# Generated by mkexy
# on 2012-02-21 13:24

general:
  startup: test.rb
  core: cui
  kcode: none

file:
  test.rb:


【実行】

C:\kawai\work>ruby test.rb
finished

C:\kawai\work>mkexy test.rb
finished

C:\kawai\work>test.exe
be0150
ff00031b
ff00031b

C:\kawai\work>
-------------- next part --------------
HTMLの添付ファイルを保管しました...
Download 



exerb-developer メーリングリストの案内
Back to archive index