>> ... to locate a word header when you separate
>> headers from code space,
> ...
>> i store an NFA pointer at CFA -4.
>> the trick is when you do headerless words this pointer has to be
>> cleared or it will point to bogus data!
>
> And when you write a decompiler, used in particular by the return
> stack dumping tool, there's a problem to find the boundaries on a
> nameless definition...
>
>
> :NONAME 0 0 ! ; CONSTANT foo
> :NONAME 1 . [ foo COMPILE, ] 2 . ; CONSTANT bar
> : tt 3 . [ bar COMPILE, ] 4 . ;
>
> tt -- of course, an exception
> But nameless definitions are re****ted more or less correctly, that is,
> they are not considered a part of the last definition having a name:
>
> .SAVED-RSTACK
>
<snip>
> I maintain a list of nameless definitions in the name space:
>
> see :NONAME
> : :NONAME donest CF, LASTCF ( IT ) <no-name>! ] link-noname !CSP
> RESET-LOCALS EXIT ok[Dec]
>
> see link-noname
> : link-noname NAMESPACE ALIGN ( /ALIGN ) HERE NONAME-LINK @[EMAIL PROTECTED]
,
> ( COMPILE, ) LASTCF ( IT ) , ( COMPILE, ) NONAME-LINK ! DATASPACE
> EXIT ok[Dec]
>
Thanks for further clarifications. Idea is good but for now I plan just to
dump value if no header is found.
Regards,
Maki.


|