-
Notifications
You must be signed in to change notification settings - Fork 7
specs
y2q-actionman edited this page Sep 24, 2014
·
10 revisions
- auto
- lexical に bind. ポインタが取られていた場合は、
progv
で dynamic に bind しなおす。(auto の意味的には、 dynamic-extent が欲しいが、警告が出まくるので保留。) - register
-
auto
と同様だが、ポインタが取られていると 警告 を出す。 (現状、エラーにはしてない)。dynamic-extent
が付く。 - extern
- 何にも展開しない。 自然にサポートされてるはず。
- (global)
-
defvar
する。 - static
- 内部の記憶域として、
gensym
をdefvar
する。 static 変 数の名前は、このgensym
へとsymbol-macrolet
される。
関数の宣言は、 extern
と同様の扱いとする。つまり、何もしない。
- const
- 状況に応じて実装中。
- 構造体メンバ
- 未実装。slot の writer 関数を定義しないことで行っていたが、
slot-value
にしたために出来なくなった。 - 普通の変数
- 未実装。なんとかして、コンパイル時検査で発見 するか、 closure に symbol-macrolet するか。
- ポインタの指す先
- 未実装。 writer 関数を与えないように?
- volatile
- 何もしていない。意味を再現するなら、処理系拡張に潜る必要 がある。そこまでする価値が見い出せない。
-
make-psendo-pointer
による、ポインタ環境の変更 - 関数定義すると
defun
される。 - global な変数を作ると
defvar
される。 - 構造体定義すると、外の関数を見に行こうとする。