IOninja | .oO( why isn't Range.Seq a thing... ) |
00:25 | |
Geth | rakudo: MasterDuke17++ created pull request #1026: Add nil return constraints where possible v2 |
02:24 | |
rakudo/nom: e8af8553ea | (Zoffix Znet)++ | src/core/Baggy.pm Fix .Bool, .so, .not, .hash, and .elems on Baggy:U Currently all of these crash, begging for Baggy:D Use `multi` instead of `only` methods to handle Baggy:D invocants, so that Mu:U/Any:U candidates take care of the Baggy:U ones. |
05:25 | ||
roast: f1c074e9d4 | (Zoffix Znet)++ | S02-types/baggy.t Test .Bool, .so, .not, .hash, and .elems on Baggy:U Rakudo fix: github.com/rakudo/rakudo/commit/e8af8553ea |
|||
IOninja | I think I spotted the place where test files get lost in t/harness6 | 06:17 | |
m: say <a b c> Z <A B C D> | |||
camelia | ((a A) (b B) (c C)) | ||
IOninja | ^ has a construct like that and 'D' is lost; 'D' being a batch of test files | ||
(I *think*; it maaay be getting lucky and spliting up very evenly) | 06:18 | ||
well, tried a bunch of alterations to the way slow tests are batched in the spectest and they did exactly zero difference. | 06:42 | ||
My slowage of stresstest is probably due to all the new tests, not to when slow tests are run. | 06:43 | ||
Geth | rakudo/nom: cdc71cb16c | (Zoffix Znet)++ | t/harness5 Fix shebang |
||
IOninja | don't know how I ended up trying to speed up the harness when I started this evening by trying to implement .FatRat coercers :| | 06:46 | |
2am | |||
IOninja drops to bed | |||
Geth | rakudo/nom: 18 commits pushed by (Daniel Green)++, lizmat++ review: github.com/rakudo/rakudo/compare/c...3ff01249f1 |
08:17 | |
rakudo/nom: fafe663908 | (Elizabeth Mattijsen)++ | src/core/Junction.pm Make Junction creation about 20% faster Also make sure we use an IterationBuffer internally I also tried to nqpize the "values.eager.list" combo, but that only slowed things down. Looks like the static optimizer already does a good job optimizing that one, and nqpizing misses that code path so making things slower. |
10:43 | ||
roast: hchienjo++ created pull request #245: Add tests for `flat`. |
10:46 | ||
lizmat | m: my @a = ^10; my $a = now; for ^10000 { my $b = Junction.new("all",@a) }; say now - $a; $a = now; for ^10000 { Junction.new("all",@a) }; say now - $a # something really screwy going on when sinking a Junction | 10:47 | |
camelia | 0.0254874 0.19851161 |
||
lizmat commented on hchienjo's PR | 10:50 | ||
m: say ("a",<b c>).flat; say <a b c>.flat | |||
camelia | (a b c) (a b c) |
||
Woodi_ | lizmat: testing it on 2017.01 I got: ~ 0.0790697 0.07914240 timings. but 32bit here | 11:00 | |
timotimo | lizmat: a long time ago i noticed that calling .sink on something that doesn't have it is very costly, maybe that's related | 11:52 | |
i added a method sink to some class that didn't use to have it and some test ran much faster | |||
interesting | 11:53 | ||
[Tux] | This is Rakudo version 2017.02-92-g3ff01249f built on MoarVM version 2017.02-9-gc5379702 | ||
csv-ip5xs 2.833 | |||
test 12.615 | |||
test-t 4.800 - 4.827 | |||
csv-parser 13.247 | |||
timotimo | profiler says the sink case spends 54% of its time in dispatch:<.?> and 12.38% of its time in sink (of Junction) | ||
dispatch:<.?> doesn't even show up in the first code examplo | 11:54 | ||
i expect it'll get much faster when you turn the .?sink in Junction's sink method into something nqp-ish | 11:55 | ||
jnthn | I'm curious why we'd ever need to .?sink given that Mu.sink exists | 11:57 | |
m: Mu.sink | |||
camelia | ( no output ) | ||
timotimo | fair enough | ||
jnthn | So just turning it into .sink is probably a win :) | 11:58 | |
There's some issues with spesh at present whereby it runs out of specializations for Mu.sink because it ain't smart enough to realize there's nothing special about it :) | 11:59 | ||
[Tux] | This is Rakudo version 2017.02-93-gfafe66390 built on MoarVM version 2017.02-9-gc5379702 | 12:04 | |
csv-ip5xs 2.888 | |||
test 12.633 | |||
test-t 4.788 - 4.848 | |||
csv-parser 13.227 | |||
neat :) | |||
timotimo | mhm | ||
i'm going to spectest the change of throwing out that ? | 12:11 | ||
it shouldn't give us trouble, but you know how things are sometimes :D | 12:12 | ||
it's happy so i'll push | 12:17 | ||
Geth | rakudo/nom: b283e52bb2 | (Timo Paulssen)++ | src/core/Junction.pm since Mu has a sink method, Junction.sink don't need to .?sink |
12:18 | |
timotimo | it's not blazing fast, but it's far faster than it used to be | 12:19 | |
m: my @a = ^50; my $a = now; for ^100_000 { my $b = Junction.new("all",@a) }; say now - $a; $a = now; for ^100_000 { Junction.new("all",@a) }; say now - $a | 12:24 | ||
(i made the work load 50x bigger) | 12:25 | ||
camelia | 0.1707645 8.5596342 |
||
timotimo | now let's wait for the rebuild | ||
m: say "hi" | 12:32 | ||
camelia | hi | ||
timotimo | m: my @a = ^50; my $a = now; for ^100_000 { my $b = Junction.new("all",@a) }; say now - $a; $a = now; for ^100_000 { Junction.new("all",@a) }; say now - $a | ||
camelia | 0.1640936 1.12867647 |
||
timotimo | yeah, it's a bit better. still a large impact | 12:33 | |
Geth | rakudo/nom: 0be724727f | (Elizabeth Mattijsen)++ | src/core/List.pm Use IterationBuffer instead of nap::list where needed |
13:46 | |
IOninja | m: 1.Rat: 42; 1.0.Rat: 42 | 13:54 | |
camelia | ( no output ) | ||
IOninja | Gonna remove these (dummy params that take an epsillon that's never used), unless someone has an objection. | 13:55 | |
List of types that do and don't take it: gist.github.com/zoffixznet/c8c4325...39fea59c79 | 13:56 | ||
And will add an epsion to complex, since it uses nums for its components, so there it makes sense. | |||
.tell jnthn I forcee some largish changes due to IO grant work. Some things have zero tests at all. Others, only tests in master. I currently plan to write an advance notice and publish it today-ish. The changes will land in 2017.04 release and will include a detailed info on what changed. If that's a bad plan, let me know. | 16:06 | ||
yoleaux2 | IOninja: I'll pass your message to jnthn. | ||
IOninja | .tell jnthn Some examples: is `link` taking args in reverse (and being documented as such), despite using them in right order in error message. So I forcee this being changed to follow the same order of args as `ln` Linux command, which follows the "sub($existing-thing, $new-thing)" order that `move`, `rename` and ilk follow. The other change I'll propose is tossing Seek* enum and passing position to | 16:13 | |
yoleaux2 | IOninja: I'll pass your message to jnthn. | ||
IOninja | .seek() as named args. The `link()` has no tests at all. The `seek()` only has the tests I added in January, 2017. | ||
.tell .seek() as named args. The `link()` has no tests at all. The `seek()` only has the tests I added in January, 2017 | |||
yoleaux2 | IOninja: What kind of a name is ".seek()"?! | ||
IOninja | .tell jnthn .seek() as named args. The `link()` has no tests at all. The `seek()` only has the tests I added in January, 2017 | ||
yoleaux2 | IOninja: I'll pass your message to jnthn. | ||
nine_ | Slowly a plan forms in my mind for how to fix indirect name lookup of symbols loaded via "require". | 16:42 | |
It's nice to be able to think clearly again :) cold-- | |||
IOninja | \o/ | 16:43 | |
MasterDuke | nine_: did you happen to see the discussion a little while ago in #moarvm about t/spec/S11-modules/nested.t? | 16:45 | |
there are very occasional flaps, but haven't been able to repro | |||
nine_ | MasterDuke: no, have missed quite a bit :/ | 16:48 | |
MasterDuke | nine_: do you have any idea what the fix should be that jnthn mentions here irclog.perlgeek.de/perl6-dev/2016-0...i_13173728 ? | 16:53 | |
nine_ | MasterDuke: yes, I think, I see it. | 17:02 | |
MasterDuke: the check is hard coded to 64 bits, but in the signed case we actually only have 63 bits available. | |||
MasterDuke | nine_: thanks, will trying playing around with that check | 17:14 | |
nine_ | The fix seems trivial, but it fails one of nqp's tests. | 17:15 | |
gist.github.com/niner/da7d13490b35...192eaeee8b | |||
t/serialization/01-basic.t ............. 1/1502 Cannot unbox 64 bit wide bigint into native integer | |||
at t/serialization/01-basic.t:671 (<ephemeral file>:<mainline>) | |||
MasterDuke | does it do anything to t/spec/S02-types/int-uint.t? | 17:20 | |
nine_ | t/spec/S02-types/int-uint.t .. 1/75 Cannot unbox 64 bit wide bigint into native integer in block <unit> at EVAL_69 line 1 in block <unit> at t/spec/S02-types/int-uint.t line 33 | 17:21 | |
MasterDuke | and i still see the same behavior with "a" x <large values> | 17:26 | |
Geth | rakudo: MasterDuke17++ created pull request #1027: Change atpos of @!named_names to atpos_s |
18:04 | |
nine_ | While I have a somewhat reasonable plan for getting the required symbols into MY::, I don't actually understand why require ::($foo) is broken. REQUIRE_IMPORT merges the symbols into GLOBAL at runtime. And that's the same GLOBAL as the caller sees. | 18:41 | |
It should actually still just work. | |||
Aaah...as soon as I wrote that it became clear. It's only an issue with nested name spaces. Top level symbols work just fine, but if the caller has the top part of the name space as a lexical symbol, it won't see the global one into which we imported. | 18:44 | ||
Geth | rakudo/nom: 74573d0684 | (Daniel Green)++ | src/core/Signature.pm Change atpos of @!named_names to atpos_s These were missed in the recent conversion of @!named_names to an nqp::list_s. |
18:47 | |
rakudo/nom: 356feee99b | (Zoffix Znet)++ | src/core/Signature.pm Merge pull request #1027 from MasterDuke17/fix_some_atpos_of_named_names_in_Signature Change atpos of @!named_names to atpos_s |
|||
nine_ | To stay with the lexical_module_load spirit, I'll have to make those require'd symbols lexical as well. But that requires me to change indirect name lookup ::() to look into the lexical scope, too. | ||
Otherwise require ::($foo); cannot work, as that compiles to something like require $foo; ::($foo); | 18:48 | ||
mst | surely indirect name lookup *should* look into the lexical scope? | ||
Geth | roast: dcc20bbc5a | (David Warring)++ | S14-roles/mixin.t add role mixin multi-dispatch sanity tests See irclog.perlgeek.de/perl6/2017-02-25#i_14165034 |
19:11 | |
roast: f6f8c08377 | (Zoffix Znet)++ | S14-roles/mixin.t Scope test role and class to test's block |
19:12 | ||
lizmat | nine: looking in the lexical scope is something I expect ? | 19:27 | |
m: my $a = 42; say ::(q/$a/) # seems it already dpoes ? | 19:28 | ||
camelia | 42 | ||
lizmat | *does | ||
Geth | rakudo/nom: a4af702d65 | (Zoffix Znet)++ | 5 files Fix/Improve .Rat and .FatRat coercers - Make Complex coercers take $epsilon arg since their components are Nums - Fix Instant.Rat routing the conversion through Num; TAI is already a Rat, so just return it - Implement Cool.FatRat - Implement Numeric.FatRat that does .Rat.FatRat; any type that can provide ... (12 more lines) |
19:51 | |
nine_ | lizmat: ooooh...that makes things easy :) | 19:52 | |
Ah, of course, that's because PseudoStash's $!storage is the caller's lexpad. | 19:56 | ||
Geth | roast: be6f6cd86f | (Zoffix Znet)++ | S32-num/rat.t Test .Rat/.FatRat coercers Rakudo fix: github.com/rakudo/rakudo/commit/a4af702d65 |
19:58 | |
roast: 6cb09469af | (Zoffix Znet)++ | S32-num/rat.t OCD |
20:00 | ||
rakudo/nom: 79d5670863 | (Elizabeth Mattijsen)++ | 4 files Some more nqp::list -> IterationBuffer migration |
20:16 | ||
rakudo/nom: 81fcd1bfe3 | (Elizabeth Mattijsen)++ | 4 files Give Mu its own .iterator Should make "Mu Z 42" work |
20:28 | ||
lizmat | m: dd Mu.list # should this be fixed ? | 20:35 | |
camelia | No such method 'list' for invocant of type 'Mu' in block <unit> at <tmp> line 1 |
||
IOninja | IMO not, otherwise we'd be drifting all the Any methods into Mu | 20:39 | |
What sort of Mu stuff do we have? | |||
other than Junctions | |||
I mean Mu, but not Any. | |||
timotimo | well, everything from nqp is Mu, but not Any | ||
IOninja | Like what? | 20:40 | |
I mean from user's perspective. | |||
lizmat | IOninja: so maybe I should revert github.com/rakudo/rakudo/commit/81fcd1bfe3 ? | ||
IOninja | lizmat: ¯\_(ツ)_/¯ I'm no expert | 20:41 | |
m: Mu Z 42 | |||
camelia | WARNINGS for <tmp>: Useless use of "Z" in expression "Mu Z 42" in sink context (line 1) No such method 'iterator' for invocant of type 'Mu' in block <unit> at <tmp> line 1 |
||
IOninja | Are there real-world cases where this situation would occur; that a Mu would be involved | 20:42 | |
lizmat | not sure... but the error is LTA in any case, because apparently Z takes Mu, but then doesn't know what to do with it | 20:44 | |
otherwise :-) | |||
IOninja | :) | ||
m: say elems gather for Any.^methods(:local)».name { Mu.can: $_ or .take } | 20:46 | ||
camelia | 87 | ||
Geth | rakudo/nom: 313e7b28c9 | (Elizabeth Mattijsen)++ | src/core/Parameter.pm Streamline Parameter.named_name|type_captures Also make sure they have an IterationBuffer inside of their List |
22:12 | |
rakudo/nom: e723e001da | (Elizabeth Mattijsen)++ | src/core/Rakudo/Iterator.pm Make sure R:It.ShapeBranch.dims returns proper List With an IterationBuffer for its $!reified |
22:22 | ||
rakudo/nom: 5843ee6b08 | (Elizabeth Mattijsen)++ | src/core/Rakudo/Iterator.pm Make sure R:It.RoundRobinIterables returns proper List With an IterationBuffer for its $!reified |
22:23 | ||
rakudo/nom: 7c279c383e | (Elizabeth Mattijsen)++ | src/core/Rakudo/Iterator.pm Make sure R:It.ShapeIndex returns a proper List With an IterationBuffer for its $!reified |
22:36 | ||
rakudo/nom: 318f8eec4e | (Elizabeth Mattijsen)++ | src/core/Rakudo/Iterator.pm Make sure R:It.ZipIterables returns proper List With an IterationBuffer for its $!reified |
|||
lizmat | and that concludes my hacking for today | 22:37 | |
good night, #perl6-dev! | |||
IOninja | night |