сбой int32 в раку - PullRequest
       78

сбой int32 в раку

6 голосов
/ 07 апреля 2020

При работе с модулем NCurses я столкнулся с некоторым странным поведением, которое я исказил в repl:

> my $c = ' '.ord
32
> $c.WHAT
(Int)
> my int32 $n = ' '.ord
32
> $n.WHAT
Bytecode validation error at offset 128, instruction 20:
operand type 32 does not match register type 24 for op getlex_ni in frame <unit>

> my int32 $m = 32
32
> $m.WHAT
Bytecode validation error at offset 128, instruction 20:
operand type 32 does not match register type 24 for op getlex_ni in frame <unit>

> my int32 $j = int32( 32 )
Cannot invoke this object (REPR: P6int; int32)
  in block <unit> at <unknown file> line 1

Проблема в том, что wborder определен с подписью (NCurses :: WINDOW , int32, int32, int32, int32, int32, int32, int32, int32 -> int32), но ни одна из моих попыток придумать версию 32 для int32 пока не сработала. Я уверен, что что-то упустил, но я понятия не имею, что.

...