»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by masak on 12 May 2015.
[Coke] gfldex: what day? 00:00
00:00 zacts_ joined
gfldex [Coke]: it's pretty much finished, just has to be turned into html, so day 2 will do 00:01
00:01 zacts left
[Coke] gfldex: edit the schedule here: github.com/perl6/mu/tree/master/mi...dvent-2015 00:01
dalek : b981588 | (Wenzel P. P. Peppmeyer)++ | misc/perl6advent-2015/schedule:
Update schedule
00:02
gfldex [Coke]: done
gfldex .oO( Was I just overtaken by a bot? ) 00:03
[Coke] so, the official release date is the 17th. I suspect that, combined with a need to cram as much dev & testing time, alnog with advent, along with style points, we should aim for the 25th instead, yes?
I'll probably be able to handle the compiler release that day, we'll see what my personal schedule looks like. might have to do it from the car.
gfldex i suspect that the 17th was chosen to hit the 25th :) 00:04
00:04 isacloud joined, go|dfish joined, ilbelkyr joined, diakopte1 joined
[Coke] it was just based on the old formula, nothign special. 00:04
00:06 n0xff joined 00:12 zacts_ left
[Coke] .ask lizmat - should we again remove all deprecations before xmas? 00:16
yoleaux [Coke]: I'll pass your message to lizmat.
00:18 doublec left 00:19 doublec joined 00:21 rurban left 00:23 yqt joined 00:26 Peter_R left 00:27 snarkyboojum left 00:30 pierre-vigier joined
grondilu m: multi infix:<*>($r, @a) { $r Z* @a }; say pi * [1, 1]; 00:34
00:34 Mhoram left
camelia rakudo-moar 39869f: OUTPUT«(3.14159265358979)␤» 00:34
grondilu was expecting (pi, pi) 00:35
oh wait
00:35 abaugher joined
grondilu I should have used X*. My bad. 00:35
TimToady .tell jnthn I rejected RT #120916 because it suffices to stub the accessor instead. 00:36
yoleaux TimToady: I'll pass your message to jnthn.
00:37 cognominal left, cognominal joined
[Coke] Speaking of speed (in review) I'll craft something in the compiler release announcement about speed. 00:37
Haters gonna hate, but we can try to get in front of it. 00:38
Hotkeys are there functions that do the same as some of the operators? 00:42
not sure where it would be useful
for example +
TimToady the operators *are* functions
Hotkeys er
TimToady m: say &infix:<+>(1,2)
camelia rakudo-moar 39869f: OUTPUT«3␤»
TimToady m: say infix:<+>(1,2)
camelia rakudo-moar 39869f: OUTPUT«3␤»
Hotkeys I meant like
is there an add(...) function as well or is the operator the only function that does this 00:43
as well as '+'
(I realize I could just define one but I don't actually need one)
TimToady infix:<+> is its proper name
00:43 Guest84367 is now known as parisba
Hotkeys alright 00:43
TimToady though in this one case there does happen to be a sum function
00:43 pierre-vigier left
Hotkeys oh 00:43
TimToady but that's so we can optimize Range.sum
Hotkeys right 00:44
TimToady in general, we dont go out of our way to come up with letter-only names for our operators
many of them do call into methods though
00:51 doublec_ joined 00:52 doublec left 00:54 sno left, pierre-vigier joined 00:59 CurtisOvidPoe_ joined 01:00 CurtisOvidPoe left, CurtisOvidPoe_ is now known as CurtisOvidPoe 01:06 yeahnoob joined 01:07 raiph joined 01:09 Zoffix joined 01:13 zacts joined
dalek kudo/nom: f6b3bf3 | coke++ | docs/announce/2015.12.md:
Add preliminary xmas release announcement
01:14
Zoffix w00t
So close now \o/
We're actually gonna call it "коледа"? :)
mmmkay :)
Sounds totally weird to my Cyrillic ear, but I don't mind. 01:15
[Coke] Zoffix: I'm open to suggestions.
[Coke] hurls en.wikipedia.org/wiki/Koliada
Zoffix Oh, k, my ear would hear it as "коляда" then :) That sounds OK :) 01:16
[Coke] I might have picked the serbian one. I reserve the right to change which one i use. :)
Zoffix :P sounds good to me 01:17
TEttinger followed one day later by EMERGENCY KWANZAA BUGFIX release 01:23
fitting since kwanzaa is on the 26th 01:24
Hotkeys I'd like to suggest aiming for the 23rd and calling it the Festivus release
TEttinger for the rest of us 01:25
Zoffix [Coke], there's a typo on line 66 fwiw: s/insure/ensure/; github.com/rakudo/rakudo/commit/f6...5e63be3R66
We also got superscript powers, tho I guess that's covered by "see doc/ChangeLog"
m: say ⅓⁶
camelia rakudo-moar 39869f: OUTPUT«0.001372␤»
TEttinger no way
Zoffix 'll never get tired of playing with that :P
TEttinger m: say 2⁶ 01:26
camelia rakudo-moar 39869f: OUTPUT«64␤»
Zoffix m: say 2⁶⁶
camelia rakudo-moar 39869f: OUTPUT«73786976294838206464␤»
TEttinger ha nice
Zoffix :)
TEttinger u: superscript 9
m: say "\C[SUPERSCRIPT NINE]" 01:27
camelia rakudo-moar 39869f: OUTPUT«5===SORRY!5=== Error while compiling /tmp/XmyDkTcawV␤Unrecognized backslash sequence: '\C'␤at /tmp/XmyDkTcawV:1␤------> 3say "\7⏏5C[SUPERSCRIPT NINE]"␤ expecting any of:␤ argument list␤ double quotes␤ term␤»
Hotkeys
Zoffix m: say "\c[SUPERSCRIPT NINE]"
camelia rakudo-moar 39869f: OUTPUT«⁹␤»
Hotkeys .u superscript 9
yoleaux No characters found
TEttinger sah
Zoffix .u ⁹
yoleaux U+2079 SUPERSCRIPT NINE [No] (⁹)
dalek kudo/nom: 1ae6805 | coke++ | docs/announce/2015.12.md:
remove leftovers from previous release note
Hotkeys ah
'nine'
[Coke] Zoffix: removed.
TEttinger m: say 9⁹
camelia rakudo-moar 39869f: OUTPUT«387420489␤»
Hotkeys instead of 9 01:28
Zoffix :S
hehe OK :)
01:28 doublec joined
Zoffix I'm excited \o/ 01:28
TEttinger * contributed? but that guy's horrible 01:29
Zoffix :P
[Coke] Whatever. 01:30
TEttinger haha
01:30 doublec_ left
Hotkeys 6.xisnunsla anyone? 01:30
Hotkeys lojbans it up
TEttinger * is in prison for every crime ever committed by a living person convicted of a crime
Hotkeys but * is also praised for all the good anyone has ever done 01:31
TEttinger the weight of *'s soul(s) must be weighed against a feather or they get eaten by a crocodile 01:32
"can it be a very large feather?"
Hotkeys but what is heavier 01:33
a pound of soul or a pound of feather
???
TEttinger I dunno, soul can get pretty heavy, like much R&B as well
01:33 doublec_ joined
Hotkeys gotcha 01:34
01:34 doublec left
Hotkeys oldest trick in the book 01:34
a pound of feathers is always lighter
Zoffix Hotkeys, a pound of feather, 'cause souls don't exist!@
:)
Hotkeys yes but if we had an existant pound
TimToady r: say "a" ~~ m/<![a]>/ 01:35
TEttinger it depends I suppose on the density
camelia rakudo-moar 1ae680, rakudo-jvm f6b3bf: OUTPUT«False␤»
Hotkeys of soulstuff
(existent?)
TimToady I have a fix for this one for moar, but not for jvm
TEttinger if if souls are extremely non-dense, then they might weigh less than the feather by extending above the scale and out of earth orbit
to the heavens, as it were 01:36
Hotkeys lol
Zoffix TEttinger, a pound is a pound, bruh, extending or not :P
01:36 pecastro left
TEttinger but a pound only makes sense in context of earth's gravity 01:36
weightless in space
Hotkeys what is more massful 01:37
Zoffix no, it doesn't :) A pound of mass is a pound of mass anywhere
Hotkeys a kilogram of souls
TEttinger haha
Hotkeys or a kilogram of feathers
:p
Zoffix: depends if it's a unit of mass or weight
Zoffix :o
:)
TEttinger morality, in this case
in the ancient egyptian sense
Hotkeys it's immoral to use the imperial system
TEttinger the weight of a soul vs. a feather is a concept in the ancient egyptian mythological afterlife 01:38
I think that croc was far
fat
01:38 doublec joined
TEttinger it's interesting reading about rarely-mentioned mythologies. it makes you wonder about rarely-mentioned programming language concepts 01:39
01:39 doublec_ left 01:40 pierre-vigier left, pierre-vigier joined
Hotkeys completely unrelated but often unmentioned 01:40
I'm a fan of conlangs
(constructed languages)
TEttinger en.wikipedia.org/wiki/Shamanism_am..._publicity
Hotkeys (human languages not programming ones)
TEttinger it's interesting that many northern north american people believed in almost a formal set of rules for the supernatural 01:41
Hotkeys some people really dislike conlangs but idk why 01:42
I don't like them for their use
TEttinger in western belief, magic is the "rule-breaker" typically
i like conlangs
Hotkeys I know esperanto or lojban will likely never be used
or in the extreme
ithkuil
(my fav)
TEttinger oh that one is familiar
Hotkeys I don't really know any ithkuil
I just like it in concept 01:43
it's so dense
"Tram-mļöi hhâsmařpţuktôx." translates to "‘On the contrary, I think it may turn out that this rugged mountain range trails off at some point.’ "
oops I copied the quotes 01:44
Timbus_ oh cool. spoken APL 01:45
Hotkeys the first word is On ... that
TEttinger could also be perl
Hotkeys and the second is this ... point.
(i am lazy)
it isn't that they are defined as those things specifically 01:46
like in a dictionary
TEttinger conjugated?
Hotkeys it's just a highly agglutinative/synthetic languages
language**
TEttinger or agglutinated like german?
ah
Hotkeys www.ithkuil.net/00_intro.html
scroll down a bit
it breaks down the sentence
TEttinger neat 01:47
01:48 pierre-vigier left
Hotkeys root stems in ithkuil are each clusters of 1-5 consonants 01:48
:D
wonderfully ridiculous
also it, according to wikipedia, has 92 grammatical cases 01:49
01:49 uruwi joined 01:50 cognominal left
Hotkeys would be wonderful for telegrams 01:50
01:50 cognominal joined
Hotkeys assuming you had an extended morse code for all the characters 01:50
AlexDaniel .u … 01:52
yoleaux U+2026 HORIZONTAL ELLIPSIS [Po] (…)
AlexDaniel no character with two dots? 01:53
.u ᳞
yoleaux U+1CDE VEDIC TONE TWO DOTS BELOW [Mn] (◌᳞)
01:55 yqt left
TEttinger AlexDaniel: there's at least 28, braille 01:59
02:00 rigsby left
Hotkeys also it has other things that let it be more annoying and dense 02:00
both tone and stress
AlexDaniel m: say join '', ((0..0x1FFFF ==> grep { .uniname ~~ m/BRAILLE/ }) ==> map { .chr }) 02:06
camelia rakudo-moar 1ae680: OUTPUT«⠀⠁⠂⠃⠄⠅⠆⠇⠈⠉⠊⠋⠌⠍⠎⠏⠐⠑⠒⠓⠔⠕⠖⠗⠘⠙⠚⠛⠜⠝⠞⠟⠠⠡⠢⠣⠤⠥⠦⠧⠨⠩⠪⠫⠬⠭⠮⠯⠰⠱⠲⠳⠴⠵⠶⠷⠸⠹⠺⠻⠼⠽⠾⠿⡀⡁⡂⡃⡄⡅⡆⡇⡈⡉⡊⡋⡌⡍⡎⡏⡐⡑⡒⡓⡔…»
AlexDaniel well, here it is fully:⠀⠁⠂⠃⠄⠅⠆⠇⠈⠉⠊⠋⠌⠍⠎⠏⠐⠑⠒⠓⠔⠕⠖⠗⠘⠙⠚⠛⠜⠝⠞⠟⠠⠡⠢⠣⠤⠥⠦⠧⠨⠩⠪⠫⠬⠭⠮⠯⠰⠱⠲⠳⠴⠵⠶⠷⠸⠹⠺⠻⠼⠽⠾⠿⡀⡁⡂⡃⡄⡅⡆⡇⡈⡉⡊⡋⡌⡍⡎⡏⡐⡑⡒⡓⡔⡕⡖⡗⡘⡙⡚⡛⡜⡝⡞⡟⡠⡡⡢⡣⡤⡥⡦⡧⡨⡩⡪⡫⡬⡭⡮⡯⡰⡱⡲⡳⡴⡵⡶⡷⡸⡹⡺⡻⡼⡽⡾⡿⢀⢁⢂⢃⢄⢅⢆⢇⢈⢉⢊⢋􏿽xE2􏿽xA2
02:07 dayangkun joined
AlexDaniel hhmm ⠔⠕⠖⠗⠘⠙ 02:07
actually, it is a bit too ordered. It is more fun if you add “.pick: *” 02:10
⣎⣃⢙⡛⠄⠳⠆⢫⠻⣈⡓⢝⡋⢃⢻⠕⡂⠃⢈⢯⠮⡡⠭⣛⢏⡨⡾⡊⡢⡰⡜⣒⢞⣗⢄⡼⡅⢀⢉⣫⡘⢅⠒⣋⢾⠉⢷⣠⡮⣴⣘⢍⠸⡤⡵⡫⡌⡻⣁⢜⢳⠱⣰⠵⣣⣷⡸⡝⢗⢒⣦⡲⣕⠬⣢⡄⢎⢤⢛⣚⡿⢶⣐⣧⣞⣻⡞⢇⡏⢌⣙⠢⣱⠁⣬⢴⠛⢿⠑⠲⢁⢡⢚⡈⠊⠏⠙⣇⡍⡶⣏⠺⢰⢘⣲⢓⡑⢖⠎⢋⠤⠌⡒⠰⢑⣨⣺⠧⢟⣸⢩⡭⡥⢢⣮⣂⣍⢊⡳⡙⣩⣑⣶⠓⠣⢵⠩⣝􏿽xE2
m: say +((0..0x1FFFF ==> grep { .uniname ~~ m/BRAILLE/ }) ==> map { .chr }) 02:12
camelia rakudo-moar 1ae680: OUTPUT«256␤»
AlexDaniel so basically you can represent any byte stream with Braille
02:17 mspo_ is now known as mspo 02:21 kaare_ joined, sno joined
AlexDaniel .u ⟩􏿽xE2􏿽x8C􏿽xAA 02:28
yoleaux U+232A RIGHT-POINTING ANGLE BRACKET [Pe] (􏿽xE2􏿽x8C􏿽xAA)
U+27E9 MATHEMATICAL RIGHT ANGLE BRACKET [Pe] (⟩)
02:31 sno left, colomon left 02:33 xpen joined, zacts left 02:37 molaf__ joined, zacts joined
TimToady AlexDaniel: a couple of the rosettacode entries use Braille graphics 02:38
rosettacode.org/wiki/Draw_a_clock#Perl_6 02:40
rosettacode.org/wiki/Draw_a_cuboid#Perl_6
02:41 molaf_ left
TimToady rosettacode.org/wiki/Fibonacci_word...tal#Perl_6 02:41
02:42 Actualeyes joined, perlpilot is now known as PerlJam
TimToady somebody should turn that braille-graphics support code into a module 02:43
AlexDaniel cuboid does not compile
TimToady aww 02:44
AlexDaniel well, it says “niecza”… 02:45
02:46 raiph left
AlexDaniel OH 02:46
02:46 doublec_ joined
AlexDaniel my Bool %t; 02:46
change that to “my %t” and boom, it works
TimToady yup 02:47
psch m: my Bool %t; %t<a> = True; 02:48
camelia ( no output )
02:48 doublec left
psch oh 02:49
AlexDaniel psch: %t{$Y }{$X + $_}
psch looks like that should be Hash[Bool] %t
AlexDaniel which doesn't really make any sense to me…
psch as in, hash of hash of bool
autarch handling pod would be _so_ much easier if the compiler generated start & end nodes for lists of items
AlexDaniel yeah, perhaps!
psch: actually, I've already edited it. Just removed the type alltogether
autarch otherwise you have to track a whole bunch of state to figure out when an item is part of an existing list vs a new list
psch AlexDaniel: yeah, that's probably fine too
autarch this is one place where Perl 5 POD is much easier to parse, although more painful to write
psch m: my %t of Hash of Bool # curious.. 02:51
camelia ( no output )
psch m: my %t of Hash of Bool; %t<f> = { a => True }
camelia rakudo-moar 1ae680: OUTPUT«Type check failed in assignment to %t; expected Hash[Bool] but got Hash␤ in block <unit> at /tmp/VDgF5nK_B3:1␤␤»
psch huh
so it does already work like that, neat
m: my %t of Hash of Bool; %t<f> = my % of Bool = a => True
camelia ( no output )
psch m: my %t of Hash of Bool; %t<f> = my % of Bool = a => True ; say %t.perl 02:52
camelia rakudo-moar 1ae680: OUTPUT«(my Hash[Bool] % = :f((my Bool % = :a)))␤»
psch hm, that actually touches on something i often stumbled over
as in, the declarator (obviously) parses on-pass, but the actions kind of go RTL 02:53
...not sure i can formulate that clearer right now :)
TimToady m: my Bool %t{Int;Int};
camelia rakudo-moar 1ae680: OUTPUT«5===SORRY!5=== Error while compiling /tmp/Gk0rPEIGTx␤coercive type declarations not yet implemented. Sorry. ␤at /tmp/Gk0rPEIGTx:1␤------> 3my Bool %t{Int;Int}7⏏5;␤ expecting any of:␤ constraint␤»
TimToady why does it think it's coercive?
psch s/on-pass/one-pass/ 02:54
m: my Bool %t{Int}
camelia ( no output )
psch i'd guess the slice (or multi-dim or whatwasit) is misparsed there..?
uruwi m: my Bool %t{Int}{Int}; 02:55
camelia rakudo-moar 1ae680: OUTPUT«5===SORRY!5=== Error while compiling /tmp/YzzWWQiJ6q␤Multiple shapes not yet understood␤at /tmp/YzzWWQiJ6q:1␤------> 3my Bool %t{Int}{Int}7⏏5;␤ expecting any of:␤ constraint␤»
uruwi m: my Bool %t{Int,Int};
camelia rakudo-moar 1ae680: OUTPUT«5===SORRY!5=== Error while compiling /tmp/Mds3HRWOm3␤coercive type declarations not yet implemented. Sorry. ␤at /tmp/Mds3HRWOm3:1␤------> 3my Bool %t{Int,Int}7⏏5;␤ expecting any of:␤ constraint␤»
psch m: my Bool() $x
camelia rakudo-moar 1ae680: OUTPUT«5===SORRY!5=== Error while compiling /tmp/raz4GoBq0d␤Coercion Bool(Any) is insufficiently type-like to qualify a variable␤at /tmp/raz4GoBq0d:1␤------> 3my Bool() $x7⏏5<EOL>␤ expecting any of:␤ constraint␤»
psch anyway, gonna try and catch some shuteye o/ 02:56
TimToady so if I fix the <![a]> bug at end-of-string in moarvm, I discover that <-[a]> has been relying on the bug not to match at the end, rather than actually checking its position 02:57
and if I fix that, the compiler loops compiling the setting, grr
02:58 raiph joined 03:01 vendethiel joined 03:03 kjs_ joined 03:06 doublec_ is now known as doublec 03:09 kaare_ left 03:14 sufrosti1o left, sufrostico left 03:15 noganex_ joined 03:18 noganex left 03:24 vendethiel left 03:32 BenGoldberg joined
gfldex m: sub foo (::T $t, $not-T --> T) { ($not-T.comb>>.ord.sum / $not-T.chars).Int }; say foo(Int.new, 'abc'); 03:38
camelia rakudo-moar 1ae680: OUTPUT«Type check failed for return value; expected T but got Int␤ in sub foo at /tmp/edZS5LRcfb:1␤ in block <unit> at /tmp/edZS5LRcfb:1␤␤»
gfldex are type captures for return types supposed to work? 03:39
m: sub foo (::T $t, $not-T) { my T $foo; my $type-string = $foo.WHAT.perl; ($not-T.comb>>.ord.sum / $not-T.chars)."$type-string"() }; say foo(Int.new, 'abc'); 03:43
camelia rakudo-moar 1ae680: OUTPUT«98␤»
gfldex and is there a way to do a type cast to a type capture's type without fooling around with ."<type-name"() ? 03:44
03:45 kjs_ left 03:51 geraud left 03:52 geraud joined 03:56 ycaymanbo left 04:00 pierre-vigier joined
Hotkeys hola 04:03
TimToady well, there's also ::($type-string)(), but we oughta fix the T to be properly generic there 04:06
dalek p: 2661d27 | TimToady++ | src/vm/moar/QAST/QASTRegexCompilerMAST.nqp:
Force <![a]> to always match at EOS.

