コンパイラの[文字目以降]のバグ

投稿者:shogo314 投稿日:2025/01/14(Tue) 01:39:32 No.2455

1.9.1301のコンパイラで以下のコードが実行時にエラーになります。

```
内容は「こんにちは プロデル」
ans=内容の3文字目以降
ansを表示する
```

出力
```
エラーが発生しました。
予期しないエラーが発生しました。申し訳ありません。
原因:NullReferenceException
オブジェクト参照がオブジェクト インスタンスに設定されていません。


場所 Produire.6.0(ConstructScopeIL 0, Object& 1, Boolean 2, Object 3, RdrCallSite 4)
場所 Produire.ConstructScopeIL.Invoke(Object targetObject, String shortVerbName, String[] names, String[] particles, Object[] arguments, Boolean useReturnValue, Boolean isPartial, Object lastValue)
場所 Main.広域種類.MainCode()
場所 Main.メイン種類.起動()
場所 Main.メイン種類.Main()

ハンドルされていない例外: System.NullReferenceException: オブジェクト参照がオブジェクト インスタンスに設定されていません。
場所 Produire.6.0(ConstructScopeIL 0, Object& 1, Boolean 2, Object 3, RdrCallSite 4)
場所 Produire.ConstructScopeIL.Invoke(Object targetObject, String shortVerbName, String[] names, String[] particles, Object[] arguments, Boolean useReturnValue, Boolean isPartial, Object lastValue)
場所 Main.広域種類.MainCode()
場所 Main.メイン種類.起動()
場所 Main.メイン種類.Main()
```

修正しました。1.9.1300

投稿者:ゆうと 投稿日:2025/01/05(Sun) 13:53:27 No.2454

こんにちは。お世話になっております。

ご指摘のバグについては、mono版1.9.1300で修正しました。
丁度コンパイラ周りの改修を行っております。
引き続き何度かアップデートする予定です。

配列につきましては、今回内部的な部分で大幅に改修を行いました。
プログラムの変更は起こらないつもりですが、
すでに動作しているプログラムが意図せず動作しなくなる可能性もあります。
何かお気づきの際はフィードバックを頂けますと幸いです。

> /quiet を付けたときに改行が一つ出力されます。

rdrc.exeの/quiet件も状況確認しましたので修正しました。

コンパイラのバグ報告(配列まわり)

投稿者:shogo314 投稿日:2025/01/03(Fri) 10:50:18 No.2453

# コンパイルできない、あるいはコンパイルしたときに正常に動かないコード
## 配列
https://produ.irelang.jp/docs/primitive/array.htm

```
一覧は{「東京」,「名古屋」,「大阪」}
一覧を表示する

一覧から1番目と3番目を交換して、結果とする
結果を表示する
//{大阪,名古屋,東京}
```
実行時にエラーになる。交換するがバグっていそう

```
一覧は{「ABC」,「EEE」,「DDD」,「CCC」}
一覧の3番目へ「123」を挿入して、表示する
```
コンパイルエラーになる。

## 固定長配列

https://produ.irelang.jp/docs/primitive/fixedarray.htm

```
【一覧:固定長配列】は、固定長配列(10)を作ったもの
数を1から10まで増やしながら繰り返す  //11以上はエラーとなる
一覧(数)は、数*数
そして
一覧(5)を表示する
```
実行時にエラーになる。インデックスアクセスができない。

## 「すべて」後置子

https://produ.irelang.jp/docs/syntax/subete.htm

```
{120,160,220}すべてに1.08を掛けて、出力する
```
実行時にエラーになる。

# ついでに

/quiet を付けたときに改行が一つ出力されます。

修正確認しました

投稿者:天網 投稿日:2024/12/27(Fri) 23:43:30 No.2452

お疲れ様です。

先ほど最新版にて修正されているのを確認しました。

年末のお忙しいところありがとうございました。
よいお年をお迎えください。

修正しました(1.9.1295)

投稿者:ゆうと 投稿日:2024/12/26(Thu) 22:49:57 No.2451

こんにちは、ご報告ありがとうございます。

ご指摘の現象について確認でき、最新版で修正しました。

> 1. 設計画面で部品の有効が変更できない
>   プロデルデザイナの設計画面で部品の有効の項目を○×どちらを選択しても空欄になります。
>   また、「その有効は×」の様に手書きで設定しても設計画面を開く度に項目が削除されます。

こちらについては、長年未対応のままそのままになっていましたが、
1.9.1295で対応しましたのでお試しください。

> > 2. 環境依存文字が文字化けする
> >   プロデルデザイナで一部の環境依存文字が自動的に別の文字列に置き換えられてしまいます。
> >   例えば「\」(¥の環境依存文字)の場合、「\cf5」の様に「バックスラッシュ○○」に自動的に置き換えられます。
>
> 前回からいろいろ試してみたのですが \ (U+00A5)は \ (U+005C)、 © (U+00A9)は c (U+0063)、 ® (U+00AE)は R (U+0052)等が別の文字に置き換えられます。

