It looks like J's arrays are now represented by a new structure (which
contains some unions, whose significance depends on context), and
unpacking it would require some pointer chasing.

https://github.com/jsoftware/jsource/blob/master/jsrc/jtype.h#L78 says:

typedef AD *A;

And, https://github.com/jsoftware/jsource/blob/master/jsrc/jtype.h#L137
goes into the details of what an AD is.

That said, 3!:1 (and 3!:3) still work.

I hope this helps,

-- 
Raul



On Thu, Mar 31, 2022 at 11:35 AM <[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