»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_logs/perl6 | UTF-8 is our friend! Set by moritz on 22 December 2015. |
|||
Zoffix | I got some proptests failing, but they look iffy to me. A shift on `int` variable expects -170141183460469231731687303715884105728 as a value | 00:02 | |
m: use nqp; dd nqp::bitshiftr_i(-9223372036854775808, -64) | 00:03 | ||
camelia | -9223372036854775808 | ||
Zoffix | m: use nqp; dd nqp::bitshiftr_I(-9223372036854775808, -64, Int) | ||
camelia | -170141183460469231731687303715884105728 | ||
Zoffix | ZofBot: @expletives.pick | 00:04 | |
ZofBot | Zoffix, m | ||
MasterDuke | i think so, but i didn't record what actually failed | ||
00:04
martinp2 joined
|
|||
MasterDuke | maybe there was another file also? | 00:04 | |
00:04
comborico1611 joined
|
|||
Zoffix | Some of the tests in that bunch are already fudged with RT#125466 | 00:05 | |
synopsebot | RT#125466 [open]: rt.perl.org/Ticket/Display.html?id=125466 [MATH][@LARRY] bitwise shift is inconsistent on int | ||
Zoffix | "There are three fudges where it's unknown what the proper behaviour should be (overflow or switch to Int?)." yeah, mine fall into that category too, so I'm just gonna fudge them (they're proptests, not spectests) | 00:06 | |
Zoffix votes "overflow with natives" while at it | |||
.ask TimToady what's your opinion, should `use nqp; dd nqp::bitshiftr_i(-9223372036854775808, -64)` overflow and return -9223372036854775808 or switch to an Int instead -170141183460469231731687303715884105728? Right now we have this inconsistency between Int and int candidates, but I'm leaning towards: people might wants overflowing stuff | 00:11 | ||
yoleaux | Zoffix: I'll pass your message to TimToady. | ||
Zoffix | MasterDuke: rindolf the native shift candidates should now work, as of github.com/rakudo/rakudo/commit/3d73597556 | 00:17 | |
cfa: are you still trying to build locally? Just commit | 00:22 | ||
$forgiveness > $permission is how we like to say. `git revert` works, after all | 00:23 | ||
lookatme | :) | 00:26 | |
Geth | doc: cb4a69905b | cfa++ | 2 files Clarification on subscript adverbs. |
00:28 | |
cfa | hope that's okay? | ||
i just wanted to test those links so waited on the full build, yeah | |||
TEttinger | I would vote for overflow as long as JS compatibility isn't a concern | ||
my vote doesn't really count though | |||
00:29
konsolebox left
00:32
konsolebox joined
|
|||
Zoffix | TEttinger: why overflow? You couldn't for example do `my int64 @a = -9223372036854775808; @a[0] +>= -64` for example. It'd explode | 00:32 | |
cfa: looks fine to me | 00:33 | ||
00:34
martinp2 left
|
|||
Zoffix | m: my int64 @a = -9223372036854775808; @a[0] +>= -63; dd @a | 00:34 | |
camelia | Cannot unbox 127 bit wide bigint into native integer in block <unit> at <tmp> line 1 |
||
00:35
pierre_ joined
|
|||
perlawhirl clickbaits www.0racle.info/articles/pick_and_choose_part1 | 00:35 | ||
happy for any grammar or logic corrections before I throw this on reddit | 00:36 | ||
Zoffix | TEttinger: ah, you can't do that anyway :( the meta-assign op gets boxed | ||
m: my int64 @a = -9223372036854775808; @a[0] = @a[0] +> -63; dd @a | |||
camelia | Cannot unbox 127 bit wide bigint into native integer in block <unit> at <tmp> line 1 |
||
Zoffix | Ah, wait, we box on array access so far, don't we | 00:37 | |
00:37
espadrine left,
comborico1611 left
|
|||
Zoffix | m: my int64 $a = -9223372036854775808; $a = $a +> -63; dd $a | 00:37 | |
camelia | -4611686018427387904 | ||
Zoffix | OK, yeah, I'm changing my vote on that the two should behave the same. | ||
cfa | hmm, it looks like Array tucks slice adverb documentation away under grep | ||
TEttinger | Zoffix: overflow matters for some algorithms and there should at the very least be an option | ||
Zoffix | TEttinger: oh, right I misread what you originally said. | 00:38 | |
TEttinger | JS is just a mess regarding ints and overflow | ||
Zoffix | Yeah, that was my original reasoning too, but the above evals show this isn't a good method to rely on when it comes to controlling overflow. | 00:39 | |
TEttinger | since Number doesn't actually support 64 bits of integer precision on JS | ||
cfa | actually, that's coming from list | ||
MasterDuke | perlawhirl: "is a branch mathematics", missing an "of" i assume | 00:40 | |
Zoffix | .tell TimToady I changed my leaning; I think both HLL and native should behave the same as autoboxing makes stuff too unpredictable as can be seen here: irclog.perlgeek.de/perl6/2018-03-05#i_15883977 | ||
yoleaux | Zoffix: I'll pass your message to TimToady. | ||
Zoffix & | |||
00:40
Zoffix left
|
|||
TEttinger | I do like that GWT, when emulating Java's types with JS, will correctly handle long (64-bit signed integers) in the browser despite taking a performance hit to do so | 00:41 | |
00:41
konsolebox left
|
|||
TEttinger | correctness is important | 00:41 | |
00:42
konsolebox joined
|
|||
MasterDuke | perlawhirl: "so it's can" | 00:42 | |
00:43
bwisti left
00:44
cog_ left
|
|||
perlawhirl | MasterDuke++ thanks, fixed | 00:47 | |
00:49
Zoffix joined
|
|||
Zoffix | MasterDuke: rindolf wait, so wtf is "run('./primesieve', $n, '-p1', :out)". Is that some program I need to install to run that example program? | 00:50 | |
00:50
sharksoft joined,
cognominal joined
|
|||
Geth | doc: ed980c7f69 | (Tom Browder)++ (committed using GitHub Web editor) | doc/Language/nativecall.pod6 tweak grammar, punctuation, spelling, format |
00:50 | |
synopsebot | Link: doc.perl6.org/language/nativecall | ||
rindolf | Zoffix: yes - primesieve.org/ | ||
Zoffix | Thanks. | ||
I see P5 version has them hardcoded: github.com/shlomif/project-euler/b..._618_v1.pl | 00:51 | ||
I think I'll that that version and try to convert it to P6 and see how it compares to yall's versions | |||
:) | |||
00:51
pierre_ left
|
|||
Zoffix | 0m17.789s for p5 version... I can beat it :P | 00:52 | |
cfa | okay, closed off the issue---i think the operator link from signatures and the hash clarification are sufficient | 00:53 | |
otherwise this'll get way too noisy | |||
00:56
sharksoft left
00:57
pierre_ joined,
cognominal left
01:05
trnh joined
01:11
Zoffix left
01:12
kurahaupo_ joined
01:15
kurahaupo left
01:18
buggable left
01:20
trnh left
01:22
trnh joined
01:29
trnh left
01:30
martinp2 joined
|
|||
Geth | doc: 5c99779397 | (Richard Hainsworth)++ (committed using GitHub Web editor) | doc/Language/nativecall.pod6 Minor bit logic error |
01:48 | |
synopsebot | Link: doc.perl6.org/language/nativecall | ||
01:48
evalable6 left,
evalable6 joined
02:28
Zoffix joined
|
|||
Zoffix | Well, I failed. Got 33s to P5's 17.7s | 02:28 | |
m: say 33/17.7 | |||
camelia | 1.864407 | ||
Zoffix | Still 86% slower, despite being NQP gibberish | 02:29 | |
.tell rindolf managed to get P6 version to 1.86x the time of P5 version by rewriting it in NQP, if you were curious: gist.github.com/zoffixznet/cb19c86...19f7ee9383 | |||
yoleaux | Zoffix: I'll pass your message to rindolf. | ||
MasterDuke | where does a profile say the time is being spent? | ||
rindolf | Zoffix: hi | ||
yoleaux | 02:29Z <Zoffix> rindolf: managed to get P6 version to 1.86x the time of P5 version by rewriting it in NQP, if you were curious: gist.github.com/zoffixznet/cb19c86...19f7ee9383 | ||
Zoffix | Hmmmm | 02:30 | |
Actually, I think that might be 'cause we don't buffer TTYs | |||
rindolf | Zoffix: holy shit | ||
02:30
epony left
|
|||
rindolf | Zoffix: that looks really cluttered | 02:31 | |
Zoffix | hm, no nevermind, 0m33.353s with the say commented out (I was piping to /dev/null anyway) | ||
rindolf | Zoffix: ah | ||
Zoffix | It looks really nice and even :) | 02:32 | |
.tell MasterDuke FWIW rindolf's program in NQP version; still 1.86x slower. Maybe some of these ops don't get JITted? No idea how to check: gist.github.com/zoffixznet/cb19c86...19f7ee9383 | 02:33 | ||
yoleaux | Zoffix: I'll pass your message to MasterDuke. | ||
Zoffix goes to bed | |||
02:33
Zoffix left
02:46
ilbot3 left
02:54
martinp2 left
02:57
ilbot3 joined
03:08
cdg joined
03:12
cdg left
03:23
wamba joined
|
|||
jdv79 | m: {}<sadf>.sort.head(2).perl.say | 03:25 | |
camelia | (Any,).Seq | ||
jdv79 | why does that have an element? | ||
or, why isn't that ().Seq? | 03:26 | ||
03:27
cdg joined
|
|||
ZzZombo | Because it does have an element. | 03:27 | |
m: dd {}<a> | |||
camelia | Any % = Any | ||
jdv79 | oh, default. meh... | 03:28 | |
ZzZombo | You just added it. | ||
03:48
gabiruh left,
ufobat___ joined
03:51
ufobat_ left
03:53
gabiruh joined
04:16
cdg left
04:17
kaare__ left,
pierre_ left,
kaare__ joined
04:21
gabiruh left
|
|||
Geth | doc: 1b6453970e | cfa++ | doc/Type/Signature.pod6 A slightly gentler walk through :D/:U constraint examples |
04:22 | |
synopsebot | Link: doc.perl6.org/type/Signature | ||
04:23
gabiruh joined
|
|||
cfa | hopefully that's okay; i found the existing documentation a little dense as it dives straight into a code block | 04:25 | |
04:29
pierre_ joined
04:43
konsolebox left
04:44
konsolebox joined
04:45
gabiruh left
04:47
gabiruh joined
04:49
skids left
04:51
gabiruh left
04:52
pierre_ left
04:53
stmuk_ joined
04:55
stmuk left
04:57
gabiruh joined
04:59
pierre_ joined,
wamba left
05:03
pierre_ left
05:07
konsolebox left,
konsolebox joined
05:08
kaare__ left,
kaare__ joined
05:17
pierre_ joined,
eythian left
05:19
eythian joined
05:21
pierre_ left
05:30
APic left
05:33
gabiruh left
05:34
konsolebox left
05:35
konsolebox joined,
xiaoyafeng joined,
noganex left
05:36
APic joined
|
|||
xiaoyafeng | hello , I found min function just return one elem. | 05:36 | |
05:38
gabiruh joined
|
|||
xiaoyafeng | but look this code: my %dd = ( a => 3, b => 3, c =>4); (keys %dd).min({%dd{$_}}); | 05:38 | |
I expect return 2 elems:a and b | |||
do I miss something? | 05:39 | ||
shinobi-cl | m: my %dd = ( a => 3, b => 3, c =>4); say %dd.minpairs; | 05:40 | |
camelia | (a => 3 b => 3) | ||
shinobi-cl | maybe minpairs is what you need | ||
m: my %dd = ( a => 3, b => 3, c =>4); my %smallest = %dd.minpairs; say %smallest.keys; | 05:42 | ||
camelia | (a b) | ||
xiaoyafeng | Thanks! let me check minpairs document;) | 05:43 | |
05:44
xtreak joined
|
|||
ZzZombo | `min` returns values | 05:47 | |
shinobi-cl | sure. BTW, if you don't want to use a temporary hash (%smallest) you have to use this: | ||
m: my %dd = ( a => 3, b => 3, c =>4); say (%dd.minpairs.hash).keys; | |||
camelia | (a b) | ||
ZzZombo | why the parentheses in `say`? | 05:48 | |
shinobi-cl | oh, sorry those were a leftover of what i was testing... you do not need those :P | 05:49 | |
xiaoyafeng | so .hash means explicit conversion to hash type? | 05:52 | |
shinobi-cl | yes, for some reason, minpairs returns a Seq, not another hash. but using .hash fixes that | 05:54 | |
m: my %dd = ( a => 3, b => 3, c =>4); say %dd.minpairs.perl; | |||
camelia | (:a(3), :b(3)).Seq | ||
xiaoyafeng | one more question, is there a count like function in perl6? I find classify, similar but not equal. how translate below perl5 code to perl6? count_by {$_}, (a,a, a, b,b,b c,c) | 05:56 | |
will return a => 3, b => 3, c => 2; | |||
05:58
eliasr left
06:00
w_richard_w joined
06:01
kaare__ left
06:02
kaare__ joined
06:05
atweiden-air joined
|
|||
ZzZombo | m: say <a a a b b c c>.Bag | 06:06 | |
camelia | Bag(a(3), b(2), c(2)) | ||
atweiden-air | my latest innocuous commit seems to freeze rakudo compilation of Config::TOML github.com/atweiden/config-toml/co...22e967be5c | 06:07 | |
can anyone with a high perf comp try and get Config::TOML to compile? | |||
06:07
wamba joined,
pierre_ joined
06:08
pierre_ left,
pierre_ joined
06:15
wamba1 joined
06:17
cdg joined
06:18
wamba left
06:21
cdg left
06:26
w_richard_w1 joined
06:30
w_richard_w left
06:40
domidumont joined
06:43
gabiruh left
06:47
domidumont left
|
|||
atweiden-air | fixed: freeze was caused by a missing `.Array()` in method table-header-text, uncovered after reverting hypers | 06:48 | |
06:48
gabiruh joined
06:49
atweiden-air left
06:51
wamba1 left
06:52
obra left,
darutoko joined,
obra joined
07:23
w_richard_w1 left
07:26
domidumont joined
07:28
wamba joined
07:32
robertle joined
07:33
noganex joined
07:42
abraxxa joined
07:54
AlexDaniel joined
07:55
vike left
07:57
wamba left
08:01
wamba joined
08:17
zakharyas joined
08:22
zakharyas left
|
|||
Geth | whateverable: a401e1da8d | (Aleks-Daniel Jakimenko-Aleksejev)++ | lib/Whateverable.pm6 Support older zstd version, complain if not installed Tackles issue #122 a little bit. This *should* make it work for older zstd versions like 0.5.1 (but I haven't tested it just yet). Also, it should now die with a more helpful message if zstd or lrzip is not installed. ... (7 more lines) |
08:22 | |
08:22
zakharyas joined
08:25
domidumont left
08:27
domidumont joined
|
|||
AlexDaniel | actually maybe someone can suggest a better approach for github.com/perl6/whateverable/commit/a401e1da8d | 08:28 | |
yoleaux | 00:17Z <jnthn> AlexDaniel: zstd 0.5.1, lrzip 0.621 | ||
08:28
Xliff left
|
|||
AlexDaniel | how else can I check that the command does not exist | 08:29 | |
08:29
Xliff joined
|
|||
AlexDaniel | `run` just exits with “exit code: 1”, and that doesn't tell enough | 08:29 | |
e: run ‘oeunohunteohuntoahuonathu’ | |||
evalable6 | (exit code 1) The spawned command 'oeunohunteohuntoahuonathu' exited unsuccessfully (exit code: 1) in block <unit> at /tmp/ki3cOsjZr7 line 1 |
||
AlexDaniel | 6c: run ‘oeunohunteohuntoahuonathu’ | ||
committable6 | AlexDaniel, gist.github.com/aa42b6eb50f114c31e...0a59b26a53 | 08:30 | |
AlexDaniel | oh ya see, it was -1 at some point | ||
which is kinda useful-ish | |||
bisect: old=2016.09 new=2016.10 run ‘oeunohunteohuntoahuonathu’ | |||
bisectable6 | AlexDaniel, Bisecting by output (old=2016.09 new=2016.10) because on both starting points the exit code is 1 | ||
AlexDaniel, bisect log: gist.github.com/17d512674b22c5d7dc...a7a994d1fb | 08:31 | ||
AlexDaniel, (2016-09-17) github.com/rakudo/rakudo/commit/c4...608041eb9b | |||
AlexDaniel | no way | ||
c: c4fd9f515d49d^,c4fd9f515d49d run ‘oeunohunteohuntoahuonathu’ | |||
committable6 | AlexDaniel, gist.github.com/af495ec00f05dcaf0a...aa0af9a0b2 | ||
AlexDaniel | bisect: old=c4fd9f515d49d new=2016.10 run ‘oeunohunteohuntoahuonathu’ | ||
08:31
lowbro joined
|
|||
bisectable6 | AlexDaniel, On both starting points (old=c4fd9f5 new=2016.10) the exit code is 1 and the output is identical as well | 08:31 | |
AlexDaniel, Output on both points: «The spawned command 'oeunohunteohuntoahuonathu' exited unsuccessfully (exit code: -1) in block <unit> at /tmp/69ysAF8JdZ line 1» | |||
08:32
lowbro left,
lowbro joined
|
|||
AlexDaniel | ah!! I'm blind! | 08:32 | |
bisect: old=2017.05 new=2017.06 run ‘oeunohunteohuntoahuonathu’ | |||
bisectable6 | AlexDaniel, Bisecting by output (old=2017.05 new=2017.06) because on both starting points the exit code is 1 | ||
AlexDaniel, bisect log: gist.github.com/70f4e99d23827941ba...e5c69604c3 | |||
AlexDaniel, (2017-06-12) github.com/rakudo/rakudo/commit/92...a08fb98bd2 | |||
AlexDaniel | c: 92bd7e4f54a^,92bd7e4f54a run ‘oeunohunteohuntoahuonathu’ | ||
committable6 | AlexDaniel, gist.github.com/0b57fda07c31cf2e7a...3029b13bde | ||
AlexDaniel | yeah… | 08:33 | |
08:34
kaare_ joined,
kaare__ left
|
|||
TEttinger | is oeunohunteohuntoahuonathu an inside joke? | 08:36 | |
AlexDaniel | TEttinger: no, it's like asldfhlgdsahf;ldsafj;alfdsj but better | 08:37 | |
c: 92bd7e4f54a^,92bd7e4f54a run(‘oeunohunteohuntoahuonathu’).signal.say | 08:38 | ||
committable6 | AlexDaniel, ¦92bd7e4f54a^: «254» ¦92bd7e4: «0» | ||
TEttinger | weird | 08:39 | |
AlexDaniel | I filed R#1590 | 08:40 | |
synopsebot | R#1590 [open]: github.com/rakudo/rakudo/issues/1590 [regression] Procs should not get back with “exit code: 1” if the program does not exist at all | ||
09:02
pierre_ left
09:04
sena_kun joined
09:10
dakkar joined
09:11
xtreak left
09:12
pierre_ joined
09:18
pierre_ left,
AlexDani` joined,
pierre___ joined,
yoleaux left
09:19
bisectable6 left,
shareable6 left,
reportable6 left,
quotable6 left,
nativecallable6 left,
benchable6 left
09:20
a3f_ joined,
a3f left,
greppable6 left
09:21
evalable6 left,
cfa left,
AlexDaniel left
09:22
cfa joined
09:24
AlexDani` is now known as AlexDaniel,
scimon joined
09:31
simcop2387 left
09:37
simcop2387 joined
09:38
cdg joined
09:39
xtreak joined
09:43
cdg left
09:49
kaare_ left
09:51
kaare_ joined
09:54
Geth left,
Geth joined,
ChanServ sets mode: +v Geth
09:58
pierre___ left
10:00
pierre__ joined
10:06
stmuk joined
10:09
stmuk_ left
|
|||
moritz | moin moin | 10:15 | |
10:16
quotable6 joined,
nativecallable6 joined,
bisectable6 joined,
greppable6 joined,
evalable6 joined,
benchable6 joined,
reportable6 joined,
ChanServ sets mode: +v benchable6,
ChanServ sets mode: +v reportable6
10:25
xtreak_ joined
10:28
xtreak left
10:41
xiaoyafeng left
11:13
yoleaux joined,
ChanServ sets mode: +v yoleaux
11:26
Zoffix joined
|
|||
Zoffix | m: {}<sadf>:v.sort.head(2).perl.say | 11:26 | |
camelia | ().Seq | ||
Zoffix | jdv79: ^ just ask for :v if you don't want default-default of autovivification | ||
11:29
Zoffix left
11:34
lichtkind left
11:45
shareable6 joined
11:47
shinobi-cl left
11:52
pierre__ left
11:53
zakharyas left
11:55
pmurias joined
12:01
daxim left
|
|||
AlexDaniel | perl | 12:13 | |
oops | |||
.tell perlawhirl if python has combinations_with_replacement in itertools, why don't we have a more readable alternative? ;) Maybe file a ticket | 12:14 | ||
yoleaux | AlexDaniel: I'll pass your message to perlawhirl. | ||
AlexDaniel | “One final observation about Perl 6 and math: although Perl 6 has all the usual functions from math.h, it could certainly use a few more.” | 12:15 | |
www.evanmiller.org/a-review-of-perl-6.html | |||
↑ very similar issue :) | 12:18 | ||
12:31
pierre_ joined
12:33
buggable joined,
ChanServ sets mode: +v buggable
12:35
pierre_ left
12:36
kurahaupo_ is now known as kurahaupo
12:37
shinobi-cl joined
12:44
lowbro left
12:47
eliasr joined
12:59
shinobi-cl left
13:00
cognominal joined
13:02
Zoffix joined
|
|||
Zoffix | I propose an better idea: a module. | 13:02 | |
People keep saying how small our ecosystem is, yet everyone's so keen to add stuff to core. | 13:03 | ||
And often protest when suggestion to add a module is. And stuff that's implemented in core then doesn't get neither tests nor documentation. Just shows how insignificant the added feature really is. | 13:04 | ||
Zoffix checks whether IO::Path.parent(Int) was ever documented or tested | |||
Nope. | 13:06 | ||
Not to mention, if you're adding a method to List, you essentially must add it to 99% of Perl 6 classes, to maintain the everything-is-a-1-el-list semantics. | 13:08 | ||
Like why were both .classify and .classify-list added :/ | |||
</rant> | |||
13:09
lichtkind joined
13:14
AlexDaniel left
|
|||
DrForr | It worked so well with PHP... | 13:15 | |
Zoffix | Yeah, I remember 10 years ago #perl cracking jokes about inconsistencies in routine names in PHP... In Perl 6 we now have worse inconsistencies. That's just Karma. | 13:16 | |
13:17
xtreak_ left
|
|||
DrForr | I'm not sure if I was trying to be ironic, sarcastic or depressed there. | 13:17 | |
Zoffix | :) | 13:19 | |
13:20
xtreak joined
|
|||
huf | oh it'll be fine. it's not like "ironic", "sarcastic" and "depressed" fit any pattern | 13:21 | |
yet we handle them fine | |||
DrForr | Speak for yourself. :/ | ||
(sorry, just playing the waiting game today and not doing a wonderful job of it.) | 13:22 | ||
OTOH App::Mi6 does help with releasing. | 13:23 | ||
13:24
athenot joined
|
|||
Geth | doc: 3d7974671f | (Zoffix Znet)++ | doc/Type/IO/Path.pod6 Document IO::Path.parent(UInt) Spec: github.com/perl6/roast/commit/bf3f347e11 github.com/perl6/roast/commit/1b39fb200c Rakudo impl: github.com/rakudo/rakudo/commit/7bea3a2dddcfc11 Closes github.com/perl6/doc/issues/1616 D#1616 |
13:28 | |
synopsebot | Link: doc.perl6.org/type/IO::Path | ||
synopsebot | D#1616 [closed]: github.com/perl6/doc/issues/1616 [NOTSPECCED][docs] IO::Path.parent(Int) | ||
DrForr | (more accurately, sending out notes to recruiters that haven't bothered to respond and waiting on those non-replies while looking for others to send email to that will never get read.) | ||
"Wonderful! Great job with the interview!" ... "Huh? Who are you?" | 13:30 | ||
13:30
Zoffix left
|
|||
rindolf | lizmat: hi | 13:31 | |
lizmat: github.com/shlomif/project-euler/t...-euler/618 - here is the py and pl5 versions | |||
lizmat | rindolf: will have a look at it after I finish the P6W today | ||
13:32
wamba left
|
|||
rindolf | lizmat: this is the p6 code - github.com/perl6/perl6-examples/bl...imotimo.p6 | 13:32 | |
lizmat: thanks | |||
lizmat: this is the nqp version - gist.github.com/zoffixznet/cb19c86...19f7ee9383 | 13:34 | ||
cfa | morning folks | ||
El_Che | DrForr: I got 2 job offers from the same guy on the same day. 1 was non-really-technical multi-language helpdesk, the other was CTO :) | ||
worthless :) | |||
rindolf | lizmat: by Zoffix++ | ||
DrForr | Thanks, it's a gray day here and I need to keep my mood up. | 13:35 | |
13:35
wamba joined
|
|||
rindolf | El_Che: heh | 13:36 | |
lizmat just moved the curtain a bit to block out the sun | 13:38 | ||
DrForr | Hrm, I *do* have cheap bus fares to Amsterdam from here... :) | 13:39 | |
lizmat | DrForr: I'm not in Amsterdam :-) | 13:45 | |
~190km south-east of it | 13:46 | ||
13:46
Ven`` joined,
zakharyas joined
|
|||
El_Che | lizmat: .nl is a big suburb of Amsterdam | 13:47 | |
rindolf | El_Che: heh | ||
DrForr | I know, one step at a time :) | ||
13:54
cdg joined
13:56
vcv joined
13:57
domidumont left
13:58
mcmillhj joined,
vcv left,
domidumont joined,
cdg left
13:59
athenot left,
cdg joined
14:00
athenot joined
14:04
AlexDaniel joined,
khisanth_ left
14:09
vcv joined
14:15
vcv left
14:17
khisanth_ joined
14:18
zakharyas left,
zakharyas joined
14:21
vcv joined
14:22
pmurias left,
wamba left
14:25
vcv left
14:27
vcv joined
|
|||
Geth | doc: titsuki++ created pull request #1821: Add Range.rand |
14:34 | |
doc: c3e251d4f4 | (Itsuki Toyota)++ | doc/Type/Range.pod6 Add Range.rand |
14:35 | ||
doc: 68cade4271 | (Itsuki Toyota)++ (committed using GitHub Web editor) | doc/Type/Range.pod6 Merge pull request #1821 from titsuki/range-rand Add Range.rand |
|||
synopsebot | Link: doc.perl6.org/type/Range | ||
14:37
zakharyas left,
zakharyas joined
|
|||
Geth | doc: ef09dec099 | (Zoffix Znet)++ (committed using GitHub Web editor) | doc/Type/Range.pod6 fix typo |
14:39 | |
titsuki | Zoffix: Thanks! | 14:44 | |
14:45
vcv left
14:47
domidumont left
14:48
domidumont joined
|
|||
El_Che | .tell Zoffix: isn't the d release supposed to clean up some of the inconsistencies? | 14:52 | |
yoleaux | El_Che: What kind of a name is "Zoffix:"?! | ||
El_Che | .tell Zoffix isn't the d release supposed to clean up some of the inconsistencies? | ||
yoleaux | El_Che: I'll pass your message to Zoffix. | ||
14:53
pmurias joined,
cog_ joined
14:54
vcv joined,
zakharyas left
14:55
zakharyas joined
14:57
mniip left,
Alikzus_ joined,
Alikzus left,
cognominal left,
simcop2387 left,
a3f_ left,
TimToady left,
El_Che left
14:58
simcop2387_ joined,
El_Che_ joined,
mniip joined,
TimToady joined,
El_Che_ is now known as El_Che,
a3f joined,
a3f left,
a3f joined,
simcop2387_ is now known as simcop2387,
simcop2387 left,
simcop2387 joined,
imcsk8_ joined,
pmurias left
14:59
webstrand left
15:00
xtreak left,
greppable6 left,
evalable6 left,
quotable6 left,
nativecallable6 left
15:01
greppable6 joined,
imcsk8 left
15:02
webstrand joined
15:04
Zoffix joined
|
|||
Zoffix | El_Che: not that I'm aware of. | 15:04 | |
El_Che: and I think the ship has sailed for many of them. Fixing all of them at this point in time would have too much impact on users. | 15:10 | ||
15:13
skids joined
|
|||
El_Che | Zoffix: I thought the versioning of the lang was to have a license to break stuff, with a compiler/implementation targetting x versions | 15:16 | |
wishful thinking, then :) | 15:17 | ||
Zoffix | El_Che: not at all what I'd call it. People wouldn't be too keen on using a language that keeps changing everything from under them all the time. Even though you can specify a language version, if you do so, it means you cannot use latest features in that file and I can't imagine latest compilers supporting ancient language versions indefinitely. More-over, the language-versioning doesn't help much with | 15:20 | |
objects and method implementations (what does a 6.c version file meant to do when it's given a 6.d Str object?) | |||
El_Che | true | 15:21 | |
Zoffix | Even with the things we *are* able to change, I'd never call it "license to break stuff", but "diminishing impact from fixing stuff" | ||
rakudo.party/post/Perl6-On-Specs-V...d-Breakage | |||
I imagine some driven person will eventually create a fork of Perl 6. It'd not have "Perl" in the name and it won't have billion methods most people won't need in core. It'd also polish all the inconsistencies before releasing the stable version (or even before releasing a publicly available version). | 15:22 | ||
And would have full tests and documentation of everything. | 15:24 | ||
AlexDaniel | well good luck to them, but I'm pretty sure we'll fix the name before that happens :) | 15:25 | |
El_Che | hehe | ||
Zoffix | + puritanical standards of development: mandatory tests, docs, and justification for all features, and consistency review for how the feature and its behaviour fits with the rest of the language. | ||
Anyway, toast is done | 15:27 | ||
buggable: toast | |||
buggable | Zoffix, Between 2018.02-1-118ga5a6c77 and 2018.02: 12 (1.21%) modules got burnt; 17 (1.72%) got unsucced; 258 (26.09%) out of 989 modules appear unusable. See toast.perl6.party/ for details. | ||
15:28
natrys joined
|
|||
AlexDaniel | did JSON::Fast fail because of the .comb change? | 15:29 | |
“The iterator of this Seq is already in use/consumed by another Seq” | |||
sounds related | |||
Zoffix | AlexDaniel: yeah, and it should already be fixed. | ||
AlexDaniel: where do you see it fail? It says "Succ" for me | 15:30 | ||
AlexDaniel | oh… | ||
toast.perl6.party/module?module=Di...18ga5a6c77 | |||
and also: toast.perl6.party/module?module=Ap...18ga5a6c77 | 15:31 | ||
Zoffix | AlexDaniel: well, the reason is that module locked their version: modules.perl6.org/dist/Dist::Helpe...6.json#L11 | ||
And App::Cpan6 is by the same author, so I bet the same is the case there. | |||
15:31
zakharyas left
|
|||
AlexDaniel | awesome | 15:31 | |
Zoffix | I wonder if the author meant those locks as "at least this version" rather than precicely this version. | 15:32 | |
15:32
st_elmo_ joined
|
|||
AlexDaniel | tyil: ↑ ping? :) | 15:32 | |
15:32
bisectable6 left,
bisectable6 joined
|
|||
AlexDaniel | but that looks better than I expected actually! | 15:32 | |
so I think we're good with the change generally | 15:33 | ||
AlexDaniel runs away for the rest of the evening | |||
15:33
zakharyas joined
|
|||
rindolf | lizmat: here? | 15:35 | |
lizmat | rindolf: yes | ||
rindolf | lizmat: i want to go for a walk | ||
lizmat | please do: I'm working on the Perl 6 weekly, and I said I'd look at the Euler question *after* I finished the Perl 6 Weekly | 15:36 | |
rindolf | lizmat: ok | ||
lizmat | which will still be at least 5 hours or so | ||
rindolf | lizmat: ah | 15:38 | |
[Coke] | FYI: news.perlfoundation.org/2018/03/jan...votes.html | 15:41 | |
lizmat | I was just about to paste that link here as well :-) | ||
Zoffix | wait, wtf... both Dist::Helper and App::Cpan6 both have dist-helper as repo URL | ||
lizmat | [Coke]: would it be difficult to put a link to the original proposals in the Grant Votes post ? | 15:42 | |
Zoffix | .tell tyil FWIW, both Dist::Helper and App::Cpan6 appear to be in the ecosystem, despite apparently App::Cpan6's repo being renamed to Dist::Helper's repo | ||
yoleaux | Zoffix: I'll pass your message to tyil. | ||
lizmat | would be helpful to those that will only see the Grant Votes post in the P6W | 15:43 | |
El_Che | rperl got a lot of rejections | ||
DrForr | A touch disapponted that my +1s for JJ's project didn't seem to get published, but it looked like it went through. | ||
JJ++ | |||
15:44
comborico1611 joined
|
|||
AlexDaniel | Oh! So JJ's work is going to be funded! | 15:44 | |
that's wonderful news! | |||
Zoffix | :) | 15:45 | |
DrForr | Yep, 5:1 1 abstention, the rest were all solid 'no's. | ||
[Coke] | lizmat: sure, I can do an update. | ||
DrForr: I didn't see any of your comments held up in moderation | 15:46 | ||
or in spam | |||
DrForr | They were as anonymous as I couldn't get the password recovery to work. | 15:47 | |
El_Che | are comments counted as votes? | ||
DrForr | And at least one was done on a tablet so f*ck knows if it actually got posted. | ||
Zoffix | El_Che: no, it's community feedback. TPF votes. | 15:48 | |
DrForr | El_Che: The committee votes, they take the comments into consideration. | ||
[Coke] | lizmat: done, will take a minute to update the cache | 15:49 | |
lizmat | [Coke]++ | ||
15:49
zakharyas left
|
|||
[Coke] | thanks for the suggestion. (I really need to script the generation of these posts.) | 15:49 | |
(not the actual posting itself, but the content) | |||
Zoffix | I'll also likely submit a TPF grant proposal for next round. Draft is here: (from last draft I posted, I bumped the amount requested slightly, based on feedback): temp.perl6.party/Constant-Rat-TPF-Grant.html | ||
[Coke] | I will note that having a dollar off the price is probably not going to help anything on the GC end. :) | 15:50 | |
but I appreciate you saving the TPF a dollar. | 15:51 | ||
Zoffix | :D | ||
[Coke] | (assuming funding, etc. I have no idea how people are going to vote on things) | ||
15:53
troys joined
|
|||
jkramer | This is weird: dpaste.com/02K9QVB | 15:54 | |
Why is it only working when it's on the same line? | |||
Zoffix | jkramer: RT#131900 | 15:55 | |
synopsebot | RT#131900 [open]: rt.perl.org/Ticket/Display.html?id=131900 [REPL] REPL loses custom operators | ||
15:55
reportable6 left,
reportable6 joined
15:56
wamba joined
|
|||
jkramer | Oh, ok | 15:56 | |
15:57
reportable6 left,
reportable6 joined,
ChanServ sets mode: +v reportable6,
quotable6 joined
15:59
reportable6 left,
reportable6 joined,
ChanServ sets mode: +v reportable6,
araujo joined
16:00
araujo left
|
|||
tyil | Zoffix: Dist::Helper is indeed the correct name, I'll drop the App::Cpan6 from PAUSE | 16:04 | |
yoleaux | 15:42Z <Zoffix> tyil: FWIW, both Dist::Helper and App::Cpan6 appear to be in the ecosystem, despite apparently App::Cpan6's repo being renamed to Dist::Helper's repo | ||
16:05
reportable6 left,
nativecallable6 joined,
ChanServ sets mode: +v nativecallable6
|
|||
tyil | also it should've been "at least this version" checks, I did ask around here a couple times for the correct notation but got no replies, and I had to at least get the versions mentioned in the META6, so I went with this for now | 16:05 | |
Zoffix | eco: Test::META | 16:07 | |
buggable | Zoffix, Test::META 'Test a distributions META file': github.com/jonathanstowe/Test-META | ||
Zoffix | hm. I thought that module had the "at least this version" specified, but I think it got removed because zef had trouble understanding them | 16:08 | |
16:08
mcmillhj left
|
|||
Zoffix | m: say v0.9.6 ~~ v0.9.6+ | 16:08 | |
camelia | True | ||
Zoffix | m: say v0.9.10 ~~ v0.9.6+ | ||
camelia | True | ||
Zoffix | Not an expert on it, but I think :ver<v0.9.6+> is how you'd specify it, but I don't know whether zef supports that, even if it were correct format | 16:09 | |
timotimo | m: say v0.9.6 ~~ v0.9.6^ | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Missing required term after infix at <tmp>:1 ------> 3say v0.9.6 ~~ v0.9.6^7⏏5<EOL> expecting any of: prefix term |
||
timotimo | m: say v0.9.6 ~~ v0.9.6~ | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Missing required term after infix at <tmp>:1 ------> 3say v0.9.6 ~~ v0.9.6~7⏏5<EOL> expecting any of: prefix term |
||
timotimo | hm, so + really is allowed there? | 16:10 | |
m: say v0.9.6 ~~ v0.9.6- | |||
camelia | 5===SORRY!5=== Error while compiling <tmp> Malformed postfix call at <tmp>:1 ------> 3say v0.9.6 ~~ v0.9.7⏏056- |
||
Zoffix | Yeah, it's part of the version spec. | ||
And * too | 16:11 | ||
m: say v0.9.10 ~~ v0.9.* | |||
camelia | True | ||
Zoffix | github.com/rakudo/rakudo/blob/mast...on.pm6#L78 (for +) and github.com/rakudo/rakudo/blob/mast...on.pm6#L40 (for *) | ||
aw :( no history due to .pm -> .pm6 rename: github.com/rakudo/rakudo/commits/m...ersion.pm6 | 16:12 | ||
16:13
releasable6 left,
releasable6 joined,
ChanServ sets mode: +v releasable6
|
|||
Zoffix | More readabable version of the version parser: github.com/rakudo/rakudo/blob/46a7...pm#L38-L60 | 16:13 | |
rindolf | hi all | 16:17 | |
Zoffix: hi | |||
Zoffix: sup? | |||
Zoffix: thanks again for your help | |||
jkramer | Is it possible to perform modifiy two LHVs at the same time with some operation? For example I'd like to do: %foo{$a, $b} += 2; (add 2 to the values of both $a and $b in that hash) | ||
I'm getting "Cannot assign to an immutable value" with that | 16:18 | ||
ZzZombo | m: say <a b c><a c> | 16:19 | |
camelia | Type List does not support associative indexing. in block <unit> at <tmp> line 1 |
||
ZzZombo | m: say %(<a b c>)<a c> | ||
camelia | Odd number of elements found where hash initializer expected: Found 3 (implicit) elements: Last element seen: "c" in block <unit> at <tmp> line 1 |
||
timotimo | jkramer: you can >>+=>> for example | 16:20 | |
jkramer | Ah nice, I keep forgetting about that synta | ||
x | 16:21 | ||
rindolf | ZzZombo: are you asleep? ;) | ||
ZzZombo | Yes, why? | ||
rindolf | ZzZombo: never knew someone who could chat on irc when sleeping | 16:22 | |
ZzZombo | You never seen someone who needs to finish work before going to bed? Wow. | ||
rindolf | ZzZombo: i did | 16:23 | |
Zoffix | m: my %foo; my $a = "meows"; my $b = "foos"; %foo{$a, $b}»++; dd %foo | 16:25 | |
camelia | Hash %foo = {:foos(1), :meows(1)} | ||
Zoffix | m: my %foo; my $a = "meows"; my $b = "foos"; %foo{$a, $b} »+=» 2; dd %foo | ||
camelia | Hash %foo = {:foos(2), :meows(2)} | ||
Zoffix | my %foo; my $a = "meows"; my $b = "foos"; %foo{$a, $b} = 2 xx 2; dd %foo | ||
m: my %foo; my $a = "meows"; my $b = "foos"; %foo{$a, $b} = 2 xx 2; dd %foo | |||
camelia | Hash %foo = {:foos(2), :meows(2)} | ||
16:26
mcmillhj joined
|
|||
Zoffix | m: my %foo; my $a = "meows"; my $b = "foos"; %foo{$a, $b}».:<++>; dd %foo | 16:28 | |
camelia | Cannot find method 'Any' on object of type List in block <unit> at <tmp> line 1 |
||
Zoffix | booo | ||
c: 2017.01 my %foo; my $a = "meows"; my $b = "foos"; %foo{$a, $b}».:<++>; dd %foo | 16:30 | ||
committable6 | Zoffix, ¦2017.01: «Cannot find method 'Any' on object of type List in block <unit> at /tmp/TDLmLNCG6V line 1 «exit code = 1»» | ||
16:31
cdg left
|
|||
Zoffix | I guess that's one case that was missed during the Great Method Hypering work | 16:31 | |
16:31
mcmillhj left,
cdg joined
16:32
mcmillhj joined
|
|||
Zoffix | m: my %foo; my $a = "meows"; my $b = "foos"; %foo{$a, $b}».&[+=](2); dd %foo | 16:36 | |
camelia | Hash %foo = {:foos(2), :meows(2)} | ||
Zoffix | m: my %foo; my $a = "meows"; my $b = "foos"; %foo{$a, $b}».&[RRRRRRRRRRRRRRRRRR+=](2); dd %foo | ||
camelia | Hash %foo = {:foos(2), :meows(2)} | ||
16:36
cdg left
|
|||
Zoffix | hehe, there're literally infinite ways to do what you want, jkramer :) | 16:37 | |
16:39
Kaiepi left
16:40
Kaiepi joined
16:42
domidumont left
16:44
Zoffix left
16:58
comborico1611 left
17:06
bisectable6 left,
bisectable6 joined
17:16
vcv left,
pharv joined
17:17
scimon left,
mcmillhj left
17:22
Kaiepi left
17:23
Kaiepi joined
17:24
khw joined
17:25
pmurias joined
17:31
domidumont joined
17:32
mcmillhj joined,
cdg joined
17:33
dakkar left
17:38
cdg left
17:44
mingdao left
17:52
pmurias left
17:57
vcv joined
17:58
pmurias joined
18:10
pharv left
18:11
pharv joined
18:12
robertle left
18:15
zakharyas joined
18:17
pharv left
18:18
pharv joined
18:34
cdg joined
18:39
cdg left,
darutoko left
18:41
Ven`` left
18:45
Ven`` joined
18:52
zakharyas left
18:57
Ven`` left
18:58
go|dfish left,
khw left
19:04
pharv left
19:05
Ven`` joined
19:06
pharv joined,
mcmillhj left
19:08
vike joined
19:09
mcmillhj joined
19:10
Ven`` left,
khw joined
19:11
wamba left,
wamba joined
19:14
mcmillhj left
19:15
Kaiepi left,
mcmillhj joined
19:16
Kaiepi joined
19:17
Ven`` joined,
reportable6 joined
19:20
comborico1611 joined
19:21
pharv left,
pharv joined
19:24
cdg joined
19:30
zakharyas joined
19:32
zakharyas left
19:34
zakharyas joined,
zakharyas left
19:42
Ven`` left
19:49
pharv left
19:51
pharv joined
19:52
domidumont left
19:55
espadrine joined
19:57
Ven`` joined
20:04
zakharyas joined
20:12
Ven`` left
20:17
Ven`` joined
20:20
pharv left,
pharv joined
|
|||
Geth | doc: 5d73d9a99c | (JJ Merelo)++ | 3 files Removing a couple of 404s Mainly related to #561 |
20:25 | |
20:26
Ven`` left
|
|||
AlexDaniel | heh, Amazon Go. Cool, cool. Except that you'd still have to go to the damn store. Outdated concept :P :P | 20:30 | |
dylanwh | Amazon Rust is safer. | 20:33 | |
20:36
wamba left
|
|||
lizmat | and another Perl 6 Weekly hits the Net: p6weekly.wordpress.com/2018/03/05/...atic-perl/ | 20:36 | |
20:37
Ven`` joined
20:42
Ven`` left,
Ven`` joined
|
|||
comborico1611 | lizmat: I've been messing around A BUNCH with the Lisp community lately, and I can tell you your weekly newsletter really adds a lot of important connectivity to the Perl 6 community. | 20:45 | |
(By comparison) | 20:46 | ||
lizmat | thank you :-) | ||
comborico1611 | You bet! | ||
El_Che | comborico1611: the Lisp community can do a weekly like that. It has side effects. | ||
comborico1611 | El_Che: Is that a joke? | 20:47 | |
El_Che | comborico1611: It can be proofed it's a joke | ||
comborico1611 | I'm still new to Lisp, so I'm not sure what people say about Lisp and so forth. | ||
:-) I'm confused, but happy. | |||
El_Che | en.wikipedia.org/wiki/Side_effect_...r_science) | 20:48 | |
dylanwh | it's a joke depending on you interpreter it. | ||
El_Che | dylanwh++ | ||
20:56
Ven`` left
|
|||
AlexDaniel | Question! How can I avoid stuff like this: github.com/perl6/whateverable/blob...p6#L51-L53 | 20:57 | |
that is, a type constraint spanning across multiple lines | |||
OK I can have a regex defined earlier or something like that, but it doesn't make things much clearer | |||
is there something like `also` but for constraints? | 20:58 | ||
20:58
zakharyas left
21:01
Ven`` joined
21:05
natrys left
21:07
Zoffix joined
|
|||
Zoffix | AlexDaniel: I'd just define a subset or a regex github.com/zoffixznet/perl6-ZofBot...er.pm6#L13 | 21:07 | |
21:08
buggable left
|
|||
Zoffix | There's no 'also' for parametets and given `returns` is on the chopping block unlikely to be | 21:08 | |
21:09
Kaiepi left
|
|||
Zoffix | or just put params one per line and stuff and make em more like attributes github.com/zoffixznet/perl6-ZofBot...er.pm6#L59 | 21:09 | |
21:11
Kaiepi joined
|
|||
AlexDaniel | hmm ok, thanks! | 21:11 | |
Zoffix | or just process the regex in the body and return $.NEXT if the event doesn't match | 21:12 | |
timotimo | stmuk: can you add wakelift.de/rss to pl6anet? | 21:13 | |
21:13
Ven`` left
21:14
vcv left,
vcv joined
|
|||
Zoffix | timotimo: you'll need to PR your feed addition to this file: github.com/stmuk/pl6anet.org/blob/...anetrc#L93 | 21:16 | |
21:16
vcv left
|
|||
timotimo | oh, cool | 21:17 | |
21:17
Zoffix left
21:21
Ven`` joined
21:26
Ven`` left
21:27
evalable6 joined
21:28
m0ltar joined
21:30
athenot left
21:34
pharv_ joined,
pharv left
|
|||
El_Che | lizmat: it's always a pleasure to read the weekly! | 21:34 | |
21:35
vcv joined
|
|||
El_Che | lizmat: you should curate all the stuff that interest me :) | 21:35 | |
21:46
vcv left
21:49
robertle joined,
pmurias left
21:50
cdg left
21:51
cdg joined,
go|dfish joined
21:55
cdg left
21:56
pmurias joined
21:59
AlexDaniel left
22:02
_28_ria joined
22:05
mcmillhj left,
sena_kun left
22:20
pmurias left
22:23
epony joined
22:24
releasable6 left,
releasable6 joined,
ChanServ sets mode: +v releasable6
22:27
pmurias_ joined
|
|||
timotimo | github.com/arangodb/linenoise-ng - this may be interesting for us | 22:27 | |
22:30
st_elmo_ left
22:32
pmurias_ left
|
|||
timotimo | i'd like a line editing library that lets me take control of the terminal at arbitrary points so i can do miscellaneous screen operations | 22:36 | |
22:37
titsuki_ joined
22:38
titsuki left,
aindilis left
22:39
pmurias joined
22:46
aindilis joined
22:48
pmurias left
|
|||
timotimo | huh, i wonder why titsuki and krunen both have a Term::termios which are almost identical, but each has only themselves in the author and authors field? | 22:49 | |
TEttinger | are they the same person? | 22:58 | |
timotimo | i don't think so | 22:59 | |
23:05
lichtkind left
|
|||
titsuki_ | timotime: Should I delete mine ASAP? I received an answer that there are no problem if there are two modules that have the same name but have the different authors. | 23:08 | |
TEttinger | maybe only delete yours if they're identical? if yours is bugfree but the other isn't, yours should stay for sure | 23:10 | |
23:11
Ven`` joined
|
|||
timotimo | no problem to keep it; users can disambiguate by the :auth anyway, it's just confusing :) | 23:11 | |
i'd prefer one on cpan over one on github+ecosystem, fwiw | |||
titsuki_ | timotime: OK, I see. But I'll delete mine sometime soon. | 23:13 | |
timotimo | but yours is the one on cpan :D | 23:14 | |
m: say 5.7 / 7.15 | 23:15 | ||
camelia | 0.797203 | ||
timotimo | zoffix, you can make it about 20% faster by making the \Token parameter required - that prevented the jit from jitting that frame. | ||
23:17
lichtkind joined,
Zoffix joined
|
|||
Zoffix | timotimo: well, wow! With that change I get it nearly 50% faster. 18s vs P5's 17s | 23:18 | |
timotimo | oh my | ||
Zoffix | timotimo: so JIT can't jit anything with optional params? Should we look through core code and see if anything could have optionals eliminated? Also, how did you figure out that that wasn't being jitted? | ||
timotimo | first i ran it with --profile to see that calc_S, which was at the top of the routines list by "exclusive time", was 100% red on the right side | 23:19 | |
then i used MVM_JIT_LOG to find the line that starts with "BAIL:" after the line that has "calc_S" in it | |||
Zoffix | m: say 33.298/18.634 | ||
camelia | 1.786949 | 23:20 | |
Zoffix | Yeah, changing Token to mandatory param makes the program 78% faster | ||
timotimo | it was param_op_o, which is "get a parameter that's optional, positional, and object typed" | ||
you probably got a better improvement because i used a much smaller workload | |||
jnthn | Most of the time, optional parameter ops are rewritten and never make it do the JIT | 23:21 | |
So something must have blocked that rewriting | |||
timotimo | potentially OSR-related | 23:22 | |
because calc_S was only called a single time and relied on OSR to get jitted at all | |||
Zoffix | I don't see calc_S line at all in jit log | 23:23 | |
timotimo | somehow p6box_I comes out at 14.5% inclusive time in a perf report | ||
Constructing JIT graph (cuuid: 1, name: 'calc_S') | |||
this is what it ought to look like | |||
Zoffix | $ G calc_S j.log | ||
2018.02.1 zoffix@VirtualBox~/R/rakudo (master)$ | |||
timotimo | that's strange, can you send the jitlog file and maybe the shell history over? | 23:24 | |
Zoffix | Ah, I don't have debug options in moarvm. Does that matter? | ||
timotimo | shouldn't matter | ||
the --debug option in moarvm's Configure.pl just instructs C compiler and linker to keep debug symbols around, i.e. which memory locations in the binary correspond to what functions and variables and such | |||
it's important for debugging with gdb | 23:25 | ||
Zoffix | timotimo: wget temp.perl6.party/j.log; and I made it with `MVM_JIT_LOG=j.log ./perl6 ../z.p6 > /dev/null` where `./perl6` is 2018.02.1-118-ga5a6c7786 built on MoarVM version 2018.02-27-g760b0913e and ../z.p6 is gist.github.com/zoffixznet/3e3d31a...fe59704470 | 23:27 | |
Zoffix chuckles at `686320:BAIL: op <setmethcache>` | |||
timotimo | that's certainly interesting | ||
Zoffix | ZofBot: where'd you put the meth cache? | 23:28 | |
ZofBot | Zoffix, And he said, “Yes, it’s the -to- | ||
23:28
Ven`` left
|
|||
timotimo | why it doesn't show up at all ... no clue :( | 23:29 | |
but now it's fast, so ... :) | |||
Zoffix | It shows up if I also set MVM_SPESH_BLOCKING=1; maybe program exits before it get a chance to write that out? | 23:30 | |
mhm, if I add `sleep 2` at the end of the program, it shows up even without SPESH_BLOCKING | 23:31 | ||
timotimo | a speshlog would tell us if it got to specialize it before it quit | ||
it shouldn't take long enough to spesh that so that it could fail to install :o | |||
Zoffix | Maybe it installs but quits before writing to the file? It's like a 20MB file | 23:32 | |
timotimo | oh, that could be, yeah | 23:33 | |
so, if we had an op that turns a native int into a str without going via Int, that'd make this thing faster | 23:34 | ||
at least i think so | |||
Zoffix | nice | ||
timotimo | nope, barely a difference at all | 23:35 | |
23:35
cdg joined
|
|||
Zoffix | :) | 23:35 | |
timotimo | what allocates all these Int objects ... | ||
7757486 Int objects | |||
Zoffix | I got `nqp::say(nqp::concat(nqp::tostr_I(nqp::box_i(Token, Int)), | 23:36 | |
nqp::concat(' ', nqp::tostr_I(nqp::box_i($ip, Int))))), | |||
there. Could that be it? | |||
timotimo | i commented that out and it still allocates that much | ||
Zoffix | m: say 18.287/17.735 | 23:37 | |
camelia | 1.031125 | ||
timotimo | it's barely a difference at all | ||
Zoffix | .tell rindolf I got P6(NQP) version fast enough to be to just 3% slower than P5: gist.github.com/zoffixznet/6082e29...4d7426791c | ||
yoleaux | Zoffix: I'll pass your message to rindolf. | ||
timotimo | not getting line numbers because nqp code :S | 23:38 | |
rindolf | Zoffix: hi | ||
yoleaux | 23:37Z <Zoffix> rindolf: I got P6(NQP) version fast enough to be to just 3% slower than P5: gist.github.com/zoffixznet/6082e29...4d7426791c | ||
23:39
cdg left
|
|||
Zoffix | And 2s is what it takes to compiler it, so I'd say my original challenge completed: I got P5 beat (despite the final result being NQP soup appreciated by few:P) | 23:39 | |
s/compile <( r// | 23:40 | ||
m: use nqp; my int $x = 42; for ^10 { say nqp:add_i($x, 1) } | 23:41 | ||
camelia | ===SORRY!=== Lexical with name '$x' has wrong type |
||
Zoffix | why u say dat? | ||
oh right, nqp int != P6 native int | 23:42 | ||
right? | |||
timotimo | no, that should be compatible | ||
Zoffix | Ah lol | 23:43 | |
m: say 'nqp:add_i'.comb(':').elems | |||
timotimo | um yo | ||
camelia | 1 | ||
timotimo | check what happens when you turn $ii into int, too | ||
Zoffix | damn, I thought it were an int alread y:o | 23:44 | |
timotimo | it may surprise you | ||
Zoffix | Woooohoo! | ||
Actually, this is what I originally was expecting when I started on this journey :) 'cause that other program I rewrote in NQP was a bunch faster than P5 | 23:45 | ||
m: say 17.735/7.168 | |||
camelia | 2.474191 | ||
timotimo | that's more like it. | 23:46 | |
Zoffix | rindolf: timotimo++ made the program 2.5x FASTER than Perl 5 :D gist.github.com/zoffixznet/4df7a30...fb65bbb0a4 | ||
timotimo | can you measure with MVM_JIT_EXPR_DISABLE=yes ? | ||
Zoffix | 0m6.904s | 23:47 | |
timotimo | so a bit faster, yeah? | ||
Zoffix | Yeah | ||
timotimo | how stable is that measurement? | ||
23:47
vike left
|
|||
Zoffix | 0m6.813s 0m6.976s 0m6.874s | 23:47 | |
timotimo | OK | ||
well, brrt has lots of ideas for making the exprjit smarter :) | 23:48 | ||
Zoffix | Sweet :) | ||
timotimo | with $fkE at 25, the program runs the GC a single time | 23:50 | |
rindolf | Zoffix: nice | 23:51 | |
23:54
pierre joined
|
|||
timotimo | given ~2 seconds of that are parsing the code - no doubt because of the huge array of primes at the start - it's pretty good | 23:56 | |
23:59
pierre left
|