2007年11月7日星期三

引用的规范

基于在C里面实现GC的复杂性,把引用的规范先定下来。
GC mask的时候,认为引用的根是一张虚拟的全局引用表对象,这个引用表对象引用所有的全局对象。GC顺着对象引用遍历所有对象来mask他们为可用对象。
对于存储引用的C变量,如果他们在栈上,寄存器里,或者某个地方不会被mask, 用户需要把他们全局化(增加全局引用的次数)。
这里引用次数仅仅在于全局,对象之间引用不增加引用次数。
将全局引用表视为一个对象,其中含有各种对象引用,并且对每个对象引用多次。
用户也可以weakly use一些引用,这些引用仅仅是一些引用的副本变量,比如用户存储这些引用仅是为了记录而不想发生Leak.

现在可以作一些基本的设计了,Reference 格式和Refernce node的结构也暂时定了下来,还差一些原型的编码。还要做很多改动。

0 COMMENTS: