希哲13年7月6日の開発

描主宇田川浩行K#F85E
上描き希哲13年(2019年)
07月06日 22:53
下描き希哲13年(2019年)
07月06日 15:57
利承
ライセンス
希哲館普通利承(KULクール

今日は主に方針仕様の策定に時間を使った。

大理容

一昨日に掴んだ大理容の糸口が旧全知検索で感触が良かったこともあり,まずは機能が充実している旧全知検索と,新希哲館装体を模索していた新全知検索の統合を大理容最初の目標に定めた。

また,画面記録も大理容の作業前に全て撮っておくことを考えていたが,一昨日の画面記録で,作業にあたる部分をその都度撮っていく方が効率的で確実なことに気付いた。今後はこのやり方で画面記録を残していく。

Cμ における排他制御

ここ数日,Cμ における排他制御について再考している。

現状の a_ も悪くはない。lck() のおかげでどこでロックが発生するか,分かりやすく制御しやすい。

課題として,一糸多糸で交度の共通性が無くなってしまうというのがあったが,これは p_ にダミーの lck() を持たせることで解決出来る。これなら,排他制御を有効にした場合にロックすべき箇所を明示出来る。

透過的にした方が簡略で良いんじゃないかとも考えたが,通常の指示体がある以上,見かけ上の一貫性が損われる。経験上,ロックの発生箇所は分かりやすい方が良い。

使う側ではなく,使われる側で排他制御を指定することも考えたが,これはこれで類型の内部実装が複雑になる,客体の実装依存になるなどの問題がある。ただ,lck() の多重発生で問題が起きないようにしておく必要はあるだろう。

結局,ダミーの lck() を p_ に追加すること,a_ の改称は検討を続け,それ以外は現状維持とした。

将来的にはより汎用化させる(指示体機能を切り離す)必要はあるが,指示体と組み合せた場合の交度上の表現は変わらないだろう。汎用化すれば指示体の実装も集約出来,表記上の構造も直感的になる。あとは新しい名前だけの問題だが,やはり lck_lckr_ あたりが直感的か。現在,lck_ は一時変数用の類型名として使われているため,この辺の名前も整理する必要がある。

汎用化した場合,lck() をダミーにするより,マクロを使うか,有効・無効を切り替える道手でも加え,lck() 内部で挙動を切り替えた方が良いことに気付いた(全ての客体にダミーの lck() を持たせるわけにはいかないため)。この場合,lck() を使う可能性がある客体は常に lck_ 等で宣言しておく,ということになる。最適化の選択肢を広げるために,道手とマクロを組み合せることも出来るだろう。道手なら,糸数に合わせて動的に挙動を変えることも出来る。

外部からミューテックスを渡せるようにし,nil で無効化,は分かりやすいが,この場合,ミューテックスを保持したままの一時的な無効化が簡単に出来ない。かといって,別フラグを持たせておくほど一時的な無効化を多用するとも思えない。このあたりは検討課題としておく。

p_ に lck() を持たせることは決定しかけたが,ここまで考えて廃案とした。

最後に,LCK() をマクロとして実装することを考えた。これなら根本的に無視出来る。換配時最適化で函数呼び出しはほぼ無視出来そうだが,実装が圧倒的に単純になるのと,道手と同名マクロなので自然大文字になることもあり視認性が良い。

ついでに型定義でも使える LCK_() を考えた。この時,マクロにすると LCK() と LCK_() で表記が紛らわしいことに気付いた。型名を lck_ にするか lckr_ にするか少し迷ったが,これが決め手で lckr_ を採用,マクロは LCKR_() に決めた。これで a_ を空ければ配列の表現に転用出来る。

まずは lck() を LCK() に書き換えることから始める。

これが今日一番の収穫か。

一覧

=}{画面記録}

=}{希哲13年8月21日の画面記録}{希哲13年8月20日の画面記録}{希哲13年8月19日の画面記録}{希哲13年8月18日の画面記録}{希哲13年8月17日の画面記録}{希哲13年8月16日の画面記録}{希哲13年8月15日の画面記録}{希哲13年8月14日の画面記録}{希哲13年8月13日の画面記録}{希哲13年8月11日の画面記録}{希哲13年8月10日の画面記録}{希哲13年8月9日の画面記録}{希哲13年8月8日の画面記録}{希哲13年8月7日の画面記録}{希哲13年8月6日の画面記録}{希哲13年8月5日の画面記録}{全知検索一覧現状}{希哲13年8月4日の画面記録}{希哲13年8月3日の画面記録}{全知検索における吹き描き実現当初の様子}{全知検索一覧現状}{希哲13年8月2日の画面記録}{希哲13年8月1日の画面記録}{希哲13年7月31日の画面記録}{希哲13年7月30日の画面記録}{希哲13年7月29日の画面記録}{希哲13年7月28日の画面記録}{旧全知検索一覧現状}{希哲13年7月27日の画面記録}{旧全知検索・調整作業後}{希哲13年7月26日の画面記録}{希哲13年7月25日の画面記録}{希哲13年7月24日の画面記録}{希哲13年7月23日の画面記録}{希哲13年7月22日の画面記録}{希哲13年7月21日の画面記録}{希哲13年7月20日の画面記録}{希哲13年7月19日の画面記録}{希哲13年7月18日の画面記録}{希哲13年7月17日の画面記録}{希哲13年7月16日の画面記録}{希哲13年7月15日の画面記録}{希哲13年7月14日の画面記録}{希哲13年7月13日の画面記録}{希哲13年7月12日の画面記録}{希哲13年7月11日の画面記録}{希哲13年7月10日の画面記録}{希哲13年7月9日の画面記録}{希哲13年7月8日の画面記録}{希哲13年7月7日の画面記録}
出力論組プログラム虎哲*イチ 1.01
制作・運営:希哲社
© K1-13 (2007-2019) KiTetuSha