dalek ast: 29b093e | (Tom Browder)++ | S26-documentation/07-tables.t:
add a more complex table test for a future bug fix
02:42
ast: 80c762e | (Tom Browder)++ | S26-documentation/07-tables.t:
update plan val for the added test
ast: d445736 | (Zoffix Znet)++ | S26-documentation/07-tables.t:
Merge pull request #131 from tbrowder/new-table-test

add a more complex table test for a future bug fix
[Tux] rt.perl.org/Ticket/Display.html?id=128184 is still awfully silent 06:31
even after Justin's additions 06:32
This is Rakudo version 2016.06-50-g5a4963f built on MoarVM version 2016.06 06:33
test 16.348
test-t 9.885
csv-parser 22.564
dalek kudo/nom: abfe06a | (Tom Browder)++ | src/Perl6/Pod.nqp:
actually we're trying to find the shortest leading whitespace
08:20
kudo/nom: e4daf8a | lizmat++ | src/Perl6/Pod.nqp:
Merge pull request #805 from tbrowder/fix-pod-note

actually we're trying to find the shortest leading whitespace
kudo/nom: 8ab6dbe | lizmat++ | src/core/Baggy.pm:
Make Baggy.pick(N) about 6x faster

  - optimized building the list of pairs to work on
  - optimized picking the right one from the bag
09:23
jnthn Clearly role Baggy needs a trousers method... 09:33
lizmat afk for the rest of the day& 09:50
yoleaux2 28 Jun 2016 03:20Z <jdv79> lizmat: where from to?
28 Jun 2016 09:48Z <sortiz> lizmat: I think that github.com/MoarVM/MoarVM/pull/377 can solve your problem
psch welp, something is different in how things break between install-core-dist.pl and the reductionist Foo.pm case 10:02
probably the fact that install-core-dist.pl nests two EVALs
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
i'm kind of completely out of clues :| 10:34
dalek p: 3a4c7a9 | jnthn++ | tools/build/MOAR_REVISION:
Bump MOAR_REVISION for new multi-cache.
12:18
kudo/nom: d5c750f | jnthn++ | tools/build/NQP_REVISION:
Bump to a MoarVM with improved multi-cache.

It is able to cache on dispatches differentiated by nameds also. Note that Rakudo itself needs further updates to make use of this.
12:41
kudo/nom: 90d4072 | jnthn++ | src/Perl6/Metamodel/BOOTSTRAP.nqp:
Take advantage of new MoarVM multi-dispatch cache.

With this, mutliple dispatches that are differentiated by named args can now have their outcomes cached, provided they are free of any constraints (`where`, unpacks, etc.) The following:
   my %h = a => 1; my ($a, $b);
   for ^20000 { $a = %h<a>:exists; $b = %h<b>:exists; }
   say $a; say $b
