»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend!
Set by sorear on 4 February 2011.
00:02 fgomez left 00:05 aloha left 00:06 aloha joined 00:07 cognominal joined
dalek rl6-roast-data: 3301233 | coke++ | / (2 files):
today (automated commit)
00:07
rl6-roast-data: bbb17a8 | coke++ | / (2 files):
today (automated commit)
00:41 pecastro left 00:42 sixpairsoffeet joined 00:44 pecastro joined
lichtkind good night 00:44
diakopter o/
00:48 sixpairsoffeet left, pecastro left 00:50 pecastro joined
lichtkind good night 01:00
:)
01:00 lichtkind left 01:09 fgomez joined 01:10 anuby joined 01:17 cognominal_ joined 01:19 cognominal left 01:20 hypolin joined 01:22 japhb_ joined
japhb_ A performance weirdness in Rakudo: 'for ^100 X ^100 -> $i, $j { $i + $j }' takes >56x as long as 'for ^100 -> $i { for ^100 -> $j { $i + $j } }' (In niecza, the difference is around 1.45x.) 01:25
jnthn: ^^
diakopter japhb_: what about for ^10000 in the outside and nothing on the inside 01:26
wait, what's X again 01:27
dalek rl6-bench: 99da16f | (Geoffrey Broadwell)++ | bench:
Pull after fetching; for now, this DWIM, but will probably need to be readdressed later. Also, simply splitting into loops is not trouncing Rakudo bug #115390. :-(
rl6-bench: 846839e | (Geoffrey Broadwell)++ | microbenchmarks.pl:
Add more microbenchmarks, this time for multiple ways to visit all indices for a 2D array
01:28 pecastro left, pecastro joined
japhb diakopter, it's not so much X again as not looping over multiple indices. 01:28
Though if you're curious about just hitting the loop body that many times ... 01:29
diakopter what's X again
permute?
japhb_ Oh, sorry, I thought you said "that's X again" :-) 01:30
cartesian (AKA cross) product
time perl6 -e 'for ^100 X ^100 -> $i, $j { }' ==> ~20s 01:31
time perl6 -e 'for ^10000 -> $i { }' ==> ~1s
diakopter _._.
r: my @a = ^100; for (@a X @a) -> $i, $j { }; say 'alive' 01:36
01:36 dayangkun joined
p6eval rakudo 53daef: OUTPUT«alive␤» 01:36
diakopter japhb_: what's that on your machine
japhb_ ~14s 01:37
diakopter hm 01:38
01:41 pecastro left
diakopter the compiler could detect the constant-ness of the sequence and inline a loop 01:41
japhb The thing is, it really doesn't seem like X should be *that* much slower than just a double loop. 01:43
japhb_ (And in niecza, it's really not.) 01:44
01:50 dayangkun left
japhb diakopter, also, circling back on the concat v. push/join question: push/join is much faster in niecza, and much slower in Rakudo. 01:52
diakopter :S 01:53
japhb Yeah, don't I know it.
02:18 hypolin left 02:19 FROGGS__ joined 02:22 hypolin joined, colomon left, FROGGS_ left, colomon joined 02:24 colomon_ joined, colomon left, colomon_ is now known as colomon
sorear #116026 is kind of sad 02:26
diakopter the say line? 02:27
or everything? :)
sorear no, the "I don't know about Str.flip" part and the "I'm patching one implementation when I really want to patch the spec" part
diakopter sees subname(|) for the first time 02:30
02:42 tokuhiro_ left 02:50 hash_table joined, whiteknight left
colomon sorear: aye 02:56
03:04 noggle_ joined 03:06 noggle left 03:09 hash_table left 03:11 am0c joined, wamba left 03:36 kurahaupo left 03:42 sftp left 04:03 noggle_ left 04:11 noggle joined 04:13 fgomez left 04:14 Chillance joined 04:40 Patterner left
japhb How do you set the maximum recursion depth in NQP (and Rakudo and Niecza, for that matter), and what are the default values? 04:41
04:42 Psyche^ joined, Psyche^ is now known as Patterner
japhb NQP fails man-or-boy-test 10 (and passes 9) because of a low maximum recursion depth 04:42
sorear niecza does not have a maximum recursion depth; I keep meaning to fix this 04:44
dalek rl6-bench: 7cf00e5 | (Geoffrey Broadwell)++ | timeall:
Minor whitespace tweak to ease visual comparison
rl6-bench: ee77445 | (Geoffrey Broadwell)++ | / (4 files):
Add rc-man-or-boy-test
japhb sorear, Ah, interesting
sorear japhb: infinite recursion on niecza will allocate activation frames continuously until all ram and swap is used up 04:45
a "deep recursion" error would be much more user-friendly 04:46
japhb Sure, of course
sorear I think you can do pir::getinterp__p().some_method(100000) 04:47
but I forget the details
japhb FWIW, man-or-boy 9, ignoring startup: nqp: .112s/1.000x rakudo: .267s/2.380x niecza: 1.055s/9.411x
(Using the version of the rc-man-or-boy-test files that I just committed)
japhb wanders off for a while ... will backlog 04:48
05:30 telex left 05:35 telex joined 05:44 xinming_ joined 05:47 xinming left 06:03 Chillance left 06:09 SamuraiJack joined 06:10 fgomez joined 06:20 kurahaupo joined 06:21 Kharec joined 06:22 glass joined 06:49 birdwindupbird joined 06:52 quester joined 06:56 wamba joined 07:16 ggoebel_ left 07:29 kaleem joined 07:33 glass left 07:36 glass joined 07:54 glass left, glass joined, glass left
FROGGS__ morning 08:03
08:03 FROGGS__ is now known as FROGGS
dalek ast: ac01495 | moritz++ | integration/99problems- (3 files):
correct some tests in light of lazy "for"
08:14
08:14 rindolf joined
rindolf Hi all. 08:16
moritz hi rindolf.
FROGGS hi rindolf
rindolf moritz, FROGGS : what's up?
FROGGS well, coffee and a bit $work, thats all 08:17
moritz work, and sink context 08:20
jnthn morning, #perl6 08:21
FROGGS morning jnthn
jnthn Snow. We haz it. :)
FROGGS we have it for days... already built a snowman with my kids 08:22
moritz yesterday we went sledging with $daughter for the first time
jnthn :D
FROGGS 'twas a shame that we had no carrot :/ 08:23
jnthn Sledging...that was a fun thing to do as a kid :)
moritz Ronja quite liked it :-) 08:24
jnthn hm, that "make uniq faster" patch also makes it unlazy... 08:25
FROGGS well, it's still fun
moritz jnthn: aye 08:26
jnthn Though I suspect it can be made faster while still retainign laziness
moritz jnthn: though maybe using grep instead of gather/take would both speed it up and keep it lazy
jnthn also...it should be using an object hash
tadzik 0925 jnthn | hm, that "make uniq faster" patch also makes it unlazy...
0925 FROGGS | well, it's still fun
heh
jnthn :D
tadzik good morning, #perl6 :)
moritz \o tadzik
jnthn hi tadzik
tadzik Finally, Monday!
-- said no one ever
jnthn Worse, at this time of year it's dark outside when you're meant to get up 08:27
tadzik yeah, the worst part of the year, when you only see the sun through the office window 08:28
FROGGS morning tadzik
tadzik waking up, dark. Getting back home, dark
hi FROGGS
FROGGS ya, dark-- 08:29
08:29 pecastro joined
sorear morning folks 08:29
FROGGS morning sorear
wow, getting full here
sorear is somebody going to respond to #116026? it's too depressing for me 08:30
FROGGS: full in what sense?
FROGGS gets some more chairs
many ppl
sorear #perl6?
jnthn sorear: Hey, don't flip out... :P
FROGGS many talking ppl to be more specific
jnthn sorear: I will this evening if nobody beats me to it.
moritz sorear: I've already replied, and rejected the ticket d 08:31
jnthn moritz++
moritz nr: say try { die "foo" }
p6eval niecza v24-5-g599cbcb: OUTPUT«Any()␤»
..rakudo 53daef: OUTPUT«foo␤ in block at /tmp/YOjTt0XJQX:1␤␤»
rindolf jnthn: morning.
moritz jnthn: how do I change try to return Nil (or Any) instead of the exception on failure?
sorear moritz: your reply never reached p6c 08:32
moritz sorear: that's unfortunate
7 remaining failing test files in qast-sink-1 08:33
jnthn moritz: Something in statement_thingy:sym<try> 08:34
I think in the CATCH part of the handle node in there 08:35
08:37 cognominal_ left, am0c left
moritz I'll try 08:37
hoelzro hey Perl 6 folk 08:38
FROGGS hi hoelzro 08:39
hoelzro I was reading the compiler overview in the the rakudo tree, and I found a reference to use.perl.org/~JonathanWorthington/journal/39772
afaik, use.perl.org is no longer up, yes?
because a) the URL should probably be moved to another copy of that article, and b) I'd really like to read that article =) 08:41
moritz iirc there's a way to mnagle the URL to still work, and recover the article that way 08:42
but I can't remember how :(
hoelzro curses 08:43
there really should be a no-brainer mirror to that content, though
cedrvint hoelzro: use.perl.org/use.perl.org/_Jonathan...39772.html
hoelzro cedrvint: thanks!
arnsholt Greetings from Mumbai! o/ 08:44
jnthn o/ arnsholt 08:46
08:46 pecastro left
jnthn Bet you don't have snow there :P 08:46
arnsholt Thankfully! 08:47
08:47 cognominal_ joined 08:52 sisar joined
moritz jnthn: it's not that easy, it seems (returning Nil from try) 08:54
08:57 noggle left 09:01 [particle]1 left 09:02 [particle] joined 09:12 noggle joined
moritz oh, I think it is, I was just too dumb :-) 09:15
appending a value to a Past::Stmts doesn't change the return value if :resultchild(0) is present :-) 09:16
09:17 kaleem left 09:18 quester left 09:30 fhelmberger joined
dalek kudo/qast-origin-1: f5a8f2b | moritz++ | src/core/traits.pm:
fix "handles"