Fixes RT #126746 by explicit test of EOS for <![a]> (because fixing nqp::indexnat to return true at EOS ran into difficulties).
04:08
kudo/nom: 50c3155 | TimToady++ | tools/build/NQP_REVISION:
bumb nqp to get patch for RT #126746
04:09
04:09 Ben_Goldberg joined 04:13 BenGoldberg left
TimToady r: say "a" ~~ m/<![a]>/ 04:13
camelia rakudo-jvm 1ae680: OUTPUT«Error while reading '/home/camelia/p6eval-token': No such file or directory at /home/camelia/rakudo-j-inst/bin/eval-client.pl line 10.␤»
..rakudo-moar 50c315: OUTPUT«「」␤»
TimToady well, that fixes it for moarvm, anyway 04:14
04:16 sno joined
uruwi Is ab5tract here? 04:17
TimToady .seen ab5tract 04:18
yoleaux I saw ab5tract 25 Nov 2015 23:14Z in #perl6: <ab5tract> ahh. cool :)
uruwi Interesting 04:19
04:21 sno left
uruwi I wonder if for (^1000000) could be optimized into loop (my $i = 0; $i < 1000000; ++$i) 04:23
TimToady already supposedly is 04:26
04:27 pierre-vigier left 04:29 MadcapJake left 04:45 doublec left 04:47 doublec joined
b2gills .tell lizmat did you mean `emit $elems = $elems + 1` instead of `emit ++$elems` ? github.com/rakudo/rakudo/commit/7d636cfc11 04:55
yoleaux b2gills: I'll pass your message to lizmat.
04:57 rigsby joined
uruwi 1.76 vs 3.81 secs 05:06
TimToady m: for ^1000000 {}; say now - INIT now 05:09
camelia rakudo-moar 50c315: OUTPUT«0.2576046␤»
TimToady m: for loop (my $i = 0; $i < 1000000; $i = $i + 1) {}; say now - INIT now
camelia rakudo-moar 50c315: OUTPUT«5===SORRY!5=== Error while compiling /tmp/0WV5pbND9Z␤Undeclared routine:␤ loop used at line 1␤␤»
TimToady m: loop (my $i = 0; $i < 1000000; $i = $i + 1) {}; say now - INIT now 05:10
camelia rakudo-moar 50c315: OUTPUT«0.1774705␤»
TimToady m: loop (my $i = 0; $i < 10000000; $i = $i + 1) {}; say now - INIT now
camelia rakudo-moar 50c315: OUTPUT«1.6700395␤»
TimToady m: for ^10000000 {}; say now - INIT now
camelia rakudo-moar 50c315: OUTPUT«2.4554113␤»
TimToady m: loop (my int $i = 0; $i < 10000000; $i = $i + 1) {}; say now - INIT now
camelia rakudo-moar 50c315: OUTPUT«0.061372␤»
TimToady I guess it doesn't
uruwi Auto-optimizing Int's to int's whenever possible is another possibility 05:11
TimToady m: loop (my int $i = 0; $i < 10000000; ++$i) {}; say now - INIT now
camelia rakudo-moar 50c315: OUTPUT«4.6867952␤»
TimToady ++ is a lot slower
skids Hrm, my panda seems to not be installing .moarvm files anymore, is that just interim curli WIP?
uruwi m: loop (my $i = 0; $i < 10000000; ++$i) {}; say now - INIT now
camelia rakudo-moar 50c315: OUTPUT«1.68555317␤»
uruwi Weird 05:12
TimToady ++ on natives is not optimized yet
uruwi Yeah
05:12 bpmedley joined
TimToady m: loop (my $i = 0; $i < 10000000; $i++) {}; say now - INIT now 05:12
camelia rakudo-moar 50c315: OUTPUT«1.4500430␤»
TimToady huh
uruwi ++ on natives and range fors to loop are LHF
optimization of Int's to int's will be harder 05:13
will require static analysis
TimToady well, easy enough to tell that ^10000000 is limited, but it depends on how much unboxing is then needed inside
uruwi Not to mention dead/unreachable code elimination 05:14
dalek p: f17e8c5 | TimToady++ | src/vm/jvm/QAST/Compiler.nqp:
Also fix RT #126746 on the jvm
05:15
uruwi m: loop (my $i = 0; $i < 10000000; ++$i) {}; say now - INIT now 05:16
camelia rakudo-moar 50c315: OUTPUT«1.645288␤»
uruwi m: loop (my $i = 0; $i < 10000000; $i++) {}; say now - INIT now
camelia rakudo-moar 50c315: OUTPUT«1.64997290␤»
dalek kudo/nom: 7c54722 | TimToady++ | tools/build/NQP_REVISION:
bump nqp again for jvm's patch to RT #126746.
05:17
ast: aef8ea1 | TimToady++ | S05-metasyntax/charset.t:
test that <![a]> always matches at eos
05:19
TimToady okay, I think that was an xmas bug, even if it was never on the official list :) 05:21
05:23 khw left
Quom_ TimToady++ 05:24
autarch so I've completely rewritten Pod::To::HTML by bulding it on top of my new Pod::NodeWalker module - github.com/autarch/perl6-Pod-NodeWalker 05:25
Pod::NodeWalker handles walking the POD tree for you, as well as working around some current compiler bugs and generating synthetic start-list and end-list events to make it easier to handle lists
05:25 raiph left
autarch This all started because I wanted to bring the doc.perl6.org design in line with the main perl6.org site, but the HTML Pod::To::HTML generated was basically hard-coded 05:26
so ... does anyone want to code review all of this?
Quom_ autarch: Have you compared performance? 05:27
autarch Quom_: not yet
though it runs ok in the tests
it's also _way_ more correct - it's handling a lot more pod and doing it more correctly in some cases 05:28
the new Pod::To::HTML is at github.com/autarch/Pod-To-HTML/tre...nodewalker - there's no point in a PR since it's essentially a rewrite 05:29
TimToady
.oO(first make it run, then make it run right...)
Quom_ autarch: I don't doubt it :)
autarch is OO code notably slower than functions? the rewritten code is OO with some multi methods - the old code with FauxO - I'm guessing it was created before OO was really working in Perl 6 05:30
Quom_ autarch: I did a lot of work on the docs and Pod. It's been a mess for some time now…
JimmyZ autarch: nope. :) 05:31
TimToady is very glad people other than him are looking after the docs :) 05:32
autarch I actually want to work on the docs themselves too but I've been diving down various rabbit holes that keep distracting me
TimToady funny how that happens...
Quom_ autarch: Yup!
Quom_ is curious what the compile time is like for the docs nowadays 05:33
autarch TimToady: my first project after the site design is to work towards better organization of the Language overview - then filling in various docs - then writing some new ones
Quom_: _SLLOOOWWWW_ last time I tried it :(
TimToady you want slow, try compiling the jvm backend...
autarch I do wonder if it'd be possible to thread or fork the HTML generation to speed things up - it should be easily parallelizable
Quom_ OOC, is weirdness of NQPLock wrt exceptions known? It seems to be the cause of #126724 having the wrong error 05:34
Really, what happened to that bot? rt.perl.org/Ticket/Display.html?id=126724
autarch to clarify organizing Language - Mean basically doing what this issue lays out - github.com/perl6/doc/issues/114 05:35
TimToady Quom_: no kloo for either question 05:36
05:36 rigsby left
Quom_ autarch: The original Pod::To::HTML library relie[d|s?] on global vars and so couldn't be parallized. That was the case a year ago, anyway 05:37
autarch Quom_: ah, then my rewrite will fix that - it's now an object that's entirely self-contained
so I imagine that this will speed up doc generation a bit
Quom_ autarch: I tried a few times to rewrite the library to be OO, but never found something that I was satisfied with
autarch: Sweet :)
autarch Quom_: please take a look at my branch then
Ben_Goldberg m: multi foo () returns Int { 42 }; multi foo () returns List { 43 }; say foo; # I relize that this is unrelated to the current discussion, but why can't perl's multi dispatch make use of the return type? 05:38
camelia rakudo-moar 7c5472: OUTPUT«Ambiguous call to 'foo'; these signatures all match:␤:( --> Int)␤:( --> List)␤ in block <unit> at /tmp/UjaA2KIdJU:1␤␤»
Quom_ Well, I'm still trying to figure out where Pod::To::HTML is defined?
nwc10 yoleaux: tell jnthn valgrind didn't show anything other than the abort 05:39
Quom_ nvm, found the repo ^^
nwc10 .tell jnthn valgrind didn't show anything other than the abort
yoleaux nwc10: I'll pass your message to jnthn.
05:39 nwc10 left
uruwi Ben_Goldberg because allowing it might create ambiguity 05:40
TimToady Ben_Goldberg: because that would take time travel to know the context in many cases
uruwi for instance, if you have foo return Int for one, and String for another, then what happens if you say my $bar = foo()
autarch TimToady: since you're here can you take a look at rt.perl.org/Ticket/Display.html?id=124393 - I think it may be Christmas list worthy - it makes it very hard to use multi methods in roles in any useful way 05:41
Ben_Goldberg Return a superposition? ;)
autarch the ticket is a little crufty - if someone wants to close it I could make a new one that more clearly describes the problem
uruwi Ben_Goldberg possibly even more confusing 05:42
Quom_ +1 05:43
Ben_Goldberg I suppose that the better example would be if there were multi bar(Int) and multi bar(Str), then bar(foo) would be ambiguous.
autarch Quom_: you'll also want to look at Pod::NodeWalker since that does some of the heavy lifting for my PTH rewrite - github.com/autarch/perl6-Pod-NodeWalker - it's pretty minimal code, actually
Quom_ Right :)
autarch except for the insanity around lists :(
we really need the compiler to generate start & end list markers or something 05:44
konobi mmm? 05:45
Quom_ autarch: That's been a continual pain point
autarch yeah, I think maybe 25% of the code in P::NW is about synthesizing start-list and end-list events
if it's incomprehensible I think the tests may clear up what the goal is 05:46
also re: tests - I wrote a whole bunch for P::T::HTML too - it was nearly untested before
Quom_ autarch: Would it be better for it to have start & end markers or just to have Pod::ItemGroup.new(contents => [Pod::Item.new xx *]) 05:48
In your judgement 05:49
autarch Quom_: yeah, a container would be better, you're right
as long as containers end up container other containers ... so =item1 followed by =item2 means that the =item1 container contains the =item2 container
yo dawg, I heard you like containers ... 05:50
Quom_ Actually, it should probably be more like Pod::ItemGroup.new(level => 1, contents => ["blahblah", Pod::SomeText.new]) 05:51
autarch also, if you have an =item2 without a preceding =item1 it needs to have two containers - without that I still need all the crazy logic I wrote around list levels
Quom_ (while we're breaking things)
autarch the compiler is in a much better position to figure this stuff out than any developer is who's just looking at some random chunk of POD later
Quom_ autarch: I'm not convinced 05:52
autarch ot
Quom_ wrt two containers without precedence 05:53
autarch it's very painful to handle levels jumps for something like an HTML generator - you need to actually write out all the missed levels of <ul><li><ul><li> etc
so either the compiler does this for me or I have to keep constant track of the last level I was in (like I'm doing now in Pod::NodeWalker)
if the compiler isn't going to do that than the groups really aren't that helpful
05:55 rigsby joined 06:07 AlexDaniel left
Quom_ autarch: Off the bat, you need to predeclare 'class Renderer' and rename the classes so that they aren't Pod::To::HTML::Pod::To::HTML:: 06:18
autarch Quom_: yeah, I don't really understand the unit stuff or how module vs class works re: namespaces
ShimmerFairy =item2 stuff shouldn't end up inside =item1 stuff, since Pod is explicitly designed so that it's wrong for the writer to do that (thus it'd be weird for the compiler to turn around and do that) :)
autarch ShimmerFairy: I'm not sure what you mean 06:19
ShimmerFairy autarch: the spec for Pod6 explicitly says that =begin item1 ... =item2 ... =end item1 is not how you use sub-items, so having the compiler do that anyway would feel incredibly wrong to me.
Quom_ ShimmerFairy: That's not it 06:20
ShimmerFairy Quom_: yeah, I just saw Item(level => 1, contents => Item( level => 2 ) ) as an idea above, which'd be wrong
06:20 pierre-vigier joined
Quom_ ShimmerFairy: The proposal is =item1 … =item1 … =item2 … =item2 … =item1 … gets folded into ItemGroup[…,…,ItemGroup[…,…],…] 06:21
06:21 BenGoldberg_ joined 06:22 mattp__ joined
autarch just providing the sequence of events makes it very difficult for consumers of this information - we really need to know how the =itemX blocks relate to each other 06:22
Quom_ ShimmerFairy: I think =begin item1 ... =item2 ... =end item1 would become ItemGroup[Block[…,ItemGroup[…],…]
autarch any output format I can think of requires that
Quom_ ]
06:23 ssflying left
ShimmerFairy Quom_: huh, turns out I haven't messed with lists at all in my Pod parser rewrite yet, so I've not come up with a solution myself :P 06:23
(also, I'm reminded again to _really_ get back to working on that more than I have been)
06:23 mattp_ left
autarch ShimmerFairy: are you working on the parsing in rakudo? 06:23
06:23 zacts left, xpen left, abaugher left, bowtie left
autarch cause there are some bugs I'd like to point you at ;) 06:23
Quom_ ShimmerFairy: Parser or walker?
06:24 Ben_Goldberg left, uruwi left, Zoffix left, sunnavy left
ShimmerFairy autarch: yeah, I've been working on developing a new parser out of core (since that's so much easier) over the last couple/few months, off and on. Countless other projects I like working on have slowed things a bit :P 06:24
06:24 ssflying joined
autarch why would we need a parser outside of core? I really appreciate being to get objects from $=pod versus the Perl 5 way (which is "use some module off CPAN to read a bunch of text") 06:24
ShimmerFairy autarch: only out-of-core because it's much easier than recompiling rakudo every time one makes a change, it's supposed to go in when it's ready enough :) 06:25
autarch I see
ShimmerFairy (it's not uncommon for rakudo devs to do this for new big-ish features in general, IIRC) 06:26
06:26 CurtisOvidPoe_ joined
autarch I see 06:26
I'm not very familiar with how any of the Perl 6 core dev works
06:27 uruwi joined
ShimmerFairy autarch: it's just something you do because waiting 100-odd seconds to recompile rakudo to test if your typo fix actually works tends to slow down things too much in the "rapid development" phase of something :) 06:27
autarch makes sense 06:28
ShimmerFairy It's a useful strategy for any project where you'd rather like to prototype some new component without trying to put in a larger context at the same time, I think. :)
autarch some bugs to look at - rt.perl.org/Ticket/Display.html?id=114480 - rt.perl.org/Ticket/Display.html?id=126740 - rt.perl.org/Ticket/Display.html?id=126742 06:29
rt.perl.org/Ticket/Display.html?id=126651 06:30
ShimmerFairy about those table bugs, =tables have been a sticking point for me for quite a while as well. And incidentally getting some tiny bit of table parsing implemented is the last thing keeping me from wanting to make my project public :) 06:31
autarch I also note that S26 talks about every named block having its own class like Pod::Block::Named::Image but that's not happening right now - named blocks all seem to be Pod::Block::Named 06:32
Quom_ timotimo and I, and probably others, have tried to implement tables as well. PITA
autarch ShimmerFairy: I ended up just forcing the table contents to become POD in my NodeWalker code - github.com/autarch/perl6-Pod-NodeW...Walker.pm6 - look for self!podify
ShimmerFairy autarch: yeah, the Pod "AST" structure is something I find woefully under-defined in S26, so part of my fix-up project is to make a more defined structure 06:33
autarch FWIW I don't think having Named::X classes is really very useful - it might be better to just update S26 here ;) 06:34
06:34 noganex joined
ShimmerFairy Quom_: my current idea is to set up an "interruptible" version of how implicit paragraphs are processed, namely because of one-pass parsing, and because doing too much grammar work actions-side feels like a code smell to me :) 06:35
06:37 zacts joined
autarch that also reminds me - the way things like "=head1 Foo" generates a Para node seems very gross and requires a lot of dumb hacks to generate sane HTML 06:37
I'm constantly flipping a $!render-paras attribute back and forth - very dumb
06:37 noganex_ left, CurtisOvidPoe left, telex left, krakan left 06:38 eiro left, CurtisOvidPoe_ is now known as CurtisOvidPoe, Zoffix joined
autarch again, this is something that the compiler knows better than I do - "=item1 Foo" - no para - "=begin item1\n\nFoo\n\n=end item1" - has a para 06:38
Quom_ ShimmerFairy: Oh it can absolutely be done in pass, it's just hard to get that to work in NQP
autarch: And what's your proposed behavior? 06:39
autarch Quom_: well, I haven't worked out _every_ corner case - but it seems like "=foo Text on same line" should never generate a Para 06:40
Quom_ Oh, I misunderstood.
autarch and probably the same goes for "=foo\nText on line immediately after block start"
ShimmerFairy autarch: well, implied paras are something =head has, as I recall. I did however set up a way for the Pod writer (but _not_ the renderer) to tell the compiler not to imply =para :)
autarch ShimmerFairy: it seems like some reasonable defaults are in order here 06:41
no one writes "=head2 Thingy" and expects HTML like "<h2><p>Thingy</p></h2>"
in fact, that's not even legal HTML
06:42 abaugher joined, krakan joined
ShimmerFairy I don't think we can expect all potential rendering formats to support exactly what Pod does, so the fact that HTML supposedly can't handle a paragraph in a header isn't Pod6's fault to me :) 06:42
Quom_ autarch: I was going to throw together a PR for ItemGroup, but I forgot how messy the Rakudo code is, and implementing without cleaning up would make a much bigger mess. So sorry, not tonight :9
autarch that's ok, I already spent the time to work around it and test my workarounds 06:43
now you'd just be making _more_ work for me ;)
ShimmerFairy Quom_: if I work fast enough, I'll be able to make my code finally public tonight :)
06:43 sunnavy joined
Quom_ ShimmerFairy: Well, if it's public in any form I could assist :) 06:43
Tonight, though, it seems I've run up against my fair share of dead-ends 06:44
(half-dead-ends? wilted-ends? sprouting-ends?)
ShimmerFairy Quom_: sure, the only reason it isn't atm is because of my tendency to want something "good enough", or something representative enough of where my ideas are headed, plus other interests taking my attention :)
Quom_ understandable :) 06:45
06:51 geraud left
autarch ok, bed time, but feel free to have the bots send me messages - if people like the new Pod::To::HTML I'll try using it for doc.perl6.org before I write API docs and submit a PR 06:52
07:00 FROGGS joined 07:01 telex joined 07:03 snarkyboojum joined 07:04 zacts left 07:11 BenGoldberg_ left 07:19 pierre-vigier left 07:22 skids left 07:26 abraxxa joined
[Tux] lizmat, what changed for me to get this: 07:29
===( 17210;53 14730/? 0/? 0/? )====================================Cannot directly create a Supply. You might want:
- To use a Supplier in order to get a live supply
- To use Supply.on-demand to create an on-demand supply
- To create a Supply using a supply block
in sub in at t/90_csv.t:78
in block <unit> at t/90_csv.t:104
test 50000 23.383 23.268 07:32
test-t 50000 20.935 20.820
csv-parser 50000 29.589 29.474
07:32 FROGGS left
arnsholt [Tux]: jnthn recently changed some parts of how Supplies work; that's probably it 07:34
[Tux] s/Supply/Supplier/ => hang, so it is not that simple 07:35
arnsholt There's a Rakudo commit with a long commit message that details what live and on-demand is, I think 07:36
[Tux] s/Supply.new; start/supply/ => No such method 'emit' for invocant of type 'Supply' 07:37
07:37 noganex left
[Tux] a8231f14b2d5400e06 07:38
07:42 cgfbee left, dpk left 07:44 dr4ngd joined
dr4ngd hi 07:44
07:44 apejens_ left
[Tux] reading the commits and the docs, it looks like I would need gist.github.com/Tux/ccaa53f28b5744ead7ee but that causes the tests to hang 07:46
moritz hi dr4ngd
yoleaux 26 Nov 2015 23:51Z <gfldex> moritz: i would like to book a day in advent, but don't know how!
07:48 dpk joined, rurban joined, dpk left 07:51 sno joined, pierre-vigier joined, dr4ngd left
[Tux] jnthn, why does Supply::Preserving not have .from-list ??? 07:51
my $sup = Supplier::Preserving.new;
$sup.from-list (@data,);
should DWIM? 07:52
moritz .tell gfldex claim a spot on github.com/perl6/mu/blob/master/mi...5/schedule and /msg me your email address (unless you already have write access to the blog) 07:53
yoleaux moritz: I'll pass your message to gfldex.
moritz .msg gfldex claim a spot on github.com/perl6/mu/blob/master/mi...5/schedule and /msg me your email address (unless you already have write access to the blog)
yoleaux moritz: Sorry, this command is admin-only.
07:54 Celelibi left, dpk joined
moritz m: my $sub = Supplier::Preserving.from-list((1, 2, 3)) 07:54
what's up with the bots today? bad net wheather?
camelia rakudo-moar 7c5472: OUTPUT«Method 'from-list' not found for invocant of class 'Supplier::Preserving'␤ in block <unit> at /tmp/D2GaiJAK1d:1␤␤»
[Tux] Method 'from-list' not found for invocant of class 'Supplier::Preserving'
in sub in at t/90_csv.t:78
masak m: say .subst(/h/, "") and say .subst(/a/, "") given "wheather" 07:55
yoleaux 26 Nov 2015 02:50Z <Zoffix> masak: you seem to know math well. Does this make any sense or should it be throwing due to division by zero? m: say (0/0)+(0+1i) <camelia> rakudo-moar : OUTPUT«Inf+1i␤»
07:55 rindolf joined
masak Zoffix: I think that's conformant with IEEE 754. 07:55
camelia rakudo-moar 7c5472: OUTPUT«weather␤whether␤» 07:56
07:56 dpk is now known as {dpk}
[Tux] m: my $sup = Spplier::Preserving.from-list((1, 2, 3)); 07:56
m: my $sup = Supplier::Preserving.from-list((1, 2, 3)); 07:57
camelia rakudo-moar 7c5472: OUTPUT«Could not find symbol '&Preserving'␤ in block <unit> at /tmp/RbxhuE_MyV:1␤␤Actually thrown at:␤ in block <unit> at /tmp/RbxhuE_MyV:1␤␤»
rakudo-moar 7c5472: OUTPUT«Method 'from-list' not found for invocant of class 'Supplier::Preserving'␤ in block <unit> at /tmp/tt_wVxeREr:1␤␤»
08:00 RabidGravy joined 08:01 MilkmanDan left, MilkmanDan joined, darutoko joined 08:03 Celelibi joined 08:05 dayangkun left 08:08 dayangkun joined 08:12 M-eternaleye is now known as eternaleye, eternaleye left, eternaleye joined 08:15 cgfbee joined, pierre-vigier left 08:20 xpen joined, bowtie joined 08:22 Humbedooh joined 08:29 bjz left, rindolf left, doublec left, Actualeyes left, yeahnoob left, n0xff left, stmuk_ left, Khisanth left, llfourn left, b2gills left, yoleaux left, bakedb left, Sgeo left, avar left, mprelude left, burnersk left, wtw left, confuseAcat left, jantore left, crux left, literal left 08:30 n0xff joined, llfourn joined, bakedb joined, doublec joined, Khisanth joined, rindolf joined, Sgeo joined, mprelude joined 08:31 bjz joined, ir2ivps4 left 08:34 yeahnoob joined, Actualeyes joined 08:36 bjz_ joined 08:38 Sgeo_ joined 08:40 maddingu1 is now known as maddingue
[Tux] .tell jnthn my $sup = Supplier::Preserving.from-list((1, 2, 3)); 08:41
08:41 MilkmanDan left, bowtie left, xpen left 08:42 Bucciarati left, rindolf left, mprelude left, bakedb left, corbyhaas left, frew left, bjz left, Sgeo left, Khisanth left, n0xff left 08:44 FROGGS joined
moritz perlpunks.de/paste/show/56581877.355a.147 08:47
somehow the rebuild is b0rked
08:49 rurban left 08:50 corbyhaas joined
moritz never mind, that's an old one 08:52
08:55 bonsaikitten left 08:59 uruwi_ joined 09:01 Axord left, Bucciarati joined 09:02 corbyhaas left, FROGGS left, Sgeo_ left, bjz_ left, Actualeyes left, yeahnoob left, doublec left, llfourn left, cgfbee left, dayangkun left 09:03 Celelibi left, darutoko left, RabidGravy left, sno left, sunnavy left, abaugher left, uruwi left, ssflying left, mattp__ left, bpmedley left, molaf__ left, isacloud left, go|dfish left, ilbelkyr left, diakopte1 left 09:04 bjz joined 09:11 uruwi_ left 09:12 bjz left 09:13 stmuk joined, corbyhaas joined, Sgeo_ joined, Actualeyes joined, doublec joined, cgfbee joined, Celelibi joined, darutoko joined, RabidGravy joined, abaugher joined, isacloud joined, go|dfish joined, ilbelkyr joined, diakopte1 joined, jantore joined, ilbelkyr left, cgfbee left 09:14 pierre-vigier joined, sno joined 09:15 molaf__ joined, dayangkun joined 09:17 TEttinger left 09:18 ilbelkyr joined 09:19 ssflying joined 09:20 brrt joined, Ven joined, xiaomiao joined, ely-se joined 09:21 llfourn joined 09:22 bjz joined, mattp__ joined, sunnavy joined, cgfbee joined 09:24 Ven_ joined, ir2ivps4 joined 09:25 mprelude joined, [Sno] joined, noganex joined 09:28 ely-se_ joined 09:33 cgfbee left, ely-se left, xiaomiao left, Ven left, dayangkun left, molaf__ left, sno left, pierre-vigier left, jantore left, stmuk left, corbyhaas left, Sgeo_ left, Actualeyes left, doublec left 09:34 Celelibi left, darutoko left, RabidGravy left, abaugher left, isacloud left, go|dfish left, diakopte1 left, cgfbee joined, xiaomiao joined, stmuk joined, corbyhaas joined, Sgeo_ joined, Actualeyes joined, doublec joined, darutoko joined, RabidGravy joined, abaugher joined, isacloud joined, go|dfish joined, diakopte1 joined 09:35 ely-se_ left, cgfbee left 09:39 Celelibi joined 09:41 domidumont joined, telex left 09:42 eiro joined 09:43 uruwi joined, scopesoft left, telex joined 09:44 jantore joined
jnthn morning, #perl6 09:45
09:45 Amnez777 left
nine_ Good morning, jnthn 09:47
It's a quiet morning
jnthn [Tux]: .from-list is still used as Supply.from-list. It's only when you had a Supply.new that things need to change.
[Tux] reading the commits and the docs, it looks like I would need gist.github.com/Tux/ccaa53f28b5744ead7ee but that causes the tests to hang 09:48
that is when I started to read the commit messgaes and concluded I needed Supplier::Preserving instead
jnthn If you had Supply.new before you just want Supplier.new now 09:49
[Tux] then the tests hang, so it is not 100% compatible
jnthn Oh, wait
*sigh* I think there was some weird notion of "paused" things...that was horrible.
:)
[Tux] that *was* the first thing I tried. I learned how to read the errors by now :) 09:50
jnthn So it could be you need Supplier::Preserving after all.
09:51 molaf joined
jnthn @i.push: $sup; 09:51
That probably wants to be
@i.push: $sup.Supply;
The Supplier is the thing you emit with
The Supply is what you want the outside world so they can tap into the things you emit
09:51 FROGGS joined
[Tux] ah, makes sense 09:51
jnthn uh, what you *give* the outside world
[Tux] @i.push: Supplier::Preserving.from-list (@data,); 09:52
that would DWIM
jnthn No, that one is still Supply. 09:53
You only ever need a Supplier if you will be calling .emit yourself
Supply.from-list gives an on-demand supply, as it always has, meaning that it starts feeding you the list every time you tap it. 09:54
09:54 uruwi left
[Tux] my $sup = Supplier::Preserving.new.Supply; 09:54
$sup.from-list (@data,);
@i.push: $sup;
like that?
09:54 ir2ivps4 left 09:55 cgfbee joined
jnthn No 09:55
from-list is a factory method
Supply.from-list(@data) is all you need
09:55 FROGGS left, molaf left 09:56 jantore left, telex left, ir2ivps4 joined
[Tux] won't that bork on the one-arg rule? 09:56
jnthn You only need a Supplier at all if you will do .emit calls yourself
.from-list follows the 1-arg rule now (didn't before, though) 09:57
I'm assuming you want a supply that, when tapped, will emit each item in @data?
09:57 olinkl_ joined
[Tux] yes 09:58
09:58 olinkl left, olinkl_ is now known as olinkl
jnthn Then it should work fine (now) 09:59
m: my @a = 1..10; Supply.from-list(@a).tap(*.say)
Aww...netsplits probably upset dalek :(
camelia rakudo-moar 7c5472: OUTPUT«1␤2␤3␤4␤5␤6␤7␤8␤9␤10␤» 10:00
jnthn heh, 2 minutes :) 10:01
[Tux] @i.push: Supply.from-list (@data); 10:02
tests pass. it is that simple
jnthn++ 10:03
gfldex .tell moritz post posted, set to private and to be published on 2015/12/02@00:01 10:05
10:06 bowtie joined, molaf joined
jnthn \o/ 10:07
gfldex .botsnack
10:07 dayangkun joined 10:08 uruwi joined, Amnez777 joined, dayangkun left, snarkyboojum left, royalkiran007 left, brrt left, rurban joined 10:09 jantore joined, rurban left, Amnez777 left 10:10 rurban joined, Amnez777 joined, Amnez777 left 10:11 Amnez777 joined
RabidGravy who was it that was complaining that HTTP::UserAgent didn't have a .post() method? I just implemented it. 10:11
10:11 telex joined
RabidGravy after a bit of refactoring I did yesterday, it became too easy to avoid 10:13
10:15 kjs_ joined 10:16 Amnez777_ joined 10:19 brrt joined 10:20 revdiablo left, Amnez777 left, garu_ left, garu joined, espadrine_ joined 10:24 brrt left, pierre-vigier joined 10:27 espadrine_ is now known as espadrine 10:29 Actualeyes1 joined, pierre-vigier left 10:31 sftp left 10:32 uruwi_ joined, bonsaikitten joined 10:33 darutoko- joined, jonathan__ joined, Skarsnik joined 10:34 Celelibi_ joined, jonathan__ is now known as yvarGdibaR
yvarGdibaR what's all that about 10:34
10:34 Amnez777_ left, kjs_ left, telex left, jantore left, uruwi left, molaf left, bowtie left, olinkl left, ir2ivps4 left, cgfbee left, Celelibi left 10:35 xiaomiao left, stmuk left, corbyhaas left, Sgeo_ left, Actualeyes left, doublec left, darutoko left, RabidGravy left, abaugher left, isacloud left, go|dfish left, diakopte1 left
yvarGdibaR SPLITTERS! 10:35
10:36 yvarGdibaR is now known as RabidGravy 10:38 ilbelkyr_ joined, Ven_ left 10:40 Actualeyes1 left, ilbelkyr left, solarbunny left, pnu left, MilkmanDan joined 10:42 olinkl joined, corbyhaas joined, doublec joined, abaugher joined, isacloud joined, diakopte1 joined 10:44 jantore joined 10:45 jantore left, olinkl left 10:46 corbyhaas left, doublec left, abaugher left, isacloud left, diakopte1 left, jantore joined, olinkl joined, corbyhaas joined, doublec joined, abaugher joined, isacloud joined, diakopte1 joined 10:51 Celelibi_ is now known as Celelibi 10:57 telex joined, molaf joined, sftp joined 10:58 Psyche^_ left 11:00 simcop2387 left
RabidGravy is this thing on? 11:01
jnthn Stormy morning on the internets, it seems... 11:03
11:05 xinming left
dalek kudo/nom: 916b01b | lizmat++ | src/core/Supply.pm:
We want the todo per tap, jnthn++
11:10
lizmat .botsnack
aww 11:11
:-)
11:11 kipd left
jnthn lizmat: Did you see the "need the empty whenever for side-effects" one too? :) 11:12
11:12 kipd joined
lizmat was just about to ask 11:12
jnthn thinks he's figured out a bunch of the Proc::Async and IO::Socket::Async data loss flappiness
lizmat so, we should not last out of a whenever also ?
jnthn You can 11:13
last in a whenever means "close the tap on this whenever"
done in a whenever means "emit done and close the taps on all whenevers in this supply block"
lizmat ok, so then re 39869f1bc15b2f03fd8a , I could just do: whenever self -> \val { last } ?
11:13 SmokeMachine_ left 11:14 SmokeMachine_ joined
jnthn This is about tail, right? 11:14
Imagine
lizmat *and* head, in the case of number <= 0
jnthn m: Supply.from-list(1..10).do(&say).last(5).tap 11:15
camelia rakudo-moar 7c5472: OUTPUT«Method 'last' not found for invocant of class 'Supply'␤ in block <unit> at /tmp/xThmNUkCuF:1␤␤»
11:15 cgfbee joined
jnthn m: Supply.from-list(1..10).do(&say).tail(5).tap 11:15
camelia rakudo-moar 7c5472: OUTPUT«1␤2␤3␤4␤5␤6␤7␤8␤9␤10␤»
jnthn m: Supply.from-list(1..10).do(&say).tail(1).tap
camelia rakudo-moar 7c5472: OUTPUT«1␤2␤3␤4␤5␤6␤7␤8␤9␤10␤»
jnthn m: Supply.from-list(1..10).do(&say).tail(0).tap
camelia ( no output )
jnthn That's the problem.
lizmat aha, so I *shouldn't* last out of it 11:16
jnthn Right
lizmat ok
jnthn It was right as I had it, though I really shoulda put a comment explaining why it's not pointless :)
lizmat I will
jnthn Thanks
11:16 yoleaux joined, ChanServ sets mode: +v yoleaux 11:17 ir2ivps4_ joined
lizmat jnthn: so: basically we can never "last" out a built-in / library type of Supply method 11:19
yoleaux 00:16Z <[Coke]> lizmat: - should we again remove all deprecations before xmas?
04:55Z <b2gills> lizmat: did you mean `emit $elems = $elems + 1` instead of `emit ++$elems` ? github.com/rakudo/rakudo/commit/7d636cfc11
jnthn lizmat: Well, .head can last, for example 11:20
yoleaux 26 Nov 2015 22:48Z <lizmat> jnthn: supply test fails on OS X seem to be related to setting $*SCHEDULER
26 Nov 2015 22:49Z <lizmat> jnthn: could it be some missing decont on $*SCHEDULER maybe ?
26 Nov 2015 23:07Z <lizmat> jnthn: question: should you be able to last out of a whenever block without further consequences ?
00:36Z <TimToady> jnthn: I rejected RT #120916 because it suffices to stub the accessor instead.
05:39Z <nwc10> jnthn: valgrind didn't show anything other than the abort
lizmat yoleaux is back!
jnthn lizmat: The issue with tail is simply that it's an odd discontinuity that going towards zero you get all the side-effects, but when you hit zero you get none
Whereas with head, 0 immediately meaning "done" is fine, because 1 will be done with just one thing processed, etc. 11:21
lizmat m: Supply.from-list(1..10).do(&say).head(0).tap
camelia ( no output )
lizmat isn't that the same issue ?? ^^^
jnthn But it's fine there 'cus it's not a weird discontinuity :)
m: Supply.from-list(1..10).do(&say).head(1).tap 11:22
camelia rakudo-moar 7c5472: OUTPUT«1␤2␤3␤4␤5␤6␤7␤8␤9␤10␤»
jnthn uh...
That's wrong though.
That should just do 1
lizmat why? the .do is before the .head ?
jnthn .head should close the tap once it's seen enough though 11:23
11:23 simcop2387 joined
jnthn I'm not sure why that isn't happening "for free" with the code already there 11:23
yoleaux jnthn: Sorry, that command (.head) crashed.
lizmat m: Supply.from-list(1..10).head(1).do(&say).tap
camelia rakudo-moar 7c5472: OUTPUT«1␤»
lizmat this makes sense to me
jnthn yoleaux: I didn't really want head from you, tbh :P
lizmat the .head is *before* the .do, so the .do only sees 1 11:24
11:24 jantore left, olinkl left, corbyhaas left, doublec left, abaugher left, isacloud left, diakopte1 left, darutoko- left
jnthn But it's a pipeline, that values are meant to be pushed through one at a time. 11:24
Think of the lazy list dual 11:25
m: (1..10).map(&say).head(1)
camelia rakudo-moar 7c5472: OUTPUT«1␤»
11:25 ir2ivps4_ left, cgfbee left
jnthn m: (1..10).map(&say).head(2) 11:25
camelia rakudo-moar 7c5472: OUTPUT«1␤2␤»
11:25 molaf left, telex left, Celelibi left, Skarsnik left, RabidGravy left, bonsaikitten left, uruwi_ left
lizmat jnthn: gotcha 11:26
jnthn I really don't know why it doesn't Just Work though. I can't see anything you've done wrong in head. 11:27
jnthn can take a look
lizmat well, lemme test some changes :-)
jnthn OK :)
I need to debug/fix something weird happening with async sockets
lizmat yeah, and I should be preparing my slides for tomorrow :-) 11:28
jnthn ;)
11:30 Skarsnik joined, pnu joined, solarbunny joined
lizmat jnthn: looks like lasting out of a whenever doesn't close the ta[ 11:32
*tap
11:33 sftp left
jnthn lizmat: OK, that's prolly the isuse then 11:35
lizmat jnthn: can I leave that to you?
11:36 d4l3k_ joined, olinkl joined, corbyhaas joined, doublec joined, abaugher joined, isacloud joined, diakopte1 joined, jantore joined
jnthn lizmat: Yeah, it'll probably be in SUPPLY somewhere, or some other nasty place. 11:37
11:38 sftp joined
lizmat ok, I will have a stab at it 11:38
BTW, shouldn't that live in Rakudo::Internals ??
jnthn Maybe. :)
Rakudo::Internals didn't exist at the time I added it :)
11:38 integral_ joined, integral_ left, integral_ joined
jnthn Feel free to move 'em. 11:39
Though Actions.nqp will need an update.
lizmat not clear how to change Actions.nqp, tbh
11:39 Juerd_ joined
lizmat find_method in Rakudo::Internals ? 11:39
jnthn Probably just a callmethod node instead of a call node 11:40
11:40 xdbr left
jnthn And with first child being a WVal holding Rakudo::Internals (which you get with find_symbol) 11:40
lizmat ok
11:41 kipd left
jnthn Socket tests showed up my first fix wasn't so smart. 11:41
Now I've got it working nicely :)
11:42 kipd joined, SmokeMachine_ left, dpk joined 11:43 yx_ joined, yoleaux left, {dpk} left, eternaleye left, obra left, esh left, dalek left, DrPete_ left, hacst left, mathw left, pierrot left, ugexe left, sjn left, havenwood left 11:44 advwp_ left, luis left, masak left, cfloare left, chewie_2082 left, risou left, avalenn left, jme` left, Juerd left, mephinet left, roguelazer left, jsimonet left, ilmari left, integral left, zemmihates left, chansen_ left, timotimo left, [ptc] left, xnrand left, dylanwh left, Juerd_ is now known as Juerd, d4l3k_ is now known as dalek, ChanServ sets mode: +v dalek 11:45 yx_ is now known as xnrand 11:46 dalek left, [ptc] joined
lizmat jnthn: hmmm... S17-supply/syntax.t now gives me an "Abort trap: 6" 11:46
11:46 ggherdov left
jnthn After changing things? 11:48
11:48 yoleaux joined, obra joined, DrPete_ joined, ugexe joined, advwp_ joined, chewie_2082 joined, risou joined, jme` joined, jsimonet joined, zemmihates joined, chansen_ joined, timotimo joined, dylanwh joined, orwell.freenode.net sets mode: +v yoleaux, obra left
jnthn can try looking at the patch 11:48
lizmat not sure
lizmat stashes and rebuilds 11:49
11:49 dpk is now known as Guest57557, dalek joined, ChanServ sets mode: +v dalek, ilmari joined 11:50 roguelazer joined 11:51 advwp_ left, chewie_2082 left, sftp left, Guest57557 is now known as {dpk} 11:52 hacst joined
lizmat jnthn: before my changes, could have been a while already so 11:52
dalek p: 2253c07 | jnthn++ | tools/build/MOAR_REVISION:
Bump MOAR_REVISION for async I/O protocol fix.
11:53
p: d9545f4 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/io/AsyncSocketHandle.java:
Tweak async socket sequence number emission.

