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