梨野 簡単履歴2

野 簡単履歴2


もっと過去の簡単履歴
20010520.21:34
 Phase1.09公開。
 1.08は無し。エンバグしてました。すみません。
 あと、[SAKURA]データファイルで、1行目に
[SAKURA]
の記述が無いと、確実にコケます。少なくともコケないようにはしないと。

 現在の梨野には実験用のコードがけっこう入っています。
 安定版と実験版にバージョン分けようかな……

20010520.19:43
 Phase1.08公開。
 [SAKURA]データファイル読み込み時に、「,」を見つけると区切り記号と誤認する不具合を修正。
 華和梨辞書の読み込みアルゴリズムが混じってました。行単位に読み込んで、余計な判断は何もしないように修正しました。

/*
SHIORI/2.3
*/

 きにゃー。

 Toの実装はすげーうれしい。

20010520.11:16
/*
梨野の人が黒任意さん救出計画とか書いていたのを見て、
*/

 ネタ協力できないんで、プログラマはコード書くしか。
 ちょっと恐縮。
/*
実は同じ事を考えて、黒姉さんの為の栞ってことで「黒栞」というのをほんのちょっと進めてました(^^;)
*/

 実はもう一つ、makotoあたりで片っ端から書き換えるってのはどーかな、と思いましたが、思っただけ。
 最も安直なのは、適当にディレクトリ掘って、古い「何か。」をインストールしとくことです。
「進むことを止めたものは、デスクトップには立ち続けられない」というコンセプトを蔑ろにするよーな対策ですが。

 梨野もあちこちでリンクしていただいたりしていますが、紹介に「華和梨をベースとした」と書かれることが多いです。
 間違ってはいないですが、注意していただきたいのは、暗号のデコード部分以外のソースは全部私が独自に書いています。
 一般論として、ソースコード流用で分岐した場合は、片方で不具合が発生した場合、もう片方にも同じ不具合が存在する可能性はあります。しかし、梨野と華和梨の関係はこれにはあてはまりません。
 そんなわけで、昨日発覚した${2}みたいな間接参照が失敗するといった不具合は梨野独自のものであり、華和梨とは関係ありませんので、ひとつよろしく。

20010519.18:26
 Phase1.07公開。
 ${2}で変な答え返す不具合を修正。配列の添字計算間違えてた。はずかしーっ!!
 とりあえず、このみ(00.35/0519-2)+きのこ(3.2)+SSP version 1.00 beta 0.20で異常なしです。
 ちなみに梨野Phase1.06と上記の組み合わせでも15時間異常なしで動いていたので、環境依存(というか、スタックオーバーフローみたいなメモリ周辺)の不具合が残っている可能性はあります。
 再帰呼び出しでスタック食いつぶしてるのはありそう。辞書まわりはポインタのアドレスを全部printfではき出させて電卓叩いて確認してみましたが異常なし。
 そういえばWin32ってメモリモデルとかってどーなってるんだ? すもーるとからーじとかってまだあるのか?
 基本的にMS-DOS3.3のころと同じつもりで梨野って作られてるからなあ……

20010519.00:54
 SSPで梨野がコケる不具合がパッチ付きで報告されてきたので、Phace1.06で対応。ソース公開しといてよかった。
 現在梨野はSSPではほとんど試験してません。これはCommunicate系を中心に実装してきたことと、純粋にそこまで手が回らないだけです。とほほ。

20010519.00:16
 あー、忘れてた。
 script.txt([SAKURA]データファイル)が読めると言いましたが、%j[ ]とか%q[ ]とかは解析してないんで、上手く動かない場合があるかも。
 と、いうかevent以外の部分も全部梨野が読み込むんだが、それでいいのか? 正しく動くのか? とかいろいろ疑問が。無視するだけとは思うんだけど。
 とりあえず起動時と切り替え時と終了時の喋りがうまくいくことしか確認してないし。<ぉぃ
 やっぱ1つghost作ってみんと、動作よくわからんな。

20010518.21:10
 Phase1.05公開。

 黒任意さん救出計画・大失敗。
 script.txtの役割が 栞に移管されて喋れなくなるのなら、栞が script.txt([SAKURA]データファイル)を読めればなんとかなるのでは、と思ってやってみた。

 結果:
 /data/script.txtとのスクリプトオーバーライドまで自力でやらなきゃ意味なし。あと、昔の/data/script.txtの内容をghostのscript.txtに追加してやらないと、そもそも読むべきデータが無い。
 これで script.txtで定義したしゃべりはなんとかなるが、普段の偽AIトークの処理も横取りするため、AI Diedの嵐になる。

 総合評価:
 失敗。だめじゃん。(つーか、やる前に気付けよ)
 俺にできるのはここまでらしい。
" I may not get there with you. But I want you to know tonight, that we, as a people will get to the promised land."
 ネタが集まって新生することを祈ってます。

 Promised Landには行けませんでしたが、この機能で script.txtを自力でSHIORI/2.2用に書きなおす手間は省けます。