Now runs in 5.7% of the CPU cycles it used to, or a speed-up of ~18x.
12:45
tadzik :o 12:46
moritz I guess a jnthn++ or two is in order :-) 13:11
BrokenRobot whoa :o jnthn++ 13:13
nine Epic win :) 13:22
timotimo indeed \o/ 13:39
hoelzro wow 14:53
dalek p/optimize-with-hoopl: 3553c32 | (Pawel Murias)++ | src/vm/js/ (2 files):
[js] Start of sending off nodes to haskell.
15:30
p/optimize-with-hoopl: af6ca94 | (Pawel Murias)++ | src/vm/js/ (3 files):
[js] Create a hoopl graph. It has nothing to do with the QAST but at least the code typechecks ;)
p/optimize-with-hoopl: 894a943 | (Pawel Murias)++ | src/vm/js/dataflow-optimizer/optimize.hs:
[js] Improve the basic block graph.
BrokenRobot Haskell :o 15:37
geekosaur did a bit of a double take at that one 15:43
"...wait, this isn't #ghc why are they hoopl-ing" 15:44
dalek ast: d8e7220 | (Tom Browder)++ | S26-documentation/07-tables.t:
improve comments on last two tests; add row id on the last table; expā€¦ (#132)

improve comments on and expand tests for leading special characters in cells
16:13
awwaiid so much polyglot
dalek Heuristic branch merge: pushed 16 commits to rakudo/nom by niner 18:21
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:30
timotimo neat 18:32
jnthn nine++ ugexe++
dalek kudo/nom: 4c8dc46 | ugexe++ | src/core/Distribution.pm:
Fix Distribution::Path missing bin/ or resources/
19:02
kudo/nom: f49a503 | niner++ | src/core/Distribution.pm:
Merge pull request #806 from ugexe/patch-7

Fix Distribution::Path missing bin/ or resources/
DrForr_ jnthn: Around? 19:23
BrokenRobot What line width does Rakudo source tend to use? This line, for example, doesn't even fit on GitHub viewer: github.com/rakudo/rakudo/commit/f4...3d08f7R265 19:39
jnthn DrForr_: Am about a bit now. 20:17
DrForr_ Okay, let me find a gist, one moment.
gist.github.com/drforr/bd929fea53e...c690314f11 20:18
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?
DrForr_ I have to run the actions, otherwise the grammar just fails outright.
jnthn Or parse tree?
DrForr_ Parse tree, pardon me.
jnthn For sure, the actions are involved in building up/installing various declarations. 20:20
But you can still grab the parse tree.
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. ;)
DrForr_ Well, true, I'll probably rename it '$parsed'.
jnthn I'm tired and thus easily confused. :-)
About: 20:22
my ( $ast ) = @_; # Have to bypass arguments for NQP object
I *think* you might not have to if you wrote it as sub build(Mu $ast) { }
DrForr_ I tried 'sub foo( $ast ) {..}' ... Ah, I'll give that a try.
jnthn Yeah, NQP objects will generally pretend to type-check against Mu well enough, but won't fall under Any 20:23
Arguably we could make some kinda shim thingy to make them pretend to be under Any too to make life easier
DrForr_ Is the nqp::interface going to remain accessible, or at least will the parse tree still be available elsewhere?
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.
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.
timotimo ah, yes, you'll often need Mu for nqp stuff
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.
Er, that it would have official standing. 20:27
jnthn The eventual solution is tied up with what masak++ is working on
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.
That will give you a tree, but one expressed in Perl 6 language units, rather than the more abstracted view that QAST has. 20:28
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.
Lower level in what sense?
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.
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.
QTree is "future planning", not "implemented now", thus why I mentioned it's not useful to you today. :-) 20:32
fwiw, though, even QAST has *some* mapping back to the source, through .node
Because we need it to emit line number annotations when compiling :)
DrForr_ Ah. I think this is why I put that off last time.
jnthn But I think working with the parse tree will be the best way to do what you're wanting to do today.
DrForr_ I'd need glyph-level count.
jnthn As in, NFG? 20:33
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.
jnthn Oh
Yeah, if you find the .pos on a Cursor, or the .to/.from on a Match, they're expressed in those units. 20:35
Not in bytes.
So should Just Work.
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.
jnthn Yeah, me too
But there's bascially no surprises about how the compiler works with strings, if you're coming from a Perl 6 perspective.
After all, the compiler is implemented in a Perl 6 subset :) 20:36
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
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.
But that's a higher-level concern. 20:38
For example, subroutines and grammars have names, but an integer doesn't. 20:39
jnthn Yeah, those kinds of things will need some designing. 20:42
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 :)
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:45
Mostly with people having to remember how linked lists work in order to safely shuffle items around. 20:46
jnthn I guess 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
May also be worth a look
DrForr_ Yah, I'll take a look, but it will need to be tomorrow 20:51
dalek kudo/nom: 750c4e8 | lizmat++ | src/core/Baggy.pm:
Make Baggy.pick/roll/grab about 6x as fast

  - make the worker sub a private method so it can access its attributes
  - don't create a full list of pairs, but use a hash iterator and stop when done
22:40
timotimo holy crap 22:49
TimToady otoh, with a small sample of two datapoints, p6 seems to be running about 20% slower right now than a week ago 22:51
lizmat TimToady: any specifics I could look into > 22:56
?
timotimo hasn't run a full perl6-bench in ages, but jnthn has automated benchmarks up on moarvm.org 23:01
www.moarvm.org/measurements/perl6-bench/ - if you're inclined to go digging
lizmat timotimo: thanks for the reminder, will check tomorrow 23:05
TimToady well, the setting parse phase went from 46 to 57 seconds over that time 23:09
lizmat hmmm... I'm not seeing that... 23:11
more like going up from 45 to about 48 again for me
but then again, I'm not using Moar blead 23:12
TimToady I am, I think
maybe computers run slower in oklahoma 23:13
travis-ci Rakudo build errored. Jonathan Worthington 'Take advantage of new MoarVM multi-dispatch cache. 23:19
travis-ci.org/rakudo/rakudo/builds/141067940 github.com/rakudo/rakudo/compare/d...d407285930
dalek kudo/nom: 75b37ee | lizmat++ | src/core/Baggy.pm:
Make Baggy.roll(*) about 2x as fast

Typically in the situation "for $bag.roll(*) { }'
23:28
lizmat and with that I wish #perl6-dev a good night!