2013年7月2日火曜日

V2.2のバグとその回避法

X-BASIC for iOS v2.2に以下のバグが発見されました。

1. print/printsで先頭文字が全角の時、それ以下に半角文字があっても全て全角幅で表示されてしまう

これはV2.2でのみ発生します。
当面の回避法は、print/prints()の表示文字列中、全角と半角を分離してください。

print "ABCあいう"
 ↓
print "ABC";"あいう"


2. 単項演算子と2項演算子を含む式で「システムエラー」もしくは「式の型が異なる」が発生する
「例1」
   if a>=-128 and a<=-1 then {
   }

 「例2」
  a=(a>=-1 or a<=128)

回避するには、負数を()でくくります。
「例1」
   if a>=(-128) and a<=(-1) then {
   }
「例2」
  a=(a>=(-1) or a<=128)

 もしくはifを個別に分割します。
   if a>=-128 then {
       if a<=-1 then {
       }
   }

・・・ではありますが、いずれもV2.3で修正済みですので、バージョンアップするのが一番手っ取り早いです(^_^)。

この他の、V2.2までに発生していてるバグは以下の通りです。
  1. dim floatに{}で初期値を指定するとエラーになる
  2. 配列を引数に持つ関数の中で、子関数にその配列を渡すときエラーが発生する
  3. 配列の2次元目以降の要素番号チェックが正しくない
  4. 外部関数内で発生したエラーのメッセージが表示されない
  5. 配列要素番号が(通しで)32767を超えると動作が異常になるかエラーが発生する 
  6. グローバルもしくはローカルの変数領域が64KB以上必要なとき、うまく確保できない
  7. emailSend()で添付ファイルをzipで圧縮するとき、正しいzipファイルが生成されない 
  8. randomize()がrandomise()になってる(綴りミス)
  9. 実行時エラーの指す行がずれている
4番まではV2.3で修正されました。5~8はV2.4で修正されました。
実行時エラーは小規模プログラムでは直りましたが、大規模プログラムでは 大幅にずれる問題が解決できていません。


0 件のコメント:

コメントを投稿