Matches a fix in MoarVM. Enables fixing various data loss bugs.
11:55 PotatoGim left 11:56 hacst left, mephinet joined 11:57 hoelzro left
dalek kudo/nom: 139be68 | jnthn++ | / (5 files):
Fix various data loss bugs with async I/O.

In some cases, async sockets and processes could lose data from the end of the stream. Further, there was a data race in the sequencing code, which was duplicated in a couple of places also. This factors the sequence logic out to a single place, removes the data race, and uses protocol changes in Moar/JVM backend code to fix the data loss issue.
11:57
11:59 ggherdov joined 12:01 sftp joined, hacst joined 12:03 xdbr joined
dalek ast: 1971ba1 | jnthn++ | S (2 files):
Test for RT #125515.
12:03
jnthn oops, an unfudge slipped into that commit too
12:04 kipd left
dalek kudo/nom: ee1dbdd | jnthn++ | t/spectest.data:
Run S17-procasync/stress.t as stress test.
12:04
12:05 Hotkeys left 12:06 hoelzro joined, hacst left 12:09 literal joined, wtw joined
jnthn .tell leont I fixed a Proc::Async issue that could cause data loss in various cases, which was quite likely responsible for your harness issues. 12:11
yoleaux jnthn: I'll pass your message to leont.
12:11 rigsby left, avar joined, avar left, avar joined, bowtie joined, Ven joined, crux joined, lucasb joined, luis joined, uruwi joined, cfloare joined 12:12 RabidGravy joined, molaf joined
moritz \o/ 12:12
yoleaux 11:17Z <gfldex> moritz: post posted, set to private and to be published on 2015/12/02@00:01
12:12 xinming joined, SmokeMachine_ joined, havenwood joined, M-eternaleye joined, havenwood left, havenwood joined
lucasb freenode still unstable for me :( very hard to connect 12:12
12:12 Celelibi joined, revdiablo joined, cgfbee joined, avalenn joined, confuseAcat joined 12:13 hacst joined, pierrot joined 12:14 Actualeyes joined, masak joined, masak is now known as Guest7129 12:15 Spot__ left
RabidGravy what larks 12:16
jnthn lunch &
dalek ast: f013d55 | lizmat++ | integration/no-indirect-new.t:
Apparently the exception type has changed
12:18
12:18 kipd joined, mathw joined, n0xff joined 12:19 pierrot left, advwp joined
lizmat .tell jnthn looks like most of the problems I see in supply tests, are related to "done" and lasting out of a whenever (which should do a "done" I assume) 12:22
yoleaux lizmat: I'll pass your message to jnthn.
12:22 M-eternaleye is now known as eternaleye, eternaleye left, eternaleye joined
lizmat .tell jnthn since I have no idea where "done" is being done, I have no idea how to debug this further :-( 12:22
yoleaux lizmat: I'll pass your message to jnthn.
12:23 confuseAcat left 12:26 nmp joined 12:27 xiaomiao joined, Khisanth joined 12:30 kaare_ joined
RabidGravy testing oauth stuff is a mammoth pain in the arse 12:31
12:32 chewie_1982 joined 12:33 sftp left, mrsolo left 12:36 Spot__ joined, Ven_ joined, sftp joined 12:37 obra joined 12:38 uruwi left, luis left, havenwood left, SmokeMachine_ left, sjn joined 12:39 SmokeMachine_ joined, advwp left, avalenn left, xinming left, eternaleye left, lucasb left, kaare_ left, uruwi joined, mathw left, cgfbee left, revdiablo left, Celelibi left, stmuk joined 12:40 RabidGravy left, cfloare left, bowtie left, Ven left, avalenn joined, rindolf joined, advwp joined, pierrot joined 12:41 cfloare joined, revdiablo joined
dalek kudo/nom: ae5bc14 | lizmat++ | src/core/Supply.pm:
Remove done() / Replace by last

This seems to fix a large number of the supply test breakage on OSX
12:42
12:42 kaare_ joined 12:43 ir2ivps4_ joined, frew joined 12:44 bowtie joined
dalek kudo/nom: 3ce3df5 | lizmat++ | src/core/Supply.pm:
Fix semantics of Supply.head/tail, jnthn++
12:44
kudo/nom: 8a2f0c7 | lizmat++ | src/core/Supply.pm:
Adopt suggestion by Brad Gilbert++
12:44 luis joined 12:45 hoelzro left, M-eternaleye joined, Celelibi joined, llfourn left 12:46 havenwood joined, havenwood left, havenwood joined, hoelzro joined, Guest7129 is now known as masak_grr 12:48 telex joined 12:51 mephinet left 12:54 mephinet joined, pierre-vigier joined
jnthn lizmat: I assume all those places you removed done don't have more than one whenever? 12:56
yoleaux 12:22Z <lizmat> jnthn: looks like most of the problems I see in supply tests, are related to "done" and lasting out of a whenever (which should do a "done" I assume)
12:22Z <lizmat> jnthn: since I have no idea where "done" is being done, I have no idea how to debug this further :-(
jnthn lizmat: I think they're OK except the one in throttle 12:57
Which will now fail to "done" the supply and keep the timer alive, by the looks of it 12:58
lizmat jnthn: ok, will put that one back 13:00
jnthn The others seem like nice simplifications
done throws a control exception btw
13:00 boegel left
jnthn Which means that control flow ends at a done 13:00
13:02 Hotkeys joined 13:03 hacst left, RabidGravy joined
jnthn is looking at rt.perl.org/Ticket/Display.html?id=123949 13:03
[Tux] Inline::Perl5 still FAILs
jdv79 RabidGravy: i did. just never got around to doing it myelf 13:04
jdv79 should check if the headers bug(s) i found are fixed yet..
RabidGravy unlikely
13:05 ilmari left, boegel joined, cgfbee joined 13:06 lucasb joined, pierre-vigier left, mephinet left 13:07 confuseAcat joined
lucasb Does it make sense to say that .head and .tail are "non-destructive" versions of shift and pop? 13:07
13:07 mathw joined
jnthn lucasb: Well, aside from the numeric parameter, kinda :) 13:08
13:08 woolfy joined, woolfy left
lucasb What is your opinion about making shift and pop accept an integer argument, meaning the number of elements to be shifted/poped? Another argument is that you can push and unshift more than one element, not just one. 13:08
13:09 xinming joined
jnthn I'd like to think we're mostly done with features before Christmas. 13:10
lucasb moar features! moar features! :D
just kidding :)
jnthn: thanks
nine_ [Tux]: does it happen with Inline::Perl5's tests or with your own code? 13:11
[Tux] basic tests
t/use.t ....................... ok
No such method 'context' for invocant of type 'Inline::Perl5::Perl6Callbacks'
in method invoke-parent at /pro/3gl/CPAN/rakudobrew/.panda-work/1448628920_4/lib/Inline/Perl5.pm6:503
in block at /pro/3gl/CPAN/rakudobrew/.panda-work/1448628920_4/lib/Inline/Perl5.pm6:991
in block <unit> at t/v6.t:19
13:11 hacst joined 13:12 domidumont left, isacloud left, parisba left, mephinet joined, hoelzro left, SmokeMachine_ left 13:13 pierre-vigier joined
Ulti m: say 􏿽xB3􏿽xB2 13:13
camelia rakudo-moar 8a2f0c: OUTPUT«9␤»
Ulti get why that's happening but maybe not the best outcome 13:14
13:14 Hotkeys left 13:15 SmokeMachine_ joined 13:16 Hotkeys joined, hoelzro joined, Psyche^ joined 13:17 colomon joined
dalek kudo/nom: 72d0970 | lizmat++ | src/core/Supply.pm:
Fix timer reset on Supply.throttle, jnthn++
13:18
kudo/nom: 62ddc6d | lizmat++ | src/core/Any-iterable-methods.pm:
Remove grep-index/first-index/last-index

Please use grep(:k), first(:k), first(:k,:end) instead
13:19 pierre-vigier left 13:21 dalek left, sftp left 13:22 dalek joined, ChanServ sets mode: +v dalek, Hotkeys left 13:24 SmokeMachine__ joined 13:25 SmokeMachine_ left 13:26 Psyche^ left, sftp joined, Hotkeys joined 13:27 PotatoGim joined, Psyche^ joined 13:28 isacloud joined
timotimo lucasb: you can't push and unshift more than one element, though :) 13:28
lucasb: that was recently changed; we have append and prepend to put more than one element at the beginning or end, but pop is always a single element 13:29
so that push and pop can be symmetric
dalek kudo/nom: 842010f | jnthn++ | src/core/IO/Socket/Async.pm:
Missing space in an error.
lizmat .tell [Coke] maybe the contributor list for 2015.12 should contain *all* contributors we can cull from the git logs ? 13:30
yoleaux lizmat: I'll pass your message to [Coke].
13:30 avalenn left
timotimo oh my word! my ipv6 connectivity issues have been resolved! 13:31
lucasb timotimo: I'm not sure I understand
13:31 avalenn joined
timotimo m: my @foo; @foo.push(1, 2, 3, 4); say @foo.perl 13:31
camelia rakudo-moar 62ddc6: OUTPUT«[1, 2, 3, 4]␤»
timotimo that's not ... huh?
13:31 ilmari joined
timotimo m: my @foo; @foo.push(1, 2, 3, 4); @foo.push("hi"); say @foo.perl 13:31
camelia rakudo-moar 62ddc6: OUTPUT«[1, 2, 3, 4, "hi"]␤»
lucasb timotimo: ^^ see? :) 13:32
timotimo didn't ... huh?
13:32 parisba joined
jnthn timotimo: The difference is that it doesn't follow the 1-arg rule 13:32
timotimo oh
jnthn timotimo: One argument = one item
timotimo m: my @foo; @foo.push((1, 2, 3, 4)); @foo.push("hi"); say @foo.perl
camelia rakudo-moar 62ddc6: OUTPUT«[(1, 2, 3, 4), "hi"]␤»
timotimo that's how
yeah, that makes sense
13:32 parisba is now known as Guest77425
dalek kudo/nom: dee63c3 | lizmat++ | src/core/Str.pm:
Remove support for Str.split(:all)

