Perl 6 language and compiler development | Logs at colabti.org/irclogger/irclogger_log/perl6-dev | For toolchain/installation stuff see #perl6-toolchain | For MoarVM see #moarvm
Set by Zoffix on 27 July 2018.
00:00 Ven`` left 00:10 pharv joined 00:11 p6bannerbot sets mode: +v pharv 00:14 Geth left 00:15 pharv left, pharv joined 00:16 p6bannerbot sets mode: +v pharv
tbrowder_ AlexDaniel: not long ago i offered a server to do continuous toasting but no one was interested 00:24
AlexDaniel tbrowder_: yeah, the server is not an issue
00:38 Ven` left 00:43 Kaiepi left 00:45 PufferBot joined, Ven` joined, p6bannerbot sets mode: +v PufferBot 00:46 p6bannerbot sets mode: +v Ven` 00:55 PufferBot left 00:56 PufferBot joined 00:57 p6bannerbot sets mode: +v PufferBot 01:19 pharv left 01:24 pharv joined 01:25 p6bannerbot sets mode: +v pharv 01:35 Ven` left 01:56 pharv left, pharv joined 01:57 p6bannerbot sets mode: +v pharv 02:20 pharv left 02:30 ufobat_ joined 02:31 p6bannerbot sets mode: +v ufobat_ 02:33 ufobat left 03:33 Ven` joined 03:34 p6bannerbot sets mode: +v Ven` 03:37 Ven` left 04:04 Ven` joined 04:05 p6bannerbot sets mode: +v Ven` 04:08 Ven` left 04:20 stmuk_ joined 04:21 p6bannerbot sets mode: +v stmuk_ 04:22 stmuk left 04:41 pharv joined, pharv left, pharv joined, p6bannerbot sets mode: +v pharv 04:42 p6bannerbot sets mode: +v pharv 05:30 stmuk joined, p6bannerbot sets mode: +v stmuk 05:31 stmuk_ left 05:42 stmuk_ joined 05:43 p6bannerbot sets mode: +v stmuk_ 05:44 stmuk left 05:51 stmuk joined, p6bannerbot sets mode: +v stmuk 05:54 stmuk_ left, stmuk_ joined 05:55 p6bannerbot sets mode: +v stmuk_ 05:56 stmuk left 06:25 stmuk joined 06:26 p6bannerbot sets mode: +v stmuk 06:27 stmuk_ left 07:06 fake_space_whale left
nine Wow! The patch for getting a working (including JIT) explicitly-managed trait for NativeCall is really quite small: gist.github.com/niner/7d30269263f0...5e82bbd552 07:43
Can then be used like this: sub SetString(Str is explicitly-managed) returns int32 is native('./02-simple-args') { * } 07:44
08:10 gfldex left
nine While explicitly-managed will already cover a lot, there's still the take-a-string-and-keep-it-for-a-while-but-still-expect-you-to-free-it-by-yourself-when-im-done-with-it(char*) case 08:14
That's neither covered by explicitly-managed nor by explicitly-manage($str)
Oh, actually that is covered by explicitly-manage($str)! 08:16
There's another oddity about explicitly-manage($str). It doesn't return the string it was originally passed, but the CStr attached to it. So the set_version(explicitly-manage('1.0.0')); in the docs does something very different from my $str = '1.0.0'; explicitly-manage($str); set_version($str); 08:27
Also...as discovered earlier, even explicitly-manage()'d strings will be freed eventually by the GC (when the CStr attached to the Str is collected). So while code like the set_version(explicitly-manage('1.0.0')); is safe by virtue of the string constant being kept indefinitely, it is a bit misleading. 08:31
set_version(explicitly-manage('1.0.0'.substr(1))) would be unsafe 08:32
I've yet to find out why passing the CStr to the sub actually works. That's not even a Str. 08:35
Ah, probably because the CStr unboxes to a str, too and that's what ends up in the signature of the generated sub. 08:38
And the generic CALL-ME that NativeCall originally uses doesn't check argument types.
Btw. a CStr keeps a reference to the original MVMString. This...sounds like an intriguing opportunity. I guess test-csvip5xs is not the only program that gets some strings from native code just to pass them back to other native code. Wouldn't it be nice if we could forgo the decoding/encoding in such cases? 09:07
09:19 timotimo left, timotimo joined, asimov.freenode.net sets mode: +v timotimo, p6bannerbot sets mode: +v timotimo 09:24 pharv left 09:26 stmuk_ joined, p6bannerbot sets mode: +v stmuk_ 09:28 stmuk left 09:59 pharv joined 10:00 p6bannerbot sets mode: +v pharv 10:04 pharv left 10:08 ufobat_ left 11:05 Ven` joined 11:06 p6bannerbot sets mode: +v Ven` 11:16 are joined, are is now known as Guest5503, p6bannerbot sets mode: +v Guest5503
Guest5503 | ; ; ; ; / / .\ : 11:17
| ; ; /` .\ _,==" \ .'
\; ; ; .'. _ ,_'\.\~" //`. \ .'|
| ; .___~' \ \- | | /,\ ` \ _.' |
~ ; ; ;/ _,.-~'|`| | | _,-''\..--'| 'o
~ /; ;/="" |`| |`| _="`| | | /|
~..==` \\ |`| / /_="`| o' | 'o /'\
~` ~ /,\ / /_,)") 'o /|\ o' /|\
~ ~~ _,.-)") /|\ /'\ /|\ /'\
~ ~ _,=~"| /'\ /'\
~ =~"|; ;| KKKbird
~ ~ | ; | =======
~ ~ |;|\ |
|/ \|
11:20 Guest5503 left
tbrowder_ hi. i just finished my thoughts on the current state of p6 pod and changes i believe are needed. see the wiki on the rakudo repo. comments welcome. 11:55
11:57 Guest67967 joined
tbrowder_ with those changes, i would change table handling so cells would become Pod::Block::Paras after being layed out so formatting code would be easily accessible as well as unformatted text. 11:58
12:00 Guest67967 left 12:18 Ven` left
jnthn nine: Wow, that is a satisfyingly small patch :) 12:33
12:36 MasterDuke left 12:43 pmurias joined 12:44 p6bannerbot sets mode: +v pmurias
AlexDaniel ehhh… how come a PR starts with “Thank you for submitting a module to the Perl 6 Ecosystem!”… 12:52
timotimo that's the issue template we have :) 12:54
it's basically displayed to the user from the beginning
so we're kind of using that to say "hello"
AlexDaniel yes but IIRC you can have comments in comments? 12:56
i.e. text that is in the message but not displayed
timotimo what? :)
oh
no clue about that
sounds like a good thing to have
AlexDaniel fixed github.com/perl6/ecosystem/commit/...3992bb92e8 13:01
13:01 brrt joined 13:02 p6bannerbot sets mode: +v brrt
AlexDaniel timotimo: so what do you do to restart hack? 13:03
and also, any chance way we can figure out why it keeps doing that? 13:04
timotimo i connect to [email@hidden.address] with X11 forwarding and start virt-manager :) 13:06
AlexDaniel timotimo: cool. So besides you, who has access to that? 13:07
timotimo: also, it needs some help now 13:09
timotimo i can kick it 13:11
13:13 dalek joined, ChanServ sets mode: +v dalek, p6lert_ left, synopsebot_ left, synopsebot joined, Geth joined, ChanServ sets mode: +v synopsebot, ChanServ sets mode: +v Geth, p6lert joined 13:14 p6bannerbot sets mode: +v dalek, p6bannerbot sets mode: +v synopsebot, p6bannerbot sets mode: +v Geth, p6bannerbot sets mode: +v p6lert 13:18 brrt left, brrt joined 13:19 p6bannerbot sets mode: +v brrt 13:25 Ven` joined 13:26 p6bannerbot sets mode: +v Ven`, Kaiepi joined 13:27 p6bannerbot sets mode: +v Kaiepi 13:33 brrt left, pharv joined 13:34 p6bannerbot sets mode: +v pharv 13:38 pharv left 13:54 calcul0n27 joined 13:55 brrt joined 13:56 calcul0n27 left, p6bannerbot sets mode: +v brrt 14:03 Ven` left
[Tux] Rakudo version 2018.06-481-g5d1cec5a4 - MoarVM version 2018.06-435-g9601ac45b
csv-ip5xs0.955 - 0.961
csv-ip5xs-207.613 - 7.634
csv-parser25.173 - 25.838
csv-test-xs-200.438 - 0.454
test10.109 - 10.236
test-t2.149 - 2.240
test-t --race0.967 - 1.068
test-t-2038.047 - 39.346
test-t-20 --race12.052 - 12.195
14:05
timotimo wowza 14:11
that's a bad result
[Tux] runs it again ... 14:15
sjn [Tux]: have you considered using unicode block elements to visualize changes in speed over time? 14:20
timotimo sjn: we do have that! 14:23
buggable: speed :3
buggable timotimo, █↑▄ ▃ ↑↑ ▄ ▂▃ dates: 2018-08-07–2018-08-25
timotimo, ███▇▅█▆▇██▇▆▁ ▃▆▆ █ ██▃▃▃▇▄▇ ▁▃▇▆ ▃ ▁ ▂▃ range: 11.410s–13.909s
timotimo, █████████████▆███▇▅█▇████████▄▅████▆▄▅▃▄█▆▄▆▆█▁███ speed: 7% faster (widths: 9/3)
sjn aw, too wide :-( 14:24
timotimo buggable: speed :3 10
sjn no?
buggable timotimo, Try larger period. Could not calculate using period : Index out of range. Is: -1, should be in 0..^Inf
timotimo huh 14:26
buggable: speed :3 20 14:27
buggable timotimo, Try larger period. Could not calculate using period : Index out of range. Is: -1, should be in 0..^Inf
timotimo buggable: speed :3 30
buggable timotimo, Try larger period. Could not calculate using period : Index out of range. Is: -1, should be in 0..^Inf 14:28
timotimo i don't know how?!
buggable: help
buggable timotimo, tags | tag SOMETAG | eco | eco Some search term | author github username | speed | testers CPANTesters report ID
timotimo :|
[TuxCM] Rakudo version 2018.06-481-g5d1cec5a4 - MoarVM version 2018.06-435-g9601ac45b
csv-ip5xs0.952 - 1.004
csv-ip5xs-207.690 - 7.886
csv-parser24.076 - 24.484
csv-test-xs-200.417 - 0.499
test8.838 - 8.987
test-t2.086 - 2.120
test-t --race0.873 - 0.928
test-t-2036.930 - 36.945
test-t-20 --race11.240 - 12.319
14:30
[Tux] sjn, no I have not, and have no plans to
sjn aw 14:32
14:33 Guest94865 joined 14:37 Guest94865 left
AlexDaniel sjn: fwiw there's a graph here: tux.nl/Talks/CSV6/speed4.html 14:39
sjn yeah, those aren't useful
well
limited usefulness 14:40
[Tux] and the complete log: tux.nl/Talks/CSV6/speed-all.log so you can build your own
and the complete log: tux.nl/Talks/CSV6/speed-all.log so you can build your own
(whatevah)
sjn oh, there's sooo much wrong with those graphs.. :-( :-( :-( 14:41
ok, I'll shut up now
nice to see the speedups! :-D \o/ 14:42
[Tux] tux.nl/Files/speed.pl ← suggestions welcome (I guess). As long as you follow my style 14:44
And note that this was all created when the graphs still made sense. All zoomed images were generated when the time/speed showed the need for it 14:45
it was just another tool to show the development of perl6 in my Granade talk 14:46
Granada
14:51 notable6 joined, p6bannerbot sets mode: +v notable6 15:01 stmuk joined 15:02 p6bannerbot sets mode: +v stmuk 15:03 stmuk_ left 15:08 Ven` joined 15:09 p6bannerbot sets mode: +v Ven`
robertle how are these not useful? I think they are awesome and show so much! 15:10
15:29 stmuk_ joined, p6bannerbot sets mode: +v stmuk_ 15:30 stmuk left 15:35 stmuk joined 15:36 p6bannerbot sets mode: +v stmuk 15:37 stmuk_ left, leastbit joined, leastbit left 15:38 leastbit joined, leastbit left, leastbit joined, leastbit left 15:39 leastbit joined, leastbit left 15:46 fake_space_whale joined, p6bannerbot sets mode: +v fake_space_whale 15:51 brrt left 16:02 Ven` left
timotimo i'm also kind of confused 16:25
17:17 fake_space_whale left 17:21 pharv joined 17:22 p6bannerbot sets mode: +v pharv 17:36 pharv left, pharv joined 17:37 p6bannerbot sets mode: +v pharv 18:24 brrt joined 18:25 p6bannerbot sets mode: +v brrt
brrt some benchmark results: brrt-to-the-future.blogspot.com/201...hmark.html 18:30
tl;dr - boxing is slow. Natives don't work in Perl6, but do in NQP. postrelease-opts can be a factor 5 improvement. Replacing assignment with bidning another 20%, quite consistently 18:31
18:42 gfldex joined 18:43 p6bannerbot sets mode: +v gfldex
nine Wait a minute... there's actually nothing explicit about explicitly-manage($str). All that does is ensure that the char* passed to the native function is not free()d immediately after the call. It will however be freed by the garbage collector. At least it may be (as GC is not guaranteed). The only control the user has is to keep a reference to the string around. 18:57
timotimo that's much better than nothing 18:58
19:02 pharv left, pharv joined 19:03 p6bannerbot sets mode: +v pharv
pmurias brrt: it's a good sign that at least nqp supports high performance 19:07
brrt well, the truth of that benchmark is that at some point, the FPU is slower than the terrible code generated by the MoarVM JIT :-) 19:08
but yes
If we can make native scalars Just Work, throughout the code, then it'll be possible to write performant perl6 code.
timotimo the kind of escape analysis jnthn and masak are working on will help a decent bit, i'm sure 19:10
brrt yes, I expect so as well 19:14
19:19 Ven` joined 19:20 p6bannerbot sets mode: +v Ven` 19:25 Ven` left 19:27 pharv left 20:37 stmuk left, stmuk joined 20:38 p6bannerbot sets mode: +v stmuk 20:40 stmuk_ joined 20:41 p6bannerbot sets mode: +v stmuk_ 20:43 stmuk left, fake_space_whale joined 20:44 p6bannerbot sets mode: +v fake_space_whale 21:00 pmurias left 21:01 stmuk joined 21:02 p6bannerbot sets mode: +v stmuk 21:03 stmuk_ left 21:13 stmuk_ joined 21:14 stmuk left, p6bannerbot sets mode: +v stmuk_, nortoh0 joined 21:15 p6bannerbot sets mode: +v nortoh0 21:18 stmuk_ left 21:19 nortoh0 left, stmuk joined 21:20 p6bannerbot sets mode: +v stmuk 21:21 stmuk_ joined 21:22 p6bannerbot sets mode: +v stmuk_ 21:24 stmuk__ joined, stmuk left, p6bannerbot sets mode: +v stmuk__ 21:26 stmuk_ left 21:29 stmuk__ left 21:31 stmuk__ joined 21:32 p6bannerbot sets mode: +v stmuk__, brrt left 21:36 stmuk__ left 21:38 stmuk__ joined 21:39 p6bannerbot sets mode: +v stmuk__ 21:41 Ven` joined 21:42 p6bannerbot sets mode: +v Ven` 21:45 Ven` left 21:51 pharv joined 21:52 p6bannerbot sets mode: +v pharv 22:17 Ven` joined 22:18 pharv left, p6bannerbot sets mode: +v Ven` 22:22 Ven` left 22:31 stmuk joined 22:32 p6bannerbot sets mode: +v stmuk 22:33 stmuk__ left 22:36 stmuk_ joined 22:37 p6bannerbot sets mode: +v stmuk_ 22:38 stmuk left 22:39 stmuk joined, p6bannerbot sets mode: +v stmuk 22:41 stmuk_ left
japhb buggable: speed 30:3 22:47
buggable japhb, ██ ▄ ▄ ▄▃ dates: 2018-08-12–2018-08-25 22:48
japhb, ██▆▆▆███ ▄▇██ ▆ ▄ ▃▅▆ range: 11.240s–12.940s
japhb, ████████▅▆█████▅▇▄▅█▇▅▇██▁███↓ speed: 2% faster (widths: 9/3)
japhb timotimo: ^^ # You had the arguments out of order
22:54 Ven` joined, p6bannerbot sets mode: +v Ven` 22:58 Ven` left 23:30 Ven` joined 23:31 p6bannerbot sets mode: +v Ven` 23:35 Ven` left 23:47 pharv joined 23:48 p6bannerbot sets mode: +v pharv