* acl4 -(by [[K]], 2025.11.28) ** (0) -acl4 は "A C-lang Library version4" の略です。 -かつてはもっと長い OOXXCL みたいな名前でしたが、名前が長いと扱いにくいと思うようになり、結局「a」だけでいいや、と思ってこうなりました。 ** (1) -今では、Cコンパイラを作れる人がそこそこ増えてきました。しかし自分が作ったCコンパイラを使っている人はあまり多くないのが実情です。 -私は「自分で作ったものを自分で使っていかなければいいものはできない。そういうサイクルを経験しなければ開発の練習としても完全ではない」と思っているので、この状況はもったいないと思っています。 -でもC言語よりもC++やRustのほうが便利であるというのは残念ながらその通りです。いいものがすでにあるのに、よくないものをあえて使えというのは全く合理的ではありません。 -そこで、C言語を愛する[[K]]が、どうにかしてC言語を便利にしようとしてあれこれと頑張りますので、ここにその記録を残します。 ** (2) -基本的な考え方: -(2-1)[[a25_acl4_001]]: ADbgLv(デバッグレベル) -(2-2)[[a25_acl4_002]]: 分割コンパイルはあまり使わない・命名規則 -(2-3)[[a25_acl4_003]]: malloc/freeの拡張 -(2-4)オブジェクトに型情報を持たせる -(2-5)プリプロセッサの拡張 ** (3) -acl4に至るまでの歴史: --OOXXLib: 名前を忘れたものが数作 --bla: グラフィックライブラリ --klib: 名前しか覚えてない --blike: グラフィックライブラリ(2010-2018)(OSECPU-VMなど) --bla: グラフィックライブラリ(2018-2022)(ES-BASICなど) --kclib: メモリ管理などもやるようになった(2019-2022) --acl: デバッグレベルを初めて導入 --acl1: デバッグレベルによってオブジェクトのサイズが変わらないように工夫したら、複雑になりすぎてボツ(2022-2025)(easy-C) --acl3: シンプル回帰(2025)(kharc/uck) --acl4: 本作 --acl1: デバッグレベルによってオブジェクトのサイズが変わらないように工夫したら、複雑になりすぎてボツ(2022-2025)(easy-Cなど) --acl3: シンプル回帰(2025)(kharc/uckなど) --acl4: 本作(2025-)