* KHPC ver.0.1の内部資料的なもの -(by [[K]], 2016.05.19) ** 基本仕様 -KHPCの2番目のバージョン。KHPCは[[persistent-C>persistent_C]]の簡易実装を目指したツール群。 -基本方針: とにかくできるだけ手抜きをする。次のバージョンでまともにすればいい。手抜きは美徳である。 -このバージョンの目玉:「persistent命令」をサポートする。 ** ダウンロード -開発中 ** 関数群 -[[KHPC_v00doc01]]に準ずる。 ** persistent命令の変換アルゴリズム -与えられたソースから「persistent」を含む宣言を探し出す。そしてその変数名を内部のバッファに貯める。 --ソースは1つとは限らない。分割コンパイルなどで複数のソースに分かれているかもしれないので。 -ソースをすべてチェックしたら、以下のようなテキストファイルを出力する。 --"abc", "def", "ghi"という3つの変数がpersistent属性を持っていたとする。 void persistent_grp(int grpId, const char *path, const char *tmp, const char *memo); void persistent_def(void *p, int size, int grpId, const char *id); void persistent_default() { persistent_grp(0, "p-vars.pbd", "p-vars.pb_", "(local)"); persistent_def(&abc, sizeof(abc), 0, "abc"); persistent_def(&def, sizeof(def), 0, "def"); persistent_def(&ghi, sizeof(ghi), 0, "ghi"); return; } --このソースを含めてコンパイル&リンクすればいい。 --このpersistent_default()という関数はpersistent_load()が最初に実行された時のみ、呼ばれるようにしておく。 -元のソースからpersistentの語を消す必要があるが、それは-Dpersistent=というオプションをgccに渡すことで実現したい。 ** メモなど * こめんと欄 #comment