Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6-dev, 2016-07-20

| Channels | #perl6-dev index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:20 dalek roast: e29b003 | (Zoffix Znet)++ | / (5 files):
00:20 dalek roast: Remove pointless bitshifting in Test::Util is_run()
00:20 dalek roast:
00:20 dalek roast: The sub bitshifts exit code from shell() by 8 and the only reason I can think
00:20 dalek roast: of for doing that is to emulate Perl 5's system() exit code return mechanism.
00:20 dalek roast:
00:20 dalek roast: In the test suite itself, the tests—once again—bitshift the actual value to
00:20 dalek roast: match what is_run uses. Thus, it seems the entire ordeal with this bitshift
00:20 dalek roast: offers no value and just requires extra work and adds confusion to people
00:20 dalek roast: unfamiliar with Perl 5's system.
00:20 dalek roast: review: https://github.com/perl6/roast/commit/e29b00346a
00:31 geekosaur actually it's matching waitpid(2)
00:34 Zoffix ¯\_(ツ)_/¯ same difference. It's extra knowledge needed to understand the results. Took me X amount of minutes to figure out why my exit 255 was showing up as 60,000+
01:48 ilbot3 joined #perl6-dev
01:48 Topic for #perl6-dev is now Perl 6 language and compiler development 2.0 | Logs at http://irclog.perlgeek.de/perl6-dev/today
02:56 dalek roast: f4e2505 | (Zoffix Znet)++ | S05-grammar/example.t:
02:56 dalek roast: [TODO FUDGE] <return> in grammar must refer to token not &return
02:56 dalek roast:
02:56 dalek roast: RT#127945
02:56 dalek roast: review: https://github.com/perl6/roast/commit/f4e2505dbc
02:56 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=127945
03:15 TimToady joined #perl6-dev
03:17 AlexDaniel joined #perl6-dev
07:34 sno joined #perl6-dev
07:41 stmuk_ I was wondering about a more lightweight star with just a module installer (zef rather than panda?) and p6doc
07:43 stmuk_ I think the whole R*/R distinction is too confusing for many as well
07:43 stmuk_ maybe we should just release a "rakudo" (w/ zef/p6doc) every 3 months and a "rakudo-core" monthly
07:44 stmuk_ or even just call it "perl6"
07:45 stmuk_ we should probably ship a prove6 as well to remove the perl 5 dependency
07:48 RabidGravy joined #perl6-dev
07:56 brrt joined #perl6-dev
07:57 psch java.lang.RuntimeException: java.lang.Exception: Unrecognized instruction #18
07:57 psch wow i missed these kind of error \o/
07:58 psch hm, # can also sometimes mean hex, can't it..?
07:59 psch ah, no, it's decimal, the # is just confusing
07:59 psch because it's actually just the opcode
08:00 psch and we simply don't have ldc covered yet in jast2bc.JASTCompiler
08:00 Woodi R* started after we have some discusion on topic: ehmm, we have quite mature v6 implementation so why ppls don't use it ??? ah, it all dev-optimised environment... :)
08:24 brrt joined #perl6-dev
08:27 psch oh boy another cool error
08:28 psch java.lang.ClassFormatError: Absent Code attribute in method that is not native or abstract in class file 90740956CF254C1B76FE4FAF3819510F827DECEF
08:28 psch that luckily went away from a simple git clean -xdf :S
08:32 moritz git++
08:33 psch yeah
08:34 psch i'm a bit disgruntled with objectweb.asms (and by extension, the jvms) capacity for meaningful complaints about bad bytecode
08:34 psch there's probably some framework around somewhere for that, i suppose...
08:35 moritz aren't we disabling some bytecode validation in nqp-j?
08:35 moritz if so, you might re-enable that just for debugging such things
08:36 psch no, perl6-j doesn't verify
08:36 psch but nqp verifies
08:36 psch but yeah, i've occassionally removed that switch
08:36 psch the problem is mostly that objectweb.asm itself is really bad about that
08:37 psch like for example i think i've correctly deduced that supplying a not-wide-enough argument to an opcode throws the meaningful "ArrayIndexOutOfBounds"
08:37 psch but i'm really not sure vOv
08:42 psch but the actual element that out of bounds might be -1, or 10, or any other arbitrary int
08:43 psch which is really not that helpful and means walking through the instruction list and emulating the stack, which is kind of ehh :|
08:51 tadzik joined #perl6-dev
08:59 psch heh, NQP_VERBOSE_EXCEPTIONS turns a StackOverflow into a NullPointerException...
08:59 psch that's a thing apparently
09:04 jnthn psch: That probably means something like "the exception handler throws and somehow ends up handling its own throw"
09:04 jnthn And NQP_VERBOSE_EXCEPTIONS means you see it prior to the high level handler getting it.
09:04 psch yeah, running under jdb went StackOverflow again
09:05 psch but the actual problem still seems to bad bytecode, -noverify being harmful
09:05 jnthn noverify is a great production setting due to the startup time improvement, but probably not such a good development setting :)
09:05 psch exactly :)
12:20 R[DaneelOlivaw] "
12:20 R[DaneelOlivaw] "Unhandled lexical type in lexprimspec for '$i'"
12:21 R[DaneelOlivaw] Does that sound like something that's super easy to fix or super hard to fix? :)  It's with int8 in REPL
12:22 timotimo ah, the repl ... ;(
12:25 R[DaneelOlivaw] Seems to be MoarVM level stuff: https://github.com/MoarVM/MoarVM/blob/master/src/core/frame.c#L1643
12:26 * R[DaneelOlivaw] puts this into extra super hard bin and moves on
12:26 |Tux| joined #perl6-dev
12:29 brrt joined #perl6-dev
12:29 R[DaneelOlivaw] And if anyone is feeling adventurous, it's from this ticket: https://rt.perl.org/Ticket/Display.html?id=127933#ticket-history
12:36 AlexDaniel joined #perl6-dev
12:42 pmurias joined #perl6-dev
12:43 pmurias do I have to set any flags to compile nqp-j with extra debugging info?
12:52 |Tux| joined #perl6-dev
13:01 dalek roast: 5e230b4 | (Zoffix Znet)++ | / (2 files):
13:01 dalek roast: Use more Perl6-ish interface for is_run_repl()
13:01 dalek roast:
13:01 dalek roast: We have named args; no need to pass around hashes.
13:01 dalek roast: review: https://github.com/perl6/roast/commit/5e230b4052
13:02 lizmat .oO( is Frameless an Asimov fan ?)
13:03 dalek roast: d78d99a | (Zoffix Znet)++ | S19-command-line/repl.t:
13:03 dalek roast: Use RT ticket notation format consistent with rest of roast
13:03 dalek roast: review: https://github.com/perl6/roast/commit/d78d99a808
13:03 R[DaneelOlivaw] lizmat: oh yeah :)
13:03 R[DaneelOlivaw] lizmat++ # recognizing the reference :)
13:04 japhb pfft.  I recognized the reference, I just have no idea what causes you to pick a particular nick at any particular moment.  :-)
13:05 R[DaneelOlivaw] Just randomness :)
13:11 brrt joined #perl6-dev
13:13 skids joined #perl6-dev
13:18 |Tux| joined #perl6-dev
13:18 lizmat jnthn: looking at the Str.match / subst / subst-mutate combo
13:18 lizmat am I correct in assuming that the gather/take in Str.match is to make matching lazy
13:19 lizmat but that we actually do not need that laziness when doing subst/subst-mutate ?
13:19 |Tux| joined #perl6-dev
13:19 lizmat afk&
13:23 psch pmurias: depends on what kind of debugging info you want
13:24 psch pmurias: there is e.g. NQP_DEBUG_DUMP_CLASSFILES and NQP_VERBOSE_EXCEPTIONS
13:24 psch pmurias: aside from that you can quite easily rewrite the nqp-j launcher to start a jdb server
13:25 jnthn lizmat: Well, "do not need" I'm not so sure about. If you eagerly evaluate all the matches first then substitute, you have to keep them all around in memory. With lazily producing them they can be thrown away after each substitution is made.
13:45 dalek roast: 9937812 | (Zoffix Znet)++ | / (2 files):
13:45 dalek roast: Make is_run_repl() auto-close STDIN when done
13:45 dalek roast:
13:45 dalek roast: Not only requiring sending "exit\n" with code is extra work and noise,
13:45 dalek roast: some bugs break exit altogether, so it's nice to have a working way to exit.
13:45 dalek roast: review: https://github.com/perl6/roast/commit/9937812337
13:48 dalek roast: c0504f9 | (Zoffix Znet)++ | S19-command-line/repl.t:
13:48 dalek roast: [TODO FUDGE] Using native numeric types does not break REPL
13:48 dalek roast:
13:48 dalek roast: RT#127933
13:48 dalek roast: review: https://github.com/perl6/roast/commit/c0504f94d6
13:48 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=127933
15:22 pmurias psch, jnthn: is it expected that I don't get a line number for java.lang.NullPointerException?
15:23 psch usually, yeah.  if it doesn't happen during codegen you don't really know where it is
15:23 psch because of how we load classes
15:24 psch NQP_VERBOSE_EXCEPTIONS might help
15:30 pmurias psch: it happened in hand written java code (implementation of an op)
15:31 psch Ops should show up with NQP_VERBOSE_EXCEPTIONS
15:31 psch do you have a gist of the impl?
15:33 pmurias psch: I found the reason for the exception, it's just that I vaguely remember some option to compile things with debugging symbols and such
15:33 psch there is -g i think for javac
15:34 psch but i don't think that propagates into objectweb.asm
15:34 psch so it might've helped for you specific problem but still doesn't do any good for the things i've been fighting with today vOv
15:58 AlexDaniel joined #perl6-dev
15:58 dalek nqp: 67ae0cf | (Pawel Murias)++ | src/vm/jvm/runtime/org/perl6/nqp/io/SyncHandle.java:
15:58 dalek nqp: A faster nqp::readchars on the JVM.
15:58 dalek nqp: review: https://github.com/perl6/nqp/commit/67ae0cf0ba
15:59 pmurias we now have a shiny nqp::readchars on the JVM too so that having a #ifdef jvm in rakudo is no longer needed
16:06 R[DaneelOlivaw] \o/ pmurias++
16:26 hankache joined #perl6-dev
16:51 dalek roast: 72789d0 | (Zoffix Znet)++ | S03-operators/andthen.t:
16:51 dalek roast: [TODO FUDGE] andthen with two S/// returns correct string
16:51 dalek roast:
16:51 dalek roast: RT#127822
16:51 dalek roast: review: https://github.com/perl6/roast/commit/72789d07a9
16:51 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=127822
17:30 FROGGS joined #perl6-dev
18:16 R[DaneelOlivaw] left #perl6-dev
18:23 ___ joined #perl6-dev
19:02 timotimo pmurias: oh, "faster", even?
19:15 dalek rakudo/nom: 59d8080 | (Zoffix Znet)++ | src/core/Exception.pm:
19:15 dalek rakudo/nom: Improve EVAL error
19:15 dalek rakudo/nom:
19:15 dalek rakudo/nom: Clarify that MONKEY-SEE-NO-EVAL is a pragma the user needs to enable.
19:15 dalek rakudo/nom:
19:15 dalek rakudo/nom: harmil++
19:15 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/59d808053f
19:23 sno joined #perl6-dev
19:23 ___ Is .EVAL (as a method call) meant to by-pass the MONKEY pragma security feature?
19:25 ___ m: my $x = 'say "hello"'; EVAL "$x"
19:25 camelia rakudo-moar 58dc8c: OUTPUT«===SORRY!=== Error while compiling <tmp>␤EVAL is a very dangerous function!!! (use MONKEY-SEE-NO-EVAL to override,␤but only if you're VERY sure your data contains no injection attacks)␤at <tmp>:1␤------> my $x = 'say "hello"'; EVAL "$x"…»
19:25 ___ m: my $x = 'say "hello"'; "$x".EVAL
19:25 camelia rakudo-moar 58dc8c: OUTPUT«hello␤»
19:26 mst lizmat: do you have any idea why we ended up with FOO-BAR instead of FOO_BAR ? I could've sworn we had foo-bar and FOO_BAR at one point and the change seems as gross as foo_bar does now :(
19:36 ___ RTed the .EVAL bypass, because I think it should not bypass: https://rt.perl.org/Ticket/Display.html?id=128684
19:41 [Coke] mst: to make them more difficult to type.
19:42 mst [Coke]: quite seriously?
19:43 mst I thought there were FOO_BAR type things that were *supposed* to get typed quite a bit
19:43 [Coke] I'm trying to dig it up.
19:43 [Coke] my recollection is probably flawed. found someone complaining about it...
19:44 [Coke] mst: https://irclog.perlgeek.de/perl6/2015-07-17#i_10913089
19:44 [Coke] that's me recollecting the same thing a year ago
19:44 geekosaur my recollection is that _ is for stuff that is unquestionably internal low level details, not merely stuff user-exposed but dangerous
19:45 [Coke] https://irclog.perlgeek.de/perl6/2015-03-13#i_10274656
19:47 [Coke] having a hard time finding a reference earlier than that.
19:48 [Coke] ah, google. "Here 3 Monkey See No Evil Now. Find Articles & Shopping Results!"
19:59 bartolin I'm looking at an error we get only with rakudo-j (This Seq has already been iterated)
19:59 bartolin r: my $a = <b b>; $a .= unique; say $a.perl
19:59 camelia rakudo-jvm cd19db: OUTPUT«Seq.new-consumed()␤»
19:59 camelia ..rakudo-moar 59d808: OUTPUT«("b",).Seq␤»
20:00 bartolin the following seems to imply that sink context makes the difference:
20:00 bartolin r: my $a = <b b>; my $b := $a .= unique; say $a.perl
20:00 camelia rakudo-moar 59d808, rakudo-jvm cd19db: OUTPUT«("b",).Seq␤»
20:01 bartolin is that conclusion sound or does adding 'my $b :=' not avoid sink context?
20:08 ggoebel joined #perl6-dev
20:15 Ven joined #perl6-dev
20:25 pmurias timotimo: the first implementation of readcharfh on the jvm was just calling getcfh a bunch of times
20:26 timotimo hah, ok
20:27 timotimo is the difference noticable when you're reading in a big file?
20:27 timotimo potentially not because of all the overhead rakudo puts on top of stuff? :S
20:28 pmurias timotimo: haven't really benchmarked it, I just assumed that allocating a buffer for every character would suck
20:32 timotimo right d)
20:52 Zoffix joined #perl6-dev
21:49 lizmat jnthn: re http://irclog.perlgeek.de/perl6-dev/2016-07-20#i_12873670 : but but but, once they are reified, they stick around until the List/Array is GC'd, no?
21:55 jnthn Only if you get an array or list involved at some point :)
21:56 jnthn A Seq doesn't remember values.
21:56 jnthn That's why we have it :)
21:57 jnthn (I didn't look at the code in question, fwiw. Though kinda assume that the match code is at least typically smart enough to avoid returning a List and can give back a Seq
21:57 lizmat ok, that makes sense then
21:57 lizmat hmmm....
21:58 timotimo yeah, man am i glad we have something like Seq that doesn't remember every value forever
22:00 lizmat ok, so this stores the Seq: my $matches := gather
22:01 stmuk_ joined #perl6-dev
22:02 lizmat I guess I'm still not fully grokking the code in Str.match
22:08 timotimo hm, i think it might be enough to my $matches = gather without binding
22:15 jnthn Storing it in a Scalar won't make it a list
22:18 skids joined #perl6-dev
22:23 lizmat looks like I'll be working on Backtrace tomorrow
22:23 lizmat most of the CPU in a statement like $*FOO // 42 is spent there
22:23 jnthn Yeah, we're not being as lazy as we maybe could be
22:23 jnthn Though needs some care :)
22:24 jnthn Not quite sure what I'll be doing with my Perl 6 time tomorrow.
22:24 jnthn I've got all day :)
22:24 jnthn I should probably hunt le tiresome SEGV I was looking at last time..
22:25 lizmat and utf8-c8  :-)
22:25 lizmat or is that the same one ?
22:25 * timotimo read "needs some core" %)
22:25 jnthn No
22:25 * hoelzro also parsed it that way
22:25 jnthn utf8-c8 needs a re-design
22:26 Zoffix Does anyone have a 32-bit box around and can test whether this works:     -> int32  :$x { $x == 1   or die }(:x( 1 ))
22:26 Zoffix m: -> int32  :$x { $x == 1  or die }(:x( 1 ))
22:26 camelia rakudo-moar 59d808: OUTPUT«Bytecode validation error at offset 34, instruction 5:␤operand type 32 does not match register type 24␤  in block <unit> at <tmp> line 1␤␤»
22:26 Zoffix m: -> int64  :$x { $x == 1  or die }(:x( 1 ))
22:26 camelia rakudo-moar 59d808: ( no output )
22:26 Zoffix (wondering if it works on 32-bit box same way as 64-bit works on 64-bit box)
22:28 jnthn Zoffix: From what I know of the codepaths involved, I'd be surprised if it worked on 2-bit.
22:28 jnthn uh, 32-bit
22:28 Zoffix Cool. thanks
22:28 jnthn m: -> int32  :$x { $x == 1 }(:x( 1 ))
22:28 camelia rakudo-moar 59d808: OUTPUT«Bytecode validation error at offset 34, instruction 5:␤operand type 32 does not match register type 24␤  in block <unit> at <tmp> line 1␤␤»
22:28 jnthn m: -> int32  :$x { }(:x( 1 ))
22:28 camelia rakudo-moar 59d808: OUTPUT«Bytecode validation error at offset 34, instruction 5:␤operand type 32 does not match register type 24␤  in block <unit> at <tmp> line 1␤␤»
22:28 jnthn Hmmm
22:29 lizmat good night, #perl6-dev
22:29 jnthn Instruction 5 is...pretty early on
22:29 Zoffix night
22:29 lizmat it has been a long, hot day
22:29 jnthn I'd suspect arg handling code somewhere
22:29 jnthn lizmat: Suspect you've had into the 30s?
22:29 Zoffix It fails with all native numeric types except for 64 ones and happens just with named params
22:29 * Zoffix is just writing the tests; way over my head to fix this
22:29 lizmat jnthn: we went cycling when it was 35
22:29 jnthn OK, then I'll bet it's code-gen
22:30 jnthn lizmat: Ouch. I don't know what my body would do if I attempted that :P
22:30 lizmat and when we came back after 68km, it was still 29
22:30 lizmat yeah, it was special...  needed to break a few more times than usual
22:30 jnthn I'll bet
22:31 jnthn I can barely sit and drink a cold beer in 35C :P
22:31 lizmat should have lost some weight tomorrow  :-)
22:31 jnthn :)
22:31 lizmat so for now, I'll get some sleep&
22:31 jnthn Yup...rest well, 'night
22:31 timotimo lizmat only says it's been a hot day because she had dinner with me :3
22:31 dalek roast: a049d32 | (Zoffix Znet)++ | S02-types/native.t:
22:31 dalek roast: Remove trailing whitespace
22:31 dalek roast: review: https://github.com/perl6/roast/commit/a049d32152
22:32 jnthn Zoffix: Dunno...it depends if you're willing to look at how we spit out code-gen for args and params :)
22:32 lizmat timotimo:  :-)
22:32 jnthn m: -> int32  :$x { }
22:32 camelia rakudo-moar 59d808: ( no output )
22:32 timotimo lizmat: ;-)
22:32 dalek roast: ea4d11d | (Zoffix Znet)++ | S02-types/native.t:
22:32 dalek roast: [TODO FUDGE] using native types as named parameters does not crash
22:32 dalek roast:
22:32 dalek roast: RT#127813
22:32 dalek roast: review: https://github.com/perl6/roast/commit/ea4d11d008
22:32 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=127813
22:32 jnthn And it'll surely be params, thinking about it
22:33 Zoffix jnthn, I'm willing, but I wanna finish going through the RT queue and doing all the easy stuff :)
22:35 jnthn Zoffix: It'll be somewhere around here, at a guess: https://github.com/perl6/nqp/blob/master/src/vm/moar/QAST/QASTCompilerMAST.nqp#L1121
22:35 jnthn Though I don't spot it right off. But I'm more than a little tired :)
22:36 timotimo have a good rest, jnthn :)
22:36 jnthn Hopefully the warm won't keep me awake too long...
22:36 jnthn 'night
22:38 Zoffix night
23:13 TimToady joined #perl6-dev

| Channels | #perl6-dev index | Today | | Search | Google Search | Plain-Text | summary