Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6-dev, 2016-06-29

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

All times shown according to UTC.

Time Nick Message
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:42 dalek roast: 29b093e | (Tom Browder)++ | S26-documentation/07-tables.t:
02:42 dalek roast: add a more complex table test for a future bug fix
02:42 dalek roast: review: https://github.com/perl6/roast/commit/29b093e1da
02:42 dalek roast: 80c762e | (Tom Browder)++ | S26-documentation/07-tables.t:
02:42 dalek roast: update plan val for the added test
02:42 dalek roast: review: https://github.com/perl6/roast/commit/80c762e255
02:42 dalek roast: d445736 | (Zoffix Znet)++ | S26-documentation/07-tables.t:
02:42 dalek roast: Merge pull request #131 from tbrowder/new-table-test
02:42 dalek roast:
02:42 dalek roast: add a more complex table test for a future bug fix
02:42 dalek roast: review: https://github.com/perl6/roast/commit/d4457367f3
04:53 brrt joined #perl6-dev
06:31 [Tux] https://rt.perl.org/Ticket/Display.html?id=128184 is still awfully silent
06:32 [Tux] even after Justin's additions
06:33 [Tux] This is Rakudo version 2016.06-50-g5a4963f built on MoarVM version 2016.06
06:33 [Tux] test            16.348
06:33 [Tux] test-t           9.885
06:33 [Tux] csv-parser      22.564
07:57 sno joined #perl6-dev
08:20 dalek rakudo/nom: abfe06a | (Tom Browder)++ | src/Perl6/Pod.nqp:
08:20 dalek rakudo/nom: actually we're trying to find the shortest leading whitespace
08:20 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/abfe06a804
08:20 dalek rakudo/nom: e4daf8a | lizmat++ | src/Perl6/Pod.nqp:
08:20 dalek rakudo/nom: Merge pull request #805 from tbrowder/fix-pod-note
08:20 dalek rakudo/nom:
08:20 dalek rakudo/nom: actually we're trying to find the shortest leading whitespace
08:20 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e4daf8ad31
08:46 RabidGravy joined #perl6-dev
09:23 dalek rakudo/nom: 8ab6dbe | lizmat++ | src/core/Baggy.pm:
09:23 dalek rakudo/nom: Make Baggy.pick(N) about 6x faster
09:23 dalek rakudo/nom:
09:23 dalek rakudo/nom: - optimized building the list of pairs to work on
09:23 dalek rakudo/nom: - optimized picking the right one from the bag
09:23 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/8ab6dbe530
09:33 jnthn Clearly role Baggy needs a trousers method...
09:50 lizmat afk for the rest of the day&
09:50 yoleaux2 28 Jun 2016 03:20Z <jdv79> lizmat: where from to?
09:50 yoleaux2 28 Jun 2016 09:48Z <sortiz> lizmat: I think that https://github.com/MoarVM/MoarVM/pull/377 can solve your problem
10:02 psch welp, something is different in how things break between install-core-dist.pl and the reductionist Foo.pm case
10:02 psch probably the fact that install-core-dist.pl nests two EVALs
10:02 psch which somehow means that we don't generate the missing method during the "first pass" of the inner EVAL, so we don't have it all when we finish it
10:34 psch i'm kind of completely out of clues :|
12:16 dalek joined #perl6-dev
12:18 dalek nqp: 3a4c7a9 | jnthn++ | tools/build/MOAR_REVISION:
12:18 dalek nqp: Bump MOAR_REVISION for new multi-cache.
12:18 dalek nqp: review: https://github.com/perl6/nqp/commit/3a4c7a9140
12:41 dalek rakudo/nom: d5c750f | jnthn++ | tools/build/NQP_REVISION:
12:41 dalek rakudo/nom: Bump to a MoarVM with improved multi-cache.
12:41 dalek rakudo/nom:
12:41 dalek rakudo/nom: It is able to cache on dispatches differentiated by nameds also. Note
12:41 dalek rakudo/nom: that Rakudo itself needs further updates to make use of this.
12:41 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/d5c750f74c
12:45 dalek rakudo/nom: 90d4072 | jnthn++ | src/Perl6/Metamodel/BOOTSTRAP.nqp:
12:45 dalek rakudo/nom: Take advantage of new MoarVM multi-dispatch cache.
12:45 dalek rakudo/nom:
12:45 dalek rakudo/nom: With this, mutliple dispatches that are differentiated by named args
12:45 dalek rakudo/nom: can now have their outcomes cached, provided they are free of any
12:45 dalek rakudo/nom: constraints (`where`, unpacks, etc.) The following:
12:45 dalek rakudo/nom:     my %h = a => 1; my ($a, $b);
12:45 dalek rakudo/nom:     for ^20000 { $a = %h<a>:exists; $b = %h<b>:exists; }
12:45 dalek rakudo/nom:     say $a; say $b
12:45 dalek rakudo/nom: Now runs in 5.7% of the CPU cycles it used to, or a speed-up of ~18x.
12:45 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/90d4072859
12:46 tadzik :o
13:11 moritz I guess a jnthn++ or two is in order :-)
13:13 BrokenRobot whoa :o jnthn++
13:19 skids joined #perl6-dev
13:22 nine Epic win :)
13:39 timotimo indeed \o/
13:53 brrt joined #perl6-dev
14:37 Tux__ joined #perl6-dev
14:53 hoelzro wow
15:30 pmurias joined #perl6-dev
15:30 dalek nqp/optimize-with-hoopl: 3553c32 | (Pawel Murias)++ | src/vm/js/ (2 files):
15:30 dalek nqp/optimize-with-hoopl: [js] Start of sending off nodes to haskell.
15:30 dalek nqp/optimize-with-hoopl: review: https://github.com/perl6/nqp/commit/3553c3233b
15:30 dalek nqp/optimize-with-hoopl: af6ca94 | (Pawel Murias)++ | src/vm/js/ (3 files):
15:30 dalek nqp/optimize-with-hoopl: [js] Create a hoopl graph. It has nothing to do with the QAST but at least the code typechecks ;)
15:30 dalek nqp/optimize-with-hoopl: review: https://github.com/perl6/nqp/commit/af6ca94271
15:30 dalek nqp/optimize-with-hoopl: 894a943 | (Pawel Murias)++ | src/vm/js/dataflow-optimizer/optimize.hs:
15:30 dalek nqp/optimize-with-hoopl: [js] Improve the basic block graph.
15:30 dalek nqp/optimize-with-hoopl: review: https://github.com/perl6/nqp/commit/894a943b3c
15:37 BrokenRobot Haskell :o
15:43 * geekosaur did a bit of a double take at that one
15:44 geekosaur "...wait, this isn't #ghc why are they hoopl-ing"
16:13 dalek roast: d8e7220 | (Tom Browder)++ | S26-documentation/07-tables.t:
16:13 dalek roast: improve comments on last two tests; add row id on the last table; exp… (#132)
16:13 dalek roast:
16:13 dalek roast: improve comments on and expand tests for leading special characters in cells
16:13 dalek roast: review: https://github.com/perl6/roast/commit/d8e7220dfd
16:13 awwaiid so much polyglot
16:38 vendethiel- joined #perl6-dev
17:24 cognominal joined #perl6-dev
17:34 cognominal joined #perl6-dev
18:07 sno joined #perl6-dev
18:21 dalek Heuristic branch merge: pushed 16 commits to rakudo/nom by niner
18:30 nine That ^^^ was ugexe's PR 729 including my fixes so rakudo keeps building and users don't have to re-install everything and panda keeps working
18:32 timotimo neat
18:32 jnthn nine++ ugexe++
18:34 brrt joined #perl6-dev
19:02 dalek rakudo/nom: 4c8dc46 | ugexe++ | src/core/Distribution.pm:
19:02 dalek rakudo/nom: Fix Distribution::Path missing bin/ or resources/
19:02 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/4c8dc4663b
19:02 dalek rakudo/nom: f49a503 | niner++ | src/core/Distribution.pm:
19:02 dalek rakudo/nom: Merge pull request #806 from ugexe/patch-7
19:02 dalek rakudo/nom:
19:02 dalek rakudo/nom: Fix Distribution::Path missing bin/ or resources/
19:02 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f49a503b7f
19:22 skids joined #perl6-dev
19:23 DrForr_ jnthn: Around?
19:39 BrokenRobot What line width does Rakudo source tend to use? This line, for example, doesn't even fit on GitHub viewer: https://github.com/rakudo/rakudo/commit/f43e3ee4707df437b434fd2f290e416f7cd99e66#diff-9d9f3b6271234e410619d222c23d08f7R265
19:43 vendethiel joined #perl6-dev
20:17 jnthn DrForr_: Am about a bit now.
20:17 DrForr_ Okay, let me find a gist, one moment.
20:18 DrForr_ https://gist.github.com/drforr/bd929fea53ed63b6feeb56c690314f11
20:19 DrForr_ I'm wanting to get the parsed AST before the compiler and optimizer get a chance to work on the code, thus mangling the original data.
20:19 jnthn AST?
20:19 DrForr_ I have to run the actions, otherwise the grammar just fails outright.
20:19 jnthn Or parse tree?
20:19 DrForr_ Parse tree, pardon me.
20:20 jnthn For sure, the actions are involved in building up/installing various declarations.
20:20 jnthn But you can still grab the parse tree.
20:21 DrForr_ Okay, that's all I'm really after, and all I can really trust.
20:21 jnthn In fact, it looks like what you are grabbing. Though I find it a bit confusing to stick it in a variable called $ast, 'cus there's nothing abstract about it. ;)
20:21 DrForr_ Well, true, I'll probably rename it '$parsed'.
20:21 jnthn I'm tired and thus easily confused. :-)
20:22 jnthn About:
20:22 jnthn my ( $ast ) = @_; # Have to bypass arguments for NQP object
20:22 jnthn I *think* you might not have to if you wrote it as sub build(Mu $ast) { }
20:22 DrForr_ I tried 'sub foo( $ast ) {..}' ... Ah, I'll give that a try.
20:23 jnthn Yeah, NQP objects will generally pretend to type-check against Mu well enough, but won't fall under Any
20:23 jnthn Arguably we could make some kinda shim thingy to make them pretend to be under Any too to make life easier
20:23 DrForr_ Is the nqp::interface going to remain accessible, or at least will the parse tree still be available elsewhere?
20:24 DrForr_ No, I wouldn't worry too much about that. Either way it's a rather vague type as it's not really a P6 type, to my understanding.
20:24 jnthn Well, there's a few different answers.
20:25 DrForr_ Yes, Mu works as a type.
20:25 jnthn There's certainly no plan for `use nqp` to go away and access to nqp:: ops will continue to be fine in that sense.
20:25 timotimo ah, yes, you'll often need Mu for nqp stuff
20:26 jnthn We don't officially support the nqp::op API in so far as promise not to break it. But the reality is that it's undergone an order of magnitude less churn than Perl 6 itself over the last years. ;-)
20:26 DrForr_ I didn't figure there would be official alternatives.
20:27 DrForr_ Er, that it would have official standing.
20:27 jnthn The eventual solution is tied up with what masak++ is working on
20:27 jnthn Which isn't a useful answer if you want to get stuff done today, but there will eventually be a nice, official, API for what you're trying to do.
20:28 jnthn That will give you a tree, but one expressed in Perl 6 language units, rather than the more abstracted view that QAST has.
20:29 DrForr_ Right, the macro interface. The catch is I want a lower-level access than that.
20:29 jnthn In the meantime, the nqp:: op stuff and working with the compiler internals is as good as it gets.
20:29 jnthn Lower level in what sense?
20:30 jnthn I'd say that writing something like a Perl6::Tidy would be in the realm of "stuff you should be able to do with a QTree", if I'm guessing right about what you're working on :)
20:30 DrForr_ In the sense that even if there is a (say) Perl6::Expression class with a $.lhs and $.rhs, I need to know what the whitespace is between the operators.
20:31 DrForr_ Okay, when I looked at the source I got back QAST:: objects, not QTree. And you guess correctly, sir.
20:31 jnthn I don't want to speak for masak, but I'd imagine that there's a mapping to the original text too.
20:32 jnthn QTree is "future planning", not "implemented now", thus why I mentioned it's not useful to you today. :-)
20:32 jnthn fwiw, though, even QAST has *some* mapping back to the source, through .node
20:32 jnthn Because we need it to emit line number annotations when compiling :)
20:32 DrForr_ Ah. I think this is why I put that off last time.
20:32 jnthn But I think working with the parse tree will be the best way to do what you're wanting to do today.
20:32 DrForr_ I'd need glyph-level count.
20:33 jnthn As in, NFG?
20:34 jnthn All the compiler internals working with the very same strings that you get in Perl 6, representation wise.
20:34 DrForr_ Whatever term you'd prefer, whatever count the <eject> character gets stuck into.
20:34 jnthn Oh
20:35 jnthn Yeah, if you find the .pos on a Cursor, or the .to/.from on a Match, they're expressed in those units.
20:35 jnthn Not in bytes.
20:35 jnthn So should Just Work.
20:35 DrForr_ Not referring specifically to error situations, I just can't be arsed to look up the Unicode-appropriate term, I think grapheme is correct.
20:35 jnthn Yeah, me too
20:35 jnthn But there's bascially no surprises about how the compiler works with strings, if you're coming from a Perl 6 perspective.
20:36 jnthn After all, the compiler is implemented in a Perl 6 subset :)
20:37 DrForr_ I wouldn't expect so. All I really need is the .from, .to and .orig counts, so I can feed (for example) the whitespace at the end of a <statement> into the statement object so it can be recreated later.
20:37 DrForr_ The other catch is that if I do all of these as individual objects, then even with Roles the data structure will be wildly erratic, making it hard to uniformly walk.
20:38 DrForr_ But that's a higher-level concern.
20:39 DrForr_ For example, subroutines and grammars have names, but an integer doesn't.
20:42 jnthn Yeah, those kinds of things will need some designing.
20:43 jnthn Expect plenty of time will go into that with the QTrees work :)
20:43 DrForr_ Well, maybe I can at least serve as a bad example :)
20:45 DrForr_ PPI"s DOM style might well be a good prototype to follow, but I've already seen how much criticism it receives when people actually try to use it.
20:46 DrForr_ Mostly with people having to remember how linked lists work in order to safely shuffle items around.
20:50 jnthn I guess https://github.com/masak/007/blob/master/lib/_007/Q.pm contains masak's ponderings so far, though for a smaller Perl 6-like language being used for experimentation.
20:50 jnthn May also be worth a look
20:50 Ven_ joined #perl6-dev
20:51 DrForr_ Yah, I'll take a look, but it will need to be tomorrow
22:23 skids joined #perl6-dev
22:40 dalek rakudo/nom: 750c4e8 | lizmat++ | src/core/Baggy.pm:
22:40 dalek rakudo/nom: Make Baggy.pick/roll/grab about 6x as fast
22:40 dalek rakudo/nom:
22:40 dalek rakudo/nom: - make the worker sub a private method so it can access its attributes
22:40 dalek rakudo/nom: - don't create a full list of pairs, but use a hash iterator and stop when done
22:40 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/750c4e8caf
22:49 timotimo holy crap
22:51 TimToady otoh, with a small sample of two datapoints, p6 seems to be running about 20% slower right now than a week ago
22:56 lizmat TimToady: any specifics I could look into >
22:56 lizmat ?
23:01 * timotimo hasn't run a full perl6-bench in ages, but jnthn has automated benchmarks up on moarvm.org
23:01 timotimo http://www.moarvm.org/measurements/perl6-bench/  -  if you're inclined to go digging
23:05 lizmat timotimo: thanks for the reminder, will check tomorrow
23:09 TimToady well, the setting parse phase went from 46 to 57 seconds over that time
23:11 lizmat hmmm... I'm not seeing that...
23:11 lizmat more like going up from 45 to about 48 again for me
23:12 lizmat but then again, I'm not using Moar blead
23:12 TimToady I am, I think
23:13 TimToady maybe computers run slower in oklahoma
23:19 travis-ci joined #perl6-dev
23:19 travis-ci Rakudo build errored. Jonathan Worthington 'Take advantage of new MoarVM multi-dispatch cache.
23:19 travis-ci https://travis-ci.org/rakudo/rakudo/builds/141067940 https://github.com/rakudo/rakudo/compare/d5c750f74cd4...90d407285930
23:19 travis-ci left #perl6-dev
23:28 dalek rakudo/nom: 75b37ee | lizmat++ | src/core/Baggy.pm:
23:28 dalek rakudo/nom: Make Baggy.roll(*) about 2x as fast
23:28 dalek rakudo/nom:
23:28 dalek rakudo/nom: Typically in the situation "for $bag.roll(*) { }'
23:28 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/75b37eecd0
23:28 lizmat and with that I wish #perl6-dev a good night!
23:58 Zoffix joined #perl6-dev

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