On Fri, 25 Aug 2017 19:48:51 -0700, ddgr...@gmail.com wrote:
> 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>)


And when built with --optimize=0:
(gdb) bt
#0  MVM_exception_throw_adhoc (tc=0x555555758960, messageFormat=0x7ffff78682ee 
"Malformed UTF-8") at src/core/exceptions.c:721
#1  0x00007ffff77fa86d in MVM_string_utf8_decodestream (tc=0x555555758960, 
ds=0x5555580cf750, stopper_chars=0x0, seps=0x5555580cf870) at 
src/strings/utf8.c:496
#2  0x00007ffff77f58a0 in run_decode (tc=0x555555758960, ds=0x5555580cf750, 
stopper_chars=0x0, sep_spec=0x5555580cf870, eof=0) at 
src/strings/decode_stream.c:115
#3  0x00007ffff77f62cd in MVM_string_decodestream_get_until_sep 
(tc=0x555555758960, ds=0x5555580cf750, sep_spec=0x5555580cf870, chomp=1) at 
src/strings/decode_stream.c:373
#4  0x00007ffff77a9d93 in MVM_decoder_take_line (tc=0x555555758960, 
decoder=0x5555583822e0, chomp=1, incomplete_ok=0) at 
src/6model/reprs/Decoder.c:259
#5  0x00007ffff41df4f9 in ?? ()
#6  0x0000555556ecb048 in ?? ()
#7  0x0000555556ecb030 in ?? ()
#8  0x00007ffff7fd4030 in ?? ()
#9  0x00007ffff7867960 in ?? () from 
//home/dan/Source/perl6/install/lib/libmoar.so
#10 0x0000555555758960 in ?? ()
#11 0x0000000758176180 in ?? ()
#12 0x0000555556ed32c0 in ?? ()
#13 0x00007fffffffc410 in ?? ()
#14 0x00007ffff772ec64 in MVM_p6opaque_read_object (tc=0x5555560f9c90, 
o=0x7fff002c2d7d, offset=93824994347360) at src/6model/reprs/P6opaque.h:115
#15 0x00007ffff77f4d15 in MVM_jit_enter_code (tc=0x555555758960, 
cu=0x5555557bf8f0, code=0x7ffff0178c10) at src/jit/compile.c:146
#16 0x00007ffff7728f49 in MVM_interp_run (tc=0x555555758960, 
initial_invoke=0x7ffff7826b63 <toplevel_initial_invoke>, 
invoke_data=0x5555557d1010) at src/core/interp.c:5690
#17 0x00007ffff7826cc8 in MVM_vm_run_file (instance=0x555555758010, 
filename=0x7fffffffe1ca 
"/home/dan/Source/perl6/install/share/perl6/runtime/perl6.moarvm") at 
src/moar.c:356
#18 0x00005555555556ab in main (argc=9, argv=0x7fffffffdd28) at src/main.c:255

Reply via email to