/*
script.txtからSSPのSHIORI/2.2イベント対応状況を見ながら移行していきます。
*/

 てなわけでその作業不用。生産的な部分に時間使ってください。仕様変更部分に対応するのはシステム側の仕事のはず。んな単純作業は梨野にやらせときゃいいんです。SHIORI/x.x仕様が変わったくらいで、辞書の該当個所をいちいち書き換えなきゃいかん、というのは、システムのあるべき姿ではない。と思う。
 ……まあ限度超えたら逃げますが。
 とりあえず時間関係とマウス関係は独自処理が必要な気がするので、まだ対応できません。もうしばらくpiroにまかせる。
 起動時のあいさつとかも時間帯別反応できない現状は困るよなあ。
 あと、現状では自分で使う分でしか試験してないので、ちょっと不安だったり。使用者は仲介する dict-script.txtをチェキな。

 ちなみに[SAKURA]データファイルの読み込みは、華和梨phase0.5仕様に含まれてるので、同じことは華和梨でもできるはずです。できますよね?

20010518.12:28
/*
永遠に最新版には乗っていけないんでしょうか。
*/

 コンパイラを変更したら、全プラットフォームで全機能評価をもう一度、が基本です。
 それが割に合わないならば、諦めるしか。
 ……だからって、未だにコンパイラは DOS6の上、ICEはWin3.1の上、ってのはイヤすぎ。<実話

20010516.22:28
/*
きのこバグかも。ghost指定がないきのこ(1UPきのことか、PC100SDRAMCL2とか…)でslot2(カテゴリ)が送られてない気がするのですが。気のせい?
……もしかしてSSPバグか、それとも梨野バグか……
とりあえずチェックしてみてください。SSPバグかもしれないですけど。
*/

 梨野はなんも考えずに8回回してます。
 仕様書に8個って書いてあるから。
 難しいことはなんも考えてません。はい。

20010516.17:18
/*
「うるせえ帰れ」
*/

 そうか、その手があったか。

20010516.15:30
/*
歴史的経緯も既得権も人間関係も全て無視して、単純に主観でゴーストを格付けするシステム(人間ないし組織)。
*/

 あー、格付けじゃないけど、昔某ジャンルで評価システムを構築しようとして死体の山を築いたことがあったっす。
 その後も、いろんな人がその死体の山を高くしていくのをまったりと眺めてました。

 世の中には評価されることが嫌いな人がいます。まあこれは別においとくとして、問題になるのは、評価行為を行っている組織・人が存在すること自体が嫌いな人が存在することです。
 基本的に無視しときゃいいんですが、そーゆー人は声が大きかったりやたら騒ぎまわって周囲に迷惑かけるってのが定石。
 とにかく、良い悪いと好き嫌いの区別できずに混同する人が、世の中にはかなりの割合で存在するよーです。そんなのにからまれた日には、墓場への坂道をごろごろごろ。死体の山が高くなるだけ。

 格付けするシステムにどうこう言いたいわけじゃないです。有ったら便利に使うと思う。必要である、という主張も理解できる。
 ただ、よほど周到に準備・運営しないと無用な混乱を招くことを、歴史が教えてくれている、というだけ。
 ま、辺境のじじいの繰言と思ってくだされ。げほげほ。

20010515
 会社のマシンのネットワーク名に、さくら、せりこ、まゆら、と名前をつけようとしたら、おこられた。
 だって、アルファベットと数字じゃつまんないじゃないかよー。

 ぼちぼちとソースをブラッシュアップしています。Communicate1.1関係は全削除とか。
 現時点での問題は、SHIORI/1.1から受け継いだ部分と、SHIORI/2.1,2.2で実装した部分が分離してしまっていること。現在梨野から他のゴーストへ話しかける手段が、メニューからTEST叩くしかない原因はここにあります。普段のしゃべりではSHIORI/1.1のアルゴリズムを使っているので、梨野独自命令が発行されることは無い。
 これについては、根本的な対策の布石を行いつつ、暫定処置を行う予定。まあ辞書の設計者にとっては、根本的だろうと暫定的だろうと動けばいいわけで。暫定的に適当なことやって困るのは、コード書いてる自分です。とほほ。

 しかし最大の問題は、梨野にはたいして売りになるところが無いってとこだよな。
 公開当初はCommunicate対応が売りだったんだけど、現在は梨野にできることは、華和梨にも全部できるし。
 翡翠とか羽鴇さんとこみたいな新しいアプローチも無いし。

 なんか考えよう。このままじゃ、まるでCyrixだ。