Please use Str.split(:v) instead
13:33
ast: e3c4965 | lizmat++ | S32-str/split-simple.t:
Fix Str.split tests using :all, use :v instead
lucasb timotimo: so.. it *can* push and unshift more than element, right? I was just asking that .shift(5) and .pop(5) shifted and poped 5 elements 13:34
timotimo oh!
how did i misread that?
my quality of sleep must be declining or something
on that note: how do i find a topic to write about for the advent calendar? :\
13:35 go|dfish joined
lizmat lucasb: an argument against multiple elements being popped/unshifted, is that it would change the return signature 13:35
timotimo we should make types in perl6 pretend they are a list of that type %) 13:36
lizmat timotimo: they already are
m: say Int[0]
camelia rakudo-moar 62ddc6: OUTPUT«5===SORRY!5=== Error while compiling /tmp/zi5V51GrNY␤Int cannot be parameterized␤at /tmp/zi5V51GrNY:1␤------> 3say Int[0]7⏏5<EOL>␤»
lizmat ah?
hmmm...
timotimo values are, but types aren't
lucasb lizmat: oh, ok. I didn't thought about that :)
timotimo you can assign 1 to a my Int @foo only because of list assignment/STORE semantics
13:36 dpk joined
timotimo not because Int also matches Positional[Int] 13:36
lizmat is not touching on DEPRECATED IO features until jnthn is done 13:37
timotimo and that would quite frankly be insane... probably
13:37 {dpk} left 13:38 dpk is now known as {dpk} 13:39 mrsolo joined
dalek kudo/nom: e270327 | lizmat++ | docs/ChangeLog:
Mention Supply.new -> Supplier.new change
13:39
13:42 Juerd left 13:43 zakharyas joined 13:45 mr-foobar joined 13:47 Psyche^_ joined
timotimo we didn't end up releasing last month's rakudo star that moritz prepared? 13:50
jnthn I need some input on a few IO API things: gist.github.com/jnthn/9d8b2e22882d7f7a871e 13:52
13:52 Psyche^ left, PotatoGim left, SmokeMachine__ left
lucasb lizmat: idk if I undestand you correctly, but shift and pop doesn't have a 'return signature', there is no contract about what they return 13:52
jnthn 2 xmas RTs and 2 other RTs depend on it! :P
lucasb their signature says 'is nodal', but idk what that means :)
jnthn moritz, hoelzro # ^^ these involve tickets you filed :) 13:54
timotimo "nodal" defines how things operate when used in a hyper context 13:55
lucasb timotimo: oh, ok. thanks. ...and do you know what does 'is raw' means?
13:56 kjs_ joined
timotimo that's about re-containerization, especially with lists - i think 13:56
lizmat m: sub a is raw { state $a = 42 }; say a; a++; say a 13:58
camelia rakudo-moar e27032: OUTPUT«42␤43␤»
lizmat m: sub a { state $a = 42 }; say a; a++; say a
camelia rakudo-moar e27032: OUTPUT«42␤Cannot call postfix:<++>(Int); none of these signatures match:␤ (Mu:D $a is rw)␤ (Mu:U $a is rw)␤ (Int:D $a is rw)␤ (int $a is rw)␤ (Bool:U $a is rw)␤ (Bool:D $a is rw)␤ (Num:D $a is rw)␤ (Num:U $a is rw)␤ …»
lizmat lucasb timotimo ^^^
13:59 Ven_ left
lucasb lizmat: thanks, made it somehow clear to me :) 14:00
moritz timotimo: not yet; it's still on my TODO
timotimo can i do something to help you? 14:02
i didn't test the tarball yet; would that help?
hack.p6c.org/~moritz/rakudo-star-20...rc0.tar.gz - the link from the backlog 14:03
moritz jnthn: I'm OK with your proposals, including not unifying the things for you do't have good ideas how to unify them
timotimo: it would. So far I haven't received a single bit of feedback on the tarball (only on the announcement)
jnthn moritz: Any feeling on the print-async thing?
timotimo damn.
i still find it a bit annoying that Configure.pl --gen-moar doesn't try to set a -j on the moar build 14:04
jnthn could go either way on that
timotimo given that it has interp.c somewhat early in the build and that takes a phenomenal amount of time compared to the other individual files
parallelization by -j2 would already help a whole lot there
14:04 Ven joined, bpmedley joined
moritz jnthn: I'd be fine with 'print' being async, and that you have to explicitly await for it 14:04
timotimo it's still less than a mintue on my box, but not sure if it's a good first impression... also this isn't feedback on the starball 14:05
jnthn moritz: OK, so that's the status quo.
moritz++ # feedback
moritz jnthn++ # proposal
timotimo: also, there's a rakudo/star PR for including linenoise; testing that would also help 14:06
arnsholt I've never used async stuff before, but intuitively I agree with moritz, it makes sense that output would be async like input is. Convenience methods for synchronous output might make sense though 14:07
14:08 doublec left
jnthn Well, you'd just write await $foo.print ... 14:08
I'm not sure putting that into the method name is a win :)
arnsholt Yeah, I guess it's not possible to shorten much =) 14:09
timotimo you can also .print(...).await to make it look a bit more LTR
14:10 zacts joined
timotimo ===SORRY!=== Error while compiling /tmp/rakudo-star-2015.11-rc0/install/share/perl6/lib/DBDish/TestMock/Connection.pm6 14:10
Invalid typename 'DBDish::Role::Connection'
that happens during the precompilation 14:11
moritz timotimo: with moar or JVM?
timotimo moar
moritz :( 14:12
why didn't that happen for me?
timotimo: do the tests still pass?
timotimo oh, make test, eh? 14:14
ah
14:15 doublec joined 14:16 lichtkind joined
timotimo DBIish tests are very unhappy 14:19
gist.github.com/timo/39e793ad327c917c721b
14:20 jantore_ joined, SmokeMachine__ joined
moritz timotimo: make modules-test 14:20
timotimo: and you did a 'make install' first? 14:21
timotimo i did make install
"make test" doesn't suggest "make modules-test", it probably should
14:22 mr-fooba_ joined
timotimo with make modules-test everything everywhere is happy 14:23
14:23 Actualeyes left
timotimo but "make test" suggests invoking prove on modules/foo/t 14:23
that's perhaps what breaks dBIish?
moritz timotimo: does 'make modules-test' work for you? 14:24
timotimo yes
all tests succeed everywhere
moritz then I guess we should not recommend the prove/ step 14:25
which assumes that stuff is installed, and thus doesn't set paths
which won't file test-only modules 14:26
timotimo oh?
but i ran the prove thing post-make-install
14:27 kjs_ left, mr-foobar left, ilmari left, isacloud left, sftp left, jantore left, olinkl left, corbyhaas left, abaugher left, diakopte1 left, ely-se joined
moritz timotimo: yes, but make install doesn't install test-only modules 14:28
(under t/lib/ or so)
timotimo ah!
of course
14:29 telex left 14:30 telex joined 14:31 donaldh joined
donaldh I have been experimenting with MAIN and USAGE - I would really like to document the command-line params 14:32
How is this for a proposal gist.github.com/donaldh/478814e68ab9d674eab9
14:32 avalenn left
donaldh hat-tip to jnthn++ for pointing out declarator pod 14:32
moritz donaldh: +1 14:33
14:34 avalenn joined
donaldh worth putting in core ? 14:36
14:37 domidumont joined
timotimo examples.perl6.org/categories/cookb...bject.html - urgh! recommending the use of .isa("Foo") is a terrible, terrible idea IMO 14:38
jnthn Yes, .isa(Foo) or just ~~ Foo 14:39
timotimo yes
should i just go ahead and change that?
14:39 inokenty joined
jnthn Aye 14:39
14:40 inokenty left
dalek pan style="color: #395be5">perl6-examples: 61ebb06 | timo++ | categories/cookbook/13classes-objects-and-ties/13-01constructing-an-object.pl:
do not recommend the use of .isa("Foo").

use ~~ Foo instead
14:40
timotimo it wouldn't be terrible if the examples site would directly link to a folder or file on github at the very bottom 14:41
how about this: the yahtzee game example has this line: sub roll-dice { map { (1..6).pick }, 1..$^rolls }; 14:42
lizmat upgrading&
timotimo should i just go into the source and replace roll-dice with (1..6).roll($num) where it used to be used?
14:42 lizmat left 14:43 inokenty joined
jnthn Or keep the sub roll-dice but put that inside of it 14:44
timotimo that's definitely less intrusive
also, it'll document more clearly what it is about
dalek pan style="color: #395be5">perl6-examples: 243ac3c | timo++ | categories/games/yahtzee.p6:
use .roll instead of .pick in a map

leaving it in the roll-dice sub for enhanced clarity
14:46
14:48 Juerd joined, ilmari joined, isacloud joined, sftp joined, olinkl joined, corbyhaas joined, abaugher joined, diakopte1 joined, xpen joined
timotimo ugh. examples.perl6.org/categories/shoot...-body.html extends past the right margin of the code box 14:49
i should file an issue
14:50 AlexDaniel joined
JimmyZ donaldh: +1 # looks awesome 14:51
RabidGravy wonders if soundcloud oauth authorisation grant codes expire themselves
dalek pan style="color: #395be5">perl6-examples: a718f31 | timo++ | template/head.html:
remove reference to jquery custom css that 404s
14:52
donaldh JimmyZ: note I just added the 5 lines of code to emit the arg docs after the usage docs.
JimmyZ donaldh: I like it about adding .WHY docs 14:53
14:54 lizmat joined
jnthn phew, lizmat survived her upgrade ;) 14:55
lizmat :-)
yup
timotimo \o/
up all the grades
hoelzro o/ #perl6 15:04
jnthn o/ h\o/elzr\o/
hoelzro =) 15:05
morning jnthn
AlexDaniel Ulti: (³²) this thing is reported, so yeah
jnthn There's some IO API stuff in recent backlog
Input would be welcome, when you get chance :)
hoelzro jnthn: regarding the Proc::Async API, I think print-async and co. are the right way forward
timotimo argh!!
why is this www.learningperl6.com/Chapters/11.f...ndles.html placed first on a google search for "perl6 file handle" 15:06
it says you get a line from a file handle with =$filehandle
jnthn Not for like 5 years it ain't :)
timotimo Last Modified: Tue May 1 09:34:54 2007
jnthn hoelzro: OK. Not everyone else feels that way...
timotimo File Handles- Cooksongold - buy now and get 15% off. use code "NOVEMBER" offer ends 30th nov! 15:07
yeah, people, hear that? get your file handles at an exquisite price! 15:08
JimmyZ
.oO(IO API backlog)... I have a PR for it :P
15:09
timotimo pinged bdfoy on twitter 15:10
JimmyZ: i'm +1 on getting that in
but i didn't review the code. i can't imagine what could go wrong, though
so there's that ...
15:10 khw joined
JimmyZ well, it is waiting for jnthn++ IO work. 15:12
timotimo ah!
hoelzro moritz, jnthn: so the P::A resolution is to leave the API as is, and just make sure people know to await() what print() returns? 15:13
moritz hoelzro: aye 15:14
timotimo i think so, too
make it very clear in the documentation
if you ask for async, you should not be surprised by getting async; but it should still be pointed out prominently 15:15
15:15 Axord joined
daxim inviting you to chip in: www.reddit.com/r/perl/comments/3ug...l_6_exist/ 15:15
hoelzro alright 15:17
thanks jnthn, moritz, timotimo, and others for weighing in! 15:18
jnthn hoelzro: I note it doesn't disorder the writes themselves, which would be nuts.
hoelzro right
hoelzro .oO( write? )
I think as long as everything returns promises and the documentation is very clear that everything is async, that should work fine
Skarsnik daxim, http::useragent return a http::response object for his example, wish make sense for http since there can be some additionnal stuff that just error x) 15:20
jnthn daxim: If you want to return something indicating failure, but that the caller can work with as a value, then "fail" is the typical way. You can fail with a typed exception to include more data, and there are various constructs to support processing either case (and if you ignore the failure it'll end up blowing up just like an exception) 15:21
m: sub foo($ok) { fail 'oops' unless $ok; 42 }; with foo(1) { .say } else { say "failed: $_" } 15:22
camelia rakudo-moar e27032: OUTPUT«42␤»
jnthn m: sub foo($ok) { fail 'oops' unless $ok; 42 }; with foo(0) { .say } else { say "failed: $_" }
camelia rakudo-moar e27032: OUTPUT«failed: (HANDLED) oops␤ in sub foo at /tmp/TzRxtu1jYc:1␤ in block <unit> at /tmp/TzRxtu1jYc:1␤␤»
15:23 cdg joined
lucasb oh, a '(HANDLED)' gets prepended in the stringfication of a failure? 15:24
lichtkind cheers 15:25
lucasb m: fail; say 'hi' # <-- I think this is a serious one to get fixed before xmas, isn't it? 15:26
camelia ( no output )
lucasb I mean, someone will certainly put a fail in the toplevel scope and will not know what happened 15:27
15:28 skids joined
jdv79 but does fail make sense for a http ua? 15:30
Skarsnik http ua does not fail 15:31
15:32 gtodd1 joined
gtodd1 .u 228E 15:32
yoleaux U+228E MULTISET UNION [Sm] (⊎)
15:33 gtodd1 is now known as gtodd
jdv79 Skarsnik: huh? 15:33
Skarsnik my $rep = $ua.get($url);if ! $rep.is-success {die "Can't contact $url" ~ $rep.status-line;
}
lizmat fetching a van& 15:34
15:36 lab joined
gtodd "U+" is Unicode "bootstrapping" itself from ASCII ? :-) 15:36
stackoverflow.com/a/8891122/2019415 unicode.org/mail-arch/unicode-ml/y2.../0060.html
jdv79 but thats not relevant to my question.
i was asking if returning fail sounds like a good idea 15:37
dalek pan style="color: #395be5">perl6-examples: 34da7ab | (Zoffix Znet)++ | html/css/style.css:
Fix: long code lines are hidden by the right margin (Closes #37)
lab Hi all. Is there a module equivalent to Devel::Size for P6? 15:39
jnthn Not yet, though --profile includes information on how many objects are allocated and which subs/methods allocate them. 15:41
And also stats on garbage collectino.
*collection 15:42
Skarsnik jdv79, I don't know, I don't know enought about http, but the request can fail but does not mean it's a failure, like you do a get, you can receive 404/403 that are failure but you can maybe get a redirect response too
15:42 llfourn joined 15:43 PotatoGim joined
hoelzro jnthn: I guess the remaining issue for kill.t is that kill doesn't return a promise; should I RT that separately? 15:44
lab jnthn: thanks, looking forward to some fun devel::XXX modules and htat one in particular. 15:46
15:46 lab is now known as nadim 15:47 llfourn left
jnthn quite wants a "heap explorer" style tool also :) 15:48
hoelzro: Does kill work asynchronously? 15:52
hoelzro jnthn: it sets up something to run in the cancel task queue, so it seems so
15:52 jernster joined
jnthn ah, ok 15:53
Then yeah, it should
15:54 lizmat left, go|dfish left, Hotkeys left, lichtkind left, DrPete_ left, risou left, jme` left
timotimo then the problematic code example should read $proc.write("hi").then(*.kill).then(*.write("oh my gosh")) ? 15:54
15:55 bpmedley left, lizmat joined
jnthn timotimo: No, just with await before each line. :) 15:55
timotimo pff. timtowtdi
15:59 Hotkeys joined 16:00 ely-se left 16:07 risou joined 16:08 DrPete_ joined, ely-se joined 16:09 lichtkind joined 16:13 go|dfish joined
skids I think the Supply work may have made $fh.watch.Promise not fire anymore. 16:18
16:19 ilbelkyr_ is now known as ilbelkyr, donaldh left
skids watch.tap still works. 16:20
jnthn The semantics of Supply.Promise changed 16:21
16:21 xpen left
jnthn You'll need $fh.watch.head(1).Promise to get the original ones 16:21
skids Ah that would explain it. jnthn++
Hrm that doesn't seem to do it though. 16:22
16:25 ely-se left, zakharyas left, ilbelkyr left 16:26 Ven left 16:27 ilbelkyr joined 16:28 Ven joined
jnthn Hm, head doesn't seem to be filing the "done" 16:34
16:34 Amnez777 joined
zengargoyle missed the great POD debate of last nite. sigh. 16:34
nine_ There was a POD debate?
16:34 nadim left
zengargoyle a lot of talk about Pod::ToHtml, Pod::Walker, item lists and such. 16:36
dalek rl6-roast-data: f384ba5 | coke++ | / (9 files):
today (automated commit)
16:41
16:43 gtodd left 16:44 risou_ joined 16:45 lucasb left
nine_ How can I get verbose output of the spectests? 16:45
16:46 Ven left, go|dfish left, lichtkind left, DrPete_ left, risou left, Hotkeys left, lizmat left, jernster left, skids left, Axord left, ilmari left, isacloud left, sftp left, olinkl left, corbyhaas left, abaugher left, diakopte1 left
autarch zengargoyle: if you want to take a look at my code, I'd appreciate feedback - github.com/autarch/perl6-Pod-NodeWalker and github.com/autarch/Pod-To-HTML/tre...nodewalker 16:47
jnthn nine_: Not sure there's a Makefile entry for it, you'd need to run t/harness directly, and pass --verbosity=1 or so
nine_ ok 16:48
16:48 domidumont left 16:51 skids joined, lizmat joined
moritz search for "loud" in the makefile 16:52
flussence half of the old pod::to::html was my fault :D 16:53
16:56 gtodd1 joined, go|dfish joined, DrPete_ joined, Hotkeys joined, Axord joined, ilmari joined, isacloud joined, sftp joined, olinkl joined, corbyhaas joined, abaugher joined, diakopte1 joined
flussence (I wish we'd had that ::NodeWalker module 5 years ago...) 16:56
zengargoyle autarch: in DESCRIPTION: object that your[you] provide ; do something without[with] a Pod document without having to know 16:57
16:57 lichtkind joined
autarch zengargoyle: thanks, fixed 16:57
16:58 colomon left, Begi joined
autarch flussence: I kind of assumed that OO wasn't really up to the task 5 years back or else PTH would not be written the way it was 16:58
moritz OO was quite usable 5 years ago
16:58 abraxxa left
TimToady it was usable 10 years ago if you didn't need a MOP :) 16:59
jnthn Was gonna say, that was one of the earlier things to be in decent shape. :)
ooh, a TimToady :)
TimToady hides behind a cricket
zengargoyle i'm sorta less concerned about various processing methods, more about specification things at the moment. luckily most of the hard POD stuff isn't in roast so isn't set in stone at christmas. :) 17:00
moritz TimToady: uhm, 10 years ago we only had pugs, and that barely; I don't think it was very usable
jnthn :)
TimToady but it did OO
jnthn The cricket?
flussence autarch: it was more a case of refactoring itself being horrible; the only real world user we had was S26.pod, and rendering that took about half an hour
jnthn oh
jnthn should learn to read :)
TimToady: When you get to backlogging, there's a few I/O API cleanups I proposed to address 4ish RTs that you may like to glance over. 17:01
17:02 xfix joined
zengargoyle TimToady: and when you're not pondering something terribly important... i'd like to pick your brains on POD if you have any thoughts.. 17:02
TimToady tries to delegate all the POD stuff :)
(except insofar as it relates to syntax)
zengargoyle well sorta syntax... like it seems =finish has morphed into __DATA__ and unspecial blocks are treated as paragraphs. 17:04
17:04 zacts left
TimToady I'd think a __DATA__ thing should be conveyed by =data 17:06
(and I've never particularly liked =finish, maybe it should be =eof)
zengargoyle has been meaning to write up a current implementation vs S26 doc to try and figure out what's supposed to be and what isn't. 17:07
well spec is =finish is the same as a <<=begin pod>> that doesn't end. implying that =finish if full of POD documentation.
[Coke] messages?
yoleaux 13:30Z <lizmat> [Coke]: maybe the contributor list for 2015.12 should contain *all* contributors we can cull from the git logs ?
TimToady but as for reducing the impedance mismatch of Pod and various rendering engines, I haven't much of a clew, just a crew :) 17:08
[Coke] lizmat: Or another sentence indicating that this is just one month and we're going on 15 years of hacking.
lizmat [Coke]: so also from *way* back ?
17:08 pmurias joined
lizmat well, maybe both ? 17:08
seems to me there are many more people on whose shoulders we are standing now that should be mentioned for 6.c 17:09
zengargoyle and it seems to me that <<=unknownthing>> are useless to post-processing if they're treated like Paragraph blocks and munged/folded like regular Para.
17:09 domidumont joined
lizmat m: say my $ = do { 1 until 42 } # not sure what this should say, but the current error is LTA 17:10
camelia rakudo-moar e27032: OUTPUT«Cannot call method 'gist' on a null object␤ in block <unit> at /tmp/PIOFzX_vXh:1␤␤»
TimToady I would not be against listing everyone who contributed to pugs/parrot/niecza as well, since we learned a great deal from those projects, and this is more of a language release than a compiler release 17:11
17:12 abraxxa joined, pdcawley_ left
TimToady prefers to err on the side of inclusiveness... 17:12
gtodd1 inclusiveness++ 17:13
jnthn +1
gtodd1 espcially for Christmas :-D
17:13 gtodd1 is now known as gtodd
TimToady and if anyone asks to have his name removed, we'll refuse :) 17:13
gtodd what about tricking famous people to contribute and then including their names ? :-D 17:14
TimToady well, we gave Guido a commit bit, but he never did anything with it :) 17:15
well, he threw a cream pie, I guess
we could thank him for that :)
gtodd ha
zengargoyle maybe a case for <<=data>> in a <<=finish|end>> being like <<=finish>> in not needing termination to cover the __DATA__ usage where you can just `echo new data >> file.p6` to append.
jnthn bbl 17:16
TimToady how 'bout =eof pod|data|comment where the default is comment
timotimo that's ... a bit weird 17:17
"end of file pod"?
TimToady and =eof pod would allow a subsequent =eof data or =eof
=eof <mumble> says there's only <mumble> from here to end-of-file 17:18
timotimo ah ... hmm.
TimToady and to the code parser, it's an effective EOF
17:18 lizmat_ joined
zengargoyle =pod :to<eof> ; =data :to<eof> ; =comment :to<eof> 17:18
timotimo so <![a]> must also be allowed to match before \n=eof? :)
TimToady =eof is just a =begin that doesn't need an end 17:19
17:19 vytas left
timotimo so let's call it =endless :D 17:20
TimToady I don't see a need for a :to
17:20 Skarsnik_ joined
dalek kudo/nom: 61ea661 | lizmat++ | src/core/Range.pm:
Implement Range.rand, as suggested by pmichaud++
17:20
TimToady well, there are other possibilties =code =fini =owari :)
zengargoyle yeah, =eof == unclosed =begin makes sense. 17:21
TimToady =終
dalek kudo/nom: c33fdac | coke++ | docs/announce/2015.12.md:
lizmat++'s idea of listing EVERYONE
17:22
TimToady er s/'code='/=coda/ 17:23
but I still kinda lean toward =eof
timotimo why the hell doesn't =over mean the same as =eof? :P
zengargoyle should <<=data Abbreviated Form␤>> include the newline when used as $=data[N]
JimmyZ and repo specs? ;) 17:24
[Coke] is 唐鳳 Audrey ?
JimmyZ since specs is not in mu :)
TimToady yes
17:24 pnu left, Skarsnik left, lichtkind left, ilbelkyr left
zengargoyle and trim leading spaces or not? 17:24
TimToady zengargoyle: my yes was to [Coke], dunno about your Q 17:25
17:25 lichtkind joined, ilbelkyr joined
zengargoyle seems somewhow that =data Abbreviated/Paragraph/Block should be alike in leading space/trailing space/nl to be consistent. 17:26
17:26 Skarsnik_ left 17:27 skids left, solarbunny left, lizmat left
dalek kudo/nom: f302159 | coke++ | docs/announce/2015.12.md:
Add authors from Pugs

  github.com/perl6/Pugs.hs
17:28
17:28 skids joined
zengargoyle specs make things like <<say $=data[0]>> seem weird if ␤ 17:28
17:29 Skarsnik_ joined
zengargoyle is kept (double newlines) but makes it consistent when using just $=data (all un-keyed data as string) 17:30
guess =data Abbreviated could trim leading whitespace... use =for data or =begin data if you have a problem with that. 17:31
Quom_ jnthn, or someone, is this right?
m: NQPLock.new.protect({ nqp::say("attempting to die: "); nqp::die("...") }) 17:32
camelia rakudo-moar f30215: OUTPUT«5===SORRY!5=== Error while compiling /tmp/0fDARGF9j2␤Undeclared name:␤ NQPLock used at line 1␤␤»
Quom_ nqp-m: NQPLock.new.protect({ nqp::say("attempting to die: "); nqp::die("...") })
camelia nqp-moarvm: OUTPUT«attempting to die: ␤»
dalek kudo/nom: 35f88bd | coke++ | docs/announce/2015.12.md:
Add authors from niecza

  ... that weren't already listed
  github.com/sorear/niecza
zengargoyle then again <<=data Bob>> <<=data Alice>> keeping the ␤
Quom_ The latter is the cause of rt.perl.org/Ticket/Display.html?id=126724
zengargoyle makes simple usage a bit odd... need to chomp...
dalek kudo/nom: 8228e7e | coke++ | docs/announce/2015.12.md:
remove dupe author
17:34
zengargoyle guess <<=eof data>> would best be accessed with $=data[*-1] ? 17:35
or maybe just $=eof since pod would get pushed to $=pod and comment would vanish.. 17:36
17:36 pmurias left 17:37 Skarsnik_ left
zengargoyle sorta thinks having =data support formatting codes that include static data like A<> E<> might be cool 17:38
17:39 ilbelkyr left 17:41 ilbelkyr joined
timotimo Quom_: good catch; do you feel confident enough to propose a patch? 17:41
17:44 masak_grr is now known as masak
skids WRT inclusiveness is everyone who worked on "smop" listed already? 17:45
dalek kudo/nom: 015965e | (Matthew Wilson)++ | docs/announce/2015.12.md:
adapt my name
17:46
kudo/nom: 0de0671 | coke++ | docs/announce/2015.12.md:
keep sorted
17:48
TimToady jnthn: I may be old-fashioned, but I think of listen and connect as having positional parameters, not that we have to stick with *nix culture necessarily, but a lot of people will expect a positional interface
17:48 ZoffixWeb joined 17:49 espadrine left
ZoffixWeb Hey check it out :) github.com/edebill/modulecounts/issues/29 17:49
diakopte1 how does one pronounce коледа
ZoffixWeb And it's live already even: www.modulecounts.com/
diakopte1: en.wikipedia.org/wiki/Koliada 17:50
17:50 diakopte1 is now known as diakopter
diakopter heh 17:50
17:52 xpen joined 17:54 nadim joined
masak .oO( I learned the pronunciation from a коллега ) :P 17:55
17:55 ilbelkyr left
pink_mist thinks he gets that one :P 17:56
diakopter [Coke]: are you named from that
17:57 xpen left, kid51 joined
TimToady jnthn: everything else looks okay to me, don't really have a formed opinion on the print-async thing, unless maybe it should use "start" somehow instead, since we did s/async/start/ in the language 17:57
start-print maybe
17:58 Peter_R joined
TimToady family stuff & 17:58
17:58 ilbelkyr joined
timotimo TimToady is stuffing his family for thanksgiving?! 18:00
18:00 [ptc] left
diakopter today is the day after 18:00
timotimo oh, right
18:01 lucasb joined
timotimo thanksgiving makes me cynical 18:01
18:03 [ptc] joined 18:04 xfix left, skids left 18:05 xfix joined, MadcapJake joined 18:06 lucasb left
autarch if I have a hash var and I want to pass that to a method that takes named ags, how does that work? 18:06
zengargoyle |%whatever 18:07
18:07 Peter_R left
moritz autarch: obj.meth(|%hash) 18:07
autarch moritz: thanks
what does | do?
zengargoyle flatten
pink_mist flattens
18:07 lucasb joined 18:08 skids joined
zengargoyle in argument lists |% goes to named |@ goes to positional as i grok it. 18:08
moritz aye
autarch that makes sense 18:09
timotimo and you can put named parameters after the flattening to override keys from the hash 18:10
jnthn Quom_: No, that lock swallowing the exception thing looks wrong 18:11
autarch how about if I have a method that takes named params and I want to pass them all on to another method? is there an equivalent of this in Perl 5 - "sub foo { my %p = @_; bar(%p) }" ?
specifically, I want to define a "sub MAIN" with named params that are the same as an object's constructor params 18:12
timotimo you can just take *%foo as an argument 18:14
then you'll end up with a hash containing all named arguments that were passed
autarch timotimo: but then "script --help" isn't useful 18:15
I really want a Perl6 equivalent of MooseX::Getopt here
moritz autarch: you can do sub f(*%x) { g(|%x) }
autarch moritz: again, I need to actually name all the params for sub f here, because it's sub MAIN 18:16
moritz autarch: if you want to pass on named and positional, sub f(|c) { g(|c) }
timotimo will the usage be correct if you multi sub MAIN(|c, :$key, :$val) { ... }? 18:17
18:18 lucasb_ joined 18:19 MadcapJake left, Peter_R joined, skids left, skids1 joined, Peter_R left, Peter_R joined, MadcapJake joined, lucasb left, nadim left, nadim joined
zengargoyle somehow i'm remembering a problem with MAIN and slurpy... maybe i was doing it wrong at the time. 18:19
18:21 skids1 left, skids joined
lizmat_ dinner& 18:21
18:21 pnu joined, lizmat_ is now known as lizmat
[Coke] .seen quietfanatic 18:22
yoleaux I saw quietfanatic 24 Nov 2015 04:13Z in #perl6: <quietfanatic> twitter.com/dadgumjames/status/668...4685376512 twitter.com/dadgumjames/status/668...7790566400
[Coke] diakopter: don't know for sure, but it's very plausible, yes. Family emigrated from Belarus and anglicized the name about 3 generations back. 18:23
skids
.oO(anglicide)
18:24
18:28 solarbunny joined
dalek kudo/nom: f6fe538 | coke++ | docs/announce/2015.12.md:
add parrot authors

  github.com/parrot/parrot
18:29
[Coke] ok, that's enough of that for the moment.
18:30 hankache joined 18:35 colomon joined
autarch what's the best API to use in order to thread no more than N operations at a time? For example, I have a list of 100 items and I want to do an operation on each with 4 threads active at a time. 18:39
or does the interpreter itself figure out the best number of threads to use and just DTRT? 18:40
timotimo if you use "hyper" then it will, you can tell it what number of things to batch and such
moritz the other method is to instantiate your own scheduler with max 4 threads 18:41
and then do a 'start' for each task, and the scheduler will use just those four threads
autarch so something like "for @list.hyper( :batch(4) ) -> $item { ... }" ? 18:42
timotimo right
i'm not sure if for just picks it up, i know it'll work with .map
m: my @l = <1 2 3 4> X~ <foo bar baz>; @l.list.hyper(:4batch).map({ .say; sleep 1 }); 18:43
camelia rakudo-moar 0de067: OUTPUT«2bar␤3baz␤1foo␤2baz␤4foo␤1bar␤3foo␤4bar␤1baz␤3bar␤4baz␤2foo␤»
timotimo m: my @l = <1 2 3 4> X~ <foo bar baz>; @l.list.hyper(:4batch).map({ .say; sleep 0.5; say "wakeup" });
camelia rakudo-moar 0de067: OUTPUT«2bar␤3baz␤1foo␤wakeup␤wakeup␤4foo␤2baz␤wakeup␤1bar␤wakeup␤4bar␤wakeup␤3foo␤wakeup␤1baz␤wakeup␤4baz␤wakeup␤3bar␤wakeup␤2foo␤wakeup␤wakeup␤wakeup␤»
autarch that's easy enough, thanks! 18:44
18:45 abraxxa left, kid51 left
moritz m: my @l = <1 2 3 4> X~ <foo bar baz>; @l.list.hyper(:4batch).map({ .say; sleep 0.1; say "wakeup $_" }) 18:47
camelia rakudo-moar 0de067: OUTPUT«2bar␤3baz␤1foo␤wakeup 2bar␤2baz␤wakeup 3baz␤4foo␤wakeup 1foo␤1bar␤wakeup 2baz␤3foo␤wakeup 4foo␤4bar␤wakeup 1bar␤1baz␤wakeup 3foo␤3bar␤wakeup 4bar␤4baz␤wakeup 1baz␤2foo␤wakeup 3bar␤wakeup 4baz␤wakeup 2foo␤»
18:50 zacts joined
dalek kudo/nom: d310001 | coke++ | docs/announce/2015.12.md:
don't forget these repos
18:51
kudo/nom: 22b4ea7 | coke++ | docs/announce/2015.12.md:
consolidate 2 sections of authors
18:53 xpen joined
autarch is it just me is it weird that IO::Spec returns plain Str instead of IO::Path for its various operations? 18:53
skids ISTR Spec is supposed to let you manipulate other-os filenames, and Path is your-OS-only. 18:57
Or something like that.
18:58 xpen left 19:02 domidumont left
autarch skids: that's not how the docs make it seem 19:04
it seems like $*SPEC if your native OS and you should use
use it*
dalek kudo/nom: 4dd8062 | coke++ | docs/announce/2015.12.md:
consolidate 2 sections of authors
19:06
kudo/nom: c1ad9fe | coke++ | docs/announce/2015.12.md:
de-asciify a name.
19:07 hankache left 19:08 rigsby joined
ugexe m: my $s = Supplier.new; $s.Supply.act: {.say}, done => {say "done"}; $s.emit(1); $s.done; 19:10
camelia rakudo-moar f6fe53: OUTPUT«1␤»
ugexe m: my $s = Supplier.new; $s.Supply.tap: {.say}, done => {say "done"}; $s.emit(1); $s.done;
camelia rakudo-moar f6fe53: OUTPUT«1␤done␤»
ugexe .done is broken for .act 19:12
19:14 nadim left 19:15 zacts left, nadim joined, hankache joined
hankache is there any plan to make the windows installer automatically add C:\rakudo\bin to the PATH? 19:16
ugexe m: my $s = Supplier.new; $s.Supply.interval(1); $s.tap{.say}; 19:20
camelia rakudo-moar c1ad9f: OUTPUT«Invocant requires a type object of type Supply, but an object instance was passed. Did you forget a 'multi'?␤ in block <unit> at /tmp/2KKV7iXPe9:1␤␤»
jnthn ugexe: Did act ever pay attention to done? 19:21
jnthn checks
ugexe jnthn: yeah
autarch any idea why File::Temp spits out weird warnings when run in a hyper op? gist.github.com/autarch/a701c62a40643169913f 19:22
19:23 AndyDee joined
autarch I'm guessing this is some sort of low-level bug of the sort I'd prefer to let someone else figure out ;) it seems to be working even when it spits out the warning 19:23
jnthn eek, wait, it did it how... :)
ugexe: Fixing.
ugexe m: Supplier.new.Supply.interval(1) 19:26
camelia rakudo-moar c1ad9f: OUTPUT«Invocant requires a type object of type Supply, but an object instance was passed. Did you forget a 'multi'?␤ in block <unit> at /tmp/qkgW162TtC:1␤␤»
ugexe is there a different way to do supply intervals now?
lizmat ugexe: Supply.interval is unchanged, afaik 19:27
jnthn No, all the factor methods are still on Supply. Because they give you a Supply. 19:29
It's only code that did Supply.new that needs much changing.
Testing .act fix now
And already written a test for it :)
ugexe m: my $s = Supply.interval(1); $s.done # so how do i tell the supply im finished with it? 19:30
camelia rakudo-moar c1ad9f: OUTPUT«Method 'done' not found for invocant of class 'Supply'␤ in block <unit> at /tmp/wc28_jX4n_:1␤␤»
19:32 spider-mario joined
dalek kudo/nom: 6403ca0 | jnthn++ | src/core/IO/Socket/INET.pm:
Remove two empty methods.

No point in pretending we support these things, then returning Nil.
19:32
kudo/nom: e42b109 | jnthn++ | src/core/Supply.pm:
.act should support emit and done
jnthn m: my $s = Supply.interval(0.5); my $tap = $s.tap({ say 42 }); sleep 2; $tap.close; sleep 2; 19:33
camelia rakudo-moar c1ad9f: OUTPUT«42␤42␤42␤42␤»
jnthn ugexe: That's the right way to turn things off. Calling .done to "inject" a message into the stream owned by another supply was never really an intended feature. In the case of doing it with an interval, you'd leak the timer and it'd go on emitting values to nowhere forever. 19:34
dalek ast: 64f7ee4 | jnthn++ | S17-supply/act.t:
Test :done argument to act.
19:35
19:43 zakharyas joined
zengargoyle hrm... adding «dd $tempfile;» in File::Temp gives interesting error: *** Error in `/opt/rakudobrew/moar-nom/install/bin/moar': double free or corruption (fasttop): 0x0000000005dab9a0 *** 19:44
19:44 hankache left
dalek kudo/nom: d091ca8 | coke++ | docs/announce/2015.12.md:
add nqp authors & use sane temp format

