On 1/14/21 3:42 PM, Paul Procacci wrote:
Let me preface this by saying if I were using a lower level language (like C) I wouldn't have this problem; as I know how to shift and mask accordingly.

On raku however, how to do so *eloquantly* eludes me.

I've defined a CStruct as follows:

class test is repr('CStruct') {

   has int64 $.a1;

   has int64 $.a2;

   ...

   has int64 $.a65;

}

Under normal circumstances I would have defined the member as:
`HAS int16 @.a[260] is CArray` however that seems to be broken. See:

https://github.com/rakudo/rakudo/issues/3633 <https://github.com/rakudo/rakudo/issues/3633>

The function that gets called with these members $.a1 .. $.a65 should get filled with a wchar_t character array.

Does raku employ a simple method of decoding the 4 wchar_t's that get placed into a int64 structure?  The characters I'd like to extract are at bit positions [15:0], [31.16], [47:32], [63:48]

I'm imagining something along the lines of:

buf16.new( $.a1, ... $.a64);

... but that doesn't quite work like I would expect.

Thanks,
~Paul

Hi Paul,

Would you post the system call you are trying to
interface with?

-T

Reply via email to