this actually points to a bug in sinking some statements which needs to be tracked down separately
09:31
kudo/qast-origin-1: 9831e45 | moritz++ | src/Perl6/Actions.pm:
return Nil from a try when an error was thrown
jnthn That must get us down to very few failures? 09:33
dalek ast: 42d1a93 | moritz++ | S29-context/die.t:
[die.t] do not return a lazy list that dies when we really want to die right away
09:34
09:34 wamba left
moritz jnthn: curiously enough the return value from try wasn't the problem 09:34
(sunk exceptions generally aren't, just sunk Failures)
the code was more like
is try { map { die }, 1, 2, 3}, .... 09:35
jnthn ah
moritz so the lazy list passed through the try
and then died outside of it
this will surprise people.
jnthn yeah
moritz runs another spectest
jnthn A few things about sink context will.
moritz down to 6 failing test files 09:41
hoelzro total? 09:42
moritz what total?
seems I haven't quite fixed delegation after all :(
hoelzro 6 failing tests in total?
moritz 6 failing test files in total 09:43
hoelzro is that just in the Rakudo tree, or roast too?
moritz just roast
I haven't checked the local tests yet
I always forget about those :-)
hoelzro ;)
moritz: is that with fudging off?
moritz hoelzro: no 09:44
hoelzro ah =(
I was about to freak out at how close you were =)
felher jnthn++ # I didn't know that you can put one heredoc after another, and even call different methods on them. :) 09:45
jnthn :) 09:47
moritz hoelzro: this is about a branch reaching the same readiness as our main branch 09:48
jnthn moritz: It would be a near miracle to pass almost all of spectest with failing make test ;)
hoelzro moritz: \o/ which branch?
macros?
moritz hoelzro: qast-sink-q
erm
qast-sink-1
hoelzro ah ha
09:51 noggle left 09:57 kurahaupo left, noggle joined 10:02 dakkar joined 10:06 hypolin left 10:07 Kharec left 10:14 wamba joined 10:17 Kharec joined 10:21 SmokeMachine joined, SmokeMachine left, SmokeMachine joined 10:26 baest_ joined, SmokeMachine left, immortal joined, immortal left, immortal joined
moritz r: say do given 42 { when Int { 23 } } 10:27
p6eval rakudo 53daef: OUTPUT«23␤»
10:27 wooden_ joined, wooden_ left, wooden_ joined 10:29 mikemol_ joined, breinbaa1 joined, huf_ joined, cxreg2 joined, PerlPilot joined
dalek ast: 4677a6f | moritz++ | S04-phasers/next.t:
make S04-phasers/next.t robuster wrt laziness
10:32
10:33 Some-body_ joined 10:34 wamba left, countley left, erkan left, wooden left, mikemol left, cxreg left, Some-body_ is now known as DarthGandalf 10:35 [particle] left 10:36 [particle] joined 10:40 BinGOs joined 10:42 wamba joined 10:48 sisar left 10:49 BinGOs left, BinGOs joined
dalek kudo/qast-origin-1: c02d13a | moritz++ | src/core/ (2 files):
fix more built-ins to deal with sink context
10:50
moritz jnthn: a tricky one remains: the CATCH block isn't evaluated in sink context
oh, just tricky because I'm loooking at the wrong piece of code 10:51
10:51 baest_ is now known as baest
moritz tries another approach 10:51
10:52 xenoterracide left 10:57 SmokeMachine joined
moritz I guess set_block_handler needs a :sink option or so 10:57
jnthn When do we not want it to sink? 10:58
10:58 SmokeMachine left
moritz good question 10:59
are there any handlers that modify the return value?
moritz tries perl6_invoke_catchhandler__vPP, starts a spectest run and departs for lunch& 11:01
11:01 BinGOs_ joined 11:04 BinGOs left, BinGOs_ is now known as BinGOs, SmokeMachine joined 11:05 BinGOs left, BinGOs joined, Su-Shee_ joined
grondilu rn: given "foo" { s/foo/bar; .say } # testing if 'given' affects $_ as rw 11:08
p6eval rakudo 53daef: OUTPUT«===SORRY!===␤Malformed replacement part; couldn't find final $stop␤at /tmp/CttKUcAxSs:1␤------> } # testing if 'given' affects $_ as rw⏏<EOL>␤»
..niecza v24-5-g599cbcb: OUTPUT«===SORRY!===␤␤Malformed replacement part; couldn't find final / at /tmp/0fOC3R2dOx line 1:␤------> given "foo" { s/foo/⏏bar; .say } # testing if 'given' affect␤␤Parse failed␤␤»
grondilu rn: given "foo" { s/foo/bar/; .say } # testing if 'given' affects $_ as rw
p6eval rakudo 53daef: OUTPUT«Cannot assign to a non-container␤ in sub infix:<=> at src/gen/CORE.setting:11971␤ in block at /tmp/TT1mgWqMgy:1␤␤»
..niecza v24-5-g599cbcb: OUTPUT«Unhandled exception: Writing to readonly scalar␤ at /home/p6eval/niecza/lib/CORE.setting line 593 (Cool.subst @ 88) ␤ at /tmp/ar_B1uaR6W line 1 (ANON @ 4) ␤ at /tmp/ar_B1uaR6W line 1 (mainline @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4208 (AN…
11:09 Su-Shee left
grondilu do I have to write '$_ = "foo"; ..." if I want to modify $_ ? 11:10
Ulti r: "foo"; say $_; 11:13
p6eval rakudo 53daef: OUTPUT«Any()␤»
Ulti :/
11:16 anuby left, amkrankruleuen joined
moritz grondilu: yes 11:36
or anything else that creates a variable
r: givem my $ = 'abc' { s/a/A/; .say }
p6eval rakudo 53daef: OUTPUT«===SORRY!===␤Confused␤at /tmp/bShMMK8KWC:1␤------> givem my $ = 'abc' ⏏{ s/a/A/; .say }␤»
moritz r: givem (my $ = 'abc') { s/a/A/; .say }
p6eval rakudo 53daef: OUTPUT«===SORRY!===␤Confused␤at /tmp/Ll53FOy9pf:1␤------> givem (my $ = 'abc') ⏏{ s/a/A/; .say }␤»
moritz r: given my $ = 'abc' { s/a/A/; .say } 11:37
p6eval rakudo 53daef: OUTPUT«Abc␤»
moritz helps if I spell 'given' correctly :-)
11:41 tokuhiro_ joined 11:42 noggle left 11:45 tokuhiro_ left 11:49 FROGGS left, GlitchMr joined 11:53 amkrankr1leuen joined 11:54 sftp joined 11:56 amkrankruleuen left 11:59 amkrankr1leuen is now known as amkrankruleuen, amkrankruleuen left, amkrankruleuen joined 12:08 amkrankruleuen left
jnthn r: given "foo" -> $_ is copy { s/o/O/; .say } 12:08
p6eval rakudo 53daef: OUTPUT«fOo␤»
grondilu 'given my $ = Whatever {...}' will do, I guess 12:09
12:15 cognominal_ left
dalek kudo/qast-sink-1: f5a8f2b | moritz++ | src/core/traits.pm:
fix "handles"

this actually points to a bug in sinking some statements which needs to be tracked down separately
12:15
kudo/qast-sink-1: 9831e45 | moritz++ | src/Perl6/Actions.pm:
return Nil from a try when an error was thrown
kudo/qast-sink-1: c02d13a | moritz++ | src/core/ (2 files):
fix more built-ins to deal with sink context
moritz I accidentally pushed to the wrong branch before; sorry for duplicate commits 12:16
12:22 cognominal_ joined
timotimo forces emself to do more perl6 12:39
12:41 cognominal_ left
timotimo currently trying to make a histogram of characters in a string 12:43
classify seemed the way to go, but the result was kind of ugly
moritz how so? 12:44
12:45 cognominal joined
moritz r: say 'this is a longish string'.comb.classify({; $_ => 1 } ).pairs.map({; .key => .value.elems }).perl 12:45
p6eval rakudo 53daef: OUTPUT«("t\t1" => 2, "h\t1" => 2, "i\t1" => 4, "s\t1" => 4, " \t1" => 4, "a\t1" => 1, "l\t1" => 1, "o\t1" => 1, "n\t1" => 2, "g\t1" => 2, "r\t1" => 1).list␤»
timotimo that's a bit prettier than mine:
"8438947349873498574398".comb.classify({$_}).map: { $^a.key => +$^a.value }
r: "8438947349873498574398".comb.classify({$_}).map: { $^a.key => +$^a.value }
p6eval rakudo 53daef: ( no output )
timotimo r: "8438947349873498574398".comb.classify({$_}).map: { $^a.key => +$^a.value }.perl.say
p6eval rakudo 53daef: OUTPUT«Block.new()␤»
timotimo oh, whoops :) 12:46
r: "8438947349873498574398".comb.classify({$_}).map({ $^a.key => +$^a.value }).perl.say
p6eval rakudo 53daef: OUTPUT«("8" => 5, "4" => 5, "3" => 4, "9" => 4, "7" => 3, "5" => 1).list␤»
moritz actually yours works :-)
though of course you can just use a hash and ++ each element per character
timotimo what's the ; for in your map block? forces it to be a block rather than being evaluated on the spot?
i tried that as a second option 12:47
moritz right
timotimo r: "8438947349873498574398".comb.map({$_ => ++(state %a){$_}}).perl
p6eval rakudo 53daef: ( no output )
timotimo but didn't quite know how to get the %a out of there afterwards
r: "8438947349873498574398".comb.map({$_ => ++(state %a){$_}}).perl.say
p6eval rakudo 53daef: OUTPUT«("8" => 1, "4" => 1, "3" => 1, "8" => 2, "9" => 1, "4" => 2, "7" => 1, "3" => 2, "4" => 3, "9" => 2, "8" => 3, "7" => 2, "3" => 3, "4" => 4, "9" => 3, "8" => 4, "5" => 1, "7" => 3, "4" => 5, "3" => 4, "9" => 4, "8" => 5).list␤»
timotimo currently it's like a triangle reduce
except in a triangle reduce i could get out the last result and that would be the one i would want - in this case if i try that i get one pair rather than a complete hash 12:48
moritz r: my %count; ++%count{$_} for '8438947349873498574398'.comb; say %count.perl 12:49
p6eval rakudo 53daef: OUTPUT«("8" => 5, "4" => 5, "3" => 4, "9" => 4, "7" => 3, "5" => 1).hash␤»
timotimo that's not a true one-liner :D
moritz good old imperative, easy-to-get-right code
timotimo i've got a very silly idea that i'm going to try involving horrible abuse of hyperops
moritz r: say (do {my %count; ++%count{$_} for '8438947349873498574398'.comb; }).perl
p6eval rakudo 53daef: OUTPUT«(1, 1, 1, 2, 1, 2, 1, 2, 3, 2, 3, 2, 3, 4, 3, 4, 1, 3, 5, 4, 4, 5).list␤»
moritz r: say (do {my %count; ++%count{$_} for '8438947349873498574398'.comb; }; %count).perl 12:50
p6eval rakudo 53daef: OUTPUT«===SORRY!===␤Variable %count is not declared␤at /tmp/7BKW7Xa2AT:1␤------> '8438947349873498574398'.comb; }; %count⏏).perl␤»
moritz r: say (do {my %count; ++%count{$_} for '8438947349873498574398'.comb; %count}).perl
p6eval rakudo 53daef: OUTPUT«("8" => 5, "4" => 5, "3" => 4, "9" => 4, "7" => 3, "5" => 1).hash␤»
moritz there you go.
timotimo so "do" is actually short for "do_it_in_one_statement"?
moritz "do" means "turn this statement or expression into an expression, and call it if it's a block" 12:52
timotimo how come this works: 12:57
r: ("8438947349873498574398".comb »Z=>» (1,)).perl.say
p6eval rakudo 53daef: OUTPUT«("8" => 1, "4" => 1, "3" => 1, "8" => 1, "9" => 1, "4" => 1, "7" => 1, "3" => 1, "4" => 1, "9" => 1, "8" => 1, "7" => 1, "3" => 1, "4" => 1, "9" => 1, "8" => 1, "5" => 1, "7" => 1, "4" => 1, "3" => 1, "9" => 1, "8" => 1).list␤»
timotimo but this doesn't:
r: ("8438947349873498574398".comb »Z=>» ((state %h),)).perl 12:58
p6eval rakudo 53daef: OUTPUT«(timeout)»
moritz I wouldn't call the first one "working"
timotimo 1 is just a dummy value in this case 12:59
i want to try to have the same hash as the value for each of the keys in the resulting list
moritz anyway, I don't even see what the second one is supposed to do
timotimo so ("8" => %h, "4" => %h, ...).list
moritz but you don't ever change %h
timotimo not yet :)
moritz ah
r: say ("8438947349873498574398".comb X=> ((state %h),)).perl 13:00
p6eval rakudo 53daef: OUTPUT«().list␤»
moritz r: say ("8438947349873498574398".comb X=> (state %h).item).perl
p6eval rakudo 53daef: OUTPUT«().list␤»
timotimo is it because %h is empty and the X op tries to unpack it?
moritz I think so, yes
r: say ("8438947349873498574398".comb X=> {}).perl
p6eval rakudo 53daef: OUTPUT«().list␤»
moritz r: say ("8438947349873498574398".comb X=> Any).perl
p6eval rakudo 53daef: OUTPUT«("8" => Any, "4" => Any, "3" => Any, "8" => Any, "9" => Any, "4" => Any, "7" => Any, "3" => Any, "4" => Any, "9" => Any, "8" => Any, "7" => Any, "3" => Any, "4" => Any, "9" => Any, "8" => Any, "5" => Any, "7" => Any, "4" => Any, "3" => Any, "9" => Any, "8" => Any).…
moritz it probably should respect its itemness, but doesn't 13:01
timotimo mhm
moritz r: say ("8438947349873498574398".comb X=> []).perl
p6eval rakudo 53daef: OUTPUT«().list␤»
moritz same problem here
timotimo i think i've got a workaround
now to figure out which way i want the dwim to point 13:02
oh, X=> solves it nicer than Z=> + dwim
r: ("8438947349873498574398".comb X=> ((state %h,).tree)).perl.say
p6eval rakudo 53daef: OUTPUT«("8" => {}, "4" => {}, "3" => {}, "8" => {}, "9" => {}, "4" => {}, "7" => {}, "3" => {}, "4" => {}, "9" => {}, "8" => {}, "7" => {}, "3" => {}, "4" => {}, "9" => {}, "8" => {}, "5" => {}, "7" => {}, "4" => {}, "3" => {}, "9" => {}, "8" => {}).list␤»
timotimo r: ("8438947349873498574398".comb X=> ((state %h,).tree)).map({.value{.key}++; .value}).perl.say # i think this gives me a list of the hash multiple times 13:04
p6eval rakudo 53daef: OUTPUT«({"8" => 5, "4" => 5, "3" => 4, "9" => 4, "7" => 3, "5" => 1}, {"8" => 5, "4" => 5, "3" => 4, "9" => 4, "7" => 3, "5" => 1}, {"8" => 5, "4" => 5, "3" => 4, "9" => 4, "7" => 3, "5" => 1}, {"8" => 5, "4" => 5, "3" => 4, "9" => 4, "7" => 3, "5" => 1}, {"8" => 5, "4" =…
timotimo r: ("8438947349873498574398".comb X=> ((state %h,).tree)).map({.value{.key}++; .value})[*-1] 13:05
p6eval rakudo 53daef: ( no output )
timotimo r: ("8438947349873498574398".comb X=> ((state %h,).tree)).map({.value{.key}++; .value})[*-1].perl.say
p6eval rakudo 53daef: OUTPUT«{"8" => 5, "4" => 5, "3" => 4, "9" => 4, "7" => 3, "5" => 1}␤»
timotimo what i don't understand yet is this:
r: ("8438947349873498574398".comb X=> ((state %h,).tree)).map({.value{.key}++; .value})[0].perl.say
p6eval rakudo 53daef: OUTPUT«{"8" => 1}␤»
moritz r: my %a = a => 1, b => 2; say %a[0] 13:06
p6eval rakudo 53daef: OUTPUT«("a" => 1, "b" => 2).hash␤»
moritz r: my %a = a => 1, b => 2; say %a[1]
p6eval rakudo 53daef: OUTPUT«Index out of range. Is: 1, should be in 0..0␤ in method gist at src/gen/CORE.setting:10189␤ in sub say at src/gen/CORE.setting:7474␤ in block at /tmp/pkT761oYpB:1␤␤»
moritz r: my %a = a => 1, b => 2; say %a.list[0]
p6eval rakudo 53daef: OUTPUT«"a" => 1␤»
moritz I guess something in there flattens
timotimo that could be, yes 13:07
13:11 [particle] left 13:12 [particle] joined
timotimo r: ("8438947349873498574398".comb X=> ((state %h,).tree)).map({.value{.key}++; .value}).hash[0].perl.say 13:13
p6eval rakudo 53daef: OUTPUT«("8" => 5, "4" => 5, "3" => 4, "9" => 4, "7" => 3, "5" => 1).hash␤»
timotimo that doesn't make sense to me, either.
the community of perl6 could initiate the Unintentional Code Obfuscation Contest 2013 :D 13:16
(not saying this task couldn't be done in a very transparent, readable and obvious way, because i'm sure it can. with ease, too)
13:16 SamuraiJack_ joined 13:17 SamuraiJack left
timotimo moritz: so, was the thing where Z=> or X=> wouldn't respect the itemness even if .item was called, a rakudobug? i'll check what niecza has to say. 13:18
n: say ("8438947349873498574398".comb X=> (state %h).item).perl
p6eval niecza v24-5-g599cbcb: OUTPUT«Potential difficulties:␤ %h is declared but not used at /tmp/pS34JeHBKf line 1:␤------> 8438947349873498574398".comb X=> (state ⏏%h).item).perl␤␤("8" => {}, "4" => {}, "3" => {}, "8" => {}, "9" => {}, "4" => {}, "7" => {}, "3" => {}, "4"…
timotimo there we have our answer, i guess! 13:19
rn: say ("8438947349873498574398".comb X=> (state %h,)).perl
p6eval rakudo 53daef: OUTPUT«().list␤»
..niecza v24-5-g599cbcb: OUTPUT«Potential difficulties:␤ %h is declared but not used at /tmp/6PcVs5UQVr line 1:␤------> 8438947349873498574398".comb X=> (state ⏏%h,)).perl␤␤().list␤»
moritz timotimo: yes, it's a bug
timotimo would you like to file it?
moritz I can 13:20
nr: say <a b> X=> [];
p6eval niecza v24-5-g599cbcb: OUTPUT«"a" => [] "b" => []␤»
..rakudo 53daef: OUTPUT«␤»
moritz (just a minimal test case for the ticket) 13:21
timotimo only if you have time left over that you don't know what to do with :P
13:21 kivutar joined
timotimo otherwise i can do it 13:21
moritz nr: say <a b> Z=> [];
p6eval niecza v24-5-g599cbcb: OUTPUT«"a" => []␤»
..rakudo 53daef: OUTPUT«␤»
moritz submitted. 13:23
timotimo thank you
pugs: say <a b> Z=> [];
p6eval pugs: OUTPUT«*** ␤ Unexpected ">"␤ at /tmp/WDCS9Ud0v7 line 1, column 13␤»
13:23 SamuraiJack_ left
moritz Z as metaop is way younger than pugs' last features 13:24
timotimo OK
n: say <a b> X=> [state %h]
p6eval niecza v24-5-g599cbcb: OUTPUT«Potential difficulties:␤ %h is declared but not used at /tmp/QIoIHLEoOK line 1:␤------> say <a b> X=> [state ⏏%h]␤␤"a" => [] "b" => []␤» 13:25
tadzik masak: oxforddictionaries.com/definition/e...ndiloquent autopun? :)
grandiloquent (adj.) – pompous or extravagant in language, style, or manner
moritz nice one, tadzik++ 13:26
tadzik robertj++ actually (twitter.com/robertjacobsen/status/...181979649)
moritz r: gist.github.com/4250553 13:27
p6eval rakudo 53daef: OUTPUT«("A", "B", "Z", "-").list␤("a", "b", "c", "_").list␤»
moritz for some reason that produces ("Z", "-", "A", "B").list␤("_", "a", "b", "c").list("_", "a", "b", "c").list␤ in the qast-sink-1 branch 13:28
timotimo is there a \n missing in your last line, moritz? 13:29
r: ("_", "a", "b", "c").list("_", "a", "b", "c").say
p6eval rakudo 53daef: OUTPUT«Too many positional parameters passed; got 5 but expected 1␤ in method list at src/gen/CORE.setting:5023␤ in block at /tmp/luNLRme_Zy:1␤␤»
timotimo r: ("_", "a", "b", "c").list(("_", "a", "b", "c")).say
p6eval rakudo 53daef: OUTPUT«Too many positional parameters passed; got 2 but expected 1␤ in method list at src/gen/CORE.setting:5023␤ in block at /tmp/8bnLviawJx:1␤␤»
timotimo ah, the implicit self, i suppose?
moritz timotimo: there's a ␤ 13:30
timotimo i see two, i believe there should be three 13:31
moritz anyway, the amount of newlines isn't the issue here
that might be copy&paste gone wrong
timotimo of course :)
moritz rather the order of returned values 13:32
timotimo oh, now i see it
i thought the mistake was that it somehow returns three lists for two walls and was very surprised
13:35 Kharec left 13:36 breinbaa1 left
[Coke] moritz: when rejecting/responding to tickets, I find it helpful to reply to the list also. Did you intentionally not reply to list on 116026? 13:36
13:37 breinbaas joined
moritz [Coke]: no; I simply though that when I hit "reply", it includes everybody who's relevant 13:39
[Coke] yes, for RT's definition.
13:39 brrt joined
timotimo is there a possibility to get proper perl6 syntax highlighting up on github? how about better support for rendering the POD that's used for the perl6book? 13:40
[Coke] you must check the "cc" box, or it doesn't get cc'd to the list. (despite the fact that the initial bug report is always sent to the list.)
13:40 wamba left
moritz heh, I have a another autopun, from an internal software release: 13:41
* #13332033: Encoding-Fixes für Wheezy
13:42 dalek left
moritz timotimo: you probably "just" have to patch whatever syntax hilighter github uses to support Perl 6 13:42
13:42 dalek joined, ChanServ sets mode: +v dalek
hoelzro I was thinking of patching it a while ago 13:43
not enough tuits =(
timotimo: if you want to patch it, it's called linguist, iirc
timotimo it's probably ruby software? 13:44
hoelzro looks like
timotimo triage mode engaged: rt.perl.org/rt3/Public/Bug/Display...l?id=71356 - this bug seems resolved. can be closed.
hoelzro oh, interesting. 13:45
linguist is just the language detection framework
moritz rakudo: class A { has $!b is readonly = "foo"; method b { say $!b } }; A.new.b
p6eval rakudo 53daef: OUTPUT«foo␤»
[Coke] timotimo: are there tests?
hoelzro it actually uses pygments under the hood for the coloring
moritz rakudo: class A { has $!b is readonly = "foo"; method b { say $!b }; method set-b { $!b = 'blubb' } }; give A.new { .set-b; say .b } 13:46
p6eval rakudo 53daef: OUTPUT«===SORRY!===␤Confused␤at /tmp/8EMEuQyTiD:1␤------> d set-b { $!b = 'blubb' } }; give A.new ⏏{ .set-b; say .b }␤»
timotimo [Coke]: doesn't seem so. are tests required for each bug to be closed? that would probably be a good thing so do.
moritz timotimo: yes, we do require tests
[Coke] for testable things, aye.
timotimo ok, sure. they go into roast, right?
moritz right
timotimo i'll see if i can add a test :) 13:47
[Coke] we can mark that one testneeded, though.
timotimo: ok - then add a pointer to the test in a comment on the ticket, and we can close it out.
timotimo should the test refer to the bug number, too? 13:48
13:48 skids left
moritz yes, in a comment 13:48
timotimo i'll get started then :) 13:49
[Coke] awesome.
timotimo: do you have an RT id?
timotimo i don't think i do yet. do i just sugn up for a bitcard? 13:50
13:52 colomon left
[Coke] ... probably? It's been 10 years, I unno. :) 13:53
moritz timotimo: I think so, yes 13:54
timotimo good, i'm in now 13:56
moritz timotimo: what's your RT id?
dalek kudo/qast-sink-1: cd1ab4c | moritz++ | src/core/Str.pm:
work around a sink bug
13:57
13:57 brrt left
timotimo is it the one on the top right where it says "logged in as timo"? 13:57
13:57 Su-Shee_ is now known as Su-Shee
moritz right 13:57
[Coke]: can you make timo a bug admin please? 13:58
timotimo whoa!
13:58 atrodo_ joined
diakopter hm, 3 not-quite-spam emails today saying "2 days left" 13:59
timotimo huh? isn't the world going to end on the 22nd? 14:00
14:00 atrodo left, atrodo_ is now known as atrodo 14:01 atrodo left, atrodo joined 14:02 PacoAir joined
moritz jnthn: I can't seem to find out how to sink CATCH (and similar) blocks.. HALP PLZ! 14:05
timotimo oh. well, is readonly works as in "can be written and won't crash", but the variable isn't actually readonly
well, at least i can write tests.
moritz timotimo: that's what I feared 14:06
timotimo tests will reveal all.
14:06 am0c joined
moritz all hail the tests! 14:07
timotimo the tests shall test your faith. do not falter!
i'm considering modifying Configure.pl so that checking out parrot and nqp won't give a big "oh god oh no no no no detached head oh god what am i gonna do? what are YOU gonna do? we're doomed!" message 14:08
moritz timotimo: but please only do that if the last commit in the branch is the same revision as the requested revision 14:09
diakopter speaking of which.. is there a way to make nqp --gen-parrot clone parrot with none of the .git history?
moritz otherwise you won't get the right revision
diakopter: no
timotimo yes, of course. i was going to add branches that tell you "required by perl6 version uiaeo" and checking those out
diakopter <sad>
Woodi hallo today
moritz timotimo: that doesn't seem too helpful 14:10
timotimo if it's not, i'm going to leave it be
moritz timotimo: instead of getting a warning about a detached head, you'll get commits to a branch that nobody cares about
and is stuck on 'git pull' without a good error message
timotimo oh, hadn't thought of that properly.
then a tag would be more appropriate? 14:11
diakopter moritz: I guess I was more asking "is there a way to do that in git" (clone a particular revision without history)
moritz timotimo: a tag won't prevent the detached head warning
timotimo doh.
in that case, it'll be fine to leave it be. 14:12
moritz the problem is really that we want a specific revision, and the specific revision is not what the user wants when he wants to patch nqp or parrot
Woodi just tried star 2012.11 with --profile and compiling nqp SEGFAULTs at stage1. 2Gb here, but retrying 'make' explodes in 0,5s - maybe it can't fill all memory so fast ?
14:12 PacoAir left
Woodi *parrot with --profile 14:12
14:12 bphillips joined 14:13 PacoAir joined
timotimo diakopter: i know how to make git clone only the needed stuff for the newest revision, i'll look into Configure.pl to see if i can figure out how it works since i know even less perl5 than i do perl6 14:13
diakopter timotimo: I think it'd be a neat option like --no-parrot-history or something 14:14
14:14 hash_table joined
timotimo oh, configure-pl doesn't do very much by itself. i'll see. 14:14
moritz diakopter: git supports it with the --depth option
diakopter cool 14:15
14:16 benabik left
moritz though the resulting repo doesn't support many operations 14:16
timotimo uh, that's not completely true
moritz google for 'git shallow clone' for more info ;-)
timotimo well, yeah, it doesn't do blame or history 14:17
but you can push from it, i believe
and you can easily expand the history after the fact, i think.
moritz "(you cannot clone or fetch from it, nor push from nor into it)" says man git-clone
timotimo o_O 14:18
i must have something confused here.
at least git pull --depth can expand the history as i remembered
moritz timotimo: or maybe newer git revisions can do it 14:19
bphillips I'm playing around with implementing a Spore REST client in perl6 (i.e. metacpan.org/module/Net%3A%3AHTTP%3A%3ASpore). Can someone point me to a reasonably good example or doc on metaprogramming in perl6 (specifically, adding a dynamically named method+signature to an instance)
timotimo hum. i have 1.7, but 1.8 is the current stable one. i should investigare 14:20
diakopter I'd argue that nqp/parrot developers are not going to use the --gen-parrot option to do development. I can't tell you how many times I've waited for parrot to clone over a slow connection 14:21
I change systems too often
moritz bphillips: $obj.^add_method($name, method (\c) { # check arguments yoursel here }); $obj.^compose; 14:22
timotimo at least the documentation still says, that you can't pull to or push from it :(
moritz diakopter: I regularly develop nqp, and occasinally parrot, and I do use --gen-{nqp,parrot}
diakopter oh
bphillips moritz: Is there no way to create the signature dynamically as well so that perl6 does argument checking for me? 14:23
timotimo not being able to pull into a shallow clone is a problem with how gen-nqp and gen-parrot do updates
14:23 hash_table left
diakopter n00b question: segfault in arbitrary C program on linux. I know how to debug on Windows MSVC. where do I start with gcc/linux 14:24
timotimo diakopter: gdb binary_name and then run and see what happens, bt is the most interesting command for you
in some distros you will get a list of packages you have to install to get complete symbol tables for your program, so that you can have complete tracebacks
moritz diakopter: valgrind $programname
bphillips: not that I know of. Parameters in signatures are tied to lexical variables, and you can't easily create them at run time 14:25
diakopter moritz: Invalid read of size 4 14:27
yay!
neat, it found the debug symbols automagically
bphillips moritz: cool, I'll give it a whirl
14:28 cognominal_ joined 14:29 cognominal left
moritz though I wonder if we could provide an API for creating a signature that only does checking, but no binding 14:29
timotimo there are spectests for the is readonly trait in S06-traits/is-readonly.t, but i can't run them because my perl6 doesn't know what VAR is
diakopter moritz: thanks!
too scared to try gdb 14:30
moritz timotimo: that' test is fudged, no? 14:31
14:31 pmurias joined
timotimo well, it says #?rakudo skip VAR, so apparently yes 14:32
the other one where VAR is used is #?rakudo skip 'segfault', which isn't better
14:34 colomon joined
timotimo AFK for a bit 14:35
moritz anyway, I think you can remove those VAR tests
I don't see how they add any value 14:36
timotimo after that, should i see that i make tests that test is readonly with classes rather than local variables?
moritz ss/rather than/in addition to/ 14:37
timotimo er, yes, i meant that. would they go into S12-traits? 14:38
moritz put them into S06-traits/is-readonly.t too 14:40
[Coke] timotimo, moritz: timo is now a bugadmin. 14:41
moritz thanks [Coke]++ 14:42
jnthn moritz: Can have a look at the CATCH sinking when I get home from $dayjob 14:43
moritz jnthn: thanks 14:44
14:45 yves_ joined, wamba joined 14:46 Kharec joined 14:52 PerlPilot is now known as PerlJam, kaare_ joined 14:58 Patterner left 15:00 Psyche^ joined, Psyche^ is now known as Patterner 15:02 stopbit joined 15:09 fgomez left 15:11 birdwindupbird left
Woodi strange, after installtion I getting: Missing or wrong version of dependency 'src/gen/CORE.setting' (from ModuleLoader.pbc)? ... 15:13
moritz Woodi: probably you have an old installation, or old .pir files, which interfer with the new one
Woodi no, strace shows that it is accessing /*/star-2012.11/*/ModuleLoader.pbc... or something happend during compilation 15:15
moritz try export RAKUDO_MODULE_DEBUG=1 15:18
15:21 wamba left 15:22 wamba joined 15:24 skids joined 15:31 PacoAir left
Woodi looks: use Config::INI; triggered this. so probably precompiled old modules... 15:31
15:32 PacoAir joined 15:33 fgomez joined, wamba left 15:34 huf_ is now known as huf 15:36 cognominal_ left, FROGGS joined
Woodi ok, thanx moritz++ 15:38
15:39 PacoAir left, hash_table joined 15:40 kaleem joined, fgomez left 15:41 Kharec left
Woodi so I think there is problem with NativeCall: while my $a = native_function( $sock, $structure, $kind-of-C-iterator-on-structure ) { ... } exploding with SEGFAULT... cannot find user error this time... 15:42
similiar while $b = native_without_C_iterator(...) { ... } works
15:43 cognominal joined 15:45 kst joined
timotimo t.h8.lv/0001-test-for-RT-71356-read...ribu.patch - does this look correct? i'll push it if it's deemed good. 15:45
15:46 kivutar left
timotimo oh, another question: niecza doesn't seem to implement is readonly. can i write the test so that instead of crashing(?) niecza would get a "not ok" for the class definition? 15:46
15:47 kivutar joined
moritz timotimo: niecza probably doesn't run the test file if it crashes on the trait 15:48
timotimo hah! duh :)
bphillips (perl6 newb alert) does declaring an empty submethod BUILD {} in a class affect the initialization of an instance of that class? 15:49
moritz bphillips: yes 15:50
bphillips moritz: what are the requirements for the BUILD method? should it return something?
moritz bphillips: please see doc.perl6.org/language/objects#Obje...nstruction
bphillips mortiz++ thanks 15:51
timotimo i see there's lots of tests for advent2009, but none for 2010, 2011, 2012 in roast/integration. were the newer advent calendars not fit for their own tests because the test suite around them has already matured well enough in 2010? 15:54
moritz timotimo: I think nobody got around to make test out of the posts 15:55
timotimo is duplicating tests an issue?
hm, actually, integration tests are sufficiently different from the rest of the spec test suite, aren't they?
do you think making test cases for the rest of the advent calendars is a worthwile project for getting familiar and comfortable with perl6 and tests? 15:56
and would perl6 benefit?
15:58 atrodo left
moritz yes, and yes 15:58
timotimo cool :) 15:59
moritz though only do it for posts that are well-suited for tests
timotimo yes, certainly
jnthn decommute, bbiab &
16:00 atrodo_ joined, cognominal left, atrodo_ is now known as atrodo 16:01 telex left 16:02 telex joined
GlitchMr glitchmr@feather ~/examples> /usr/bin/perl6 --version 16:03
This is perl6 version 2012.11-27-g53daeff
Up-to-date version of perl6 in /usr/bin. Surprised...
Anyway, I've problem. You see, Rakudo complains about my custom operator not iffy enough. 16:07
gist.github.com/4251501
How can I make it iffy enough?
16:08 cognominal joined
[Coke] GlitchMr: if you make that a file rather than a shell session, you could have the evalbot run it from here. 16:10
r: gist.github.com/7c78460908e96476bf3e 16:11
p6eval rakudo 53daef: OUTPUT«===SORRY!===␤Confused␤at /tmp/thRDO6p6pb:1␤------> https⏏://gist.github.com/7c78460908e96476bf3e␤»
[Coke] ... or at least you used to be able to. :P 16:12
diakopter public gists only I think 16:13
GlitchMr r: gist.github.com/4251559
p6eval rakudo 53daef: OUTPUT«===SORRY!===␤Cannot negate in because it is not iffy enough␤at /tmp/39hJ6K2TVh:9␤------> say 'lol' !in⏏ 'face';␤»
GlitchMr n: gist.github.com/4251559
p6eval niecza v24-5-g599cbcb: OUTPUT«===SORRY!===␤␤Cannot negate in because additive operators are not iffy enough at /tmp/7TmJ67zdo1 line 9:␤------> say 'lol' !in⏏ 'face';␤␤Parse failed␤␤» 16:14
GlitchMr std: gist.github.com/4251559
p6eval std a8bc48f: OUTPUT«===SORRY!===␤Cannot negate in because additive operators are not iffy enough at /tmp/PAfiKpUwOT line 9:␤------> say 'lol' !in⏏ 'face';␤Parse failed␤FAILED 00:01 52m␤»
GlitchMr Huh?
How can I make actually iffy enough operator. I even have marked it returns boolean.
[Coke] ah. didn't realize I had made it private, whoops!
GlitchMr: in the grammar, you declare it iffy: 16:17
Perl6::Grammar.O(':prec<m=>, :assoc<left>, :iffy<1>, :pasttype<chain>', '%chaining');
I have no idea how to mark it iffy outside the grammar, though.
it's not introspecting the signature for a boolish return, though. 16:19
GlitchMr Well, specification says "You may negate only those operators that return a Bool".
It doesn't depend on any internal "iffy" property.
[Coke] GlitchMr: I'm just telling you what's in rakudo src. 16:20
I don't see any examples in roast that test for adding new iffy operators, just for testing that + isn't iffy enough.
your request seems reasonable to me. no clue how hard it would be to update the iffy test to check the signature as opposed to the iffy flag. 16:21
(or to update the iffy flag based on the sig for new items.) 16:22
16:22 [particle]1 joined 16:23 [particle] left
[Coke] std: sub infix:<in>(Str $a, Str $b --> Bool) { True } ; say "a" in "b" 16:26
p6eval std a8bc48f: OUTPUT«Potential difficulties:␤ $b is declared but not used at /tmp/W4frjONWe5 line 1:␤------> sub infix:<in>(Str $a, Str ⏏$b --> Bool) { True } ; say "a" in "b"␤ $a is declared but not used at /tmp/W4frjONWe5 line 1:␤------> sub infix:<in>(Str [3…
[Coke] std: sub infix:<in>(Str $a, Str $b --> Bool) { $a, $b; True } ; say "a" in "b"
p6eval std a8bc48f: OUTPUT«ok 00:00 47m␤»
[Coke] std: sub infix:<in>(Str $a, Str $b --> Bool) { $a, $b; True } ; say "a" !in "b"
p6eval std a8bc48f: OUTPUT«===SORRY!===␤Cannot negate in because additive operators are not iffy enough at /tmp/U6VgRNhrym line 1:␤------> --> Bool) { $a, $b; True } ; say "a" !in⏏ "b"␤Parse failed␤FAILED 00:00 47m␤»
16:26 spider-mario joined
GlitchMr Iffy flag looks like hack to me 16:27
[Coke] std: sub infix:<asdfasdf>(Str $a, Str $b --> Bool) { $a, $b; True } ; say "a" !asdfasdf "b"
p6eval std a8bc48f: OUTPUT«===SORRY!===␤Cannot negate asdfasdf because additive operators are not iffy enough at /tmp/O1ljUoRF0S line 1:␤------> ol) { $a, $b; True } ; say "a" !asdfasdf⏏ "b"␤Parse failed␤FAILED 00:00 47m␤»
GlitchMr Of course, I could make infix:<!in> operator, but that's hax.
[Coke] probably your quickest way to working code, and leave a comment that it shouldn't be needed. 16:28
looks like std doesn't allow it yet, either.
GlitchMr I wonder if infix:<not in> operator, just like in Python would work
16:29 atrodo left, atrodo joined
GlitchMr Seems to work 16:29
Even if I put space between "not" and "in". Impressive. 16:30
put more than one space*
16:31 kaleem_ joined 16:34 wamba joined, kaleem left
jnthn If you put it at the same precedence level as a relational operator, it should get the iffy-ness of that. 16:39
GlitchMr That's... hacky 16:44
What precedence would have with iffy-ness.
16:44 grondilu left
jnthn GlitchMr: It's exactly what STD does. 16:45
16:45 am0c left
jnthn GlitchMr: The precedence level relational operators have, as I told you. 16:46
is equiv(&infix:<==>) for example
16:47 wamba left 16:49 colomon left 16:53 colomon joined 16:54 aindilis left, [particle]1 left 16:56 [particle] joined
[Coke] r: sub infix:<in> is equiv(&infix:<==>) (Str $a, Str $b --> Bool) { $a, $b; True } ; say "a" !in "b" 16:57
p6eval rakudo 53daef: OUTPUT«===SORRY!===␤Missing block␤at /tmp/qEBaxfAzxf:1␤------> sub infix:<in> is equiv(&infix:<==>) ⏏(Str $a, Str $b --> Bool) { $a, $b; True␤»
[Coke] r: sub infix:<in> (Str $a, Str $b --> Bool) is equiv(&infix:<==>) { $a, $b; True } ; say "a" !in "b"
p6eval rakudo 53daef: OUTPUT«False␤»
japhb jnthn: Did you see the Rakudo performance issues with 'for ^100 X ^100' and with push/join in the backlog? 17:00
diakopter, Regarding the parrot/nqp cloning issue: Since perl6-bench makes a LOT of clones of everything, it starts out by making one --mirror clone of each major component, and then doing local (very fast) clones as needed; in particular, before building Rakudo (or NQP), it starts by local-cloning the NQP and Parrot into place inside the Rakudo checkout, and then --gen-parrot recognizes those are there and just builds. 17:02
diakopter, if you change machines a lot, but are only in one or two locations, you might get a win by mirroring the repos to a single machine in each location, and cloning from that as needed. 17:03
17:04 SamuraiJack_ joined
japhb (Just make sure to 'git fetch -t' and 'git fetch -u' starting at the mirror when you want to update -- or run a cronjob on the mirror to do that.) 17:05
jnthn japhb: Yes it's already in RT.
japhb jnthn, ah, sorry, my bad
jnthn japhb: np
japhb: I didn't get to the bottom of why last time I looked at it.
japhb As I spend more time with perl6-bench, I'm starting to get a feel for when something is out of whack in the sense that a performance problem goes way past the general slowdown of Parrot + several layers of abstraction. Sometimes just seeing a really large difference between NQP and Rakudo on a test raises that flag. 17:07
17:07 stanley joined 17:08 MayDaniel joined
japhb And sometimes it's a matter of niecza and Rakudo scaling very differently -- regardless of which one was faster for the "small" case. 17:08
jnthn Yeah, it's good to look at those ones. 17:09
17:09 SamuraiJack joined 17:10 bluescreen10 joined, SamuraiJack_ left
jnthn I'm curious what difference the sink changes will make 17:11
japhb ditto that.
jnthn (They keep for loops in sink context from keeping all the results.)
Well, from building up a result list.
japhb It's now easy in perl6-bench to compare builds from different branches, so we can even compare before the merge if we like.
(I figured I'd do that anyway once more of the bugs were shaken out.) 17:12
17:12 arlinius joined, MayDaniel left
japhb Oh, that reminds me: I'm thinking perl6-bench really belongs under the perl6 org; it should be a community thing, so I was thinking of forking my repo into the perl6 one on github and declaring the fork "official". Anyone disagree and think that's a bad idea? If so, why? 17:14
17:15 ggoebel_ joined 17:17 MayDaniel joined
moritz japhb: go ahead 17:19
japhb moritz, Thank you. I'll wait for a bit to see if anyone has any objections, just in case. 17:20
Also, I'm assuming that code I wrote should be officially placed under Artistic 2, and code derived from RosettaCode should be explicitly marked Gnu FDL, correct? 17:21
17:22 wamba joined
jnthn moritz: So, should all CATCH blocks be sunk? 17:22
moritz: Same with CONTROL? 17:23
17:24 pmurias left
jnthn moritz: I'm a bit surprised things aren't already considered in sink context there. 17:27
moritz: Because of the rethrow added at the end.
oh, wait, I see it... 17:28
FROGGS is there a spec that says something about module search paths? 17:29
jnthn r: try { die 'omg'; CATCH { for 1..10 { .say } } } 17:30
p6eval rakudo 53daef: OUTPUT«1␤2␤3␤4␤5␤6␤7␤8␤9␤10␤omg␤ in block at /tmp/jXeQmLYA01:1␤␤»
17:32 Kharec joined 17:33 bphillips1 joined, bphillips left
TimToady jnthn: typo in "by using the ident method on strings," 17:34
jnthn uh, indent, yes :) 17:35
fixed, thanks
17:36 bphillips joined
jnthn moritz: Got a fix. 17:36
17:37 fhelmberger left 17:38 bphillips1 left
dalek kudo/qast-sink-1: 5886931 | jnthn++ | src/Perl6/Actions.pm:
Sink in CACTH and CONTROL blocks.
17:41
felher ... I had to read TimToady's line four times to see the typo. Two times even after I realized it was in i[n]dent. And I did only realize that becaue jnthn said so :) 17:46
FROGGS I've got a problem, I've got a string like 'Dog:auth({ .substr(0,5) eq "cpan:"})' and I've got a token like { 'Dog:auth({' .+ '})' } 17:47
my problem is that .+ even matches the last }) of my string, so the token itself wont match in the end
how do I prevent it from matching the enclosing braces?
flussence /.+?/ maybe 17:48
FROGGS tries
flussence: hmm, no, doesnt work 17:49
same result
ohh wait
it works somehow
flussence: thanks! 17:50
flussence I guess you could also use the ~ operator in that case since it's two delimiters... 17:51
18:03 MayDaniel left 18:04 MayDaniel joined, kaleem_ left 18:07 PacoAir joined 18:09 dakkar left, benabik joined 18:15 atrodo_ joined
TimToady nr: sub postfix:<-> ($x) is equiv(&prefix:<->) { -$x }; say 2**3- 18:15
p6eval rakudo 53daef, niecza v24-5-g599cbcb: OUTPUT«0.125␤» 18:16
TimToady this is perhaps a clearer example of the postfix prec bu
*bug
looks like a STD bug
jnthn If you can fix it in STD, I can take a look at transliterating the fix into Rakudo's EXPR 18:17
18:17 atrodo left, atrodo_ is now known as atrodo 18:19 bapa joined
jnthn r: class A { method Str() { 'a' } }; my @a = A.new xx 10; say @a.uniq.elems 18:21
p6eval rakudo 53daef: OUTPUT«1␤»
jnthn Got a fix for that one locally
18:24 kurahaupo joined 18:27 mikemol_ is now known as mikemol
diakopter learns that TimToady mentally pronounces STD as standard 18:27
TimToady how do you pronounce 'stdin'? 18:28
besides, S.T.D. means something gross :) 18:29
rindolf TimToady: I call it standard-in.
rurban me too
rindolf Or maybe S.T.D.in. 18:30
rjbs stuh-DIN 18:31
diakopter ^
flussence stiddin'
rjbs and stuh-DOUT and stuh-DAIR
I used to say "standard in" until confound converted me.
18:32 colomon left
skids If you are adequately antisocial, you never have to worry about such verbal pronunciations. 18:32
Also no hazard of STDs.
TimToady well, there are antisocial behaviors that can lead to STDs... 18:33
[Coke] I read stdin in my head as "stand in" 18:34
www.quickmeme.com/meme/3qm3f8/ 18:36
jnthn [Coke]: And to make something appear on the terminal, your program has to "stand out"? :P 18:38
dalek kudo/nom: 8e02c1e | jnthn++ | src/core/List.pm:
Give uniq === semantics, not eq.

