[Tux] | This is Rakudo version 2016.05-41-g6bb23a5 built on MoarVM version 2016.05-18-g1339332 | 06:53 | |
test 19.701 | |||
test-t 12.581 | |||
csv-parser 34.852 | |||
consistently under 13 for the past three days | 06:54 | ||
dalek | kudo/nom: 4e66e0a | (Daniel Green)++ | src/core/List.pm: Speed up List.pm's infix:<,> ~40% by using a STATEMENT_LIST to convert to a ternary and postfix while |
09:54 | |
kudo/nom: ba6a288 | lizmat++ | src/core/List.pm: Merge pull request #779 from MasterDuke17/List.pm_optimizations Speed up List.pm's infix:<,> ~40% by using a STATEMENT_LIST to conver… |
|||
kudo/nom: 85cdb9e | ugexe++ | src/core/CompUnit/Repository/FileSystem.pm: Access packages in the $base Makes `META6.json` and `META.info` follow the same behavior in regards to access modules in a package $base See: irclog.perlgeek.de/perl6-toolchain/...i_12593703 |
09:55 | ||
kudo/nom: affe025 | lizmat++ | src/core/CompUnit/Repository/FileSystem.pm: Merge pull request #778 from ugexe/patch-6 Access packages in their CUR::FS $base |
|||
kudo/nom: de5db8c | lizmat++ | src/core/List.pm: An empty infix:<,> only needs a List object itself Won't even allocate a $!reified now when iterating, as it will fall back to the EmptyIterator now |
10:57 | ||
kudo/nom: 03a403a | lizmat++ | src/core/List.pm: Streamline List.Capture Also, fixes problem introduced recently. Basically, only create a full-fledged Capture if there is any data to put in the Capture. |
|||
kudo/nom: 3bd9fd6 | lizmat++ | src/core/Rakudo/Internals.pm: Give the EmptyIterator a sink-all just in case Haven't been able to make it run yet, but it seems correct to have it anyway. |
11:42 | ||
kudo/nom: e403c1b | lizmat++ | src/core/List.pm: Make List.FLATTENABLE_LIST a bit cheaper If there's a $!todo, there will be a $!reified created anyway, so no need to check for $!reified.DEFINITE then. Also part of the effort to get rid of !ensure-allocated. |
|||
kudo/nom: dfbf1ec | (Daniel Green)++ | src/core/List.pm: Somw whitespace/legibility changes |
12:01 | ||
|Tux| | lizmat++ | 12:26 | |
This is Rakudo version 2016.05-49-ge403c1b built on MoarVM version 2016.05-18-g1339332 | |||
test 19.013 | |||
test-t 11.979 | |||
csv-parser 34.152 | |||
dalek | kudo/nom: b2f8ba9 | lizmat++ | src/core/List.pm: Make List.join on empty lists 2x as fast And half the number of allocations. Basically doesn't initialize $!reified if it is not needed. |
12:30 | |
lizmat | afk for a few hours & | 12:31 | |
ugexe | so what exactly is the difference between `sub foo() { 1; }` and `sub foo() { $ = 1; }`? | 14:01 | |
months ago i would have to use the later on windows if they were called from a lazy loop, otherwise it would just instantly iterate the entire list without making the appropriate calls | 14:03 | ||
geekosaur | the former can be optimized away since it's a compile time constant? (I don't know if that happens) the latter has a pointless assignment but that could well defeat optimization | 14:05 | |
jnthn | If those cause some different behavior then it's likely an optimizer bug or something, yes | ||
ugexe | and now they manage to cause that 'Cannot assign to immutable' under certain circumstances. is that probably a bug as well? since i cant golf it down im assuming its some edge case bug | 14:08 | |
geekosaur | the other possibility is that one or both gets JITted wrong, but tracking that would be "fun" | 14:09 | |
[Coke] | we should start a "what needs to happen to bump the spec version" document with practical considerations on jnthn++'s earlier post-christmas suggestions. | 16:18 | |
like "what should roast's 6.d-errata branch look like, in comparison to 6.c-errata (which was a rushed snapshot) and how do we get there?" | 16:19 | ||
jnthn | ugexe: You can try MVM_SPESH_DISABLE=1 in the environment to rule out that sort of optimization bug, fwiw | 16:25 | |
[Coke]: I'm guessing a 6.c.1 is on the cards sooner than a 6.d, but yes :) | 16:26 | ||
[Coke] | jnthn: right, same discussion. ... except we can probably cut a few corners on a 6.c.1 in terms of roast. | 16:33 | |
but I'd really like to hash out what roast should really look like sooner than later, so maybe we do make that a precondition of cutting a new spec, even a .1 | |||
jnthn | Well, I suspect we'll converge on doing it in a way we're happy with over a few releases, but yes, no reason not to start off in that direction in .1 :) | 16:34 | |
Also to figure out soon is adding a CORE.d.setting or so; I think nine++ may have had a branch somewhere doing that | 16:38 | ||
[Coke] | jnthn: we'll also need a 6.c.1 setting, neh? | 16:41 | |
jnthn | [Coke]: Only if we have anything new | 16:42 | |
[Coke] | (but we could totally add an experimental 6.d first) | ||
jnthn | I don't know we added any new subs? | ||
Or new types? | |||
[Coke] | jnthn: if we don't have anything new, we don't need a .1, neh? | ||
jnthn | We have a lot of fixes, which have test coverage | ||
And so are things you can rely on in 6.c.1 | 16:43 | ||
(But not in a plain 6.c) | |||
The doc I wrote up back in Jan (or was it Feb...) noted that only certain kinds of change triggered the need for a new setting. | |||
nine | jnthn: yes there's a branch for language versioning | 16:44 | |
jnthn | We'll want a 6.d.a at some point sorta-soonish when I change the behavior of await :) | 16:47 | |
jdv79 | wasn't await changed not that long ago already? | 17:09 | |
timotimo | hm, how so? | 17:15 | |
jdv79 | as part of the async cleanup pre-xmas i think | 17:25 | |
timotimo | ah. well, whatever is pre-christmas doesn't impact the roast letter uppage :) | ||
jnthn: is it silly to assume people would want to use await inside callbacks that have passed through C? should we have automatic detection for "are we in a sub-runloop" and not try to do continuation magic with await in that case? | 17:26 | ||
sexy-coder-girl | quit | 18:11 | |
timotimo | sexy-coder-girl: yo zoffix, you know there's a newer weechat version than that? :) | 18:14 | |
sexy-coder-girl | timotimo: that's what I got in the Debian repo | ||
jnthn | jdv79: No, await stayed about the same I think. It was supplies that got a big design cleanup. | 18:30 | |
timotimo: I suspect we can do something smart scheduler wise about native callbacks | |||
timotimo | yeah, i thought the vm could just set a dynamic variable, but we could also have an op for "are we in a sub-runloop" | 18:31 | |
jdv79 | ok | 20:02 | |
jnthn | I suspect I'll get to the await stuff during the summer... Seems I'm doing a stint of "omg, where do all the CPU cycles go to" at the moment :) | 20:03 | |
jdv79 | nice. sounds tedious but fun when wins are gotten. | 20:05 | |
jnthn | Well, getting the raw data isn't especially tedious thanks to the nice tools in the valgrind suite. | 20:07 | |
Some of the debugging when improvements have unexpected consequences can be :) | 20:08 | ||
Though it's a lot less tedious than last month's focus on GC/concurrency torture testing. | 20:09 | ||
And fixing things that shook out. | |||
I suspect the await stuff won't be too bad, though I'm ready for something I hadn't thought of to smack me in the face when I start taking continuations on one thread and then invoking them on another... :) | 20:10 | ||
mst | callbacks that have passed through C are always interesting | 20:33 | |
dalek | kudo/nom: 0cc70dc | lizmat++ | src/core/List.pm: A literal '' is better Not sure what I was thinking when I introduced the native str. This removes one allocation per call to .join. |
22:02 | |
kudo/nom: 56cc3ae | lizmat++ | src/core/List.pm: Streamline List.is-lazy, about 30% faster Step one of more streamlining with regards to reify-until-lazy / fully-refied. |
22:06 | ||
kudo/nom: 48fe6ae | lizmat++ | src/core/Array.pm: Streamline Array.is-lazy in the same manner We should probably not have a separate Array.is-lazy. But that's for another day. |
22:18 | ||
lizmat | good night, #perl6-dev | ||
Zoffix | night | 22:19 |