20010513
/*
華和梨 Phase0.5-Beta1で書くとこうなります。
["ばか"] : $(if [ ${system-Sender} == "さくら" ])$(then "\h……さくらがいじめるんだよぅ。\n\e")$(then $[set system-communicate なる])$(endif)
# 動作未確認(^_^;
*/

 これは私に対する挑戦だな!
 と言いたいところですが、さすがにムリっす。(^_^;)
 やってやれないことは無いと思うのですが、どう考えても半月以上コース。
 華和梨のソースを流用させていただくって手もありますが、そこまでするなら、華和梨に梨野コマンドのプリプロセッサ載せた方が手っ取り早い。だいたいC++はよく解らん。脳味噌K&Rで止まってるし。<ぉぃ
 そういえば似非shiorもIF使ってるしなあ。やっぱり辞書にスクリプト埋め込みってのは便利なのじゃろか。

 梨野に実装されていない残り2つの華和梨 Phase0.5仕様は実装するつもりでいます。

20010512
 Phace1.00を公開。

nasino from[さくら] to[なる] sentence[ばか] : \h……さくらがいじめるんだよぅ。\n\e

 で、さくらから、「ばか」を含む台詞を投げられると、なるに泣きつきます。夢の三者面談が実現。
 to[ ]内には、一人の名前か、不特定のanyoneしか使えないのがちょっと残念。
 あと梨野専用コマンドがCommunicate関係限定になっているのはいまいち。
 それでもCommunicate関係でやりたかったことの大枠は今回まででできたつもり。[ ]内に${}の一般エントリが使えない(これができれば、sentence-toiebaがいらなくなるんだが)とか、to[]指定に柔軟さが無いとか問題はあるけれど。
 と、いうわけで大きな機能追加はしばらく行わないつもりです。小改良は適時。
 時間かけて実験用じゃない辞書とか作りたいっす。

20010511
/*
あと Reference に数字だけ渡されるタイプのイベントはどうやって解決するんでしょうか。単語ヒットのチェックだけでは立ち行かない気がするんですが‥‥
*/

 SHIORI内部で処理してなんとかする必要があると思ってます。頭なで判定とか時間経過とか。
 あとファイルのパスが渡されるやつも。
 でも他にやること多いので、piroがやってくれる間は極力piroでやってもらう方針で。
 できれば新しく辞書を書きなおさずになんとかしたいと思うんですよ。従来できてたことが、辞書を直さなければできなくなるのではゴースト作者は大変です。その大変さを吸収するのはSHIORIの仕事。むやみやたらにエントリ増やして対応、ではみんなで墓場一直線な予感。
 この答は華和梨Phase0.5仕様の中にあるんですが。Project-Xは方向性として大正解。

/*
というか、ホイールが動いたからって何か話すことあるのかなあ?
*/

 マウスカーソルでのなでなでの代わりに、ホイールくりくりってのは需要おおありではないかと。
 しかしホイールくりくり判定は複数のイベントを総合して判定しなきゃいかんので、ちょっとこれまでの処理とは毛色が違うにゃ。

 余談ですが、Phace0.97から辞書の検索アルゴリズムを大幅に変更してあります。2パス総当り戦から1パス検索へ。多少高速化してるはず。
 ハッシュとか二分木とかいいアルゴリズムがあるのは知ってますが、下手に高度なアルゴリズムを実装すると機能追加で死ぬことになるんで。
 とりあえずのモットーは、「改良可能な構造にせよ」ってことで。

 あちこちの互換栞の日記とか読むと、同時多発に似たような仕様に辿り着いたりしてるのがなんか楽しい。

20010509
/*
あと,今どういう着せ替えの状態なのかをSHIORIが知っている必要もあるような気がします.
*/

 そういうイベント系の通知はSHIORI/2.2 Event: の仕事と思います。

 Phace0.97を公開。
 Communicationで送られてくるsender、Eventで送られてくるreferenceをタグ経由で辞書に組み込めるようになりました。
 猫どりふで
nasino event OnNekodorifObjectEmerge : \u……なんか落ちてきた。${reference0}か。\n\e
 としておけば、かえるがおちてきた場合は
\u……なんか落ちてきた。かえるか。\n\e
 と置換されます。
 senderも同様。Comminucateで話しかけてきたゴースト名に置換されます。
 まあこれでsentence-toiebaは将来的に廃止の方向で。元々SHIORI COMMUNICATE/1.1対応のためのタグなので、SHIORI/2.1が整備されたことで役目は終えたと考えています。
 現時点では処理はするので、いきなり使えなくなることはありませんが。
 それどころかSHIORI/1.0仕様も未だにエクスポートしてたり。

20010508.23:04
/*
SHIORI が応答するかどうかの勝負なのでどんな変な識別子送っても大丈夫。
*/

 梨野の場合、Eventに送られてきた識別子をそのまま辞書の検索に使用してますんで、辞書さえ対応させればどんな識別子にも対応可能。
 ついでに辞書から発見できなかった場合は、とにかく204で返事するので、PIROにまわしてもらえるものはPIROにまわされます。
 とにかく梨野は仕様の厳密性よりも、とにかくエラーを吐かないということを念頭に手をぬきまくってます。

 あとSHIORI/2.0 TESTで梨野の吐く台詞は、SHIORI/2.1の仕様書からまるまるいただいただけで、他意はないです。


[梨野]
Copyright(c)2001 早坂千尋
Last Updated: