On Fri, 25 Aug 2017 18:56:37 -0700, alex.jakime...@gmail.com wrote: > The input file for this problem is ≈15 MB so please bear with external > link: > https://files.progarm.org/golfed.gz (1.6 MB compressed) > > Command: > perl6 -ne 'say $++' golfed > # or > perl6 -ne 'say $++' < golfed > > Result: > 0 > 1 > 2 > … … … > 257568 > 257569 > 257570 > Malformed UTF-8 > in block <unit> at -e line 1 > > > There's no malformed UTF-8 in the file. And if you don't believe me, > try this: > > cat golfed | perl6 -ne 'say $++' > > There are at least three possible outcomes (it is not as stable as > previous examples): > (*) Fails after 257570, just like in the previous example > (*) Fails after 121712 > (*) No error, goes through the whole file just fine > > > <geekosaur> sounds more likely to be I/O related than unicode related > <geekosaur> like it's dropping bytes on the floor and if the utf8 > decoder was in (or lands in) the middle of a sequence, boom > > > IRC log: https://irclog.perlgeek.de/perl6-dev/2017-08-26#i_15071860 > > This issue may be related: > https://gist.github.com/coke/3feef738886b1e5af79a1ca636146075
Some gdb output: (gdb) break MVM_exception_throw_adhoc ... (gdb) bt #0 MVM_exception_throw_adhoc (tc=tc@entry=0x555555758960, messageFormat=messageFormat@entry=0x7ffff787053a "Malformed UTF-8") at src/core/exceptions.c:721 #1 0x00007ffff7808833 in MVM_string_utf8_decodestream (tc=tc@entry=0x555555758960, ds=ds@entry=0x5555580cfb70, stopper_chars=stopper_chars@entry=0x0, seps=seps@entry=0x5555580cfc90) at src/strings/utf8.c:496 #2 0x00007ffff7804720 in run_decode (eof=0, sep_spec=0x5555580cfc90, stopper_chars=0x0, ds=0x5555580cfb70, tc=0x555555758960) at src/strings/decode_stream.c:115 #3 MVM_string_decodestream_get_until_sep (tc=tc@entry=0x555555758960, ds=ds@entry=0x5555580cfb70, sep_spec=sep_spec@entry=0x5555580cfc90, chomp=1) at src/strings/decode_stream.c:373 #4 0x00007ffff77cbc9f in MVM_decoder_take_line (tc=0x555555758960, decoder=<optimized out>, chomp=<optimized out>, incomplete_ok=<optimized out>) at src/6model/reprs/Decoder.c:259 #5 0x00007ffff42434f9 in ?? () #6 0x0000006e0000005b in ?? () #7 0x0000555555837010 in ?? () #8 0x0000555555758960 in ?? () #9 0x00005555560f9c98 in ?? () #10 0x00007ffff0253bc0 in ?? () #11 0x00007ffff786ff38 in ?? () from //home/dan/Source/perl6/install/lib/libmoar.so #12 0x0000555558079ba0 in ?? () #13 0x00007ffff777860e in MVM_frame_invoke (tc=0x7fffffffd6c0, static_frame=<optimized out>, callsite=0x555555de1938, args=0x5555560f9c58, outer=<optimized out>, code_ref=<optimized out>, spesh_cand=<optimized out>) at src/core/frame.c:551 #14 0x0000555555758960 in ?? () #15 0x00005555560f9c98 in ?? () #16 0x00007ffff780398c in MVM_jit_enter_code (tc=<optimized out>, cu=<optimized out>, code=<optimized out>) at src/jit/compile.c:146 #17 0x00007ffff77652fe in MVM_interp_run (tc=tc@entry=0x555555758960, initial_invoke=0x0, invoke_data=0x1) at src/core/interp.c:5690 #18 0x00007ffff7835322 in MVM_vm_run_file (instance=0x555555758010, filename=<optimized out>) at src/moar.c:356 #19 0x000055555555541f in main (argc=9, argv=0x7fffffffdd28) at src/main.c:255 (gdb) call MVM_dump_backtrace(tc) at SETTING::src/core/Encoding/Decoder/Builtin.pm:32 (/home/dan/Source/perl6/install/share/perl6/runtime/CORE.setting.moarvm:consume-line-chars) from SETTING::src/core/IO/Handle.pm:235 (/home/dan/Source/perl6/install/share/perl6/runtime/CORE.setting.moarvm:) from SETTING::src/core/IO/Handle.pm:231 (/home/dan/Source/perl6/install/share/perl6/runtime/CORE.setting.moarvm:get-line-slow-path) from SETTING::src/core/IO/Handle.pm:226 (/home/dan/Source/perl6/install/share/perl6/runtime/CORE.setting.moarvm:get) from SETTING::src/core/IO/Handle.pm:388 (/home/dan/Source/perl6/install/share/perl6/runtime/CORE.setting.moarvm:pull-one) from SETTING::src/core/Iterable.pm:27 (/home/dan/Source/perl6/install/share/perl6/runtime/CORE.setting.moarvm:pull-one) from SETTING::src/core/Iterable.pm:27 (/home/dan/Source/perl6/install/share/perl6/runtime/CORE.setting.moarvm:pull-one) from SETTING::src/core/Any-iterable-methods.pm:453 (/home/dan/Source/perl6/install/share/perl6/runtime/CORE.setting.moarvm:sink-all) from SETTING::src/core/Seq.pm:188 (/home/dan/Source/perl6/install/share/perl6/runtime/CORE.setting.moarvm:sink) from -e:1 (<ephemeral file>:<unit>) from -e:1 (<ephemeral file>:<unit-outer>) from gen/moar/stage2/NQPHLL.nqp:1608 (/home/dan/Source/perl6/install/share/nqp/lib/NQPHLL.moarvm:eval) from gen/moar/stage2/NQPHLL.nqp:1715 (/home/dan/Source/perl6/install/share/nqp/lib/NQPHLL.moarvm:) from gen/moar/stage2/NQPHLL.nqp:1712 (/home/dan/Source/perl6/install/share/nqp/lib/NQPHLL.moarvm:command_eval) from src/Perl6/Compiler.nqp:42 (/home/dan/Source/perl6/install/share/nqp/lib/Perl6/Compiler.moarvm:command_eval) from gen/moar/stage2/NQPHLL.nqp:1696 (/home/dan/Source/perl6/install/share/nqp/lib/NQPHLL.moarvm:command_line) from gen/moar/main.nqp:47 (/home/dan/Source/perl6/install/share/perl6/runtime/perl6.moarvm:MAIN) from gen/moar/main.nqp:38 (/home/dan/Source/perl6/install/share/perl6/runtime/perl6.moarvm:<mainline>) from <unknown>:1 (/home/dan/Source/perl6/install/share/perl6/runtime/perl6.moarvm:<main>) from <unknown>:1 (/home/dan/Source/perl6/install/share/perl6/runtime/perl6.moarvm:<entry>)