Petitverse
ゲストさん (
ログイン
)
ログイン
コミュニティ内検索
コミュニティ一覧
Petitverse ご利用ガイド
Petitverse からのおしらせ
プチコン 非公式コミュニティ
プレイ日記
あまさとしおん
◆mzDKTVUAtwqE
2023/7/20 15:49
EXECを繰り返した後に別スロットのCOMMON DEFを呼ぼうとすると不正なillegal function callっぽいのが起きる現象を発見した
プチコン3号のバグ?
コメント
あまさとしおん
2023/7/20 15:54
◆mzDKTVUAtwqE
文章で説明するのが死ぬほど難しいんだけど
Aプログラムで
SLOT 3にPRGINSを用いてコモンDEFを挿入する
当該DEFを呼ぶ処理←正しく動く
EXEC "Bプログラム"
Bプログラムで
EXEC "Aプログラム"
Aプログラムで
SLOT 3にPRGINSを用いてコモンDEFを挿入する(※一度消してるので重複ではない)
当該DEFを呼ぶ処理←なぜか全く同じことをしてるのにillegal function callを吐く
あまさとしおん
2023/7/20 15:55
◆mzDKTVUAtwqE
別スロットではなく同じスロットをEXECで上書きしてるのは意図通り
(2度目のAプログラム実行時に最初の起動からやり直したいのでわざとそうしてる)
あまさとしおん
2023/7/20 15:58
◆mzDKTVUAtwqE
この呼び出しが2度目で謎のエラーを吐く
BFSTR$(問題のコモンDEF)はCOMMONLIB.PRGに含まれているので未定義ではない(そもそもDEFがない場合はsyntax errorになるので違う)
何がしたいのかというと、SB4ポリフィルから動作デモ部分を削除するという処理です
あまさとしおん
2023/7/20 15:58
◆mzDKTVUAtwqE
Q.PRGINSを用いてコモンDEFを挿入するのはなぜ?
A.スロットが4つしかないので本体プログラム+4つ以上のライブラリを呼ぶにはそうするしかないから
あまさとしおん
2023/7/20 16:04
◆mzDKTVUAtwqE
たぶんだけどスマイルブームの人もこんなにライブラリをたくさん呼ぶ作品を想定してない気はする
あまさとしおん
2023/7/20 16:07
◆mzDKTVUAtwqE
辞書と漢字ライブラリとSATLIBとSB4ポリフィルを同時に保持しないといけないとか
我ながらかなりヘビーな設計ではある
あまさとしおん
2023/7/20 17:09
◆mzDKTVUAtwqE
解決不能っぽいので
苦肉の策で戻れないのが仕様ということにしました
Na
2023/7/21 0:42
◆QoELVrBXBQCI
TXT:A ファイル↓
EXEC "PRG3:C"
?CHKCALL("A")
PRGEDIT 3
PRGINS "COMMON DEF A:?"+CHR$(34)+"A"+CHR$(34)+":END"
EXEC 3
?"EXEC 3"
?CHKCALL("A")
A
EXEC "B"
TXT:B ファイル↓
EXEC "A"
TXT:C ファイル = 空ファイル
でAを実行したところエラーにならず正常動作しました
バグ発生にはこれの他に条件がありそう?
ちなみに出力は
0
EXEC 3
1
A
0
EXEC 3
1
A
... と無限ループ
あまさとしおん
2023/7/22 15:13
◆mzDKTVUAtwqE
怪奇現象、単純化した実験プログラムだとだいたい起きないんですよね
でも2引数の関数に2個渡してillegal function callって起こり得ないはずなので、バグとしか思えない
一番悲しいのは突き止めて報告してもまずアップデートしてもらえる可能性がないってことだけど
あまさとしおん
2023/7/22 15:30
◆mzDKTVUAtwqE
最小に近い構成で発現できたので参考に
key KWXAX33
もしかしてだけど同スロットにEXECを複数実行するとおかしくなる?
→EXEC 3をUSE 3にしても発症する
あまさとしおん
2023/7/22 15:37
◆mzDKTVUAtwqE
あ
何となく原因が見えた
USE/EXECで有効化したDEFを実行する前にDEFのあるスロットにPRGEDITをかけると異常を起こす、というのが可能性
でも初回がうまくいって2回目でエラーを吐くのが不可解
もし「PRGEDITを実行すると当該スロットのCOMMON DEFが無効になる」という仕様ならば、1回目でエラーになるはず
コメントを書く
こちらは「プチコン3号」「プチコンBIG」など、
プチコンシリーズ
に関する話題を扱った
コミュニティです
プチコンシリーズにまったく関係ない書き込みはご遠慮下さい。削除の対象となります
こちらにはその他のゲームや雑談のコミュニティはなく、作る予定もありません (ひとりで管理できないため)。ごめんなさい
ユーザー登録なしで書き込みができます
秘密の合い言葉は成りすましの防止 (
トリップ機能
)、書き込みの編集時の本人認証に使用します
秘密の合い言葉に他人に推測されやすい言葉、他サービスと同じパスワードは入力しないでください。
書き込むと、投稿時に入力したお名前と秘密の暗号が記憶され、ログイン状態になります
normal
happy
like
surprized
frustrated
puzzled
画像
ネタバレ
投稿する
-
WEB PATIO
-