Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6-dev, 2016-10-01

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

All times shown according to UTC.

Time Nick Message
00:14 MasterDukeLaptop joined #perl6-dev
01:49 ilbot3 joined #perl6-dev
01:49 Topic for #perl6-dev is now Perl 6 language and compiler development 2.0 | Logs at http://irclog.perlgeek.de/perl6-dev/today
02:27 tadzik joined #perl6-dev
03:52 ilmari[m] joined #perl6-dev
04:13 Zoffix m: sub (int $i) { $i() }
04:13 camelia rakudo-moar 1f29cb: OUTPUT«===SORRY!===␤callee expression must be an object␤»
04:14 Zoffix still no 'New Ticket' button on RT? :/
04:14 Zoffix huggable, rakudobug
04:14 huggable Zoffix, rakudobug@perl.org or use perl6 query on http://rt.perl.org ; see https://github.com/rakudo/rakudo/#reporting-bugs
04:16 Zoffix .oO( have you people heard of reCAPTCHA.... )
04:19 Zoffix Ticket for the above https://rt.perl.org/Ticket/Display.html?id=129772
05:07 Zoffix m: use nqp; sub foo (Int:D $offset) { dd nqp::islt_i(nqp::unbox_i($offset),0) }(-1)
05:07 camelia rakudo-moar 1f29cb: OUTPUT«1␤»
05:07 Zoffix m: use nqp; sub foo (Int:D $offset) { dd nqp::islt_i($offset,0) }(-1)
05:07 camelia rakudo-moar 1f29cb: OUTPUT«1␤»
05:08 Zoffix What is the purpose of nqp::unbox_i() in that code?
05:09 Zoffix e.g. here: https://github.com/rakudo/rakudo/blob/nom/src/core/Array.pm#L1058
05:12 geekosaur m: use nqp; my $x = -1; sub foo (Int:D $offset) { dd nqp::islt_i($offset,0) }($x)
05:12 camelia rakudo-moar 1f29cb: OUTPUT«1␤»
05:42 Zoffix m: [].splice: 0, []  # weeeeeeeeeeee
05:43 camelia rakudo-moar 1f29cb: OUTPUT«Memory allocation failed; could not allocate 80320 bytes␤»
05:44 Zoffix s: [], 'splice', \(0, [])
05:44 SourceBaby Zoffix, Sauce is at https://github.com/rakudo/rakudo/blob/1f29cb2/src/core/Array.pm#L1142
05:44 Zoffix .oO( well, there's yer problem )
06:17 dalek rakudo/nom: 28bf874 | (Zoffix Znet)++ | / (2 files):
06:17 dalek rakudo/nom: Fix hang on incorrect .splice arguments
06:17 dalek rakudo/nom:
06:17 dalek rakudo/nom: Fixes RT#129773: https://rt.perl.org/Ticket/Display.html?id=129773
06:17 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/28bf87439e
06:17 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=129773
06:20 dalek roast: 3253db3 | (Zoffix Znet)++ | S32-array/splice.t:
06:20 dalek roast: Test .splice(offset, array) throws
06:20 dalek roast:
06:20 dalek roast: RT#129773: https://rt.perl.org/Ticket/Display.html?id=129773
06:20 dalek roast: review: https://github.com/perl6/roast/commit/3253db362c
06:20 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=129773
06:21 dalek rakudo/nom: 4ffeeab | bartolin++ | src/vm/jvm/runtime/org/perl6/rakudo/RakOps.java:
06:21 dalek rakudo/nom: Mention typename in X::Assignment::RO on JVM
06:21 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/4ffeeabc74
06:21 dalek rakudo/nom: 3299111 | (Zoffix Znet)++ | src/vm/jvm/runtime/org/perl6/rakudo/RakOps.java:
06:21 dalek rakudo/nom: Merge pull request #892 from usev6/patch-3
06:21 dalek rakudo/nom:
06:21 dalek rakudo/nom: Mention typename in X::Assignment::RO on JVM
06:21 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/3299111391
07:11 dalek roast: f56934b | usev6++ | S (2 files):
07:11 dalek roast: Unfudge passing tests for JVM
07:11 dalek roast: review: https://github.com/perl6/roast/commit/f56934bdd8
07:21 Zoffix aw, crap
07:21 travis-ci joined #perl6-dev
07:21 travis-ci Rakudo build errored. Zoffix Znet 'Fix hang on incorrect .splice arguments
07:21 travis-ci https://travis-ci.org/rakudo/rakudo/builds/164218938 https://github.com/rakudo/rakudo/compare/1f29cb23bd6f...28bf87439e4c
07:21 travis-ci left #perl6-dev
07:21 Zoffix [].splice: 0e0, 0 also hangs
07:22 Zoffix 'cause there's no type constraint on $offset
07:22 Zoffix Is there a better way than adding 9 candidates for this case?
07:29 Zoffix m: multi foo (Int:D $x, $y, @a) {say "got it"}; multi foo ($x, $y, *@a) { &foo.cando(\($x, $y, @a))[0].signature eqv &?BLOCK.signature and die; foo $x, $y, @a }(0e0, 0, 1, 2, 3)
07:29 camelia rakudo-moar 329911: OUTPUT«Died␤  in sub foo at <tmp> line 1␤  in block <unit> at <tmp> line 1␤␤»
07:29 * Zoffix benches
07:39 Zoffix :/ or not... seems I hit a module loading hang now :\
07:44 Zoffix yup \o/
07:51 FROGGS joined #perl6-dev
07:55 dalek nqp: 726735e | peschwa++ | src/vm/jvm/runtime/org/perl6/nqp/sixmodel/reprs/CStruct.java:
07:55 dalek nqp: Adjust error message for zero size CStruct, jnthn++.
07:55 dalek nqp: review: https://github.com/perl6/nqp/commit/726735ec98
07:59 travis-ci joined #perl6-dev
07:59 travis-ci Rakudo build failed. Zoffix Znet 'Merge pull request #892 from usev6/patch-3
07:59 travis-ci https://travis-ci.org/rakudo/rakudo/builds/164219328 https://github.com/rakudo/rakudo/compare/28bf87439e4c...32991113917a
07:59 travis-ci left #perl6-dev
08:16 Zoffix this is just weird....
08:17 Zoffix bug happens just when a particular checkout is present in current directory :)
08:22 psch which bug?
08:22 psch the multi one?
08:23 Zoffix Nah, the module loading one :)
08:23 * Zoffix is debugging it atm
08:23 psch oh
08:55 pmurias joined #perl6-dev
08:56 pmurias should the nqp test suit use and &is sub instead of using ok(... eq 'expected') all over the place
08:56 pmurias ?
08:57 dalek nqp: 815ecaf | (Pawel Murias)++ | src/vm/js/nqp-runtime/co (2 files):
08:57 dalek nqp: [js] Fix nqp::iscont on typeobjects.
08:57 dalek nqp: review: https://github.com/perl6/nqp/commit/815ecaf733
08:57 dalek nqp: 503b29a | (Pawel Murias)++ | t/nqp/067-container.t:
08:57 dalek nqp: Test nqp::iscont on typeobjects.
08:57 dalek nqp: review: https://github.com/perl6/nqp/commit/503b29aff2
08:57 dalek nqp: 2934378 | (Pawel Murias)++ | src/vm/js/Compiler.nqp:
08:57 dalek nqp: [js] Remove dead commented out code.
08:57 dalek nqp: review: https://github.com/perl6/nqp/commit/2934378df2
08:57 dalek nqp: 0da41f3 | (Pawel Murias)++ | t/qast/01-qast.t:
08:57 dalek nqp: Add a test for mixing a QAST::Var param with setup with a contvar.
08:57 dalek nqp: review: https://github.com/perl6/nqp/commit/0da41f3635
08:57 dalek nqp: 66e5843 | (Pawel Murias)++ | / (2 files):
08:57 dalek nqp: [js] Setup contvars and statics before we are running the setup code inside the params.
09:02 Zoffix Hm. I see what the issue is. CompUnit::Repository::FileSystem basically recurses and finds all .pm6? files, slurps all of them, concatenates all of them, and then sha1s the result.
09:02 Zoffix So if you happen to run stuff in a dir with lots of .pm6 files, you're screwed.
09:08 Zoffix Wouldn't using an absolute path as repo ID work?
09:09 Zoffix (well, sha version of it)
09:11 Zoffix .tell nine maybe you'll have a better idea of how this can be fixed: https://rt.perl.org/Ticket/Display.html?id=129776
09:11 yoleaux2 Zoffix: I'll pass your message to nine.
09:22 psch oh, that's a regex, not a question
09:22 psch pm6? i mean
09:26 arnsholt I'm not sure that one's easily fixed
09:28 arnsholt It needs to generate what is essentially a GUID for a tree, but in such a way that the same tree will always get the same GUID
09:29 arnsholt That'll have to depend on the file contents in some way
09:32 arnsholt Best we can do is probably faster SHA computations
09:33 arnsholt Might be faster to SHA individual files, and XOR those together
09:40 [Tux] This is Rakudo version 2016.09-98-g3299111 built on MoarVM version 2016.09-3-g9b39aa5
09:40 [Tux] csv-ip5xs        3.392
09:40 [Tux] test            16.304
09:40 [Tux] test-t           7.220
09:40 [Tux] csv-parser      17.856
09:42 [Tux] arnsholt, timotimo, csv-ip5xs is perl6 + Inline::Perl5 + Text::CSV_XS, test is the first simple draft of what became test-t, no optimisations, pure perl6, test-t is the full-fledged implementation of Text::CSV_XS in pure perl6 with all options enabled and language specific optimizations applied
09:42 [Tux] csv-parser is the perl6 CSV::Parser module
09:42 RabidGravy joined #perl6-dev
09:43 arnsholt Cool. Thanks!
09:47 dalek nqp: dea98a2 | peschwa++ | tools/build/MOAR_REVISION:
09:47 dalek nqp: Bump MOAR_REVISION for CStruct fix
09:47 dalek nqp: review: https://github.com/perl6/nqp/commit/dea98a2f6c
09:47 dalek rakudo/nom: c4a8855 | peschwa++ | tools/build/NQP_REVISION:
09:47 dalek rakudo/nom: Bump NQP_REVISION for CStruct fix
09:47 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c4a885554c
09:47 dalek rakudo/nom: 46e0ede | peschwa++ | t/04-nativecall/06-struct.t:
09:47 dalek rakudo/nom: Adjust error message in zero size CStruct test
09:47 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/46e0edebc5
10:45 travis-ci joined #perl6-dev
10:45 travis-ci Rakudo build passed. Pepe Schwarz 'Adjust error message in zero size CStruct test'
10:45 travis-ci https://travis-ci.org/rakudo/rakudo/builds/164237981 https://github.com/rakudo/rakudo/compare/32991113917a...46e0edebc593
10:45 travis-ci left #perl6-dev
11:43 btyler joined #perl6-dev
12:08 Zoffix arnsholt, but why does it need file tree contents?
12:08 Zoffix As in, why is the absolute path alone not enough
12:10 lizmat Files=1144, Tests=53182, 228 wallclock secs (12.88 usr  3.61 sys + 1400.44 cusr 131.94 csys = 1548.87 CPU)
12:10 timotimo that seems like a low number
12:11 lizmat timotimo: in what sense?
12:11 timotimo 228 wallclock seconds?
12:11 timotimo is that lower than usual?
12:11 lizmat not for me...
12:11 timotimo OK
12:12 lizmat it's been around 228 the past week
12:12 timotimo OK!
12:12 lizmat http://irclog.perlgeek.de/perl6-dev/search/?nick=&amp;q=%22wallclock+secs%22
12:15 Zoffix The mu repo has 1022 module files and perl6 chokes on that. By comparison, Perl 5's Date::Manip distro has 862 module files. So our Filesystem *repository* would choke on a single distro like that in it.
12:17 lizmat Zoffix: yup, ran into that myself some weeks ago :-(
12:19 lizmat feels to me we should actually be ok with shaing the last modified / file size of a dir
12:23 Ven_ joined #perl6-dev
12:43 Zoffix m: https://gist.github.com/zoffixznet/f2e97446c4327916e51a3556c903972e
12:43 camelia rakudo-moar 46e0ed: OUTPUT«===SORRY!===␤Failed to create directory '/home/zoffix/CPANPRC/rakudo/bug/.precomp/F0F0ACA3B2DE672560EA87C94EF371AC81E75BC9.1475316625.64084' with mode '0o777': Failed to mkdir: 13␤»
12:44 Zoffix heh
12:44 Zoffix m: https://gist.github.com/zoffixznet/f72faa3f78f52e718e9ea6ef6d194e8f
12:45 camelia rakudo-moar 46e0ed: OUTPUT«(timeout)starting␤*** Error in `/home/camelia/rakudo-m-inst-2/bin/moar': malloc(): smallbin double linked list corrupted: 0x0000000005aad5c0 ***␤»
12:45 Zoffix \o/
12:45 Zoffix I don't get the timeout, just the consistent segfault locally
12:52 Zoffix "Your session has expired. Please log in again"... And yes, please, do delete the email I spent 5 minutes typing and wanted to send.
12:52 Zoffix ugh
12:59 Zoffix m: my ($x, $y, @a); say \(Array:D: $x, $y, @a)
12:59 camelia rakudo-moar 46e0ed: OUTPUT«Cannot resolve caller say(Array:D: Capture); none of these signatures match:␤    (Mu $: *%_)␤  in block <unit> at <tmp> line 1␤␤»
12:59 Zoffix m: my ($x, $y, @a); say \(Array:D $: $x, $y, @a)
12:59 camelia rakudo-moar 46e0ed: OUTPUT«===SORRY!=== Error while compiling <tmp>␤Two terms in a row␤at <tmp>:1␤------> my ($x, $y, @a); say \(Array:D⏏ $: $x, $y, @a)␤    expecting any of:␤        infix␤        infix stopper␤        statement end␤        statement m…»
12:59 Zoffix Apparently today is Annoy Zoffix With Bugs day :/
13:00 Zoffix oh maybe not
13:00 Zoffix m: my ($x, $y, @a); say \(Array:D, $x, $y, @a)
13:00 camelia rakudo-moar 46e0ed: OUTPUT«\(Array:D, Any, Any, [])␤»
13:00 Zoffix \o/
13:05 Zoffix m: https://gist.github.com/zoffixznet/c31428d337c108987b0ad98a2bb25969
13:05 camelia rakudo-moar 46e0ed: OUTPUT«starting␤Before: 0.61891633␤ After: 5.1659245␤  Diff: -88.02%␤»
13:12 Zoffix This kinda looks daft, https://gist.github.com/zoffixznet/da2703d5c82caa0af8c545a11d140a32
13:13 Zoffix Alternate solutions: checking lookup signature 88% relative difference (slower); checking istype on all args 30% rel.dif (slower).
13:13 Zoffix m: [].splice: 0e0, 0 # fix for this hang
13:13 camelia rakudo-moar 46e0ed: OUTPUT«Memory allocation failed; could not allocate 40816 bytes␤»
13:13 Zoffix Should I commit that?
13:14 Zoffix and using where {} clauses is also ridiculously slow in the 98% rel dif
13:30 tbrowder joined #perl6-dev
13:32 tbrowder left #perl6-dev
13:46 AlexDaniel joined #perl6-dev
13:59 dalek joined #perl6-dev
14:14 dalek rakudo/js: 936b5a5 | (Pawel Murias)++ | src/vm/js/perl6-runtime/runtime.js:
14:14 dalek rakudo/js: [js] Update due to nqp changes.
14:14 dalek rakudo/js: review: https://github.com/rakudo/rakudo/commit/936b5a5f23
14:14 dalek rakudo/js: 424d190 | (Pawel Murias)++ | src/vm/js/ (2 files):
14:14 dalek rakudo/js: [js] Implement nqp::p6var.
14:14 dalek rakudo/js: review: https://github.com/rakudo/rakudo/commit/424d19083a
14:15 dalek nqp: 76815d2 | (Pawel Murias)++ | t/qast/01-qast.t:
14:15 dalek nqp: Update skip count in test.
14:15 dalek nqp: review: https://github.com/perl6/nqp/commit/76815d208b
14:15 dalek nqp: 34b2df3 | (Pawel Murias)++ | src/core/testing.nqp:
14:15 dalek nqp: Add &is to the setting for better failure diagnostics.
14:15 dalek nqp: review: https://github.com/perl6/nqp/commit/34b2df3585
14:15 dalek nqp: 1ca74f3 | (Pawel Murias)++ | src/vm/js/ (4 files):
14:15 dalek nqp: [js] Evaluate arguments to a method/sub in proper order, requires refactoring how we handle the arguments.
14:15 dalek nqp: review: https://github.com/perl6/nqp/commit/1ca74f3aad
14:15 dalek nqp: 556fc2e | (Pawel Murias)++ | t/qast/01-qast.t:
14:15 dalek nqp: Test that named and positional (flattened or otherwise) arguments to a methodcall are evaluated in the proper order.
14:15 dalek nqp: review: https://github.com/perl6/nqp/commit/556fc2e1ee
15:02 AlexDaniel jnthn: here is the thing we were talking about yesterday: await (for ^7 { start ‘/any/file/really’.IO ~~ :e })
15:02 AlexDaniel hmm perhaps camelia can also do it
15:02 AlexDaniel m: await (for ^7 { start ‘/any/file/really’.IO ~~ :e })
15:02 camelia rakudo-moar 46e0ed: ( no output )
15:03 AlexDaniel m: await (for ^7 { start ‘/any/file/really’.IO ~~ :e })
15:03 camelia rakudo-moar 46e0ed: ( no output )
15:03 AlexDaniel m: await (for ^7 { start ‘/any/file/really’.IO ~~ :e })
15:03 camelia rakudo-moar 46e0ed: ( no output )
15:03 AlexDaniel m: await (for ^7 { start ‘/any/file/really’.IO ~~ :e })
15:03 camelia rakudo-moar 46e0ed: ( no output )
15:03 AlexDaniel m: await (for ^7 { start ‘/any/file/really’.IO ~~ :e })
15:03 camelia rakudo-moar 46e0ed: ( no output )
15:03 AlexDaniel m: await (for ^7 { start ‘/any/file/really’.IO ~~ :e })
15:03 camelia rakudo-moar 46e0ed: ( no output )
15:03 AlexDaniel maybe not
15:03 AlexDaniel m: for ^100 {await (for ^7 { start ‘/any/file/really’.IO ~~ :e }) }
15:03 camelia rakudo-moar 46e0ed: OUTPUT«Memory allocation failed; could not allocate 4 bytes␤»
15:03 AlexDaniel m: for ^10 {await (for ^7 { start ‘/any/file/really’.IO ~~ :e }) }
15:03 camelia rakudo-moar 46e0ed: OUTPUT«Memory allocation failed; could not allocate 4 bytes␤Memory allocation failed; could not allocate 4 bytes␤»
15:03 MasterDuke gist of the valgrind output: https://gist.github.com/MasterDuke17/9ab9ec5bdbc483bfe63213bf26f82316
15:04 AlexDaniel gc_free huh? Who would've thought
15:31 Ven_ joined #perl6-dev
15:34 gfldex jnthn: would it make sense to return $!closed from Channel.send?
15:37 gfldex jnthn: the exception could be .resume and a Bool check after send could be done via `or last` to leave a loop that got a .send inside
15:39 gfldex jnthn: catching the exception is a bit tricky if there are any methods/subs called that could also do some Channeling.
15:44 gfldex jnthn: i found a way to handle it by having a block around the sends with `CATCH { when X::Channel::ReceiveOnClosed { last } }` inside
15:45 Ven_ joined #perl6-dev
16:18 [Tux] https://github.com/Tux/CSV/blob/master/nc-c.pl => Internal error: Unwound entire stack and missed handler
16:18 [Tux] $ perl6 nc-c.pl </tmp/hello.c
16:18 [Tux] NativeCall eroor. I'm stuck
16:22 dalek roast: 34ee3d8 | usev6++ | / (5 files):
16:22 dalek roast: Add ticket number to fudged tests (RT #129782)
16:22 dalek roast: review: https://github.com/perl6/roast/commit/34ee3d871c
16:22 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=129782
16:25 lucasb_ joined #perl6-dev
16:41 MasterDuke jnthn: btw, RT #129781 is for the segfault AlexDaniel was talking about earlier
16:41 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=129781
16:48 Zoffix Quick! Let's all give jnthn things to do! \o/ :)
16:51 MasterDuke i also have a house that needs to be painted...
16:56 btyler joined #perl6-dev
17:00 dalek rakudo/nom: 058de71 | (Zoffix Znet)++ | src/core/Array.pm:
17:00 dalek rakudo/nom: Remove trailing whitespace
17:00 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/058de71fab
17:06 dalek rakudo/nom: b77d2b7 | (Zoffix Znet)++ | src/core/Array.pm:
17:06 dalek rakudo/nom: Fix infinihang on incorrect .split offset
17:06 dalek rakudo/nom:
17:06 dalek rakudo/nom: Further fix for RT#129773: https://rt.perl.org/Ticket/Display.html?id=129773
17:06 dalek rakudo/nom:
17:06 dalek rakudo/nom: This is really gross, but all alternatives I could think of take at least 1.5x
17:06 dalek rakudo/nom: more time to run. The `where` clause makes things ~14x slower. The nqp::istype
17:06 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=129773
17:06 dalek rakudo/nom: checks, make things ~1.5x slower. The .^lookup+cando candidate signature check
17:06 dalek rakudo/nom: is about 10x slower.
17:06 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b77d2b71db
17:10 Zoffix damn.... s/.split/.splice/;
17:12 dalek roast: 5d87503 | (Zoffix Znet)++ | S32-array/splice.t:
17:12 dalek roast: .splice with incorrect offset type does not hang
17:12 dalek roast:
17:12 dalek roast: Further test for RT#129773: https://rt.perl.org/Ticket/Display.html?id=129773
17:12 dalek roast: review: https://github.com/perl6/roast/commit/5d8750321d
17:12 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=129773
17:21 dalek rakudo/nom: 2dd6230 | MasterDuke17++ | src/Perl6/Actions.nqp:
17:21 dalek rakudo/nom: Error when multiple *s are in a double closure
17:21 dalek rakudo/nom:
17:21 dalek rakudo/nom: Fixes RT #129780
17:21 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/2dd6230b72
17:21 dalek rakudo/nom: c4c0718 | lizmat++ | src/Perl6/Actions.nqp:
17:21 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=129780
17:21 dalek rakudo/nom: Merge pull request #893 from MasterDuke17/RT129780
17:21 dalek rakudo/nom:
17:21 dalek rakudo/nom: Error when multiple *s are in a double closure
17:21 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c4c071859f
17:45 btyler joined #perl6-dev
17:54 btyler joined #perl6-dev
18:01 travis-ci joined #perl6-dev
18:01 travis-ci Rakudo build errored. Zoffix Znet 'Remove trailing whitespace'
18:01 travis-ci https://travis-ci.org/rakudo/rakudo/builds/164292885 https://github.com/rakudo/rakudo/compare/46e0edebc593...058de71fab55
18:01 travis-ci left #perl6-dev
18:01 lucasb_ whitespace considered significant? :)
18:02 Zoffix In what context?
18:02 geekosaur docs, I believe
18:02 * Zoffix kicks bug[TAB]
18:02 lucasb_ I was just kidding. dunno why travis errored
18:02 Zoffix AWOL! That's punnishable by death!
18:03 Zoffix It errored due to timed out build
18:03 geekosaur death? bit late for that, no?
18:03 FROGGS joined #perl6-dev
18:03 buggable joined #perl6-dev
18:03 Zoffix https://travis-ci.org/rakudo/rakudo/builds/164292885
18:03 buggable [travis build above] ✓ All failures are due to timeout (1), missing build log (0), or GitHub connectivity (0)
18:04 Zoffix there :)
18:05 lucasb_ oh, it's just the jvm build, right?
18:06 Zoffix yup
18:10 brrt joined #perl6-dev
18:18 AlexDaniel joined #perl6-dev
18:22 Zoffix Oh, god....
18:23 * Zoffix spots another missing splice candidate that infinihangs
18:23 Zoffix m: [].splice: *, {;}
18:23 camelia rakudo-moar c4c071: OUTPUT«Memory allocation failed; could not allocate 131072 bytes␤»
18:23 Zoffix There's a lesson in all of this: don't go mental with letting your arguments be super flexible
18:23 Zoffix YAGNI
19:07 travis-ci joined #perl6-dev
19:07 travis-ci Rakudo build errored. lizmat 'Merge pull request #893 from MasterDuke17/RT129780
19:07 travis-ci https://travis-ci.org/rakudo/rakudo/builds/164296325 https://github.com/rakudo/rakudo/compare/b77d2b71db17...c4c071859fec
19:07 travis-ci left #perl6-dev
19:07 buggable [travis build above] ✓ All failures are due to timeout (1), missing build log (0), or GitHub connectivity (0)
19:27 psch i'm wondering if we should bug travis about that
19:27 psch or is their timeout only changable with some paid plan?
19:28 psch still, i'm kinda happy to have r-j in there again with (usually) passing 'make test' :)
19:30 psch in any case, the no-output timeout is somewhat weird and probably hints at a resource limitation on travis' end
19:30 psch 'cause that step shouldn't really take more than maybe 3 or so minutes on a reasonable machine, barring any osx bugs
19:32 geekosaur I'm not actually sure that's a travis thing. I've seen enough failures with automated github accesses to make me wonder if github is actually that unreliable...
19:32 japhb .tell timotimo Awww, now I haz a sad.  Any idea *why* changing the calling convention for enqueue made almost no difference if it was 50% of your runtime?
19:32 yoleaux2 japhb: I'll pass your message to timotimo.
19:33 geekosaur but mostly instead of extended failures it's one access fails the next works
19:33 psch geekosaur: well, the travis failure (and similar ones before) happens during compilation of one specific .nqp file
19:33 geekosaur oh, I didn't actually look and thought this was the usual timeout issue (travis access github and fail)
19:33 psch geekosaur: in this case it was NQPHLL.nqp that produced no output
19:34 geekosaur (which pretty much every travis-using project seems to have on a regilar basis)
19:34 psch geekosaur: ah.  no, this is travis timing out the build because there was no output for 10 minutes
19:34 psch and subsequently killing it because it must be stuck
19:34 psch which, honestly, i wouldn't discount as a possibility, but afair it's consistenly osx that does that
19:34 geekosaur osx is probably oversubscribed
19:35 geekosaur they didn't support it at all for a long time, because apple licensing means you have to have a bunch of (mostly rack-unfriendly) macs --- can't use vms
19:35 geekosaur unless theyre running on macs
19:35 psch so, yeah, maybe we have some weird race on osx that keeps happening only on nqp master (which sounds kind of ridiculous because nqp master is a moving target) or osx doesn't have enough hardware behind it on travis
19:35 psch right, yeah, that's what i'm thinking
19:35 geekosaur the latter is very very likely :/
19:35 * TimToady read that as VMS, not VMs
19:35 yoleaux2 28 Sep 2016 12:56Z <jnthn> TimToady: I've ran into a Unicode regex syntax ambiguity issue if you've a moment to look: https://github.com/perl6/specs/issues/118
19:36 psch as i said, that file in particular should take something like 3 or so minutes on reasonable hardware, and it's one of the longer-running ones too
19:36 psch so, yeah, seems more likely that they don't have enough power behind it to serve it in time
19:37 psch i mean, optimizing nqp-j somehow might help
19:37 psch but that's kind of a really hard thing to do, especially considering there's hardly anyone around who really gets the jvm backend *and* wants to work on it :P
19:37 Zoffix IIRC there's an option to make it wait longer
19:38 psch https://docs.travis-ci.com/user/customizing-the-build#Build-Timeouts suggests otherwise
19:38 Zoffix It's in the link the failing build suggests at the end
19:38 psch ah, you're right, Zoffix++
19:39 psch not sure it's a good idea though, 'cause we just move the same target further
19:39 psch and, well, buggable++ is pretty great too
19:39 psch thing is, it shouldn't even time out with 10 minutes, honestly
19:40 psch hrm
19:40 psch "If you expect the command to take more than 20 minutes, prefix travis_wait with a greater number."
19:40 psch "install: travis_wait 30 mvn install"
19:40 psch that's not a prefix travis
19:41 Ven_ joined #perl6-dev
19:41 Zoffix :)
19:45 dalek rakudo/nom: 4abc28c | (Zoffix Znet)++ | src/core/Array.pm:
19:45 dalek rakudo/nom: Add splice(Whatever, Callable) candidates
19:45 dalek rakudo/nom:
19:45 dalek rakudo/nom: This should be the last nail in the coffin of infinihang in
19:45 dalek rakudo/nom: RT#129773: https://rt.perl.org/Ticket/Display.html?id=129773
19:45 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=129773
19:45 dalek rakudo/nom:
19:45 dalek rakudo/nom: These candidates aren't super useful and another way to fix it is to
19:45 dalek rakudo/nom: get rid of slurpy candidates for this, but then we lose the consistency
19:45 dalek rakudo/nom: that both offset and size can be any of Int:D|Callable|Whatever and
19:45 dalek rakudo/nom: introduce a special exception to the rule, along with forcing the users
19:45 dalek rakudo/nom: to add special checks for it when types of args aren't known.
19:45 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/4abc28ca07
19:45 dalek roast: 8a702b9 | (Zoffix Znet)++ | S32-array/splice.t:
19:45 dalek roast: Test splice(Whatever, Callable) candidates
19:45 dalek roast:
19:45 dalek roast: Part of RT#129773: https://rt.perl.org/Ticket/Display.html?id=129773
19:45 dalek roast: review: https://github.com/perl6/roast/commit/8a702b9d75
19:45 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=129773
19:53 timotimo japhb: did you try running the thing locally?
19:53 yoleaux2 19:32Z <japhb> timotimo: Awww, now I haz a sad.  Any idea *why* changing the calling convention for enqueue made almost no difference if it was 50% of your runtime?
19:58 gfldex :-| i just got a segfault with Concurrent::File::Find
20:00 timotimo :(
20:05 timotimo .tell japhb i imagine if i don't clear the frame buffer and only enqueue blocks that have changed, it'd give a decent performance win ...
20:05 yoleaux2 timotimo: I'll pass your message to japhb.
20:10 japhb .
20:10 yoleaux2 20:05Z <timotimo> japhb: i imagine if i don't clear the frame buffer and only enqueue blocks that have changed, it'd give a decent performance win ...
20:10 japhb timotimo: Can't run it locally at the moment, I'm remoting through a couple tunnels, so have no way to test SDL stuff.
20:16 timotimo hehe
20:16 timotimo it'd probably be enough to just rip out every mention of SDL ;)
20:16 timotimo the slowest piece of the whole thing is enqueue, which only does some CArray stuff
20:39 travis-ci joined #perl6-dev
20:39 travis-ci Rakudo build passed. Zoffix Znet 'Add splice(Whatever, Callable) candidates
20:39 travis-ci https://travis-ci.org/rakudo/rakudo/builds/164317706 https://github.com/rakudo/rakudo/compare/c4c071859fec...4abc28ca0712
20:39 travis-ci left #perl6-dev
20:42 timotimo japhb: my idea was worth a whole lot
20:43 timotimo put enqueue in the 11th spot when sorting by exclusive time
20:43 timotimo and it has less than 50% exclusive time of its inclusive time
20:48 japhb Wheeee
20:49 japhb How's the overall speed improved?
20:50 timotimo it's ~44sec for 500 frames now
20:51 gfldex is there a way how much RAM rakudo hogs from within a script?
20:52 timotimo used to be 1:36m
20:53 timotimo gfldex: you can get an approximation from malloc with their stats function, but i forgot its name
20:53 timotimo japhb: ^^^
20:54 lucasb_ gfldex: a crazy idea is to use $*PID and pass that to 'top -p 1234' or something :D
20:55 lucasb_ gfldex: idk if that would work, or how to get a simple text output
20:58 lucasb_ probably better to call "ps" and pass the pid and scan the output
21:01 lucasb_ alternatively, read the file /proc/PIDNUMBER/stat :)
21:01 geekosaur ps -p$*PID -o vsz
21:01 geekosaur or use /proc yeh
21:08 Ven_ joined #perl6-dev
21:15 japhb timotimo: That's not a bad improvement.  Still not a rockin' frame rate, but better than 5 fps was ....
21:16 timotimo of course
21:16 japhb What's the top cost now?  Is it back to SDL?
21:18 timotimo down to 40 seconds by rendering the rects immediately rather than bunching them up
21:19 timotimo now the costliest part is the inner loop
21:19 timotimo i.e. the one looping over y values that's inside the loop that loops over x values
21:19 timotimo by over 2x, next one is the min method, then postcircumfix:<[ ]>
21:25 japhb timotimo: I guess then you get to TimToady's idea to precompute all neighborhoods, like he did with forest-fire.
21:27 timotimo i'm not 100% on that, but if someone else would implement it, i'd measure it :P
21:28 Ven_ joined #perl6-dev
21:34 gfldex m: say (slurp '/proc/' ~ $*PID ~ '/stat').lines[0].split(' ')[23-1]
21:34 camelia rakudo-moar 4abc28: OUTPUT«93929472␤»
21:34 gfldex :)
21:35 gfldex m: say (slurp '/proc/' ~ $*PID ~ '/stat').lines[0].split(' ')[23-1,20-1]
21:35 camelia rakudo-moar 4abc28: OUTPUT«(93945856 1)␤»
21:38 Ven_ joined #perl6-dev
21:39 lucasb_ other relevant proc files are /proc/1234/statm and /proc/1234/status. maybe they are better suited for your task :)
22:12 FROGGS m: my $statm = slurp "/proc/$*PID/statm"; my $mem = $statm ~~ /(\d+)\s+\d+$$/ && $0 * 4 / 1024; say $mem > 1024 ?? sprintf("%.3fG", $mem/1024) !! sprintf("%.1fM", $mem);
22:12 camelia rakudo-moar 4abc28: OUTPUT«53.4M␤»
22:12 FROGGS gfldex: ^^
22:13 FROGGS m: my @a = ^999999; say @a.elems; my $statm = slurp "/proc/$*PID/statm"; my $mem = $statm ~~ /(\d+)\s+\d+$$/ && $0 * 4 / 1024; say $mem > 1024 ?? sprintf("%.3fG", $mem/1024) !! sprintf("%.1fM", $mem);
22:13 camelia rakudo-moar 4abc28: OUTPUT«999999␤160.7M␤»
22:18 Ven_ joined #perl6-dev
22:27 Zoffix m: [].^lookup('splice').canidates.elems.say
22:27 camelia rakudo-moar 4abc28: OUTPUT«No such method 'canidates' for invocant of type 'Method+{<anon|73481792>}'␤  in block <unit> at <tmp> line 1␤␤»
22:27 Zoffix m: [].^lookup('splice').candidates.elems.say
22:27 camelia rakudo-moar 4abc28: OUTPUT«31␤»
22:27 Zoffix :}
22:28 timotimo yeesh :)
22:29 psch huh
22:29 psch that's a bit harsh
22:29 Zoffix Yeah. Speed is the reason.
22:29 psch i mean, i caught a bit of what brought this on, but yeah
22:29 Zoffix m: Buf.new.^lookup('splice').canidates.elems.say
22:29 camelia rakudo-moar 4abc28: OUTPUT«No such method 'canidates' for invocant of type 'Method'␤  in block <unit> at <tmp> line 1␤␤»
22:30 Zoffix m: Buf.new.^lookup('splice').candidates.elems.say
22:30 camelia rakudo-moar 4abc28: OUTPUT«8␤»
22:30 gfldex m: say (slurp '/proc/'~$*PID~'/status').lines».split(":\t")[*;1]».trim[16, 15]
22:30 camelia rakudo-moar 4abc28: OUTPUT«(69448 kB 69448 kB)␤»
22:31 lucasb_ Zoffix: does Buf.splice needs the same fixing you did for Array.splice?
22:31 gfldex that is VmSize and VmPeak
22:31 Zoffix lucasb_, yeah. It's what I'm working on now. That's how I discovered all the hanging cases in Array.splice
22:31 lucasb_ ok, Zoffix++
22:44 cog_ joined #perl6-dev
23:05 perlpilot_ joined #perl6-dev
23:05 dalek joined #perl6-dev
23:32 dalek roast: 0892f24 | (Zoffix Znet)++ | S32-array/splice.t:
23:32 dalek roast: [coverage] Test all Array.splice candidates
23:32 dalek roast: review: https://github.com/perl6/roast/commit/0892f24e57
23:34 dalek roast: b8d710f | (Zoffix Znet)++ | S32-array/splice.t:
23:34 dalek roast: OCD
23:34 dalek roast: review: https://github.com/perl6/roast/commit/b8d710fbcb
23:41 AlexDaniel ++ for OCD commit ;D

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