On Fri, 16 Feb 2018 00:56:27 -0800, comdog wrote:
> This little program:
> 
>     my $fh = open 'test.txt', :w, :enc('utf16');
>     put "filehandle is using {$fh.encoding}";
>     $fh.put: 'Some text';
> 
> Gives this error:
> 
>     filehandle is using utf16
>     write_fhb requires a native array of uint8 or int8
> 
> ----
> This is Rakudo Star version 2018.01 built on MoarVM version 2018.01
> implementing Perl 6.c


Looks like MoarVM doesn't fully support utf-16 yet (the exception is from 
MVM_io_read_bytes that just throws unless it's handed a 8-bit buf)

Slightly golfed version:

    $ ./perl6 -e '"t.t".IO.open(:w :bin).write: utf16.new: 1, 2, 3'
    write_fhb requires a native array of uint8 or int8
      in block <unit> at -e line 1

    $ ./perl6 -e '"t.t".IO.open(:w :bin).write: utf32.new: 1, 2, 3'
    write_fhb requires a native array of uint8 or int8
      in block <unit> at -e line 1

    $ ./perl6 -e '"t.t".IO.open(:w :bin).write: buf32.new: 1, 2, 3'
    write_fhb requires a native array of uint8 or int8
      in block <unit> at -e line 1

Dies on read too, but with a more useful message:

    $ ./perl6 -e '"LICENSE".IO.open(:enc<utf-16>).slurp.say'
    Streaming decode NYI for encoding 4
      in block <unit> at -e line 1

Works fine on JVM backend.

Reply via email to