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
