while ("im in s-expr");

 | 

2008-09-14

Gauche C API云々

| 22:35

エラーの通知

  • Scm_Error(format, ...)でできる。printfライク。ScmObjについては%Sでwrite相当、%Aでdisplay相当のフォーマットができる。
  • Scm_TypeError(what, expected, got)もある。こちらは引数チェックなどで使える。
  • エラー通知をすると制御が上位レベルに飛ぶ。リソース管理に注意。

APIの探し方

  • :tag Scm_*String<C-d>や:tag SCM_*STRING<C-d>で文字列関係のものは大体分かる。他のものも同様。
  • SchemeレベルのAPIに対応するCレベルのAPIがある(大抵の場合は)。
  • 何か作る - Scm_Make*
  • 何か得る - Scm_Get* or Scm_*Ref

GCは偉大

  • メモり管リで悩まなくてすむだなんてらくすぎる。

Gauche interface for Vim (第3話)

| 02:05

(vim-execute)(vim-eval)を実装した。

現在はVimの関数を呼び出してその結果を返す(vim-apply)を作成中。Gaucheの値をVim scriptの値に変換するところで今日は力尽きた。後から眺めてみれば大したことはしてないのだけど、不慣れなAPIなので四苦八苦。大体のところはできて、残りは<list>、<pair>、<vector>、<dict>。

(vim-apply)を書いている途中で気付いたのだけど、これに相当するものが他言語のインターフェースにはない。でもそれでは不便すぎやしないか? 他言語のインターフェースをバリバリ使用したプラグインはいくらか存在するけど、困らないのかなぁ。

今日はGauche内部的に面白いことはなし。強いて言えば、循環リストなどのデータをGauche-Vim間でどう相互変換するかか。取り敢えずは手を付けずにスルーしているけど、どうやれば良いんだろう。

SaraSara 2012/08/14 09:28 This is a really intelliegnt way to answer the question.

rqqsrvfymfjrqqsrvfymfj 2012/08/14 23:14 CySbNK <a href="http://vfmxyzraypqf.com/">vfmxyzraypqf</a>

jjgmxchyajjgmxchya 2012/08/15 03:51 rqIhev , [url=http://zcxfnbfabfdk.com/]zcxfnbfabfdk[/url], [link=http://lgsegogbvnhq.com/]lgsegogbvnhq[/link], http://ljvcwkshlrrz.com/

plmjztgplmjztg 2012/08/16 13:21 FjNGO9 <a href="http://mtixdaojxvbu.com/">mtixdaojxvbu</a>

ゲスト



トラックバック - http://cadr.g.hatena.ne.jp/ka-nacht/20080914
 |