#こんなかんじ? ScmForeignPointerはstatic allocateされないはずだから、ABI互換性としては問題ないと思う (既にコンパイル済みのSCM_FOREIGN_POINTER_REFはチェックが入らないけど) https://gist.github.com/shirok/c8efc349caa0b66be1c9 #はい、そんな感じです。ありがとうございます!!
#あ、validPがinvalidのときtrueを返してた。
#つうかinvalidPの方が統一性があっていいか。
#そうですね。ただ、一般的に否定的な意味のフラグとか状態って、作っていて迷うことがありますね。
#invalidPはそれでいいと思いますが。
#pushしました 696ee59 試してみてください。
#( mkdirとln -sでパスを使ったトリプルが定義できて,「病的な」トリプルも定義できるということかしら。 )
#( ちょっとだけのデータならこれで表現できそうな気がしてます。)
#foreign pointerの問題じゃないんですけど、ciseで(SCM_FOREIGN_POINTER_REF foo* bar)が変換されずにそのままCのコードに残ってしまいます。foo* がtype-decl-initial?で#tになってしまうせい?
#ああ、そこはすんごく場当たり的にやってるんだけど、(foo*)としたらどうですか。
#コンパイル通りました。
#問題なく動くようです。でも、(SCM_FOREIGN_POINTER_REF foo* bar)は素直に書けたほうが、うれしいなあ。
#CacheとGraphてストレージ層別だったんですね。知らなかった。1000台規模の分散環境で動くLisp、触ってみたいなぁ...
#何だっけな、typenameだけ特別扱いする必要がある場合があってそうなってるんだけど、小手先の対応なんでうまい方法があるかもしれない。
#>maru 最初期のAGはCacheの上に作られてたって話です。Jansが出張中にちょろっと作ったのが始まりじゃなかったかな。AG4では大量のトリプルの保存と検索にばりばりに最適化されてます。分散AGはJohn F.が実験してたんだけど、その時はマスタ-スレーブな構造で、1000台が1つのLispイメージを構成してたわけじゃなかったです。
#他のソース見ると(const unsigned char*)みたいに書きたいからかな? 自分はいつも|const unsigned char*|と書いていた...
#根本的な問題は、Cの文法においては、式には余分な括弧をつけられるけど型に余分な括弧はつけられない、ってあたりだった気がする。だから式と型はCiSE上で厳密に別のものとして扱うのが正しいのだけれど、typedefがあるので式か型かを決めるには真面目に構文解析する必要があって…
#ああ、なるほど。