補足てリプ頂いた通り、バックスラッシュには問題なく、Unicodeの半角¥記号で文字化けが発生することを再現できました。
詳しく検証したところ、ASCIIコード外の1バイトのUnicode文字で文字化けや置き換えが発生することもわかりました。
こちらも最新版で修正済みです。

> 3. CRC32ハッシュ値が正しくない
>   プロデルの「CRC32ハッシュ値」で得られるハッシュ値と他で得たCRC32ハッシュ値(7-Zip、OpenHashTab、他多数)が一致しませんでした。

こちらもCRC32の計算アルゴリズムのシード値が一般的な方法と異なっていましたので、仕様変更で対応しました。

上記3点、ご指摘があるまで、全く気がついていませんでした。
ご指摘ありがとうございます。

Re: 1.9にて質問文の自動調整の機能を追加しました

投稿者:若人 投稿日:2024/12/25(Wed) 22:13:46 No.2450

こんばんは、若人です。

早速対応いただきありがとうございます。最新版にて確認が取れました!

ただ、複数行に渡った質問内容の入力画面を表示した後、1行の質問内容の入力画面を表示すると複数行分に調整されたままの入力画面になるようです。(余白が大きくなる)

繰り返し手順の中で使っているので、そのせいもあるかもしれません。

またご確認いただければ幸いです。よろしくお願いいたします。

Re: プロデルデザイナとハッシュ値

投稿者:天網 投稿日:2024/12/23(Mon) 06:56:26 No.2449

> 2. 環境依存文字が文字化けする
>   プロデルデザイナで一部の環境依存文字が自動的に別の文字列に置き換えられてしまいます。
>   例えば「\」(¥の環境依存文字)の場合、「\cf5」の様に「バックスラッシュ○○」に自動的に置き換えられます。

前回からいろいろ試してみたのですが \ (U+00A5)は \ (U+005C)、 © (U+00A9)は c (U+0063)、 ® (U+00AE)は R (U+0052)等が別の文字に置き換えられます。
一時的な回避方法としてプロデルデザイナの「オプション」から「テキスト領域」の「プログラムに色を付ける」のチェックを外すことで文字の置き換えの発生は防げました。
もしかしたらプログラムに色を付ける処理の中でWindowsでUnicodeを扱う際に発生する文字コードに関連する不具合が起きているのかもしれません。

1.9にて質問文の自動調整の機能を追加しました

投稿者:ゆうと 投稿日:2024/12/19(Thu) 19:57:09 No.2448

こんにちは お世話になっています。

> さて、入力画面において、質問内容が長いと見切れてしまうのですが、文字数に制限がありますでしょうか。

入力画面では、質問文の長さに応じてウィンドウサイズを調整する機能がありませんでした。
1.9.1292にて、自動調整するように改良しました。

お試しください。

プロデルデザイナとハッシュ値

投稿者:天網 投稿日:2024/12/19(Thu) 05:44:53 No.2447

お世話になっております。
バグと思われるものを3つ報告します。

1. 設計画面で部品の有効が変更できない
  プロデルデザイナの設計画面で部品の有効の項目を○×どちらを選択しても空欄になります。
  また、「その有効は×」の様に手書きで設定しても設計画面を開く度に項目が削除されます。
2. 環境依存文字が文字化けする
  プロデルデザイナで一部の環境依存文字が自動的に別の文字列に置き換えられてしまいます。
  例えば「\」(¥の環境依存文字)の場合、「\cf5」の様に「バックスラッシュ○○」に自動的に置き換えられます。
3. CRC32ハッシュ値が正しくない
  プロデルの「CRC32ハッシュ値」で得られるハッシュ値と他で得たCRC32ハッシュ値(7-Zip、OpenHashTab、他多数)が一致しませんでした。
  CRC32以外のMD5、SHA1、SHA256、SHA384、SHA512のハッシュ値では他で得たハッシュ値と一致したためそちらは問題なさそうです。

◆動作環境情報◆
プロデル 2.0.1290
Windows 10 Pro 64ビット
メモリ:31.9 GB

入力画面の質問内容が見切れる

投稿者:若人 投稿日:2024/12/17(Tue) 22:50:54 No.2446

こんにちは、ご無沙汰しております。若人です。

さて、入力画面において、質問内容が長いと見切れてしまうのですが、文字数に制限がありますでしょうか。
[改行]を入れると、テキストボックスに微妙に重なってしまいます。

ご確認の程、よろしくお願いします。

(以下サンプル)
入力画面のタイトルは「ユーザ登録」
入力画面で「お名前をカタカナフルネームで入力してください。苗字と名前の間は一文字あけてください。」を入力させる
入力画面のキャンセルなら
  「キャンセルされました」を情報アイコンで表示する
そうでなければ
  「[入力画面の内容]さんが登録されました!」を情報アイコンで表示する
そして

▲ページの先頭へ

- WebForum -