Also sink the for that is being gathered. Once the sink branch lands, this should decrease memory usage also.
18:39
18:40 MayDaniel left
GlitchMr 0, [\+] 2 ** 15 xx 2 ** 15 # hash keys needed to make hash collision attack on PHP 18:40
18:40 bapa left 18:41 MayDaniel joined, Chillance joined
[Coke] jnthn: eh. it doesn't mean that, it's just how it's pronounced. :) 18:41
jnthn :) 18:42
18:43 bapa joined
dalek rl6-roast-data: d345408 | coke++ | / (3 files):
today (automated commit)
18:44
[Coke] github.com/coke/perl6-roast-data/b....out#L1857 - 2 todo PASSED
GlitchMr "unknon" 18:45
This is really proffesional
diakopter ...
GlitchMr (I know, professional is written with one f and two s)
[Coke] GlitchMr: do you have commit access to roast? 18:46
GlitchMr Yes
[Coke] You know what you have to do. :)
GlitchMr ok, I'm going to find "unknon"
jnthn Typos happen :) 18:47
darn! I meant to typo that to make a joke then got it right
[Coke] mmmhehehe. 18:48
dalek ast: a18f56f | GlitchMr++ | integration/99problems-11-to-20.t:
Unknown, not unknon.
18:48 immortal left
[Coke] if you could track down the 2 passing TODOs while you're in there, that would be awesome. 18:48
GlitchMr Sure 18:51
18:52 benabik left
[Coke] \o/ 18:53
GlitchMr Both of those TODO tests pass. But they pass just by accident. 18:54
oh wait, they don't
I was confused by two similar tests
They don't pass. No idea why they pass for you. 18:55
dalek kudo/nom: a1eff00 | jnthn++ | docs/ChangeLog:
Update ChangeLog.
GlitchMr github.com/perl6/roast/blob/a18f56...-20.t#L136 18:56
It's this test.
But...
not ok 5 - .. or a n-ary list with always same element
18:57 kurahaupo left
GlitchMr Oh wait, it's "unknown", not "unknon" 18:57
dalek ast: b8d4388 | GlitchMr++ | integration/99problems-11-to-20.t:
Passing TODOs :-).
18:58
GlitchMr [Coke]: Fixed. 18:59
19:03 colomon joined 19:06 cooper left, cooper joined 19:08 popl joined 19:09 PacoAir left 19:10 PacoAir joined 19:11 atrodo left 19:12 atrodo joined 19:15 PacoAir left
timotimo so there was an advent calendar post on quoting, but there was no mention of quoting shell commands? 19:16
19:17 cognominal left
jnthn timotimo: It missed out quote words and various other things too. :) 19:17
19:17 PacoAir joined
jnthn It wasn't meant to be exhaustive. 'cus otherwise it woulda been exhausting to write :P 19:18
timotimo mhm
19:20 pecastro joined
timotimo er, what do i have to search in the synopses to find what quote word starts a shell execution quote? :| 19:20
jnthn execute? :) 19:21
In S02
timotimo ah, indeed. 19:22
19:22 SamuraiJack left
timotimo that part didn't show up in the search results sadly 19:22
bphillips moritz: what does the "\c" part of the method (\c) { ... } indicate in your message from earlier? 19:24
(or if someone else knows, please feel free to chime in) 19:25
[Coke] GlitchMr++ 19:26
jnthn bphillips: It means "take an argument and don't contextualize it in any way" 19:28
It can be referred to as just "c" within the method
19:28 japhb_ left
jnthn moritz: Turns out my CATCH sink patch earlier wasn't enough, and didn't handle the default inside the CATCH needing sinking 19:28
timotimo what do i have to do to get a perl6 binary with line history and in-line-editing? 19:30
19:30 ggoebel_ left
jnthn timotimo: Thinks that needs having a libreadline (or perhaps the dev for it) installed at the time you build Parrot. 19:31
timotimo ah, at parrot build time
that's the key
so with :x i get the stdout and with run/shell i get the exit code. any way to get both at the same time without executing something twice? 19:38
19:42 spider-mario left 19:43 spider-mario joined
TimToady timotimo: well, there's always redirecting to a file and then reading that 19:43
timotimo well, since you're already the parent process, why not give pipes as stdout and stderr and read their contents to a buffer? 19:44
TimToady or a named fifo, on Unix
well, it's certainly possible to teach perl6 how to do such things; I was just suggesting a workaround 19:45
19:46 spider-mario left 19:51 kivutar left
rindolf Hi all. Are there any open Rakudo / Niezca / Perlito Junior Jobs? 19:52
19:53 MayDaniel left, cognominal joined, MayDaniel joined, ggoebel_ joined
[Coke] tasks or actual paying jobs? 19:54
dalek kudo/qast-sink-1: f1b8fed | jnthn++ | src/Perl6/Actions.pm:
Sink when/default in CATCH/CONTROL also.
20:03
jnthn moritz: With that last patch, spectest in qast-sink-1 looks quite good now (though not got the ICU tests running, so maybe we've some leftovers in there). 20:04
20:04 SmokeMachine left
dalek kudo/nom: 24e882f | jnthn++ | docs/ROADMAP:
Give estimates for a couple of tasks.
20:05
20:06 fgomez joined, kurahaupo joined, kurahaupo left 20:08 arlinius left
timotimo is there a forecast yet for when fork and wait might go into rakudo or niecza? 20:10
20:10 cognominal_ joined 20:11 cognominal left, ingy left, ingy joined 20:16 aindilis joined 20:18 cognominal_ left 20:24 cognominal joined 20:26 rindolf left 20:30 rindolf joined
masak ahoj, #perl6 20:30
hoelzro o/ masak 20:31
TimToady ajoi <- Californian
jnthn hola, señor masak 20:35
masak takes the ~ from the n and uses it as a funny 'stache 20:38
20:38 kaare__ joined 20:40 kaare_ left
masak TimToady: should the indentation from an interpolated variable figure in the de-indentation of a heredoc? 20:41
jnthn++ # Matryoshka dolls for Christmas! \o/
<jnthn> Typos happen :) 20:43
<jnthn> darn! I meant to typo that to make a joke then got it right
what's even more scary, I *read* it as containing a typo! o.O 20:44
and only then discovered that it didn't, to my great surprise.
20:44 kivutar joined
masak even now that I know that it doesn't contain a typo, just glancing at it, my brain expects one to be there. 20:44
I think I'm finally turning into an autopun. 20:45
timotimo: [backlog] so... essentially, you are wait-ing for a fork-ast... :P 20:46
20:51 fgomez left
bphillips I'm certain I must be doing something wrong, but can I expect $foo ~~ s/$search/$replace/ to return a boolean indicating that the search/replace was actually done? 20:51
20:51 cognominal left
bphillips I'm looping over a list of substitutions and once one matches, the ~~ s/// operation always seems to return true 20:52
timotimo masak: *snrk* :D
bphillips (the relevant gist: gist.github.com/4253309) 20:53
masak bphillips: what s/// should return is a discussion that was never fully resolved.
at one point, Niecza and Rakudo returned different things. 20:54
rn: $_ = "foo"; say s/foo/bar/
20:54 noggle joined
p6eval rakudo 24e882: OUTPUT«bar␤» 20:54
..niecza v24-5-g599cbcb: OUTPUT«True␤»
masak oh, they still do.
:/
20:54 wamba left
bphillips regardless of the actual return value, if the subject of the search isn't matched, shouldn't it return something False-ish? 20:55
20:55 fgomez joined
bphillips or, should I do this differently? (I'm <24 into my perl6 adventure, my mind is primarily filled with p5 equivalents) 20:55
20:56 arlinius joined
masak :) 20:57
moritz is the resident expert on smartmatching, I believe. he may have a good answer for you, once he rezzes.
21:00 fgomez left, kaare_ joined
bphillips if I explicitly set $/ to False before doing the s///, that seems to "work" (although that seems like the worst way to go about this) 21:00
FROGGS k, my Grammar for parsing "use" statements is set up and correctly matches 'auth', I got donuts, coffee and star trek is playing... life can be good 21:02
21:02 kaare__ left 21:05 GlitchMr left
dalek kudo/stdier: b9b110b | jnthn++ | src/Perl6/World.pm:
Good error for unexpected closing bracket.
21:07
masak \o/ 21:15
anything is better than "Confused" :) 21:16
21:18 Chillance left 21:19 atrodo left, rindolf left 21:20 atrodo joined, Kharec left, hash_table left 21:21 wamba joined
timotimo i like that branch name 21:25
tadzik standardier
sergot hi o/ ! 21:26
timotimo t.h8.lv/0001-test-for-RT-71356-read...ribu.patch - does this patch look good btw? i forgot to push it, so i just thought i'd ask before i do
sergot There something wrong with p6's libs on feather. :(
21:28 grondilu joined
jnthn timotimo: did you forget to bump the plan? 21:28
[Coke] where is p6 installed on feather?
timotimo oh, yes i did. thanks!
[Coke] finds /usr/bin/perl6, which looks surprisingly recent. 21:29
masak tadziku, sergocie! \o/
tadzik o/ 21:30
21:30 kurahaupo joined 21:35 cognominal joined
timotimo can i have push permission to perl6/roast? i'm timo on github 21:35
[Coke] +1
sergot masaku ! o/ 21:36
masak vocative++ 21:37
dalek p/highexpect: e6ea357 | jnthn++ | src/QRegex/Cursor.nqp:
Lookaheads should not change highexpect.
p/highexpect: 45ecaf8 | jnthn++ | src/QRegex/Cursor.nqp:
Provide a way to manipulate highexpect.
kudo/stdier: 53e70fb | jnthn++ | src/Perl6/Grammar.pm:
Fresh highexpect in ws, as per STD.
21:38
grondilu rn: say .[0] for [[<foo bar>], [^10]];
p6eval rakudo 24e882, niecza v24-5-g599cbcb: OUTPUT«foo bar␤»
[Coke] hurm. looks like timo is already a member of perl6.
grondilu was expecting "foon0"
jnthn rn: say .[0] for ([<foo bar>], [^10]); 21:39
p6eval rakudo 24e882, niecza v24-5-g599cbcb: OUTPUT«foo␤0␤»
jnthn [...] is an item
[Coke] but it looks like I'm not an admin. I think. So hopefully someone else can sort you out.
grondilu rn: say .[0] for [[<foo bar>], [^10]].list;
p6eval rakudo 24e882, niecza v24-5-g599cbcb: OUTPUT«foo␤0␤»
grondilu jnthn: thanks 21:40
jnthn timotimo: done
sergot "Could not find JSON::Tiny in any of:" I need JSON::Tiny on feather. :) 21:42
jnthn bah, somehow implemetning highexpect busts...1 macros test? o.O
masak O.o
jnthn oh...that's unfortuante
...and easily fixed
masak .oO( nobody expects the macro inquisition! )
jnthn nah, just that I put the highexpect things into an @.expected in X::Comp 21:43
21:44 cognominal left
jnthn And when that got mixed in to a type check exception, hid the expected type. 21:44
dalek ast: 1fa9ddf | (Timo Paulssen)++ | S06-traits/is-readonly.t:
test for RT #71356: readonly trait for private attributes
[Coke] timotimo++ jnthn++ 21:45
21:45 cognominal joined 21:47 bluescreen100 joined
dalek kudo/stdier: 324cb25 | jnthn++ | src/ (2 files):
Rename to avoid a conflict.
21:48
jnthn does another spectest
If this passes, I'll merge the next round of error reporting improvements :)
21:49 spider-mario joined
timotimo jnthn++ sounds great! 21:49
21:49 bluescreen10 left
popl I'd like to help with Perl 6 but I suck. Is there anything I could do (documentation, sweeping up, etc.)? 21:50
masak anything that stirs the pot is a good help. 21:51
21:51 cognominal left
masak I started my activity here on #perl6 basically trying out the spec, piece by piece. 21:52
dragged up a few things :)
FROGGS popl: if you wanna learn Perl 6 while helping, you could skim through the bugtrackers and check for already solved things, add tests or try to solve something on your own
thats what I did to get a feeling for the internals
21:53 cognominal joined
popl Ok. 21:53
FROGGS masak: is version comparision implemented yet?
dalek p: b30fb7a | jnthn++ | src/Q (2 files):
Keep :dba(...) values for a bit longer.