Put each author on a line; otherwise our sort contortions are insane.
We'll combine this into a single list as part of the release, and can now easily sort and add more as we go.
19:44
zengargoyle $tempfile is correct '"**********' for first 4 dd's, then the Use of Nil error followed by the moar Error. 19:45
$tempfile is set in tempdir() signature: tempdir($tmpl? = '*' x 10, ..., :$template = $tmpl) 19:48
[Coke] hopes he didn't too eagerly turn github nicks into names.
zengargoyle maybe that isn't getting done correctly when hypering...
setting $template outside of signature makes it get the Nil warning less often and sorta randomly and someties warning is incomplete... 19:50
zengargoyle dunno
19:53 _mg_ joined
ugexe thats a lot of dependence on side effects 19:54
and order
zengargoyle sometimes the $/.chars is returning 0. looks like the: $tempfile ~~ s/ '*' ** 4..* /{ dd $/.chars; @filechars.roll($/.chars).jo 19:55
ugexe without looking at it i would wonder how it knows it can use a specific file name if you are using it in a hyper where the side effect order isnt guarenteed and thus any checks for file existence arent guarenteed to occur when you think they would if the effects were executed in order
zengargoyle the file is created with open ... :rw, :exclusive which should be atomic. if that fails it trys again. 19:56
if that somehow maps down to the system level open O_RW|O_WHATEVER ... 19:57
ugexe github.com/perlpilot/p6-File-Temp/...emp.pm#L17 19:58
zengargoyle that the next if $name.IO ~~ :e line? don't see an issue there, probably could be left out and just let the open fail. 20:00
seems it's just sometimes... $tempfile = '*' x 10; $tempfile ~~ s/ '*' ** 4..* /{ dd $/.chars; @filechars.roll($/.chars).jo 20:02
seems it's just sometimes... $tempfile = '*' x 10; $tempfile ~~ s/ '*' ** 4..* /{ dd $/.chars; @filechars.roll($/.chars).join }/; # bah cut-n-paste
$/.chars is 0 instead of 10.... 20:03
when it should always be 10 assuming defaults
jnthn Hmm, rt.perl.org/Ticket/Display.html?id=126315 is curious 20:04
It claims that Moar sits in a loop when reading from sockets, but in fact it seems it only does one read.
zengargoyle dd [ $tempfile, $/.chars ]; # should not be: Array $var = $["**********", 0] 20:05
dalek href="https://modules.perl6.org/new-db-builder:">modules.perl6.org/new-db-builder: 8f6564e | (Zoffix Znet)++ | lib/ModulesPerl6/ (9 files):
Use Mew instead of Moo/Mojo::Base for consistency and more concise code
zengargoyle seems regex / $/ is borkded over hyper. 20:06
wtf? : Array $var = $["PB_rmld5ng", 0] 20:07
that looks like $template from another thread *after* substitution happened.. 20:08
pretty much at the end of my diagnostic abilities. put «dd [$template,$/.chars]» inside the replacement block of File/Temp.pm:15 or on the next line and you can see that things aren't always what they should be. 20:13
20:13 nadim left
ugexe jnthn: is there still a way to emit into the Proc::Async supplies without access to the Supplier itself? ie. `my $proc = Proc::Async.new("ls"); $proc.stdout.tap: {.say}; $proc.stdout.emit("xxx");` 20:16
autarch zengargoyle: sounds like threading is a little buggy here - which is sad/scary because by threading the docsite generation I could make it _way_ faster
20:16 zakharyas left 20:17 nadim joined
timotimo zengargoyle: you may want to give your multi-threaded code your own $/ variable? 20:18
jnthn ugexe: No, you'll need to explicitly do it with .merge or so now 20:19
zengargoyle m: sub foo() { my $x = "*" x 2; $x ~~ s/ "*" ** 1..* /{ "+" x $/.chars }/; $x}; (1..100).map({say foo});
camelia rakudo-moar d091ca: OUTPUT«++␤++␤++␤++␤++␤++␤++␤++␤++␤++␤++␤++␤++␤++␤++␤++␤++␤++␤++␤++␤++␤++␤++␤++␤++␤++␤++␤++␤++␤++␤++␤++␤++␤++␤++␤++␤++␤++␤++␤++␤++␤++␤++␤++␤++␤++␤++␤++␤++␤++␤++␤+…»
timotimo otherwise it may happen that multiple things share the same $/ scalar and that's bad
jnthn ugexe: What's the use case, ooc?
zengargoyle m: sub foo() { my $x = "*" x 2; $x ~~ s/ "*" ** 1..* /{ "+" x $/.chars }/; $x}; (1..100).hyper.map({say foo});
camelia rakudo-moar d091ca: OUTPUT«++␤++␤++␤++␤++␤Use of Nil in string context++␤++␤++␤++␤++␤++␤ in block at /tmp/CWKir_YoI3:1␤++␤␤++␤++␤++␤++␤++␤++␤++␤Use of Nil in string context++␤++␤++␤ in block at /tmp/CWKir_YoI3:1␤␤++␤Use of Ni…»
zengargoyle timotimo: not my code :)
timotimo k
zengargoyle is File::Temp
ugexe jnthn: stdmuxing. i prefix every line from multiple processes with their file name to differentiate the otherwise jumbled lines from multiple process output 20:20
every stdout line^
er no sorry, thats a different thing. this is just for outputting the command that Proc::Async executed
zengargoyle the previous seems to be a minimal test case... considering randomness of failure. 20:21
ugexe so everytime Proc::Async starts, it would .emit('perl6 -Ilib some-cmd') to show what was ran
timotimo m: sub foo() { my $/; my $x = "*" x 2; $x ~~ s/ "*" ** 1..* /{ "+" x $/.chars }/; $x}; (1..100).hyper.map({say foo});
camelia rakudo-moar d091ca: OUTPUT«Potential difficulties:␤ Redeclaration of symbol $/␤ at /tmp/Ks3yjL26N6:1␤ ------> 3sub foo() { my $/7⏏5; my $x = "*" x 2; $x ~~ s/ "*" ** 1..* ␤++␤++␤++␤++␤++␤++␤++␤++␤++␤++␤++␤++␤++␤++␤++␤++␤++␤++…»
jnthn ugexe: Hm, so you really want a supply concat.
timotimo hm, so it already has its own $/?
jnthn m: Supply.concat
camelia rakudo-moar d091ca: OUTPUT«Method 'concat' not found for invocant of class 'Supply'␤ in block <unit> at /tmp/D2haGCSBYT:1␤␤»
timotimo yeah, because it's a sub
jnthn Which we should have but don't.
ugexe ah yeah 20:22
jnthn I'll implement it, once I'm done writing tests for socket read vs recv... :)
I fixed a nasty Proc::Async bug earlier today also, that could cause occasional data loss.
zengargoyle should i rakudobug that? 20:24
jnthn zengargoyle: Yes, that's a really nice golf of it
I can guess what it might be too
20:27 TEttinger joined 20:31 nadim left
zengargoyle RT #126752 20:32
dalek ast: 647468a | jnthn++ | S32-io/socket-recv-vs-read.t:
Tests for semantics of read and recv on sockets.
20:38
kudo/nom: 8430b22 | jnthn++ | t/spectest.data:
Run S32-io/socket-recv-vs-read.t.
20:39
20:40 nadim joined 20:41 p6curious joined
MadcapJake I have a working linter plugin for Atom github.com/MadcapJake/linter-perl6 20:43
autarch does anyone have an example of how Supply and Scheduler interacts in some real code?
MadcapJake It needs more errors supported. I could really use some help with this as I don't really know how to trigger many of the errors in rakudo/src/core/Exception.pm 20:44
moritz MadcapJake: have you loooked into t/spec/S32-exceptions/misc.t ? 20:47
MadcapJake: it contains a great many examples
MadcapJake: also, the docs at doc.perl6.org often include examples of how to provoke each error
(though the tests are more comprehensive)
MadcapJake moritz: where is that spec file in perl6/spec or perl6/roast repo? 20:48
20:48 ZoffixWeb left
moritz MadcapJake: perl6/roast in S32-exceptions/misc.t 20:48
the other way round :-) 20:51
lizmat jnthn: if I find more problems in the SPW slides, should I still let you know ?
20:52 nadim left
jnthn lizmat: yes, but maybe collect them and mail them to me 20:52
lizmat yup, will do
nits like .WHAT # Str instead of (Str)
that kinda stuff
MadcapJake moritz: how do i read these throws-like statements? just copying into a file, I'm not getting any syntax errors printed (it has to be something caught by `perl6 -c`) 20:54
i even tried placing a block of em into a `BEGIN` block 20:55
wait nvm, I am getting something 20:56
no, that's incorrect, I am *not* getting something xD 20:57
timotimo MadcapJake: can you put up a screenshot or two? :)
MadcapJake yeah sure!
timotimo mhhh
i don't have a tom
moritz MadcapJake: for example throws-like 'my $a::::b', X::Syntax::Name::Null;
MadcapJake: means that the string my $a::::b as a program will throw an exception of type X::Syntax::Name::Null 20:58
m: my $a::::b
camelia rakudo-moar 8430b2: OUTPUT«5===SORRY!5=== Error while compiling /tmp/djtjXD5o6D␤Name component may not be null␤at /tmp/djtjXD5o6D:1␤------> 3my $a::7⏏5::b␤»
moritz m: try EVAL 'my $a::::b'; say $!.^name
camelia rakudo-moar 8430b2: OUTPUT«X::Syntax::Name::Null␤»
zengargoyle not sure if -c will get you exceptions in all cases...
MadcapJake sweet! what's the third paremeter mean? e.g., `throws-like { Buf.new().Str }, X::Buf::AsStr, method => 'Str';;`
20:59 bitmap left
moritz MadcapJake: that's more criteria for which we test the exception 20:59
MadcapJake: in this case, that $!.method eq 'Str'
21:00 bitmap joined 21:01 yqt joined
MadcapJake timotimo: twitter.com/MadcapJake/status/6703...4761751552 21:03
jnthn MadcapJake: Wow! :D
MadcapJake Right now it just catches X::Syntax::Confused, X::Undeclared, X::Undeclared::Routine, and X::Parameter::Twigil, but I'm working on a generic one
timotimo neat 21:04
jnthn MadcapJake: btw, did you see the highlighter issues I mentioned a few days back?
MadcapJake oh no, i missed it! what is it?
jnthn irclog.perlgeek.de/perl6/2015-11-21#i_11578807 21:05
21:05 Skarsnik joined
autarch does this look like the correct pattern to iterate over an array of items with a fixed number of threads? gist.github.com/autarch/5ddae1da5bce447d45f4 21:05
dalek kudo/nom: b2e6ca0 | jnthn++ | src/core/IO/Socket/Async.pm:
Change IO::Socket::Async reading API.

