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あたりもよく使うので
同様に機能整備対象としておきます。

いいなと思ったら応援しよう!