MKKKKKSプログラミング構想
MKKKKKSとは
Maido Kobetsuni Kaitenaide Konogurai Kyoutsuu Kinouni Shitoke の略です。
思いっきりベタですね。
とりあえず、Cの文字列処理ってめんどいよね
メモリ管理が別途要るところとか。
0終端前提とか。
なんでいちいちfopenとかやってんの
ちょっとしたファイルひとつ読むだけなのに
まずfopen書いて、ファイルサイズ調べーの、メモリ確保しーのと。
しかもエラー対応までそれぞれ要素別にとか。
…っとまぁ
当方、Batocera.linuxのハック着手のため20年ぶりぐらいに
素のCに戻ってきたわけですが、使い勝手は相変わらずですね。
いろいろと便利な機能が(ごっちゃごちゃに)盛り込まれ(て一層ややこしくなっ)てきたC++とは対照的。
で、そんな感じのいちいち個別実装されてるとこを機能化しといて
すぐ使えるような体制を整えとくのがひとつの目標。
もうひとつの目標
GitHubにUnlicenseで上げてます。
現場移る度に毎度車輪の再発明からやりなおさずとも
ここからソースを拾ってくるだけで使えるようにしとくと。
ソースファイル毎の独立性確保
さらなる特徴として、ライブラリ一式ごちゃまぜセットではなく
使う部分だけのソースファイルを拾って組み込みに使えるものを
目指しています。
ソースファイルの依存関係よくわかんないとか、公式Makefileに
依存してて導入めんどいとか、要らん部分が名前競合してて
使えないという事態は避けたい。
今回の到達点
Batocera.linuxのハックにて、いくつかのコアで拡張M3Uファイルの機能を
組み込んでみたわけですが、それぞれのコアで個別に書き直してるのも
イケてないし、なんか挙動怪しいのもあるので、独立機能として
書き直した上で徹底的な単体テストを済ませておきました。
(独立機能にすることで、テストを完結させやすい利点もあり)
さらに、その過程で必要となった低水準機能
メモリ確保と解放
簡素な文字列処理
ファイル一括読み出し
もまた独立機能に起こし、今後の実装に流用できるようになりました。
今後の予定
独立機能にしておきたい要素はまだいっぱいあるので、機会をみて順次。
また、素のCだけでなくC++ C# JavaScript PHPあたりもよく使うので
同様に機能整備対象としておきます。