This will allow them to make it unti NFA construction time.
21:53 dalek left
popl I will look into it. 21:53
Thanks FROGGS.
21:53 SmokeMachine joined
FROGGS popl: you're welcome 21:53
21:54 dalek joined, ChanServ sets mode: +v dalek
masak FROGGS: try it and see. 21:54
FROGGS how?
masak rn: say v3 > v2
p6eval rakudo 24e882: OUTPUT«Cannot call 'Real'; none of these signatures match:␤:(Mu:U \v: Mu *%_)␤␤ in method Real at src/gen/CORE.setting:804␤ in sub infix:<>> at src/gen/CORE.setting:2822␤ in block at /tmp/QCXQ6GlTvf:1␤␤»
..niecza v24-5-g599cbcb: OUTPUT«===SORRY!===␤␤Action method value:version not yet implemented at /tmp/sJy3iCqPQK line 1:␤------> say v3⏏ > v2␤␤Action method value:version not yet implemented at /tmp/sJy3iCqPQK line 1 (EOF):␤------> say v3 > v2[33…
masak rn: say v3 after v2
FROGGS r: say so 1.2.3 > 3.2.0
p6eval niecza v24-5-g599cbcb: OUTPUT«===SORRY!===␤␤Action method value:version not yet implemented at /tmp/moSDYyJ9Sz line 1:␤------> say v3⏏ after v2␤␤Action method value:version not yet implemented at /tmp/moSDYyJ9Sz line 1 (EOF):␤------> say v3 afte…
..rakudo 24e882: OUTPUT«True␤»
rakudo 24e882: OUTPUT«===SORRY!===␤Confused␤at /tmp/ES0xIx9I7E:1␤------> say so 1.2.⏏3 > 3.2.0␤»
dalek kudo/nom: 4068131 | jnthn++ | src/ (2 files):
Try reporting what was expected at high watermark.
21:55
kudo/nom: 0118e3b | jnthn++ | src/Perl6/Grammar.pm:
Add a bunch of missing :dba(...)s.

Remove completed highwater task.
21:55 dalek left
FROGGS okay, NYI 21:55
masak r: say v4.beta after v4
p6eval rakudo 24e882: OUTPUT«No such method 'beta' for invocant of type 'Version'␤ in block at /tmp/MEEZIeeGaq:1␤␤»
masak r: say v4beta after v4
p6eval rakudo 24e882: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&after' called (line 1)␤Undefined routine '&v4beta' called (line 1)␤»
masak r: say v4 after v4
p6eval rakudo 24e882: OUTPUT«False␤»
21:55 dalek joined, ChanServ sets mode: +v dalek
masak hm. I should read up on version number syntax. 21:55
FROGGS r: say v5 after v4
p6eval rakudo 24e882: OUTPUT«True␤»
jnthn OK, it's merged :) 21:56
21:56 wamba left, cognominal_ joined
FROGGS masak: let me read ;o) 21:56
[Coke] jnthn++ 21:57
21:57 SmokeMachine left 21:58 kivutar left 21:59 wamba joined, cognominal__ joined, cognominal left
timotimo is "highwater" an established term/concept? what do i have to look for to find more about how it works without digging into code? 22:00
22:01 cognominal_ left
cognominal__ masak: "Everywhere I look, I see people falling prey to confirmation bias. Just as I suspected." 22:01
22:02 ggoebel_ left
jnthn timotimo: Not really sure what to point you at. But I can explain it... 22:02
masak cognominal__: oh, it's a variant of "Is confirmation bias prevalent? Yes, I see it everywhere!" # autopun
22:03 popl left
jnthn One of the reasons Rakudo has given dodgy location information at times is because certain kinds of errors make the parser try a bunch of alternatives, and in doing so it might jump back quite a long way in order to do so. 22:03
This means at the point it finally gives up, it may be quite a long way from where the real problem was.
timotimo OK, that seems plausible - if frustrating 22:04
jnthn The highwater mark just records the furthest place we got to.
timotimo ah, and that's the point that gets reported as having the error?
jnthn The highexpect is a kind of "black box recorder" of the parse that keeps track of what we were looking for at the time.
Yes.
22:05 skids left
jnthn And that's basically it :) 22:05
timotimo seems reasonable. and if it works, that's great, too :)
jnthn The only other bit to mention is that analyzing the contents of highexpect and the stuff immediately after the highwater is the way we manage to re-write some "Confused" messages into something a bit smarter. 22:06
masak that raises a question for me. why all the backtracking? I thought Perl 6 syntax mostly didn't involve backtracking.
22:06 cognominal__ left
jnthn masak: It's not backtracking in the sense of quantifier backtracking. 22:07
If you do
timotimo maybe it's got something to do with longest expression matching?
jnthn [ <foo_that_matches_lots_then_fails> || <bar_that_does_less> || <.panic: 'Confused'> ]
masak oh, troo. 22:08
jnthn Then you can end up a long way back.
masak it's just resetting to a cursor that lets you retry something.
jnthn Well, just returning up the callstack really
We don't reset cursors, just throw away ones that didn't work out.
timotimo i wonder if it makes any sense to autothread grammars, if they can be reset anyway? 22:09
jnthn To give an example of highexpect, if I do:
perl6 -e "42.\ "
Then the error location also now has some info on what it wanted:
------> 42.<HERE>\
expecting any of:
dotty method or postfix
timotimo: That may create issues with various other bits of parse state kept around in contextuals. Cursors aren't the only thing going on. 22:11
timotimo feared as much :( 22:12
22:13 hash_table joined
jnthn I don't think it'd be a huge win anyway, fwiw 22:13
The LTM-er often guesses right first time.
timotimo cool 22:14
jnthn Thus the overhead of actually syncing up the various threaded runs (if you meant using multiple threads) would risk dominating any wins.
22:14 cognominal__ joined
timotimo i was meaning multiple threads, yes. 22:14
jnthn When I put in the LTM stuff I had a load of traces running to help me debug it, and I noticed it was guesing quite well. 22:15
timotimo that's pretty amazing actually. i have no clue how it does that :| 22:16
sorear I think a more promising approach would be to scrape your code for "use" statements using a simple regex, and then start background precompilation of modules 22:17
jnthn sorear: mmm...yes :)
(separate compilation)++ 22:18
22:21 bbkr_ left
masak 'night, #perl6 22:21
FROGGS gnight 22:23
timotimo night masak
22:25 kaare_ left 22:31 cognominal__ left 22:38 MayDaniel left 22:40 cognominal joined 22:41 hash_table left
grondilu rn: say ^(3/2+1) 22:42
p6eval niecza v24-5-g599cbcb: OUTPUT«0..^<5/2>␤» 22:43
..rakudo 41a658: OUTPUT«0..^5/2␤»
22:43 PacoAir left
grondilu rn: say eager ^(3/2+1) 22:43
p6eval rakudo 41a658: OUTPUT«0 1 2␤»
..niecza v24-5-g599cbcb: OUTPUT«===SORRY!===␤␤Undeclared routine:␤ 'eager' used at line 1␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 1443 (die @ 5) ␤ at /home/p6eval/niecza/src/STD.pm6 line 1147 (P6.comp_unit @ 37) ␤ at /hom…
grondilu rn: say my @ = ^(3/2) 22:44
p6eval rakudo 41a658, niecza v24-5-g599cbcb: OUTPUT«0 1␤»
grondilu rn: say my @ = ^(<3/2>.floor)
p6eval rakudo 41a658, niecza v24-5-g599cbcb: OUTPUT«0␤»
grondilu So I guess prefix:<^> doesn't use floor to convert to Int. 22:45
22:46 pecastro left, jaldhar_ left
timotimo hm. should integration tests for the older perl6advent posts be there to point out inconsistencies between claims and implementation so that if spec changes, the advent post can be updated as well? 22:48
22:48 spider-mario left 22:50 cognominal left 22:55 cognominal joined
jnthn r: say 18.333 / 0.62 22:59
p6eval rakudo 41a658: OUTPUT«29.569355␤»
23:02 grondilu left
dalek kudo/nom: 8fb8bc1 | jnthn++ | src/core/Junction.pm:
Optimize the junction auto-threader.