To bring it inline with IO::Handle. You now just .Supply for chars, and .Supply(:bin) for bytes. Deprecations will be short lived, but may help somebody in the coming days.
21:07
ast: cfd61e5 | jnthn++ | S32-io/IO-Socket-Async.t:
Chase API changes.
ugexe sweet, i hated bytes-supply/chars-supply 21:08
autarch it does seem to be working if I print out each item that is tapped - they're not in the original order which suggests that they're getting threaded
21:09 kid51 joined
MadcapJake jnthn: thanks for putting it through the wringer! I'll get cracking on these right now. What did you mean by `And emit took.`? irclog.perlgeek.de/perl6/2015-11-21#i_11578814 21:09
jnthn oops 21:10
"And emit too"
MadcapJake ohhh lol
moritz on an unrelated note, I finally managed to patch a bug for $work that I simply couldn't leave be before the weekend (took me to 10pm)
jnthn MadcapJake: emit/done are keywords
moritz: Eww. And congrats for nailing it. 21:11
MadcapJake alright! I'll get them added in as well.
21:11 rindolf left, vendethiel joined
timotimo moritz: damn, that sucks :( 21:13
diakopter moritz++ # congrats, by 10 pm only!
21:16 espadrine joined
moritz it was one of these "the fix is just around the corner", but the fix breaks something else, in several iterations 21:21
21:24 cdg left
ugexe star: my constant CAN-TEST = (try require Test) // False; say CAN-TEST 21:26
camelia star-m 2015.09: OUTPUT«True␤»
ugexe m: my constant CAN-TEST = (try require Test) // False; say CAN-TEST
camelia rakudo-moar b2e6ca: OUTPUT«False␤»
ugexe which behavior is correct?
m: say (try require Test); say (try require TestXXX); 21:33
camelia rakudo-moar b2e6ca: OUTPUT«(Test)␤Nil␤»
21:33 Sgeo joined, _mg_ left
ugexe m: say (try require Test) // False 21:33
camelia rakudo-moar b2e6ca: OUTPUT«False␤»
ugexe i dont understand that 21:34
moritz first of all, require always returns something undefined, so // False at the end just confuses you 21:35
second, FROGGS++ patched require to return the required type, but that wasn't very long ago
certainly after star 2015.09
ugexe yes, it happened sometime in the last week or so 21:36
moritz commit 95558bb58e4f7ad47153c0b9c3f6e4e6f0179f5d
Author: Tobias Leich [email@hidden.address]
Date: Sat Nov 21 21:54:07 2015 +0100
make "require PAKAGE/STRING" return said PACKAGE/STRING
21:36 kjs_ joined
dalek kudo/nom: c542888 | jnthn++ | src/core/IO/Socket/INET.pm:
Give IO::Socket::INET connect/listen methods.

For convenience and consistenty with IO::Socket::Async.
21:37
ast: 22c6057 | jnthn++ | S32-io/IO-Socket-INET. (2 files):
Test .connect/.listen on IO::Socket::INET.
MadcapJake What is `<?{ ... }>` in a regex? Is it a multiline block of regular perl6 code? 21:38
TimToady it's evaluated as a zero-width assertion 21:39
<!{...}> is the negative assertion
jnthn But yes, it's Perl 6 code inside the block.
TimToady that returns something with a boolean interpretation, which is almost anything
MadcapJake cool, I don't think I was capturing either of those (or least it isn't working currently). 21:40
lucasb_ moritz, ugexe: can't I use require in a runtime expression?
m: say require Test
camelia rakudo-moar b2e6ca: OUTPUT«5===SORRY!5=== Error while compiling /tmp/o8WrIHQdll␤Undeclared name:␤ Test used at line 1␤Undeclared routine:␤ require used at line 1␤␤»
lucasb_ m: say do { require Test }
camelia rakudo-moar b2e6ca: OUTPUT«(Test)␤»
ugexe m: say "ok" if (try require Test) ~~ ::("Test") # this newer way seems cumbersome
MadcapJake jnthn: thanks for the mention of this grammar.nqp file, lots of things to fix in there!
camelia rakudo-moar b2e6ca: OUTPUT«ok␤»
21:41 kjs_ left
jnthn MadcapJake: Yes, the grammar for Perl 6 itself is a rather good stress test. ;-) 21:41
21:42 kjs_ joined
moritz m: say do require Test; 21:42
camelia rakudo-moar b2e6ca: OUTPUT«(Test)␤»
moritz no need for braces
lucasb_ I just didn't understand why plain 'say require Test' sees Test as a subname 21:43
MadcapJake jnthn: Atom takes a couple seconds to render all of it on my machine! I'm actually quite pleased with that, I wrote a grammar for an indentation-blocked language and it takes 5-10 seconds for files half as big as grammar.nqp 21:44
lucasb_ oh, 'require' is a statement, not an expression... right? so it can't be used in an expression context... ? 21:45
moritz right 21:46
and 'do' turns statements into expressions 21:47
21:48 ZoffixMobile joined
jnthn Down to 27 xmas RTs. :) 21:49
ZoffixMobile MadcapJake, isn't your linter kinda dangerous? BEGIN { *delete wrong dir by mistake* }
jnthn++ sweet!
MadcapJake ZoffixMobile: yes I guess it is! Is there any way I can make it safer? Or should I put a warning or something?
pink_mist have it in a restricted setting? 21:50
ZoffixMobile MadcapJake, no fix that I know of. I had a similar problem in P5's Test::Synopsis
jnthn Restricted setting may do it, in the longer run we'll want something to enforce such things VM-level.
21:53 zacts joined, lucasb_ left
MadcapJake pink_mist: how do I do that? 21:54
21:54 ZoffixMobile left
pink_mist ¯\(°_o)/¯ 21:54
21:55 xpen joined
pink_mist MadcapJake: I don't actually know perl 6 .. I just follow along with things mentioned in here so I've heard of stuff that's useful :P 21:56
MadcapJake seems I would add `--settings=RESTRICTED` as a command line flag, is that accurate jnthn? 21:57
timotimo yeah, something like that
MadcapJake cool, that's a simple fix then 21:58
22:00 xpen left
jnthn I think just --setting 22:02
22:02 nadim joined
jnthn uh, --setting=RESTRICTED 22:02
(not settings plural)
timotimo ah 22:03
i didn't see that little s there
jnthn :)
jnthn realies that for the first time, we have less xmas RTs than we have days from now until Christmas day :) 22:04
Zoffix woohoo \o/
jnthn *realizes
Zoffix *fewer :P
22:04 kjs_ left
jnthn :P 22:05
jnthn just can't instinctively feel that distinction 22:06
colomon \o/ 22:08
Zoffix jnthn, if it's countable, then it's fewer :)
22:09 Begi left
colomon if it’s uncountable, it’s less? ;) 22:09
22:09 vendethiel left
skids
.oO(less mess, fewer sewers)
22:10
colomon fewer rationals, less irrationals? 22:11
Zoffix fewer eggs and less milk, yes :)
Time to go offline to drink beer and be productive hacking on stuff :) \o have a good night 22:12
22:12 Zoffix left 22:13 vendethiel joined
jnthn
.oO( maybe I should drink less beers...oh wait... )
22:13
pink_mist isn't it like this: "we have few RTs left" so -> fewer ... vs "we have little milk left" so -> less
jnthn pink_mist: Yes. :)
22:13 p6curious left
jnthn pink_mist: For some reason, there's a bunch of cases where my brain doesn't feel like it wants to make the distinction, so I have to conciously think about it. Which at 11pm on IRC isn't that likely to happen. :) 22:14
pink_mist right :P 22:15
22:15 molaf left
jnthn I wonder if it's partly dialect or something, and that I grew up around folks not caring about the distinction much. 22:15
It's also one way; "I should drink fewer beer" sounds obviously wrong to me. :)
timotimo "we are the borg. your distinctiveness will be added to our species" - "nope, no distinctiveness to be found here!" 22:16
pink_mist well, beer is uncountable there ... 'beers' is countable though :P
jnthn remembers a local supermarket making the news for putting up a sign by a checkout lane reading "10 items or less" :) 22:17
huf the distinction doesnt *really* exist
and never has
but it got entrenched as a thing so people worry about it
pink_mist doesn't "it got entrenched as a thing" imply it now does exist? =) 22:18
language does change
huf but not as an actual rule. just as a rule people think is a rule.
autarch jnthn: are you taking nominations for things to add to the christmas list?
huf some people obey it more than others, sure
pink_mist huf: who decides which rules are 'actual'? 0_o 22:19
huf the fact that people so often get it "wrong" decides 22:20
pink_mist I want to tipi his house
jnthn autarch: I'm trying to keep it as something we might realistically make it through. :)
autarch rt.perl.org/Ticket/Display.html?id=124393 is my nomination
jnthn autarch: The criteria is "semantic issue" and "we won't be able to easily fix it after 6.c" 22:21
autarch hmm, probably doesn't qualify - it's just _really_ annoying but since it makes certain things impossible it won't cause anyone to do something that a fix will break later
22:22 xfix left
jnthn It's certainly substantive and worth considering. 22:23
At some point, I need to do a pass through the RTs opened since I made the xmas list.
Part of the consideration is "do we actually have the ability to do anything about this before 6.c" 22:24
For this one it may be possible to deal with with relatively little work, which also helps.
22:24 nmp left
jnthn Anyway, will consider it. 22:24
autarch can someone explain what this error means - This Seq has already been iterated, and its values consumed 22:25
jnthn A Seq is a one-shot source of values; that error shows up if you try to use it twice
autarch I'm really sure I haven't used it!
jnthn m: my @a = gather { .take for ^10 }; for @a { }; for @a { } # this is fine because list assignemnt copies into the array 22:26
camelia ( no output )
jnthn m: my \a = gather { .take for ^10 }; for a { }; for a { } # this isn't
camelia rakudo-moar c54288: OUTPUT«This Seq has already been iterated, and its values consumed␤ in block <unit> at /tmp/MrqEHZm7oM:1␤␤»
autarch I'm calling .Supply on a variable, but I only do it once
jnthn Got an isolated exaple? 22:27
*example
m: my \a = gather { .take for ^10 }; a.Supply.tap(&say)
camelia rakudo-moar c54288: OUTPUT«0␤1␤2␤3␤4␤5␤6␤7␤8␤9␤»
autarch jnthn: no, I'm having a hell of a time making one 22:28
22:28 cognominal left
autarch m: my %h = (:a(42)); %h.pairs.Supply.tap(&say) 22:28
camelia rakudo-moar c54288: OUTPUT«a => 42␤»
autarch that's comparable to what I'm doing and of course it works there ;)
nine_ So there's some detail that's different and important 22:29
skids Maybe there's an element being flattened that is a used-up Seq?
autarch aha, it's probably because I have $items.elems before I have $item.Supply?
jnthn nine_: How's things with the curi branch?
autarch: Yes
nine_ autarch: it's easy to use up a Seq by accident. Debug output is one way :)
skids That'd do it.
autarch so what's the solution here? 22:30
jnthn But .cache on the end of the expression that gives you the Seq
*Put
nine_ jnthn: having a look at the tests. There's some failures that disappear when I run the files manually. Spectest output is still not verbose enough to be useful :/
jnthn nine_: Urgh, ok. 22:31
22:31 telex left
nine_ It's hard to say if it's curli that's at fault. Haven't had a clean spectest in a long while :( 22:31
autarch ok, looks like .cache did the trickl 22:32
22:32 david_cassel joined
autarch maybe the error message could recommend that? 22:32
jnthn Yes, nice idea
22:32 telex joined
nine_ I'm doing a run with TEST_JOBS=1. Seems to be the only way to get the full output. Will be interesting if the failures are still there. 22:34
jnthn wonders how to word it
nine_ "A Seq is a one-shot source of values. Use .cache or assign to an array to re-use to be able to re-use the values." 22:36
pink_mist s/to re-use //
(the first 'to re-use' that is) 22:37
dalek href="https://modules.perl6.org/new-db-builder:">modules.perl6.org/new-db-builder: 216d712 | (Zoffix Znet)++ | lib/ModulesPerl6/DbBuilder/Dist/Source/GitHub.pm:
Add docs for ModulesPerl6::DbBuilder::Dist::Source::GitHub
nine_ pink_mist: of course :)
dalek kudo/nom: fec2b52 | jnthn++ | src/core/Exception.pm:
Add suggestion of .cache to Seq consumed error.

  autarch++
