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.