This makes the benchmark:
   for 1..10 { say so 9999 == any(1..2000) }
Complete somewhere around 30 times faster.
23:04
kudo/nom: a308f34 | jnthn++ | docs/ChangeLog:
Update ChangeLog.
23:06
timotimo what, auto-threading is in rakudo already?
23:06 jerome joined 23:07 stopbit left
jnthn timotimo: Auto-threading of junctions doesn't have anything to do with threads. 23:07
I mean, it potentially could
It just means that an operation threads through the junction.
timotimo oh, so it goes faster not because it actually threads
but because the code that does it is just more efficient
jnthn Right.
timotimo 30 times, though. wow!
jnthn Quite a lot more efficient. :)
Yeah, now I know why people kept telling me auto-threading was slow. It really was! 23:08
23:08 jaldhar_ joined
timotimo i ran into that once, too ... 23:08
and i have absolutely no clue why your code changes improve performance
jnthn Well, this should make it hurt a bit less :)
[Coke] timotimo: if the old advent posts are wrong, it is awesome to update the tests to say "here's how that actually works these days". 23:15
I don't think we have to update the old post itself.
timotimo well, there are no tests yet for most of the advent posts 23:16
23:18 benabik joined 23:21 jaldhar_ left
timotimo hm. can c++ libraries like SFML be wrapped using zavolaj? 23:22
i fear they can't :(
23:23 jaldhar_ joined 23:24 bluescreen10 joined 23:25 colomon left
jnthn japhb: Think I may have found a clue to the X issue, but out of hacking time for now. Will see if I can have a go at it tomorrow... 23:25
timotimo: I think C++ libs are tricky because of the name mangling etc.
dalek blets: dd5acfd | (Herbert Breunung)++ | docs/appendix-a-index.txt:
add spurt to A
23:26
jnthn sleep; night o/ 23:27
23:27 cognominal left
timotimo night jnthn 23:29
if i have a role with has @!foo and a class that does that role, will it have access to it? or would that have to be has @.foo instead? 23:31
23:34 ponpon joined 23:35 cognominal joined, am0c joined
timotimo ah, i see. 23:35
23:40 fgomez joined 23:44 lichtkind joined
timotimo r: say $result if my $result = 5 + 6; 23:46
p6eval rakudo a308f3: OUTPUT«===SORRY!===␤Variable $result is not declared␤at /tmp/7Y88nJVFHa:1␤------> say $result⏏ if my $result = 5 + 6;␤»
timotimo std: say $result if my $result = 5 + 6;
p6eval std a8bc48f: OUTPUT«===SORRY!===␤Variable $result is not predeclared at /tmp/S8Wo7FYaP5 line 1:␤------> say ⏏$result if my $result = 5 + 6;␤Check failed␤FAILED 00:00 43m␤»
timotimo right.
diakopter r: say my $result if $result = 5 + 6; 23:47
p6eval rakudo a308f3: OUTPUT«11␤»
timotimo oh, that's simple
i'm doing some wicked necromancy 23:48
a bit of software that used to require the "alpha" branch of rakudo :)
not saying what it is until i manage to actually make it run
why would $foo ~~ $.bar ever giev me "sorry: virtual call $.bar may not be used on partially constructed objects" inside a submethod? 23:50
oh, interestign 23:51
diakopter if it's called from a constructor?
timotimo turning it from a submethod into a method makes the error go away
so basically submethods might be called from the objects own constructor before it's constructed completely? or something?
diakopter :? 23:52
dalek blets: e91970d | (Herbert Breunung)++ | docs/appendix-a-index.txt:
added some see also
timotimo well, there must be some limitation to methods that are not limitations of submethods 23:53
lichtkind hai guys
23:54 ggoebel_ joined 23:55 ponpon is now known as ponbiki
lichtkind is there still a byte smethod but not in Str? 23:57
benabik Buf.bytes, perhaps? (guessing)
23:58 fgomez left
lichtkind benabik: thanks i thought so buts where can i look this up? 23:59