jnthn Mentioned the array option too
Feel free to wordsmith it
Time for me to get some rest :) 22:38
autarch it'd be nice to find a way to say that "if you call methods like .X or .Y you have already exhausted the sequence"
22:40 rvchangue left
nine_ autarch: or just a link to the documentation 22:40
autarch nine_: yeah, that could work too
I think a lot of this is just that I don't understand Array vs List vs Seq very well (at all?) in Perl 6
22:41 rvchangue joined
skids "Values already iterated from this Seq are gone... maybe you wanted to .cache them for re-use as a List, or assign them to an array?" 22:42
22:43 b2gills joined
RabidGravy gosh I appear to have soundcloud OAuth working, still a pain in the arse to test though 22:44
22:44 cognominal joined 22:46 cognominal left 22:52 kaare_ left
MadcapJake what are the postcircumfix parentheses on this non-captured group doing: <.malformed("$*SCOPE (did you mean to declare a sigilless \\{~$<ident>} or \${~$<ident>}?)")> 22:59
skids passing the args to the rule. 23:00
MadcapJake but i thought the `.` made it an uncaptured group? 23:01
skids Right, but that does not mean the rule does not get called.
MadcapJake oh ok, but rules like that can take arguments then eh?
skids Yes they are essentially subs/methods. 23:02
MadcapJake good to know, thanks skids!
23:05 cognominal joined 23:09 BenGoldberg_ joined 23:16 uruwi left, cognominal left 23:21 pecastro joined 23:30 Guest77425 is now known as parisba_ 23:32 xpen joined 23:37 xpen left, kjs1 joined 23:41 rurban left
dalek c: 8d3c195 | (Wenzel P. P. Peppmeyer)++ | doc/Language/containers.pod:
mention sigilless variables and 'is raw' for binding
23:42
doc: fe4b4a1 | (Wenzel P. P. Peppmeyer)++ | doc/Language/containers.pod:
doc: mention and provide example for Proxy in Containers
23:42 dalek left 23:43 dalek joined, ChanServ sets mode: +v dalek 23:47 spider-mario left, d4l3k_ joined
diakopter cackles wildly at `purl` being listed as a contributor 23:48
23:49 d4l3k_ left, dalek left, pnu left 23:52 b2gills left 23:53 kjs1 left 23:55 dalek joined, ChanServ sets mode: +v dalek, dalek left 23:57 solarbunny left, BenGoldberg joined, RabidGravy left, lichtkind left
lizmat diakopter: I'm afraid the humour of 'purl' being listed as a contributor is lost on me 23:58
diakopter: would you care to elaborate ?
23:58 yqt left, yqt joined 23:59 BenGoldberg_ left
diakopter I thought purl was a bot 23:59
23:59 dalek joined, ChanServ sets mode: +v dalek