The RANK is overloaded with other info. Max rank is now limited to 63 and
you need to mask off the lowest 6 bit to get the rank,eg
   16b3f (17 b.) 37355522
2


On Thu, Mar 31, 2022 at 11:35 PM <[email protected]> wrote:

> I am working on a binding for a dll which requires a bit of mema / memr /
> memw, and this brought me to looking at symget / symset / symdat
>
> With minor tweeking, I updated to 64bits the viewnoun verb from the
> "Guides/Named Noun Internals" page (running J903):
>
>
>
> NB. 64 bit version
>
> viewnoun=: 3 : 0
>
> s=. symget <y NB. pointer to symbol table entry
>
> sys=. memr s,0 2 4 NB. pointers to name, header
>
> h=. 1{sys NB. header pointer
>
> fheader=. memr h,0 7 4 NB. fixed header
>
> NB. 'offset flag size type refcount len rank'=. fheader
>
> 'offset flag size type refcount len rank'=. fheader
>
>      rank =. 2 NB. hard coded patch !!!
>
> shape=. memr h,56,rank,4 NB. shape
>
> data=. memr (h+offset),0,len,type
>
> sys;fheader;shape;data
>
> )
>
>
>
>   abc=:10+ i. 2 3
>
> viewnoun 'abc'
>
> ┌─────────────────────────────┬─────────────────────┬───┬─────────────────┐
>
> │94112853474752 94112853484736│72 0 1 4 1 6 37355522│2 3│10 11 12 13 14 15│
>
> └─────────────────────────────┴─────────────────────┴───┴─────────────────┘
>
>
> Something has clearly changed in the data organization.
>
> * where has the rank info gone to? why do I get 37355522 instead?
>
> * does "reserved size for data" still exist? does the 1 actually mean
> anything or is it just a placeholder?
>
>
>
>
>
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
>
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to