Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6-dev, 2017-10-31

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

All times shown according to UTC.

Time Nick Message
00:01 Geth ¦ rakudo: 91543fe310 | (Elizabeth Mattijsen)++ | src/core/io_operators.pm
00:01 Geth ¦ rakudo: Channel/Supply to also be closed with sub close()
00:01 Geth ¦ rakudo:
00:01 Geth ¦ rakudo: - rather than having to use the method, TIMTOWTDI
00:01 Geth ¦ rakudo: - somewhere between 2015.11-554-g3b4964b and 2017.08 this regressed
00:01 Geth ¦ rakudo: - spotted in https://www.nntp.perl.org/group/perl.perl6.users/2017/10/msg4550.html
00:01 Geth ¦ rakudo: review: https://github.com/rakudo/rakudo/commit/91543fe310
00:04 Geth ¦ rakudo: f72ad227fb | (Elizabeth Mattijsen)++ | lib/Telemetry.pm6
00:04 Geth ¦ rakudo: Add Telemetry.supervisor
00:04 Geth ¦ rakudo:
00:04 Geth ¦ rakudo: - number of supervisor threads running (expected values: 0 or 1)
00:04 Geth ¦ rakudo: - use Telemetry; signal(SIGINT).tap: &exit; say Telemetry.supervisor # 1
00:04 Geth ¦ rakudo: - use Telemetry; say Telemetry.supervisor # 0
00:04 Geth ¦ rakudo: review: https://github.com/rakudo/rakudo/commit/f72ad227fb
00:31 Geth ¦ rakudo: 4b4429cccb | (Elizabeth Mattijsen)++ | lib/Telemetry.pm6
00:31 Geth ¦ rakudo: Add support for Telemetry.general-workers
00:31 Geth ¦ rakudo:
00:31 Geth ¦ rakudo: - the number of general worker threads active
00:31 Geth ¦ rakudo: - also some stuff about supervisor I forgot just now
00:31 Geth ¦ rakudo: review: https://github.com/rakudo/rakudo/commit/4b4429cccb
00:42 Geth ¦ rakudo: 58249a529c | (Elizabeth Mattijsen)++ | lib/Telemetry.pm6
00:42 Geth ¦ rakudo: Add support for Telemetry.timer-workers
00:42 Geth ¦ rakudo:
00:42 Geth ¦ rakudo: - the number of timer worker threads active
00:42 Geth ¦ rakudo: review: https://github.com/rakudo/rakudo/commit/58249a529c
01:01 BenGoldberg joined #perl6-dev
01:05 Geth ¦ rakudo: f51a3efc7d | (Elizabeth Mattijsen)++ | lib/Telemetry.pm6
01:05 Geth ¦ rakudo: Add support for Telemetry.affinity-workers
01:05 Geth ¦ rakudo:
01:05 Geth ¦ rakudo: - the number of affinity worker threads active
01:05 Geth ¦ rakudo: review: https://github.com/rakudo/rakudo/commit/f51a3efc7d
01:05 travis-ci joined #perl6-dev
01:05 travis-ci Rakudo build canceled. Elizabeth Mattijsen 'Add support for Telemetry.timer-workers
01:05 travis-ci https://travis-ci.org/rakudo/rakudo/builds/295122291 https://github.com/rakudo/rakudo/compare/4b4429cccbfb...58249a529c27
01:05 travis-ci left #perl6-dev
01:05 buggable [travis build above] ☠ Did not recognize some failures. Check results manually.
01:05 lizmat hmmm... que?
01:27 Geth ¦ rakudo: 8a0eb7fa6a | (Elizabeth Mattijsen)++ | lib/Telemetry.pm6
01:27 Geth ¦ rakudo: Introducing Telemetry snapper
01:27 Geth ¦ rakudo:
01:27 Geth ¦ rakudo: - runs a repeated snap() in a separate Thread
01:27 Geth ¦ rakudo:   - outside the ThreadPoolScheduler, as to prevent interference
01:27 Geth ¦ rakudo: - defaults to once every .1 second, can be adjusted with snapper($sleep)
01:27 Geth ¦ rakudo: - can be run in a BEGIN or INIT phaser
01:27 Geth ¦ rakudo: - will only allow one snapper to be running at any time
01:27 Geth ¦ rakudo: review: https://github.com/rakudo/rakudo/commit/8a0eb7fa6a
01:35 lizmat and that concludes my hacking for today&
01:41 Ben_Goldberg joined #perl6-dev
01:59 awwaiid joined #perl6-dev
02:28 Zoffix m: use Telemetry; snap; await start { snap for ^10000000 } xx 4; snap; say periods[0].cpus
02:28 camelia rakudo-moar 8a0eb7fa6: OUTPUT: «(signal ABRT)*** Error in `/home/camelia/rakudo-m-inst-1/bin/moar': double free or corruption (!prev): 0x000000000451ee10 ***␤======= Backtrace: =========␤/lib64/libc.so.6(+0x721af)[0x7f83af9e21af]␤/lib64/libc.so.6(+0x77706)[0x7f83af9e7706]␤/l…»
02:28 Zoffix (prolly don't matter, but just something I noticed)
02:57 ilbot3 joined #perl6-dev
02:57 Topic for #perl6-dev is now Perl 6 language and compiler development 2.0 | Logs at http://irclog.perlgeek.de/perl6-dev/today | For toolchain/installation stuff see #perl6-toolchain | For MoarVM see #moarvm
03:54 travis-ci joined #perl6-dev
03:54 travis-ci Rakudo build passed. Elizabeth Mattijsen 'Introducing Telemetry snapper
03:55 travis-ci https://travis-ci.org/rakudo/rakudo/builds/295131160 https://github.com/rakudo/rakudo/compare/f51a3efc7d96...8a0eb7fa6afc
03:55 travis-ci left #perl6-dev
06:25 raydiak__ joined #perl6-dev
07:30 [Tux] Rakudo version 2017.10-53-g8a0eb7fa6 - MoarVM version 2017.10-29-g116c7a13
07:30 [Tux] csv-test-xs-20      0.451 -  0.452
07:30 [Tux] csv-ip5xs           1.119 -  1.242
07:30 [Tux] test-t              3.210 -  3.231
07:30 [Tux] test               12.142 - 12.583
07:30 [Tux] csv-parser         12.326 - 13.482
07:30 [Tux] csv-ip5xs-20       13.362 - 14.590
07:30 [Tux] test-t-20 --race   20.461 - 20.701
07:30 [Tux] test-t-20          58.408 - 60.402
07:44 lizmat Files=1229, Tests=74217, 321 wallclock secs (14.49 usr  5.29 sys + 2196.22 cusr 217.02 csys = 2433.02 CPU)
08:41 Geth ¦ rakudo: bc00894fd7 | (Elizabeth Mattijsen)++ | lib/Telemetry.pm6
08:41 Geth ¦ rakudo: Add support for Telemetry.general-jobs
08:41 Geth ¦ rakudo:
08:41 Geth ¦ rakudo: - the number of jobs waiting for handling by general-workers
08:41 Geth ¦ rakudo: review: https://github.com/rakudo/rakudo/commit/bc00894fd7
08:50 DrForr Does anyone here have recommendations for an alternate window manager for Ubuntu that likes multiple screens? E17 is the closest I've come so far, and wil probaby switch back to that.
08:55 Geth ¦ rakudo: e95b02f158 | (Elizabeth Mattijsen)++ | lib/Telemetry.pm6
08:55 Geth ¦ rakudo: Add support for Telemetry.timer-jobs
08:55 Geth ¦ rakudo:
08:55 Geth ¦ rakudo: - the number of jobs waiting for handling by timer-workers
08:55 Geth ¦ rakudo: review: https://github.com/rakudo/rakudo/commit/e95b02f158
09:13 travis-ci joined #perl6-dev
09:13 travis-ci Rakudo build errored. Elizabeth Mattijsen 'Add support for Telemetry.general-jobs
09:13 travis-ci https://travis-ci.org/rakudo/rakudo/builds/295206891 https://github.com/rakudo/rakudo/compare/8a0eb7fa6afc...bc00894fd7f6
09:13 travis-ci left #perl6-dev
09:13 buggable [travis build above] ☠ Did not recognize some failures. Check results manually.
09:17 lizmat "An error occurred while generating the build script." ???
09:18 robertle joined #perl6-dev
09:20 pmurias joined #perl6-dev
09:23 Geth ¦ nqp/master: 9 commits pushed by pmurias++
09:23 Geth ¦ nqp/master: 57074eb610 | [js] Implement the dynquant regex node
09:23 Geth ¦ nqp/master: 373031352b | [js] Fix bug when matching :i and :i :m literals
09:23 Geth ¦ nqp/master: 9dba2b1e74 | [js] Implement basic nqp::eqatic and nqp::eqaticim ops
09:23 Geth ¦ nqp/master: 22b5e2c043 | [js] :i and :m improvements
09:23 Geth ¦ nqp/master: 62f56604de | [js] Fix nqp::with
09:23 Geth ¦ nqp/master: 97c1df9b46 | [js] Fix JSON syntax error
09:23 Geth ¦ nqp/master: 557dfab6ab | [js] Make exception handlers have the error raising ctx as outer
09:23 Geth ¦ nqp/master: fd84940fd3 | [js] Remove debugging leftover
09:23 Geth ¦ nqp/master: 62d489b29c | [js] Stub ops
09:23 Geth ¦ nqp/master: review: https://github.com/perl6/nqp/compare/626ea02068...62d489b29c
09:39 AlexDaniel DrForr: what do you mean by “likes multiple screens”?
09:39 AlexDaniel e.g. I'm using i3wm and it works just fine with multiple screens, but I don't know if it “likes” them
09:42 lizmat afk for a few hours&
09:44 DrForr The real issue here, I guess, is that it needs to recognize the second display consistently when it's plugged in. I need to leave the laptop in a "secure location" when I leave for the night, which means unplugging and isolating it, then plugging in when I get to work. I've only found the stock Ubuntu WM that can handle that consistently.
09:49 cog_ joined #perl6-dev
09:52 cog__ joined #perl6-dev
10:01 perlpilot_ joined #perl6-dev
10:01 aeruder_ joined #perl6-dev
10:01 jdv79_ joined #perl6-dev
10:04 coverable6 joined #perl6-dev
10:04 unicodable6 joined #perl6-dev
10:04 evalable6 joined #perl6-dev
10:12 Zoffix DrForr: using E17 at work without issues. Even got a key to switch between screens. Though it's E21 now. Haven't used more recent verions but Bodhi Linux folks weren't happy with their direction so they forked it. Called Moksha. Using it at home but only on 1 srceen and it seems to be the same as E17
10:22 timotimo hm, does telemetry work with multiple ThreadPoolScheduler instances active?
10:24 timotimo nope, only looks at the currently set $*SCHEDULER
10:24 timotimo which is okay i guess?
11:08 timotimo lizmat: currently the roads between germany and the netherlands are absolutely clogged nearby; the fastest route takes 40 minutes for 40 km, the others have 35 or 55 minutes of congestion added to that
11:25 DrForr Zoffix: I think I'll settle back on E.
11:36 lizmat timotimo: is it a holiday in DE today ?
11:42 cognominal joined #perl6-dev
11:48 DrForr From what I gather it may as well be :/ We got clipped by the tail end of the storm, apparently.
11:49 timotimo lizmat: it is :)
11:49 lizmat ah, so they're all in line for the Mall in Roermond
11:49 timotimo okay, the congestion is now 20 mins more than when i first told you about it
11:50 lizmat yeah, that's only going to get worse
11:50 timotimo why? it's already so late in the day …
11:50 lizmat most people don't start shopping until after lunch
11:50 timotimo anyway, the 40 minute route is still at 40 minutes because it bypasses the fast routes that everybody's taking
11:51 timotimo should i nom something before i come over?
11:52 lizmat well, it just turns out we need to be at our GP at 15:10
11:52 lizmat getting our flu shots
11:53 timotimo i see, should i come over afterwards instead?
11:53 lizmat so maybe we should aim for a time *after* that
11:53 lizmat yes
11:53 lizmat let's say 16:00 at our place ?
11:53 timotimo OK, that's the address that's on dijkmat.nl?
12:11 Geth ¦ rakudo: ccbfaaa0ab | (Elizabeth Mattijsen)++ | lib/Telemetry.pm6
12:11 Geth ¦ rakudo: Introducing Telemetry report
12:11 Geth ¦ rakudo:
12:11 Geth ¦ rakudo: - first version, showing: utilization, supervisor, general-threads,
12:11 Geth ¦ rakudo:   general-jobs, timer-threads, timer-jobs, affinity-threads
12:11 Geth ¦ rakudo: - will be noted at program exit if there are still snaps around
12:11 Geth ¦ rakudo: review: https://github.com/rakudo/rakudo/commit/ccbfaaa0ab
12:51 Geth ¦ rakudo: 2f963b14a9 | (Elizabeth Mattijsen)++ | lib/Telemetry.pm6
12:51 Geth ¦ rakudo: Various Telemetry report improvements
12:51 Geth ¦ rakudo: review: https://github.com/rakudo/rakudo/commit/2f963b14a9
12:51 [Coke] m: use Telemetry; report;
12:51 camelia rakudo-moar ccbfaaa0a: OUTPUT: «Effective index out of range. Is: -1, should be in 0..^Inf␤  in sub report at /home/camelia/rakudo-m-inst-1/share/perl6/sources/522BE83A1D821D8844E8579B32BA04966BAB7B87 (Telemetry) line 344␤  in sub report at /home/camelia/rakudo-m-inst-1/share/pe…»
12:56 lizmat m: use Telemetry; BEGIN snapper; rimes = ^10000 .hyper.grep: *.is-prime
12:56 camelia rakudo-moar ccbfaaa0a: OUTPUT: «5===SORRY!5=== Error while compiling <tmp>␤Preceding context expects a term, but found infix = instead␤at <tmp>:1␤------> 3use Telemetry; BEGIN snapper; rimes =7⏏5 ^10000 .hyper.grep: *.is-prime␤Telemetry Report of Process #9640 (201…»
12:56 lizmat m: use Telemetry; BEGIN snapper; my @primes = ^10000 .hyper.grep: *.is-prime
12:56 camelia rakudo-moar ccbfaaa0a: OUTPUT: «Telemetry Report of Process #9644 (2017-10-31T12:56:29.224068Z)␤ util%  sv  gt  gj  tt  tj  at␤ 34.27   1   1   2            ␤ 44.35       1                ␤ 49.82                        ␤ 65.32       1  -1            ␤ 79.82       1  -1  …»
12:57 Zoffix neat
12:57 timotimo m: use nqp; my $foo = (1, 2, 3).List; say nqp::attrinited($foo, List, '$!todo')
12:57 camelia rakudo-moar ccbfaaa0a: OUTPUT: «P6opaque: no such attribute '$!todo' in type List when trying to check if it's initialized␤  in block <unit> at <tmp> line 1␤␤»
12:58 timotimo m: use nqp; my $foo = (1, 2, 3).List; say nqp::getattr($foo, List, '$!todo')
12:58 camelia rakudo-moar ccbfaaa0a: OUTPUT: «P6opaque: no such attribute '$!todo' in type List when trying to get a value␤  in block <unit> at <tmp> line 1␤␤»
12:58 timotimo mhh, huh?
12:58 Zoffix decont
12:58 lizmat nqp::decont($foo)
12:58 Zoffix m: use nqp; my $foo := (1, 2, 3).List; say nqp::getattr($foo, List, '$!todo')
12:58 camelia rakudo-moar ccbfaaa0a: OUTPUT: «(Mu)␤»
12:58 timotimo oh!
12:59 timotimo it should probably note in the exception message what type it's being tried on
12:59 Zoffix Yeah
13:00 lizmat but it does?
13:00 timotimo it says "List" there, but it should also say "Scalar"
13:00 lizmat it should have an nqp::iscont() check though
13:00 timotimo i was under the impression that i was successfully getting at the List rather than the Scalar around it
13:00 lizmat yeah, but the error message doesn't see the Scalar, unless it checks with nqp::iscont  :-)
13:02 timotimo m: use nqp; my $foo := (1, 2, 3).List; say nqp::attrinited($foo, Perl, '$!ohmygosh')
13:02 camelia rakudo-moar ccbfaaa0a: OUTPUT: «P6opaque: no such attribute '$!ohmygosh' in type Perl when trying to check if it's initialized␤  in block <unit> at <tmp> line 1␤␤»
13:02 timotimo ^- see? it just tells you whatever type it is that *you* passed
13:02 timotimo not what actual type the object in question had
13:03 lizmat still, the error message is correct, as e.g. you can have a List attribute in an Array
13:06 timotimo of course
13:06 timotimo but you can't have a '$!ohmygosh' attribute from Perl in a List :)
13:07 lizmat nope
13:07 timotimo and the error message doesn't tell you you're trying to access an attribute from Perl in your List object
13:08 Zoffix lies
13:08 Zoffix m: class Perl { has $!ohmygosh = 42 }; class List is Perl {}; use nqp; my $foo := List.new; say nqp::attrinited($foo, Perl, q|$!ohmygosh|)
13:08 camelia rakudo-moar ccbfaaa0a: OUTPUT: «1␤»
13:08 Zoffix m: class Perl { has $!ohmygosh = 42 }; class List is Perl {}; use nqp; my $foo := List.new; say nqp::getattr($foo, Perl, q|$!ohmygosh|)
13:08 camelia rakudo-moar ccbfaaa0a: OUTPUT: «42␤»
13:08 Zoffix :)
13:08 timotimo right, i didn't specify that i meant the List we have in core
13:08 Zoffix >:D
13:09 timotimo P6opaque: no such attribute '$!todo' on type List in a <anon|424329104> when trying to check if it's initialized
13:09 timotimo now this is much more helpful
13:09 timotimo (not)
13:11 lizmat https://gist.github.com/lizmat/7c38c6dea8bfdf78016c0382c6837893   # note line 21
13:12 lizmat somehow it registered *4* jobs in the general workers queue, whereas I would think we only ever need 2 jobs for hypering 100 elements
13:12 lizmat at the default batch size of 64
13:13 jnthn It's not quite that simple. The batcher/joiner at the end are also scheduled workers.
13:13 jnthn *ends
13:14 lizmat aah, ok, that would explain
13:19 perlpilot joined #perl6-dev
14:20 Geth ¦ nqp/master: 5 commits pushed by pmurias++
14:20 Geth ¦ nqp/master: 97034f4fac | Test that CATCH has the exception source as outer context
14:20 Geth ¦ nqp/master: 14db32e0de | [js] Implement repeat while ... -> $cond {...}
14:20 Geth ¦ nqp/master: 7b23f8e8d1 | Test repeat while ... -> $cond {...}
14:20 Geth ¦ nqp/master: 41d6e41fd4 | [s] Make CONTROL also catch labeled control exception
14:20 Geth ¦ nqp/master: e4e2f81c69 | Test that CONTROL catches labeled control exceptions
14:20 Geth ¦ nqp/master: review: https://github.com/perl6/nqp/compare/62d489b29c...e4e2f81c69
14:30 Geth ¦ 6.d-prep: eb5e248b59 | (Zoffix Znet)++ (committed using GitHub Web editor) | TODO/README.md
14:30 Geth ¦ 6.d-prep: Update status of naming discussion
14:30 Geth ¦ 6.d-prep: review: https://github.com/perl6/6.d-prep/commit/eb5e248b59
14:35 Geth ¦ 6.d-prep: 2dcf623eb5 | (Zoffix Znet)++ (committed using GitHub Web editor) | TODO/README.md
14:35 Geth ¦ 6.d-prep: Some language tweaks
14:35 Geth ¦ 6.d-prep: review: https://github.com/perl6/6.d-prep/commit/2dcf623eb5
14:41 travis-ci joined #perl6-dev
14:41 travis-ci NQP build failed. pmurias 'Test that CONTROL catches labeled control exceptions'
14:41 travis-ci https://travis-ci.org/perl6/nqp/builds/295318482 https://github.com/perl6/nqp/compare/62d489b29ceb...e4e2f81c694f
14:41 travis-ci left #perl6-dev
16:15 * lizmat just committed https://github.com/rakudo/rakudo/commit/c1867ba19d72a161
16:16 lizmat is Geth unresponsive ?
16:20 Zoffix Geth: help
16:20 Geth Zoffix, Source at https://github.com/perl6/geth To add repo, add an 'application/json' webhook on GitHub pointing it to http://geth.niner.name:8888/?chan=#perl6 and choose 'Send me everything' for events to send | use `ver URL to commit` to fetch version bump changes
16:24 Zoffix Hack is hung
16:27 timotimo oh crap
16:27 timotimo did you restart it, Zoffix?
16:27 Zoffix timotimo: no; can you restart it?
16:27 timotimo i'll do it
16:27 Zoffix Thanks.
16:28 dalek joined #perl6-dev
16:28 synopsebot joined #perl6-dev
16:34 Geth joined #perl6-dev
16:36 Geth ¦ rakudo: 8e4d3248f6 | (Elizabeth Mattijsen)++ | lib/snapper.pm6
16:36 Geth ¦ rakudo: SNAPPER= environment variable to set snap period
16:36 Geth ¦ rakudo: review: https://github.com/rakudo/rakudo/commit/8e4d3248f6
16:36 committable6 joined #perl6-dev
16:41 Zoffix lizmat: perhaps the env var should be "RAKUDO_SNAPPER", to keep up the pattern of all our other env vars: https://docs.perl6.org/programs/00-running#Environment_Variables
16:42 Zoffix all rakudo ones that is; (We also have PERL6_ and MVM_)
16:42 Zoffix Or PERL6_SNAPPER, if that stuff is gonna be part of the spec.
16:42 lizmat .oO( so much more typing )
16:42 lizmat but I hear you  :-)
16:43 Zoffix "PERL6_" is a pain in the butt to type; 'cause you have to release shift in the middle of typing to type "6"
16:43 Zoffix ZofBot: clearly it should be named PERL^_
16:43 ZofBot Zoffix, It's too surprising for it not to
16:43 lizmat that's an advantage the Belgians have
16:44 lizmat https://upload.wikimedia.org/wikipedia/commons/9/93/Belgian_keyboard_layout.png
16:44 lizmat :-)
16:44 Zoffix :D
16:47 Geth ¦ rakudo: 0a8096989d | (Elizabeth Mattijsen)++ | lib/snapper.pm6
16:47 Geth ¦ rakudo: s/SNAPPER/RAKUDO_SNAPPER/
16:47 Geth ¦ rakudo: review: https://github.com/rakudo/rakudo/commit/0a8096989d
17:05 nine Zoffix: that's what capslock is for
17:05 Zoffix nine: it doesn't help tying "_" :)
17:06 Geth ¦ rakudo: dcf3e28c50 | (Elizabeth Mattijsen)++ | lib/Telemetry.pm6
17:06 Geth ¦ rakudo: s/x-jobs/x-jobs-waiting/
17:06 Geth ¦ rakudo:
17:06 Geth ¦ rakudo: - because they show the number of jobs still waiting to be executed
17:06 Geth ¦ rakudo: - makes logical room for x-jobs-completed
17:06 Geth ¦ rakudo: review: https://github.com/rakudo/rakudo/commit/dcf3e28c50
17:06 Zoffix *typing
17:06 nine Zoffix: you still need shift for "_" but it'd be weird otherwise anywy
17:07 Zoffix .oO( PSIX_SNAPPER )
17:08 timotimo .o( WHIPPER_SNAPPER )
17:08 lizmat .oO( RED_SNAPPER )
17:18 timotimo .o( SNAPPER_IN_THE_RYE )
17:20 Ven joined #perl6-dev
18:26 travis-ci joined #perl6-dev
18:26 travis-ci Rakudo build failed. Elizabeth Mattijsen 'Add snapper.pm6
18:26 travis-ci https://travis-ci.org/rakudo/rakudo/builds/295367974 https://github.com/rakudo/rakudo/compare/2f963b14a9a8...c1867ba19d72
18:26 travis-ci left #perl6-dev
18:26 buggable [travis build above] ✓ All failures are due to: GitHub connectivity (2 failures).
19:25 Ven joined #perl6-dev
19:35 Zoffix Some string concat in Perl will soon be "a *lot* faster: 4x or more": https://www.nntp.perl.org/group/perl.perl5.porters/2017/10/msg246844.html
19:36 Zoffix Above my paygrade, but maybe someone will see some ideas we could steal from that work.
19:38 samcv Zoffix, probably would be in our optimizer i'd think. optimize multiple calls to a join or something
19:38 samcv and make join not have to make a flat string all the time. oh hey i was going to do that. maybe i should start work on the join thingy..
19:39 Zoffix :)
19:45 DrForr It's yaks all the way down.
19:46 samcv gonna start by moving more stuff into functions that is used often in the join function. it used to be pretty long and i've ben separating things out of it
19:46 samcv to make it more managable
19:50 jnthn Hm, didn't we make ~ list-assoc already so we can do that opt?
19:50 jnthn Maybe not
19:51 jnthn src/core/Str.pm:multi sub infix:<~>(*@args) { @args.join }
19:51 jnthn The candidate exists
19:52 jnthn But my %concatenation   := nqp::hash('prec', 'r=', 'assoc', 'left', 'dba', 'concatenation');
19:59 lizmat joined #perl6-dev
20:25 AlexDaniel joined #perl6-dev
20:49 samcv looks like i can speed up join by making it into a series of concats in a loop. looks like over 500 codepoints it's faster to go with concat than with flat copy
20:49 samcv and it can be ridiculous if we have hundreds of thousands of codepoints how much faster it is the new way
20:49 samcv for obvious reasons
20:49 samcv running spectest now :)
20:50 timotimo "a series of concats in a loop" generates a rope rather than copying the data into one place?
20:50 samcv yes
20:50 samcv i did tests and over 500 codepoints it's faster to do concat
20:50 samcv though i might want to test the upper limit regarding if we have a ton of very small ones
20:50 timotimo "speed up join" refering to method join/sub join or nqp::join?
20:50 samcv nqp::join
20:50 timotimo OK
20:51 timotimo huge ropes can have noticable gc overhead
20:51 timotimo as it has to go through the entire array of strands and update their pointers
20:51 samcv what is huge
20:51 timotimo dunno :)
20:51 samcv well we have a limit on the number of strands
20:52 timotimo oh, we do, yeah
20:52 samcv i mean i'm going to do some way to avoid if we have 500 elements of one codepoint each. it may be faster to do the old method
20:52 samcv but for joining 2 strings of 500 codepoints or 3 strings of 250 codepoints it's faster to do a series of concats
20:53 samcv may be even lower if there's no separator i've only tested with a separator
20:54 samcv woo spectest pass :)
21:03 hankache joined #perl6-dev
21:12 woolfy joined #perl6-dev
21:12 SourceBaby joined #perl6-dev
21:12 woolfy left #perl6-dev
21:13 Undercover joined #perl6-dev
21:30 Geth ¦ rakudo: 9381ffbc90 | (Elizabeth Mattijsen)++ | src/core/ThreadPoolScheduler.pm
21:30 Geth ¦ rakudo: Add Worker.total, total # jobs completed by worker
21:30 Geth ¦ rakudo:
21:30 Geth ¦ rakudo: - $!completed is the number of jobs completed since last supervisor check
21:30 Geth ¦ rakudo: - which is useless for telemetry purposes
21:30 Geth ¦ rakudo: review: https://github.com/rakudo/rakudo/commit/9381ffbc90
21:36 buggable New CPAN upload: Test-Color-1.001001.tar.gz by HOLLI https://cpan.metacpan.org/authors/id/H/HO/HOLLI/Perl6/Test-Color-1.001001.tar.gz
21:43 Ven joined #perl6-dev
21:47 samcv looks like we want an average string length of 300, or we want to have less than 4 elements and average string length of 150. to be faster doing concats instead of normal join
21:49 timotimo you could graph that on a 2d plane
21:51 timotimo we can train a neural network to make the right decisions every time
21:51 samcv heh
21:52 timotimo m: say "so ... 500 frames in 52 seconds; each frame has { 85 * 65 } tiles to update"
21:52 camelia rakudo-moar 9381ffbc9: OUTPUT: «so ... 500 frames in 52 seconds; each frame has 5525 tiles to update␤»
21:52 timotimo so 55k tiles updated per second?
21:53 timotimo without rendering it takes 40 seconds instead of 52
22:04 Geth ¦ rakudo: 0bdda0866f | (Elizabeth Mattijsen)++ | lib/Telemetry.pm6
22:04 Geth ¦ rakudo: Latest set of Telemetry improvements
22:04 Geth ¦ rakudo:
22:04 Geth ¦ rakudo: - s/jobs/tasks/ as we use the word "task" in ThreadPoolScheduler code
22:04 Geth ¦ rakudo: - s/waiting/queued/, so that we can use the "w" for "working" later
22:04 Geth ¦ rakudo: - add (general|timer)-tasks-completed info
22:04 Geth ¦ rakudo: - add wallclock back into report for now (so we can see period size)
22:04 Geth ¦ rakudo: review: https://github.com/rakudo/rakudo/commit/0bdda0866f
22:05 timotimo 22.8s instead of 40 seconds if moarvm is optimized (by gcc i mean)
22:07 timotimo 25.2s if rendering is also turned on
22:07 timotimo nice.
22:08 timotimo yes, i like this.
22:08 timotimo would like another easy 2x please :)
22:27 gfldex m: my @a = $*IN.IO.lines;
22:27 camelia rakudo-moar 0bdda0866: OUTPUT: «No such method 'lines' for invocant of type 'IO::Special'␤  in block <unit> at <tmp> line 1␤␤»
22:30 Ven joined #perl6-dev
22:46 Geth ¦ rakudo: 697e4ecff5 | (Elizabeth Mattijsen)++ | src/core/ThreadPoolScheduler.pm
22:46 Geth ¦ rakudo: Use prefix ++ instead of postfix ++ where possible
22:46 Geth ¦ rakudo:
22:46 Geth ¦ rakudo: This seems to have a few % positive effect on test-t --race 20
22:46 Geth ¦ rakudo: review: https://github.com/rakudo/rakudo/commit/697e4ecff5
22:50 bartolin for some reasons, the rakudo-jvm is unhappy with the assignment to @last-utils in ThreadPoolScheduler.pm: https://github.com/rakudo/rakudo/blob/697e4ecff54077e9d791e4096fff1abda3785a22/src/core/ThreadPoolScheduler.pm#L494
22:50 bartolin it complains about 'Unhandled exception: VMArray representation does not implement bind_pos_native'
22:51 bartolin could it be that we don't create a native array there -- even with 'my num @last-utils'?
22:52 jnthn bartolin: Sounds like that's what is somehow happening, yes
22:53 bartolin even on moar a debug statement (with dd) below that lines gives me: Array @last-utils = [0e0, 0e0, 0e0, 0e0, 0e0]
22:54 lizmat bartolin: could you try changing that to: "my num @last-util; nqp::setelems(@last-utils,NUM_SAMPLES);" ?
22:55 lizmat oops, my num @last-utils;
22:58 bartolin lizmat: I'll try, but I doubt that will really help. will take some minutes ...
22:59 lizmat ok, well, I'm pretty confident it will
22:59 lizmat but then again, I'm also very tired
22:59 lizmat so I will see the result tomorrow
22:59 lizmat &
22:59 bartolin o/
22:59 jnthn Rest well, lizmat o/
23:14 bartolin well, on moar we have a native array as expected. my earlier message was a false alarm (I mixed things up)
23:17 bartolin on jvm, using nqp::setelems instead of assigning avoids the direct explosion. but still, I can see an error (VMArray representation does not implement shift_native) when running with RAKUDO_SCHEDULER_DEBUG=1 that seems to be caused by @list-utils not being a native array. The error is is caught here, if i'm not mistaken: https://github.com/rakudo/rakudo/blob/697e4ecff54077e9d791e4096fff1abda3785a22/src/core/ThreadPoolScheduler.pm#L537
23:21 bartolin given that I have no idea why we don't get a native array on jvm, let alone how to fix that issue: would it be acceptable to add another '#?if jvm' and just using 'my @last-utils' for the jvm backend?
23:22 jnthn bartolin: Might be the best thing to do, in that busted scheduler = busted everything, pretty much
23:22 bartolin jnthn: thanks, will do that
23:56 buggable New CPAN upload: Test-Color-1.001002.tar.gz by HOLLI https://cpan.metacpan.org/authors/id/H/HO/HOLLI/Perl6/Test-Color-1.001002.tar.gz

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