Conference Room SAD
[thread display] [new arrival display] [word search] [past log] [管理用]

Subject SAD New branch "k64-1-6"
Date: 2012/07/17(Tue) 16:29:38
ContributorK. Oide

Dear Users,

1. A new branch "k64-1-6" has been created to install a new allocation of objects. It will be more 64-bit savvy and more efficient in the space and time. It needs more debug, especially for EPICS-related things which are not easily debugged. A rough description is in src/inc/k64.readme:

- Any obeject specifier is embedded in the NaN space of IEEE real*8 format:

(integer8) kobj = (integer8) ktype + (integer8) kaddr;

where ktype is the type of object, with bit patterns defined in TFCODE.inc:

integer*8 ktfoper,ktflist,ktfstring,ktfsymbol,ktfpat,ktfobj,
$ ktfmask,ktamask,ktrmask,ktfnull,ktfnr,ktfref,ktfother,
$ ktomask
parameter (
$ ktfnull =int8(z'0000000000000000'),
$ ktfother =int8(z'0006000000000000'),
$ ktfnr =int8(z'0008000000000000'),
$ ktfoper =int8(z'0008000000000000'),
$ ktfref =int8(z'000e000000000000'),
$ ktfobj =int8(z'8008000000000000'),
$ ktflist =int8(z'8008000000000000'),
$ ktfpat =int8(z'800a000000000000'),
$ ktfstring=int8(z'800c000000000000'),
$ ktfsymbol=int8(z'800e000000000000'),
$ ktfmask =int8(z'fffe000000000000'),
$ ktomask =int8(z'fff8000000000000'),
$ ktrmask =int8(z'7ff8000000000000'),
$ ktamask =int8(z'0001ffffffffffff'))

- kaddr is the address ,ie. the object is stored at klist(kaddr). If ktype is an
operator (ktfoper), kaddr means the code of operator.

- A real*8 number x has a pattern iand(ktrmask, x) .ne. ktfnr .

- A list a is stored at klist(ka = ktfaddr(k)) as:

ilist(2,ka-1): Length[a], 32 bit.
klist(ka) : head, a[[0]]
klist(ka+1) : a[[1]]
klist(ka+2) : a[[2]]
....

- Sad's stack is allocated in a space ktastk, within 32 bit index.

- Lengths of list and string is less than 2**31.

- There are a few functions defined in TFSF.inc to handle the patterns.


- 関連一覧ツリー (Click ▼ to display all articles in a thread.)