»ö« 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! | feather will shut down permanently on 2015-03-31
Set by jnthn on 28 February 2015.
00:11 rurban left
raydiak .tell retupmoca github.com/retupmoca/P6-Compress-Zlib/pull/7 00:16
yoleaux raydiak: I'll pass your message to retupmoca.
raydiak .tell cosimo github.com/cosimo/perl6-string-crc32/pull/5 00:17
yoleaux raydiak: I'll pass your message to cosimo.
00:17 airdisa left 00:20 cognominal left 00:29 BenGoldberg left, BenGoldberg joined
flussence silly idea: most of the profiler json is a huge nested tree of callframe info, and a lot of that is just the same hash key strings repeated over and over. Maybe it'd be more sensible to use an array... could even put the keys at the beginning of the data so it's still self-describing. 00:47
flussence goes to experiment
00:51 dayangkun joined 00:52 muraiki joined 00:54 laouji joined 01:16 koo6 left 01:26 Zoffix joined
flussence m: say 2949462 #`{ redundant hash keys and punctuation } / 5228772 #`{ total json filesize } 01:30
camelia rakudo-moar d09e62: OUTPUT«0.5640831␤»
flussence yeah that's... quite a lot. 01:31
01:38 aborazmeh joined, aborazmeh left, aborazmeh joined 01:50 dayangkun left 01:54 raiph joined 02:01 pierrot left, pierrot joined 02:17 dsm joined 02:21 noganex_ joined 02:24 noganex left, rmgk_ joined, rmgk left, rmgk_ is now known as rmgk 02:33 tinyblak left 02:45 mr-foobar left 02:47 colomon left 02:48 colomon joined 02:51 perlvim joined, vendethiel joined 02:52 adu joined
perlvim p6: 'string'.&'say' 02:54
camelia rakudo-moar d09e62: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tmpfile␤Name must begin with alphabetic character␤at /tmp/tmpfile:1␤------> 3'string'.&7⏏5'say'␤ expecting any of:␤ infix␤ infix stopper␤ statement end␤ stat…»
TimToady_ m: 'string'.$('say') 02:58
camelia rakudo-moar d09e62: OUTPUT«Cannot find method 'postcircumfix:<( )>'␤ in block <unit> at /tmp/0rKbKUt59L:1␤␤»
TimToady_ m: 'string'.$::('say')
camelia rakudo-moar d09e62: OUTPUT«===SORRY!===␤No such symbol '$::say'␤»
02:58 thou left
TimToady_ m: 'string'.&say 02:59
camelia rakudo-moar d09e62: OUTPUT«string␤»
TimToady_ m: 'string'.&::('say')
camelia rakudo-moar d09e62: OUTPUT«string␤»
TimToady_ there you go 03:00
we intentionally make symbolic refs harder than, er, hard refs
03:01 dsm left 03:05 dayangkun joined 03:06 konsolebox left
perlvim Thanks TimToday_ 03:06
03:06 konsolebox joined
TimToady_ hmm, I grew a tail... 03:07
03:07 TimToady_ is now known as TimToady, TimToady left, TimToady joined 03:11 dsm joined 03:16 dayangkun left
perlvim TimToady: if the method is not exported to CORE::, how to call it dynamically with name? 03:17
03:17 gfldex left
TimToady import to your current lexical scope 03:17
CORE is not special that way, it's just an outer lexical scope 03:18
perlvim TimToday: I see, import the symbols of object.^methods to MY::, then could call it with object.&::('name') 03:20
TimToady well, but if you have object methods to begin with, and you merely wish to call a method of arbitrary name, just use object."say"() 03:21
m: 'string'."say"()
camelia rakudo-moar d09e62: OUTPUT«string␤»
perlvim yes, it is my want 03:22
03:24 jack_rabbit left 03:27 muraiki left 03:28 jack_rabbit joined 03:30 BenGoldberg left 03:33 tinyblak joined 03:38 tinyblak left 03:50 araujo joined, araujo left 03:52 araujo joined 03:56 raiph left 04:02 pierrot left 04:03 pierrot joined 04:07 vendethiel left 04:20 laouji left 04:21 laouji joined 04:29 dayangkun joined 04:36 laouji left, perlvim left, laouji joined, haroldwu joined 04:39 laouji left 04:40 konsolebox left 04:41 haroldwu left, haroldwu joined 04:44 adu left 04:45 laouji joined 04:46 konsolebox joined 04:51 perlvim joined 04:55 kaare__ joined
skids .tell tadzik I sent you a pull request to Grammar::BNF that adds ABNF (popular in modern RFCs) 05:09
yoleaux skids: I'll pass your message to tadzik.
05:11 perlvim left 05:14 vendethiel joined 05:38 vendethiel left 05:59 skids left 06:06 dayangkun left 06:10 labster left 06:15 aborazmeh left 06:21 Ven joined, diana_olhovik_ joined 06:26 labster joined 06:28 quester joined 06:29 hobbs left, hobbs joined 06:30 laouji left
[Tux] still no Inline::Perl5 06:32
06:35 laouji joined
quester Tux... are you still getting the same "No exception handler located for warn"? I just installed Inline::Perl5 on Rakudo Star 2015.03 at $work today and it was an... interesting... install, but I haven't seen that particular error. 06:41
[Tux] i run from git, not from star
(rakudobrew)
06:45 Alina-malina left
quester I see... I build from git at home (not rakudobrew, but the using the a script with the manual installation commands from rakudo.org/how-to-get-rakudo/. 06:48
06:51 vendethiel joined
quester Using a week old Rakudo, panda install Inline::Perl5 runs okay. (Specifically, perl6 version 2015.04-106-g59b8935 built on MoarVM version 2015.04-24-g6ef0f8f). Let me fetch the latest Rakudo... perhaps the problem is there. Or in MoarVM... 06:51
s/week old Rakudo/two day old Rakudo/ 06:52
06:53 hobbs left 06:55 brrt joined
brrt \o 06:55
06:55 hobbs joined
brrt uhm, let me ask it here. is there any way in which ASSIGN and DECONT can be overriden by user code 06:55
[Tux] fail started yesterday (01:00 AM MET)
time is a guess 06:56
dalek kudo/nom: c578247 | TimToady++ | src/core/ (2 files):
fooled myself, don't need nodal on multis
07:00 tinyblak joined 07:14 Foxcool joined 07:16 vendethiel left 07:37 alini joined 07:47 zakharyas joined 08:08 virtualsue joined 08:09 virtualsue_ joined 08:12 virtualsue left, virtualsue_ is now known as virtualsue
quester m: say Any.^methods>>.gist; 08:13
camelia rakudo-moar c57824: OUTPUT«invoke Method+{<anon>}.new Method+{<anon>}.new Method+{<anon>}.new Method+{<anon>}.new Method+{<anon>}.new Method+{<anon>}.new Method+{<anon>}.new Method+{<anon>}.new Method+{<anon>}.new Method+{<anon>}.new Method+{<anon>}.new Method+{<anon>}.new Method+{<…»
08:13 zakharyas left 08:14 darutoko joined, zakharyas joined
quester The reason that Inline::Perl5 blows up during initialization is that it tries to create many methods named "Method+{<anon>}.new". The second one blows up. 08:18
08:20 spider-mario joined 08:22 diana_olhovik_ left 08:23 domidumont joined 08:24 Foxcool_ joined 08:27 Foxcool left, domidumont left, Ven left 08:28 domidumont joined 08:31 pierrot left, pierrot joined 08:37 Ven joined 08:44 mr-foobar joined 08:45 vendethiel joined
lizmat quester: |Tux| :I think TimToady's latest patch (revert actually) might fix that 08:46
rebootstrapping now
and good *, #perl6!
08:47 Rounin joined
lizmat alas :-( 08:48
jnthn morning o/ 08:49
lizmat jnthn o/
jnthn m: say Any.^methods 08:50
camelia rakudo-moar c57824: OUTPUT«invoke Method+{<anon>}.new Method+{<anon>}.new Method+{<anon>}.new Method+{<anon>}.new Method+{<anon>}.new Method+{<anon>}.new Method+{<anon>}.new Method+{<anon>}.new Method+{<anon>}.new Method+{<anon>}.new Method+{<anon>}.new Method+{<anon>}.new Method+{<…»
08:50 koo6 joined
lizmat I thought this was the "is nodal" change, but apparently it isn't 08:50
jnthn It still looks bust 08:51
lizmat yeah
jnthn m: say Any.^methods.map(*.name)
camelia rakudo-moar c57824: OUTPUT«invoke exists_key EXISTS-KEY delete_key DELETE-KEY delete_pos DELETE-POS list flat eager hash Hash Parcel List elems end keys kv values pairs antipairs invert pairup squish rotor reverse sort reduce combinations permutations unique uniq pick roll classify …»
jnthn A method should always gist to its name
quester As a quick workaround, panda look Inline::Perl5; ./configure.pl6; mv lib/Inline ~/rakudo/install/share/perl6/lib; vim rakudo/install/share/perl6/lib/Inline/Perl5.pm6. Near line 17, change the declaration of $path...
... to include the absolute patch to p5helper.so, something like state Str $path = "/home/ira/rakudo/install/share/perl6/lib/Inline/p5helper.so"; ...then... 08:52
08:52 dolmen joined, rurban joined
lizmat jnthn: oddly enough, that's the only thing that src/core/Method.pm 08:52
does
jnthn Yeah
08:53 rindolf joined
jnthn I think the trait that gets shoved on many methods now mixes in to them before the Method class is fully defined, and then we get the usual method cache problems. 08:54
quester ... about line 747, after for Any.^methods>>.gist -> $name { ... add a new line... next if $name ~~ / 'Method+{<anon>}.new' /;
lizmat jnthn: yeah, confirmed, it doesn't call the Method.name method
jnthn: what trait is that anyway and where does it get shoved ? 08:55
jnthn lizmat: I suspect it's the "is nodal" but we had the same issue with "is hidden-from-backtrace
lizmat: It's a related problem to the augment + subclass issue.
quester At that point it should be usable. The first patch works around the .files method of CompUnitRepo::Local::File apparently not returning anything. The second one works around the extra method names.
lizmat but "is nodal" was just removed ?
jnthn lizmat: from multis, but you never get multis from .^methods 08:56
lizmat aha
ok
:-(
TimToady's comment was "don't need is nodal on multis", still I see a lot of multis with "is nodal"
quester
.oO( are we having O(fun) yet? )
08:57
lizmat specifically in array_slice
jnthn Guess I should bump the augment/cache issue a little further up my priority list :)
lizmat tries to remove them from array_slice multis 08:58
hmmm.. hash_slice actuallt
*y
jnthn bbi30; got some erands to do before I can get on with Perl 6 things for the rest of the day 08:59
Apparently my body decided I needed a lot of sleep last night too...
09:03 telex left 09:04 telex joined, jack_rabbit left
quester Jnthn: Thanks for looking at that. I guess my second patch should have been to change line 747 from for Any.^methods>>.gist to for Any.^methods>>.name 09:06
dalek kudo/nom: a073f5d | lizmat++ | src/core/hash_slice.pm:
Remove some more "is nodal" from multis
lizmat quester: that feels like a valid work around 09:07
09:07 dolmen left
lizmat afk for a bit 09:07
quester .tell [Tux] I have just posted a fairly awkward workaround if you are in a hurry, but it looks like jnthn and lizmat are looking into at least one of the underlying problems, so there is light at the end of the tunnel. 09:09
yoleaux quester: I'll pass your message to [Tux].
quester ... and to *.all a good night. 09:10
09:12 Ven left, Ven joined, quester left 09:14 RabidGravy joined 09:15 fhelmberger joined 09:16 tinyblak left 09:18 tinyblak joined 09:19 fhelmberger left 09:21 Ven left, pierrot left, pierrot joined 09:30 Akagi201_ left, vendethiel left 09:32 laouji left 09:33 araujo left 09:48 brrt left 09:49 brrt joined
RabidGravy morning 09:54
masak good noon, RabidGravy 09:55
09:59 pierrot left, laouji joined 10:00 lolisa joined 10:06 pierrot joined 10:10 cdc left, pecastro_ left
|Tux| is not in a hurry 10:13
10:20 brrt left 10:28 Ven joined 10:35 hobbs left, tinyblak left
Ven m: multi f(Ijnt){}; multi f(Str){}; subset MultiSub of Sub where *.candidates.elems > 1; say &f ~~ MultiSub; 10:35
camelia rakudo-moar a073f5: OUTPUT«5===SORRY!5=== Error while compiling /tmp/V9gBhNDmQI␤Invalid typename 'Ijnt' in parameter declaration. Did you mean 'Int'?␤at /tmp/V9gBhNDmQI:1␤------> 3multi f(Ijnt7⏏5){}; multi f(Str){}; subset MultiSub of ␤»
Ven m: multi f(Int){}; multi f(Str){}; subset MultiSub of Sub where *.candidates.elems > 1; say &f ~~ MultiSub;
camelia rakudo-moar a073f5: OUTPUT«True␤»
10:35 tinyblak joined
Ven m: multi f(Int){}; multi f(Str){}; subset MultiSub of Sub where *.candidates.elems > 1; multi c(MultiSub $f) { say $f("hey"); } c(&f); 10:36
camelia rakudo-moar a073f5: OUTPUT«5===SORRY!5=== Error while compiling /tmp/ZDh45N2tIL␤Strange text after block (missing semicolon or comma?)␤at /tmp/ZDh45N2tIL:1␤------> 3 multi c(MultiSub $f) { say $f("hey"); }7⏏5 c(&f);␤ expecting any of:␤ infix␤ i…»
Ven m: multi f(Int){}; multi f(Str){}; subset MultiSub of Sub where *.candidates.elems > 1; multi c(MultiSub $f) { say $f("hey"); }; c(&f); # sigh
camelia rakudo-moar a073f5: OUTPUT«Cannot look up attributes in a type object␤ in sub c at /tmp/uzOV2Y68Ga:1␤ in sub c at /tmp/uzOV2Y68Ga:1␤ in block <unit> at /tmp/uzOV2Y68Ga:1␤␤»
10:37 hobbs joined 10:40 tinyblak left
jnthn Ven: *.is_dispatcher maybe 10:41
Ven m: multi f(Int){}; multi f(Str){}; subset MultiSub of Sub where *.is_dispatcher; multi c(MultiSub $f) { say $f("hey"); }; c(&f); # sigh
camelia rakudo-moar a073f5: OUTPUT«Cannot look up attributes in a type object␤ in sub c at /tmp/7JKZ7xuxx7:1␤ in sub c at /tmp/7JKZ7xuxx7:1␤ in block <unit> at /tmp/7JKZ7xuxx7:1␤␤»
jnthn Odd... 10:42
oh, wait
That's a double-closure thing
where already adds a layer of closure
masak say what? 10:43
I'm sure I've seen a {} block after `where`
jnthn Oh, though it should still work there I guess
masak: yes, in that case it doesn't have to
It still seems to get upset without the * though. I don't know why. 10:44
lizmat .tell nine would it be possible for me to get an Inline::Perl5 commit bit ? 10:46
yoleaux lizmat: I'll pass your message to nine.
lizmat I just tried to push quester's workaround for the Inline::Perl5 is nodal breakage
10:49 rindolf left 11:04 gfldex joined 11:08 pippo joined
pippo m: my $str = "D\c[COMBINING DOT ABOVE]\c[COMBINING DOT BELOW]"; say $str; 11:09
camelia rakudo-moar a073f5: OUTPUT«Ḍ␤»
pippo m: my $str = "D\c[COMBINING DOT ABOVE]\c[COMBINING DOT BELOW]"; $str ~= "D"; say $str;
camelia rakudo-moar a073f5: OUTPUT«Ḍ̇␤»
pippo m: my $str = "D\c[COMBINING DOT ABOVE]\c[COMBINING DOT BELOW]"; $str ~= "DD"; say $str; 11:10
camelia rakudo-moar a073f5: OUTPUT«Ḍ̇D␤»
pippo ^^ bug? 11:12
11:12 pippo left
lizmat m: my $str = "D\c[COMBINING DOT ABOVE]\c[COMBINING DOT BELOW]"; say $str.codes 11:12
camelia rakudo-moar a073f5: OUTPUT«2␤»
lizmat m: my $str = "D\c[COMBINING DOT ABOVE]\"; say $str.codes
camelia rakudo-moar a073f5: OUTPUT«5===SORRY!5=== Error while compiling /tmp/9tgKI6t_Rg␤Unable to parse expression in double quotes; couldn't find final '"' ␤at /tmp/9tgKI6t_Rg:1␤------> 3c[COMBINING DOT ABOVE]\"; say $str.codes7⏏5<EOL>␤ expecting any of:␤ meth…»
lizmat m: my $str = "D\c[COMBINING DOT ABOVE]"; say $str.codes
camelia rakudo-moar a073f5: OUTPUT«1␤»
lizmat so it really appears its not combining the 2nd combining dot 11:13
I would say, bug indeed
jnthn I think .codes may still be wrong 11:14
lizmat m: my $str = "D\c[COMBINING DOT ABOVE]"; say $str.NFD # where this the D go?
camelia rakudo-moar a073f5: OUTPUT«NFD:0x<0044 0307>␤»
lizmat m: my $str = "D\c[COMBINING DOT ABOVE]\c[COMBINING DOT BELOW]"; say $str.NFD 11:15
camelia rakudo-moar a073f5: OUTPUT«NFD:0x<0044 0323 0307>␤»
lizmat hmm... NFD seems to be correct
jnthn .codes is about NFC though
On a Str anyway
lizmat ah, ok...
jnthn But yeah, it's correct on Moar; I already did that 11:16
I think the concatenation thing is separate
lizmat m: my $str = "D\c[COMBINING DOT ABOVE]\c[COMBINING DOT BELOW]"; say $str.graphs
camelia rakudo-moar a073f5: OUTPUT«Method 'graphs' not found for invocant of class 'Str'␤ in block <unit> at /tmp/P8MI0R9pgn:1␤␤»
jnthn I think we also decided .graphs will go away as it's just a .chars synonym so there's not much point.
lizmat ok
m: my $str = "D\c[COMBINING DOT ABOVE]\c[COMBINING DOT BELOW]"; say $str.chars # 2 would be incorrect then? 11:17
camelia rakudo-moar a073f5: OUTPUT«1␤»
lizmat good thing it is 1 then :-)
jnthn 1 is the right answer for .chars there, yes
2 is the right answer for .codes
If you want to know how many codes in NFD then you need to say .NFD.codes
m: my $str = "D\c[COMBINING DOT ABOVE]\c[COMBINING DOT BELOW]D"; say $str.chars; 11:18
camelia rakudo-moar a073f5: OUTPUT«2␤»
jnthn m: my $str = "D\c[COMBINING DOT ABOVE]\c[COMBINING DOT BELOW]D"; say $str;
camelia rakudo-moar a073f5: OUTPUT«Ḍ̇␤»
jnthn m: my $str = "D\c[COMBINING DOT ABOVE]\c[COMBINING DOT BELOW]D"; say $str.codes;
camelia rakudo-moar a073f5: OUTPUT«3␤»
jnthn Odd, the .chars and .codes are right there but something odd goes on at output
m: my $str = "D\c[COMBINING DOT ABOVE]\c[COMBINING DOT BELOW]D"; say $str.NFD;
camelia rakudo-moar a073f5: OUTPUT«NFD:0x<0044 0323 0307 0044>␤»
jnthn That's correct too
m: my $str = "D\c[COMBINING DOT ABOVE]\c[COMBINING DOT BELOW]D"; say $str.NFC;
camelia rakudo-moar a073f5: OUTPUT«NFC:0x<1e0c 0307 0044>␤»
jnthn As is that
lizmat yeah, it's only on output 11:19
11:19 WABSIAX joined
lizmat conversion to utf-8 maybe ? 11:19
jnthn m: my $str = "D\c[COMBINING DOT ABOVE]\c[COMBINING DOT BELOW]D"; say $str.encode('utf-');
camelia rakudo-moar a073f5: OUTPUT«Unknown string encoding: 'utf-'␤ in block <unit> at /tmp/8m4lPRb9wN:1␤␤»
jnthn m: my $str = "D\c[COMBINING DOT ABOVE]\c[COMBINING DOT BELOW]D"; say $str.encode('utf-8');
camelia rakudo-moar a073f5: OUTPUT«utf8:0x<e1 b8 8c cc 87>␤»
jnthn m: say chr(87)
camelia rakudo-moar a073f5: OUTPUT«W␤»
jnthn Hmm
lizmat does chr() take hex ? 11:20
jnthn oops
lizmat m: say chr(0x87)
camelia rakudo-moar a073f5: OUTPUT«␤»
jnthn And yeah, thinko :)
Something is wrong in that utf-8 encoded output
I'll investigate/fix/add test for it after lunch...which means shopping... At least I got my admin tasks done. :) 11:21
lizmat :-) 11:22
11:34 vendethiel joined 11:48 Ven left, RabidGravy left 11:58 vendethiel left 11:59 cdc joined, rurban left
masak I found this a fascinating read: boundvariable.org/press/tr-06-163.pdf 11:59
(and I'm guessing anyone connected with p6cc somehow will, too) 12:00
so, today's mini-challenge: implement the Universal Machine from Figure 2 in Perl 6 :)
DrForr pricks up his ear. 12:01
12:03 vendethiel joined
masak I like the "(c) 19106" on the first page. I wonder if it's some kind of deliberate humor, or just a Y2K bug in the software that generated that string. 12:04
12:06 jlbhshluekg joined, muraiki joined, jlbhshluekg left, jlbhshluekg joined, jlbhshluekg left
rarara there is one thing which stumble me on this construct: my @fib := 1, 1, { $^a + $^b } ... *; why $^a and $^b? Wouldn't have been more general to pass the whole @fib (the calculated part) in an array? 12:08
masak rarara: the block takes two parameters, so you get the last two values from the sequence.
rarara: note that there's a difference between the *sequence* you're binding into the array, and the array itself. 12:09
rarara masak ok but if I wanted tribonacci instead of fibonacci I would have to add $^c ?
masak rarara: yes.
rarara: I usually find it problematic (even with binding, as used here) to talk of the array that's being constructed. usually leads to infinite looping.
rarara @seq[n] := "The sum of all number from 0 to n? 12:10
what about this?
masak m: say [\+] 0..10
camelia rakudo-moar a073f5: OUTPUT«0 1 3 6 10 15 21 28 36 45 55␤»
rarara this is nice of course; but not the same construct
masak realizes he is not solving the problem on rarara's terms
but that's part of my point: don't do it that way :)
rarara Ok, would have been nice if it was possble: could have been used for things like convolutions / integrations 12:11
which fine can be made in other ways
masak not saying it's impossible.
saying it's not as wise an idea as you might think.
12:12 mr-foobar left 12:14 Guest3343 is now known as felher 12:16 pecastro joined, cschwenz joined
jnthn I've rejected RT #116525 and RT #117109; they wanted .reverse and .pick to flatten, but we decided in the GLR on a non-flattening policy. 12:21
synbot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=116525
jnthn synbot6: Hey, you lazy git! Give *both* links!
masak submits a pull request for that 12:22
hm, where's synbot6's repo? 12:23
oh, it's still github.com/tadzik/synopsebot
12:23 brrt joined
btyler is there any way to serialize a sub + environment at runtime? I was thinking of a goofy project to hack up a thread scheduler that schedules things on remote boxes instead of threads. 12:23
brrt m: my @a = qw[a b c]; if any @a eq 'b' { say "YAY"; } else { say "NOES"; }
camelia rakudo-moar a073f5: OUTPUT«NOES␤»
btyler just for kicks, mind you 12:24
brrt m: my @a = qw[a b c]; if any(@a) eq 'b' { say "YAY"; } else { say
"NOES"; }
camelia rakudo-moar a073f5: OUTPUT«5===SORRY!5===␤Argument to "say" seems to be malformed␤at /tmp/LdMvyhyXMV:1␤------> 3any(@a) eq 'b' { say "YAY"; } else { say7⏏5<EOL>␤Missing block␤at /tmp/LdMvyhyXMV:1␤------> 3any(@a) eq 'b' { say "YAY"; } else { say7⏏5<EOL>…»
brrt m: my @a = qw[a b c]; if any @a eq 'b' { say "YAY"; } else { say "NOES"; }
camelia rakudo-moar a073f5: OUTPUT«NOES␤»
brrt m: my @a = qw[a b c]; if any(@a) eq 'b' { say "YAY"; } else { say "NOES"; }
camelia rakudo-moar a073f5: OUTPUT«YAY␤»
brrt parsing thingy
is this intended? 12:25
jnthn Not a bug.
brrt right :-)
jnthn Yes, list ops drop precedence pretty low :)
brrt hmm
m: my @a = qw[a b c]; say @a.any eq 'b';
camelia rakudo-moar a073f5: OUTPUT«any(False, True, False)␤»
brrt hence the preference for method calls i guess
masak speak for yourself 12:26
in this case, coulda solved it with `if 'b' eq any @a`
brrt i speak for... i don't... :-(
yeah
masak just need to keep in mind that listops have one of them Haskell `$` invisibly attached to them
like an invisible starting paren, with the ending paren coming at the end of the expr 12:27
12:30 mj41 joined
DrForr Test::is_deeply() would be more useful with some way to point out where the difference starts. /me makes a note for later. 12:30
12:30 cognominal joined
mj41 mls: say "abc{Uni.new(0x1E0C, 0x0307).Str}abc" 12:31
yoleaux 3 Apr 2015 23:45Z <hoelzro> mj41: the docker folk have added an official repo for rakudo-star
masak just did something that made him go "oh, I've got to blog about this"
jnthn haha...
char * MVM_string_utf8_encode_substr(MVMThreadContext *tc,
MVMString *str, MVMuint64 *output_size, MVMint64 start, MVMint64 length) {
/* XXX This is terribly wrong when we get to doing NFG properly too. One graph may 12:32
* expand to loads of codepoints and overflow the buffer. */
Except the code is too robust to actually overflow the buffe
So it doesn't, it just drops the codepoints instead :P
masak darn you, robust code.
jnthn fixes it :)
jepeway m: use Test; my $s = sub {}; is $s, sub {}, "sub"; # what's the right way to do this? 12:33
camelia rakudo-moar a073f5: OUTPUT«Code object coerced to string (please use .gist or .perl to do that) in sub is at lib/Test.pm:135␤␤Code object coerced to string (please use .gist or .perl to do that) in sub is at lib/Test.pm:135␤␤ok 1 - sub␤»
mj41 mls: say "abc{Uni.new(0x1E0C, 0x0307).Str}abc"
moritz jepeway: what are you trying to do?
jnthn mj41: Did you mean "m:" :)
moritz m: use Test; cmp_ok sub { }, &[===], sub { } 12:34
camelia rakudo-moar a073f5: OUTPUT«not ok 1 - ␤␤# Failed test at /tmp/LBBXtpGtq6 line 1␤Code object coerced to string (please use .gist or .perl to do that) in sub cmp-ok at lib/Test.pm:202␤␤# expected: ''␤Code object coerced to string (please use .gist or .perl to do that) in…»
mj41 yes, but don't know how it become mls
jnthn mj41: Tab completion? :)
moritz mj41: by tab completion :-)
jepeway test that two "subs" are the "same"
moritz jepeway: use === (or !===) for that
m: use Test; cmp_ok sub { }, &[!===], sub { }
camelia rakudo-moar a073f5: OUTPUT«5===SORRY!5=== Error while compiling /tmp/DpSkWc2gc1␤Variable '&infix:<!===>' is not declared. Did you mean any of these?␤ &infix:<===>␤ &infix:<=:=>␤␤at /tmp/DpSkWc2gc1:1␤------> 3use Test; cmp_ok sub { }, &[!===]7⏏5, sub { }…»
moritz m: use Test; cmp_ok sub { }, { $^a !=== $^b }, sub { } 12:35
camelia rakudo-moar a073f5: OUTPUT«ok 1 - ␤»
mj41 yes, but I do not use <tab> ... probably some xchat bug
mls: say 'ok'
moritz muhaha 12:36
12:36 rindolf joined
jepeway ok. er...moritz: ok, gotcha. 12:36
mj41 m: say "abc{Uni.new(0x1E0C, 0x0307).Str}abc" 12:37
camelia rakudo-moar a073f5: OUTPUT«abcḌ̇ab␤»
mj41 fixed, google++
jnthn mj41: Yes, that's another case of the utf-8 encoder "I dunno NFG enough yet" thing I'm fixing at the moment :) 12:38
jepeway moritz: should &is be smarter? or is it meant to do simple things, and cmp_ok with a comparator is where you're s'posed to go for trickier tests?
mj41 xchat: Preferences - Input box -> Automatic nick completion (without TAB key)
12:39 laouji left
moritz jepeway: the latter 12:39
mj41 thanks, jnthn++
moritz jepeway: &is is supposed to do string comparisons, though recently we've made it a bit smarter when comparing to type objects 12:40
but it shouldn't become too smart, to be able to stay predictable
jepeway moritz: understood. 12:41
timotimo o/
jepeway moritz: thankee, btw. 12:42
moritz jepeway: you're welcome 12:43
12:44 domidumont left
jepeway gone. 12:44
12:46 muraiki left 12:49 pippo joined
masak > I've rejected RT #116525 and botsnack and RT #117109; 12:50
]]] Link: rt.perl.org/rt3//Public/Bug/Displa...?id=116525
synbot6 om nom nom
masak ]]] om nom nom
]]] Link: rt.perl.org/rt3//Public/Bug/Displa...?id=117109
hehe
jnthn: ^^^
submitting pull request now.
jnthn :) 12:53
masak++
masak tadzik: github.com/tadzik/synopsebot/pull/6 12:58
the "oh, I've got to blog about this" thing I did was, before I wrote this patch, I set up a small 11-line REPL that instrumented Synopsebot and with which I could debug it as I wrote the solution. 12:59
could also have written tests in much the same way, but that felt a little overengineered in this case. 13:00
13:01 lucasb joined
lucasb good friday to you o/ 13:02
masak \o
lucasb m: Failure.new(Exception.new)
camelia rakudo-moar a073f5: OUTPUT«No exception handler located for catch␤ at <unknown>:1 (/home/camelia/rakudo-inst-2/share/perl6/runtime/CORE.setting.moarvm:throw:4294967295)␤ from src/gen/m-CORE.setting:16475 (/home/camelia/rakudo-inst-2/share/perl6/runtime/CORE.setting.moarvm:si…»
lucasb m: Failure.new(Exception.new); 1 13:03
camelia rakudo-moar a073f5: OUTPUT«(signal SEGV)»
lucasb I don't know why the last statement is special for rakudo... 13:04
moritz it's not evaluated in sink context
lucasb In "2;3;4", only 2 and 3 get warnings for useless use
moritz which is kinda a bug
lucasb moritz: oh, thanks
moritz in the general case, when you have code inside a block, the last statement is returned 13:05
hence it's not in sink context
and we haven't fixed that for the mainline
m: sub f { 2; 3; 4 }; say f()
camelia rakudo-moar a073f5: OUTPUT«4␤»
moritz it doesn't warn inside subs either :(
jnthn For the mainline, we didn't fix it 'cus the REPL wants it that way also... 13:06
moritz right
lucasb Maybe this is helping hide some bugs, because I have to put one at the end "...; 1" 13:08
I thought maybe "sink Failure.new(Exception.new)" would give the same segfault, but maybe I don't know how to use sink 13:09
jnthn will investigate the SEGV 13:10
lucasb jnthn: thanks!
moritz m: Failure.new(Exception.new).sink
camelia rakudo-moar a073f5: OUTPUT«(signal SEGV)»
moritz there ya go
lucasb moritz++
masak submits rakudobug
jnthn largely re-did the UTF-8 encoder to it'll handle NFG and use less memory in the common case 13:12
Currently spectesting.
timotimo wow, that's ...
moritz Exception.new leaves $!ex and $!bt undefined 13:14
pippo jnthn++
moritz but the rest of the code assumes that they are set
13:14 skids joined
moritz and it's the catching/throwing code that generates a new exception and binds $!ex and $!bt into them 13:15
jnthn moritz: Still shouldn't SEGV either way...
hoelzro o/ #perl6
jnthn moritz: I'll fix the SEGV at Moar level and leave somebody else to figure out what it should actually do
moritz m: Failure.CREATE.sink
camelia rakudo-moar a073f5: OUTPUT«Method 'throw' not found for invocant of class 'Any'␤ in block <unit> at /tmp/zypTeglcI2:1␤␤»
masak rt.perl.org/Ticket/Display.html?id=124434 13:16
lucasb masak++, thanks 13:17
cognominal if you want to segfault moarvm rakudo : use rule :s 13:28
unimplemented pragma should not have license to segfault :) 13:29
13:30 rurban joined
hoelzro my @values{1..*} creates a 1-indexed array, right? 13:31
cognominal probably use could use some expertise.
masak cognominal: is this something you can reproduce on camelia?
walk & 13:32
13:33 kaare__ left
cognominal maybe I don't want to segfault camelia. What happens then 13:33
13:33 xfix joined, xfix left, xfix joined
jnthn cognominal: It creates a separate Rakudo process, so camelia is unharmed. 13:36
cognominal it happens on the Perl 6 shell
m: use rule :s
camelia rakudo-moar a073f5: OUTPUT«===SORRY!===␤Could not find rule in any of: /home/camelia/.perl6/2015.04-130-ga073f5d/lib, /home/camelia/.perl6/2015.04-130-ga073f5d, /home/camelia/rakudo-inst-2/share/perl6/lib, /home/camelia/rakudo-inst-2/share/perl6/vendor/lib, /home/camelia/rakudo-in…»
cognominal So it's Perl 6 shell specific 13:37
timotimo perl6 shell? 13:38
oh, the REPL 13:39
the REPL has some ... problems
hoelzro: i don't think that's implemented yet
cognominal and it happens even if ones launch it as: perl6 --target=parse
13:40 thou joined 13:41 skids left
cognominal timotimo: that's too bad because that's should be the best way for people to dip their toes in the Perl 6 ocean to test its water. 13:41
timotimo that's true ;( 13:42
cognominal if that clips their toes they will not come back.
I can't understand why that behavior is REPL specific 13:44
btyler cognominal: that doesn't occur for me. think you could bisect the issue? 13:45
I get the same output in my REPL as camelia gives 13:46
hoelzro timotimo: doesn't seem like it =/ 13:48
13:49 raiph joined 13:51 adu joined
timotimo funny. just earlier today i thought about arrays that have enum indices 13:51
13:51 airdisa joined
timotimo cognominal: fwiw, the repl just recently learned to cope with binding better, that makes a gigantic difference because you use binding so often to keep lists lazy 13:52
cognominal nice 13:53
btyle what version of rakudo do you use on what platform? 13:55
btyler what version of rakudo do you use on what platform? 13:56
btyler I'm updating to HEAD on moar/nqp/rakudo and rebuilding at the moment, osx 10.10
13:57 koo6 left 13:58 adu left
cognominal that's about time I learn about git bisect 13:58
DrForr Better than hashes with enum indices :) 14:01
jnthn masak: Mebbe you have a moment to review rt.perl.org/Ticket/Display.html?id=117307 and see if current sequence semantics either do what you want, or if the ticket is otherwise no longer needed? 14:06
dalek p: 861faf7 | jnthn++ | tools/build/MOAR_REVISION:
Get various MoarVM string-related fixes.
14:12
kudo/nom: 8a7e9c4 | jnthn++ | tools/build/NQP_REVISION:
Bump NQP_REVISION for MoarVM with string fixes.
ast: fa3bfee | jnthn++ | S15-nfg/from-buf.t:
Test round-trip of synthetics with encode/decode.
14:13
ast: bf3811c | jnthn++ | S04-exceptions/fail.t:
Test for RT #118785 (use fatal semantics).
synbot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=118785
cognominal oops, when compiling the version tagged Vladivostok, I get No registered operation handler for 'readlineintfh' :(
I am probably doint it wrong :( 14:15
14:17 adu joined
cognominal indeed it uses an already installed nqp-m :( 14:17
14:20 koo6 joined 14:24 pecastro left 14:25 raiph left 14:27 raiph joined 14:29 alini left, tinyblak joined 14:31 brrt left
timotimo right; we have "need at least this version for new-enough ops", but not "must not use this newer version with an op removed" 14:32
cognominal :) 14:34
need some rest :( 14:35
14:37 alini joined 14:40 adu left 14:52 RabidGravy joined 14:53 rindolf left 14:57 diana_olhovik joined
notjack m: say.WHAT 14:59
camelia rakudo-moar 8a7e9c: OUTPUT«5===SORRY!5===␤Argument to "say" seems to be malformed␤at /tmp/ih2PWknpI1:1␤------> 3say7⏏5.WHAT␤Other potential difficulties:␤ Unsupported use of bare "say"; in Perl 6 please use .say if you meant $_, or use an explicit invocant or …»
notjack I wonder how many common emoticons have legitimate interpretations in p6
hoelzro does the fact that @*INC is now @?INC mean that one can't manipulate the module search path at runtime? 15:01
notjack m: say(.WHAT);
camelia rakudo-moar 8a7e9c: OUTPUT«(Any)␤»
hoelzro also, is there a generic equivalent to <=? like before= or something? 15:03
dalek kudo/nom: ea8c01a | jnthn++ | src/Perl6/Actions.nqp:
Make { 1 R=> 'a' } and { %*h } construst hashes.
15:05
ast: 9854a68 | jnthn++ | S05-mass/named-chars.t:
Unfudge tests unbusted after Moar NFG fix.
15:07
ast: 9fad51e | jnthn++ | S06-other/anon-hashes-vs-blocks.t:
Tests for RT #114966 and RT #123641.
synbot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=114966
15:11 Vlavv left 15:12 pecastro joined
dalek ast: 7ad6596 | jnthn++ | S14-roles/mixin.t:
Tests for RT #122756 and RT #114668.

Two already-fixed-in-Rakudo mixin bugs.
15:14
synbot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122756
jnthn Was expecting to fix those, then found I already had at some point :)
15:18 kaare__ joined 15:22 ugexe_ is now known as ugexe, cschwenz left 15:23 Vlavv joined
lizmat m: %*ENV<RAKUDO_VERBOSE_STACKFRAME>=1; sub a { die }; a 15:31
camelia rakudo-moar ea8c01: OUTPUT«Died␤ in sub a at /tmp/QSq6CQ0Sre:1␤ 1 *%*ENV<RAKUDO_VERBOSE_STACKFRAME>=1; sub a { die }; a␤␤ in block <unit> at /tmp/QSq6CQ0Sre:1␤ 1 *%*ENV<RAKUDO_VERBOSE_STACKFRAME>=1; sub a { die }; a␤␤␤»
lizmat m: %*ENV<RAKUDO_VERBOSE_STACKFRAME>=1;␤sub a { die };␤a 15:32
camelia rakudo-moar ea8c01: OUTPUT«Died␤ in sub a at /tmp/ioBp0ggUiH:2␤ 1 %*ENV<RAKUDO_VERBOSE_STACKFRAME>=1;␤ 2 *sub a { die };␤ 3 a␤␤ in block <unit> at /tmp/ioBp0ggUiH:3␤ 2 sub a { die };␤ 3 *a␤␤␤»
lizmat :)
arnsholt hoelzro: That's infix:<le> 15:33
hoelzro arnsholt: le isn't Str-specific?
RabidGravy jnthn, you have been dobbed in as the design authority of channels and I want to clarify the way that earliest is intended to work before I document it further ;-)
arnsholt Oh, right. For some reason I though those were generic
jnthn RabidGravy: Trouble is, I didn't design much of the way things are now... :S 15:34
RabidGravy ah,
jnthn There was no syntax sugar at first. By now, we have syntax sugar I don't actually understand either... 15:35
RabidGravy my specific question was is the behaviour that if there are any channel specific more statements, then the more * are totally ignored deliberate or just "lets just do it" 15:36
lizmat hmmm... if it isn't jnthn, it must have been me? 15:37
must have slipped my mind :-(
jnthn I think several people worked on the construct
Not just you, lizmat
lizmat *phew* :-)
jnthn So I don't think it's just bad memory on your part ;P 15:38
lizmat well, old geezesses tend to lose their memory :-(
RabidGravy my expectation (which I think might be what most people would think) is that is there is a "earliest @channels { more $channel {} more * {} } that the "more *" would get called on all the other channels that aren't $channel 15:39
dalek kudo/nom: 0e30f48 | lizmat++ | src/Perl6/World.nqp:
Don't force the default SHORT-ID here
RabidGravy this seems to be entirely opposite to the case that is coded
jnthn RabidGravy: That seems a reasonable enough expectation...
RabidGravy right now if there are any channel specific more or done blocks then the wildcard ones don't get used at all 15:40
15:41 airdisa left
RabidGravy the spec on this is somewhat handwavey 15:41
in src/core/asyncops.pm for anyone who may be playing along at home 15:42
dalek kudo/nom: 6887699 | lizmat++ | src/core/Backtrace.pm:
Move emphasis to line number
15:46
15:46 airdisa joined 15:49 zakharyas left
RabidGravy the change is quite small really but I'd like to get the opinion of the person who wrote the EARLIEST there because their understanding of the spec might be completely different 15:49
lizmat RabidGravy: we're all pretty much handwavy there 15:51
if it makes sense to jnthn and you, that's good enough for me :-)
15:52 khisanth_ joined
lizmat meanwhile, I'm looking at a weird action-at-a-distance bug 15:54
DrForr Okay, I'm now scared. I just added 3 AST keys to the ANTLR4 rules, added the tests, and it worked the first time.
lizmat working on CompUnitRepo, I break set tests: the file only does a "use Test" :-(
15:55 Khisanth left, pierrot left, pierrot joined
dalek p: 6ac09e8 | jnthn++ | t/qregex/ (2 files):
Unbitrot and run goal tests.
15:56
p: 413aa65 | jnthn++ | t/qregex/rx_goal:
Tests for /a ~ (c) (b)/ capture order issue.

Todo'd until I get it fixed.
lizmat well, it also broke panda, so it must be unit loading specific
15:58 diana_olhovik left
ugexe is there a better way to write: if once {1} || $some-cond { ... } 16:03
16:04 araujo joined, lucasb left 16:05 araujo left, araujo joined, araujo left
raydiak ugexe: since the once {1} will run the {1} once but return the 1 every time, the easier way to write it is "if True { ... }" which collapses to "..." :) 16:08
timotimo how about 16:10
my $do-it; once { $do-it = 1 }; if $some-cond || $do-it { ... }?
16:11 cygx joined
raydiak I'd probably end up doing my $first = True; if $first || $something-else { $first = False; ... } 16:12
you could put the $first = False; in a once { } if you wanted to optimize prematurely :) 16:13
16:14 muraiki joined 16:18 rindolf joined
cygx so, S19, S28 and Rakudo do not agree on what goes into $*PROGRAM, $*PROGRAM_NAME, $*EXECUTABLE, $*SHEBANG, $?COMPILER 16:18
timotimo maybe you really want a state variable instead?
16:18 eli-se joined
eli-se hi 16:19
dalek kudo/nom: 5fa3ffb | lizmat++ | src/Perl6/Actions.nqp:
Make $?RAKUDO_MODULE_DEBUG a proper constant
16:20
ugexe state variables didn't seem to work the way i needed with taps
dalek p: 5b57c74 | jnthn++ | src/ (4 files):
Fix /a ~ (c) (b)/ capture order bug.

Introduce a new node type that desugars, but lets us easily get the capture order straightened out.
16:21
p: 3d7bdf2 | jnthn++ | t/qregex/rx_goal:
Untodo tests for /(a) ~ (c) (b)/.
16:21 vendethiel left
lizmat ugexe: a once block is mothing more than a piece of code that gets run depending on a (hidden) state variable 16:23
*nothin
16:24 Ven_ joined
timotimo state variables get "cloned" when a closure of the block they're defined in gets taken 16:25
lizmat ah, perhaps the one of a once block doesn't get cloned, which would explain the different behaviour?
16:26 vendethiel joined
lizmat afk for dinner& 16:26
timotimo dunno
i don't work with once blocks often enough
dalek kudo/nom: 676c250 | jnthn++ | tools/build/NQP_REVISION:
Bump NQP_REVISION for ~/capture regex fixes.
16:27
ast: e3fb0a3 | jnthn++ | S05-metachars/tilde.t:
Unfudge RT #77616 test (~/capture interaction).
synbot6 Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=77616
jnthn 5 tickets to go until we've a page less of RTs :) 16:28
cygx oO( time to submit new tickets )
timotimo sure 16:29
jnthn cygx: That's happening too :)
There's 4 new and unresolved ones from within the last week.
Just that for the moment we seem to be eating them faster than others are feeding new ones in. :) 16:30
cygx m: class Foo { has int $.bar; submethod BUILD(:$!bar) {} }; Foo.new(:bar(42)) 16:31
camelia rakudo-moar 688769: OUTPUT«Cannot modify an immutable int␤ in submethod BUILD at /tmp/tv8r9sdpwt:1␤ in block <unit> at /tmp/tv8r9sdpwt:1␤␤»
cygx ^known?
jnthn Yes, that one's already in RT :)
cygx ;)
timotimo the up and down is what makes perl6 better
jnthn Oh, for sure. One of the fun things about fixing RTs is knowing that somebody won't get bitten in *that* particular way again. :) 16:32
cygx m: my uint $i = 2 ** 63; say $i 16:33
camelia rakudo-moar 688769: OUTPUT«-9223372036854775808␤»
cygx that was the 2nd one I encountered recently 16:34
jnthn Yeah, unsinged ints are only partially implemented (in native arrays, and in nativecall) 16:35
16:37 rurban left
jnthn Time for a break and some dinner :) bbl 16:37
RabidGravy right, lizmat, jnthn , <anyone else who cares> I'll change the implementation of EARLIEST as I described about, alter the S17 such that it is more specific about the behaviour and add the one test (which is where all this started) to the roast. Then document it in the concurrency doc as I had planned to :-)
seem like a plan? 16:38
(I won't get to this until Monday being Beltaine and a big piss-up and all) 16:40
colomon spent 45 minutes this morning playing music for elementary kids to dance around a Maypole 16:46
16:47 fhelmberger joined 16:48 wtw left 16:49 eternaleye left 16:50 konsolebox left
moritz made a big rhubarb crumble, and served it with ice cream 16:53
16:53 domidumont joined, eternaleye joined
RabidGravy colomon++ # playing music 16:54
16:56 cognominal left
timotimo RabidGravy: thank you very much 16:58
RabidGravy I haven't done it yet ;-) 17:05
timotimo ++RabidGravy
17:06 telex left 17:07 Ven_ left 17:08 telex joined
RabidGravy :-) 17:10
17:15 tinyblak left 17:25 kaare__ left 17:26 kaare__ joined 17:35 eli-se left
TimToady hoelzro: there's just !before and !after currently 17:38
17:41 airdisa left
cygx TimToady: is $*EXECUTABLE going to stay, or will it be replaced by S28 $*SHEBANG? 17:45
17:45 cognominal joined
cygx TimToady: Also, what about the S19 examples (eg parrot perl6.pbc) where a single IO::Path object doesn't make much sense? 17:45
TimToady doesn't recollect ever seeing $*SHEBANG
17:46 eli-se joined
cygx S28 talks about $?COMPILER and $*SHEBANG to get at compiler and interpreter, respectively 17:47
TimToady doesn't really count himself among the IO experts these days...
$*SHEBANG is cute, but ultimately misleading 17:48
17:49 koo6 left
TimToady especially since the interpreter is often started without a shebang at all 17:49
TimToady investigates whether there are any nodal tests... 17:52
17:54 rindolf left, rindolf joined 17:58 airdisa joined, nbdsp joined
cygx currently, there does not appear too be a way to re-execute the interpreter if --execname is not passed to the moarvm binary 17:58
I wonder if something should be done about that... 17:59
18:00 vendethiel left 18:02 vendethiel joined 18:05 liztormato joined
liztormato cygx: check the code of CompUnit.precomp. It does just that 18:06
18:08 spider-mario left
masak jnthn: rt.perl.org/Ticket/Display.html?id=117307 looks closable to me. 18:08
m: say .[*-1] given "perl" ... { 3 == ++state $ }
camelia rakudo-moar 676c25: OUTPUT«pern␤»
18:09 liztormato left
TimToady m: say .[*-1] given "perl" ... { 3 == ++$ } 18:10
camelia rakudo-moar 676c25: OUTPUT«pern␤»
hoelzro TimToady: thanks!
masak if the compiler is found through $?COMPILER, maybe the interpreter should be found through $*INTERPRETER ? 18:11
m: say ++$
camelia rakudo-moar 676c25: OUTPUT«1␤»
masak m: say ++$; say ++$
camelia rakudo-moar 676c25: OUTPUT«1␤1␤»
18:11 eli-se left
TimToady
.oO(you think that's obvious today...)
18:11
(re $*INTERPRETER) 18:12
cygx lizmat: thanks
lizmat: it goes through $*EXECUTABLE (ie moarvm --execname) as well, though... 18:13
18:17 rindolf left 18:19 koo6 joined 18:24 vendethiel left 18:28 airdisa left
jnthn RabidGravy: Seems like a reasonable plan to me. 18:30
18:31 vendethiel joined
jnthn masak: What'd it take to actually close it? :) 18:31
18:37 domidumont left
jnthn TimToady: I'm looking at RT #75586 and RT #77564, which are about quantified things that make no progress 18:38
synbot6 Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=75586
jnthn TimToady: At the moment we retry them forever, so e.g. <.ws>* is a hang.
TimToady: Do we declare that the behavior we want and such constructs erroneous, or do we do the little bit of work to keep track of it? 18:39
(And thus be able to not keep matching) 18:40
Uh, move on to the next atom, really.
18:40 eli-se joined
TimToady we can probably catch some of low-hanging fruit there without compromising :ex and such 18:43
in the absence of :ex we can bump the start like P5 does, I suppose 18:44
jnthn TimToady: Can you give an example of what :ex thing we don't want to break? I'm not quite seeing it... 18:47
18:49 dwarring joined
TimToady anything starting with .*? might appear to make no progress in that atom until subsequent atoms progress, so you can't just look at the first atom, is all 18:49
lunch & 18:50
hoelzro does anyone else get bitten by passing invalid keyword args to methods like I do? 18:52
I know that methods accept any kwargs for the purposes of passing them to other methods in the inheritance/role chain, but I feel like there's got to be a better solution
labster like a way of declaring a kwargs whitelist? 18:56
PerlJam hoelzro: All you have to do is invent the appropriate stricture pragma for it ... ;)
hoelzro heh 18:57
labster: I'm not really sure
I just know that I was trying [ ... ].min(:by(&func)), and was puzzled why &func wasn't being called
maybe I'm the only one with this problem
labster The compiler goes out of its way to warn you about most typos, but kwargs typos are silently accepted. 18:58
geekosaur it would be nice if some e.g. debug/warning mode would report that some kwarg was never inspected
labster It would especially be nice at compile time, though that's not always possible. 18:59
raiph TimToady on the topic: irclog.perlgeek.de/perl6/2015-03-01#i_10199490 19:02
19:02 nbdsp left
labster PerlJam might have the right idea here. Or something like method foo( $a, :$name :nomorekwargspls ) { ... } 19:04
raiph (above was TimToady on the topic of unused kwargs) 19:05
hoelzro ah, thanks raiph
19:21 kaare__ left 19:29 airdisa joined 19:30 airdisa_ joined 19:34 airdisa left, cygx left 19:35 notjack left 19:37 airdisa joined, airdisa_ left 19:39 fhelmberger left, fhelmberger joined 19:44 fhelmberger left, ahuegyua joined 19:45 ahuegyua left 19:47 mj41 left, diana_olhovik joined 19:52 diana_olhovik left 19:58 airdisa left 19:59 Vlavv left, cognominal left 20:01 vendethiel left
masak "kwargs" is so Python. :) we typically call them "named parameters" (on the callee side). 20:04
20:06 xfix left, dolmen joined
moritz **kwargs 20:07
masak I see you're all starry-eyed about kwargs. 20:08
lizmat
.oO( I prefer quargs )
hoelzro masak: I use kwargs as a term because it's easy to type =) 20:10
geekosaur qwarks? 20:12
20:12 Vlavv joined, diana_olhovik_ joined
hoelzro I like lizmat's term, though =) 20:12
masak clearly "quargs" are arguments to a quantum processor. 20:13
lizmat is a bit ahead of the curve here.
lizmat
.oO( shiny! )
20:13 avalenn left 20:15 domidumont joined, domidumont left, domidumont joined
moritz and you interpolate quargs with /\quargs, right? 20:17
20:17 diana_olhovik_ left
lizmat actually, you put them in a closed cone shaped container, and generate a force from that :-) 20:20
moritz puts himself into a rectangular container 20:26
'night folks
jnthn 'night, moritz 20:27
lizmat good night, moritz
masak 'night, moritz 20:28
PerlJam moritz: sleep well and awaken refreshed :) 20:29
masak that's an order! 20:30
20:32 domidumont left
PerlJam Are .ast and .made going to remain synonymous or will .ast eventually disappear? 20:33
20:33 domidumont joined
masak kinda hopes the former 20:36
to me, .ast is way more evocative than .made
I also cannot think of another case where we have a pair of things similar to the `make`/`.made` pair 20:37
PerlJam I have no feelings one way or the other except that make/made seem more naturally dual than make/ast
masak I believe that's why .made was introduced
it didn't make me switch over, though :)
but I'm just one data point. maybe the rest of the world is crazy about .made 20:38
jnthn I've no objections to .ast continuing to exit.
*exist
PerlJam I would have liked to see make turn into something that feels more ASTy, but I didn't and don't have any ideas on that.
masak .ast is a noun. .made is the past form of a verb
my biggest beef with `make` is that it is kind of invisibly coupled with the $/ variable in the caller's scope. 20:39
20:39 domidumont left
masak I don't find that very elegant, but the fact is that it's good enough for most uses. 20:39
jnthn masak: You can use $other-match.make(...) 20:40
PerlJam What would be elegant? 20:41
masak jnthn: oh, that's nicer.
but also obviously longer and less convenient.
jnthn We have various things ($0, $<foo>...) that work against $/
But none of these things are the only way to do it, just convenient in the common case.
masak yeah. also neither of those are calls. 20:42
pippo m: my $str = "\c[COMBINING DOT BELOW]D\c[COMBINING DOT ABOVE]"; $str ~= "D"; say $str;
camelia rakudo-moar 676c25: OUTPUT«̣ḊD␤»
lizmat fwiw, I sorta envisioned a future where .ast would actually check whether it generated an AST or not
masak m: my $str = "\c[COMBINING DOT BELOW]D\c[COMBINING DOT ABOVE]"; say $str.chars 20:43
camelia rakudo-moar 676c25: OUTPUT«2␤»
lizmat so .ast would be stricter in "typing" than .made
jnthn 2 is right there, the first acts as...gah, does the Unicode spec call them solitary or isolated...I forgot :)
masak .oO( bachelor code points ) 20:44
jnthn I'd have remembered it if they called them something that colorful :P
20:44 darutoko left 20:50 rurban joined
pippo my $str = "D\c[COMBINING DOT ABOVE]\c[COMBINING DOT BELOW]"; $str ~= "D"; say $str; 20:56
m: my $str = "D\c[COMBINING DOT ABOVE]\c[COMBINING DOT BELOW]"; $str ~= "D"; say $str;
camelia rakudo-moar 676c25: OUTPUT«Ḍ̇D␤»
jnthn pippo: If you're seeing something different from ^^ locally it's 'cus there was a UTF-8 encoder bug 20:57
20:57 vendethiel joined
pippo ^^ should'nt the dot above the second D be on the first? 20:58
jnthn pippo: Here the two dots are on both. 20:59
uh
The two dots are on the *first*
20:59 airdisa joined
PerlJam huh. I see only a dot below the first D 21:00
pippo on my box I have same result as camelia. One on the first and the second (dot) on the second.
jnthn That is, I see a D with a dot rendered above and below it, though a little awkwardly...
I'm suspecting you're seeing rendering issues rather than issues with anything Rakudo is doing. 21:01
geekosaur fwiw my slightly insane IRC client put the dot below on the first D
jnthn geekosaur: And the dot above too?
geekosaur the dot above is over the left guillemet
(!)
masak .oO( the dress is blue and black! no, it's white and gold! ) 21:02
Zoffix On mine, the dot below is on the first D
PerlJam heh
Zoffix i.imgur.com/kx52ivw.png
pippo m: my $str = "D\c[COMBINING DOT ABOVE]\c[COMBINING DOT BELOW]"; $str ~= "D"; say $str; 21:03
camelia rakudo-moar 676c25: OUTPUT«Ḍ̇D␤»
pippo ^^ what do you see here ?
Zoffix Same thing! :O
pippo I see one dot below the first D and one above the second D
Zoffix i.imgur.com/KLHUVj0.png
But why are there 2 'D's now? 21:04
pippo $str ~= "D";
21:04 alexghacker joined
PerlJam he appended a second D 21:04
jnthn Here I have jnthn.net/tmp/d.pn 21:05
Here I have jnthn.net/tmp/d.png even
Zoffix Ah, then it's all fine. I didn't know ~= was appending in Perl 6.
geekosaur i.imgur.com/vocaox1.png
21:05 alexghacker left
PerlJam mine looks like geekosaur's 21:05
pippo jnthn: You are seeing it correct!!
jnthn Apparently, Windows + PuTTY + irssi FTW :) 21:06
pippo What happened windows became superior ?? :-))
geekosaur xchat/hexchat known buggy about this
jnthn Well, the irssi is running on Linux
geekosaur is procrastinating moving to textual which has some chance of being saner
21:06 colomon left
lizmat geekosaur: Textual is actually saner :-) 21:07
pippo I have also irssi on linux. But does not render correctly. Same on mozilla firefox.
geekosaur irssi is terminal based so the rendering has less to do with irssi than the terminal program
21:08 colomon joined
geekosaur if said terminal uses pango, like mozilla does, then it probably gets it wrong 21:08
lizmat any good place to upload an image quickly ?
PerlJam imgur 21:09
pippo geekosaur: sigh! :-((
here is firefox: imgur.com/kq7PfXj 21:11
geekosaur hm, gets it differently wrong 21:13
suppose it depends on settings
I am told pango can actually do it right but it takes very careful programming
(and I have yet to see it actually do so)
21:17 espadrine joined, espadrine left, espadrine joined 21:19 vendethiel left 21:24 colomon left 21:26 muraiki left 21:28 colomon joined 21:30 colomon left 21:31 yqt joined
pippo FYI: the ipad of my wife renders it correctly. 21:31
21:33 P1RATEZ joined, eli-se left
P1RATEZ p6: say 'hi'; 21:33
camelia rakudo-moar 676c25: OUTPUT«hi␤»
21:33 thou left 21:34 Zoffix left
PerlJam with a nick like that, I would have expected something more like ... 21:34
m: say "ARRRR!"
camelia rakudo-moar 676c25: OUTPUT«ARRRR!␤»
masak m: say <rum grog ships>.join(" and "), "!" 21:38
camelia rakudo-moar 676c25: OUTPUT«rum and grog and ships!␤»
21:40 Ven_ joined
masak m: say <rum grog ships>.pick(*).join(" and "), "!" for ^3 21:40
camelia rakudo-moar 676c25: OUTPUT«grog and ships and rum!␤grog and ships and rum!␤rum and ships and grog!␤»
masak m: say <rum grog ships>.roll(*).join(" and "), "!" for ^3
oh, oops. 21:41
m: say <rum grog ships>.roll(3).join(" and "), "!" for ^3
camelia rakudo-moar 676c25: OUTPUT«(timeout)»
rakudo-moar 676c25: OUTPUT«ships and grog and grog!␤ships and rum and rum!␤ships and ships and rum!␤»
flussence huh, my irclog for that D shows it wrong, but the actual data is:
00000240: 3235 3a20 4f55 5450 5554 c2ab e1b8 8ccc 25: OUTPUT......
00000250: 8744 e290 a4c2 bb0a 3232 3a30 333a 3234 .D......22:03:24
masak 'night, #perl6
PerlJam flussence: I think we all know why unicode is hard by now ;) 21:42
good night masak!
21:42 pippo left
flussence the cc at the end of the first line and 87 at the start of the second are the \c[COMBINING DOT ABOVE], but shouldn't that be *after* the D? 21:42
PerlJam didn't get much sleep last night and feels like napping right now himself
21:42 pippo joined
PerlJam (though bed time is 6+ hours away for me) 21:43
21:43 colomon joined
flussence m: my $str = "D\c[COMBINING DOT ABOVE]\c[COMBINING DOT BELOW]"; $str ~= "D"; say $str.encode('utf-8'); 21:43
camelia rakudo-moar 676c25: OUTPUT«utf8:0x<e1 b8 8c cc 87 44>␤»
21:44 pippo left
flussence oh wait, I'm getting confused. Completely missed the append there... 21:46
m: say utf8.new(0xe1, 0xb8, 0x8c).decode
camelia rakudo-moar 676c25: OUTPUT«Ḍ␤»
21:48 raiph left
flussence now that I'm paying attention, it does render correct for me. irssi/tmux/urxvt here. 21:48
21:48 Ven_ left 21:49 pippo joined
flussence doesn't work in perl -e though, guess I need to update that :) 21:50
21:56 BenGoldberg joined 22:06 captain-adequate left, colomon left 22:07 colomon joined 22:10 yqt left, colomon left
pippo o/ 22:15
22:15 pippo left 22:19 dolmen left
lizmat good night, #perl6! 22:22
japhb o/ lizmat 22:23
22:23 virtualsue left 22:32 Foxcool_ left 22:33 colomon joined 22:43 koo6 left 22:44 hobbs left 22:49 hobbs joined 22:56 airdisa left 22:58 RabidGravy left 23:02 Vlavv left
labster m: say q(') 23:06
camelia rakudo-moar 676c25: OUTPUT«5===SORRY!5=== Error while compiling /tmp/01dmazliS7␤Unable to parse expression in single quotes; couldn't find final "'" ␤at /tmp/01dmazliS7:1␤------> 3say q(')7⏏5<EOL>␤ expecting any of:␤ argument list␤ single quote…»
labster m: say q/'/ 23:07
camelia rakudo-moar 676c25: OUTPUT«'␤»
labster std: say q(') 23:09
camelia std 28329a7: OUTPUT«5===SORRY!5===␤Unable to parse single quotes at /tmp/zETV6b9RIe line 1:␤------> 3say q(7⏏5')␤Couldn't find final "'"; gave up at /tmp/zETV6b9RIe line 1 (EOF):␤------> 3say q(')7⏏5<EOL>␤Parse failed␤FAILED 00:00 135m␤»
labster am I doing something wrong here?
23:10 rurban left
jnthn labster: foo() is always a function call 23:11
labster ah, got it
m: say q (') 23:12
camelia rakudo-moar 676c25: OUTPUT«'␤»
23:14 Vlavv joined
jnthn sleep time...'night o/ 23:15
23:15 khisanth__ joined 23:16 khisanth_ left, P1RATEZ left 23:17 cognominal joined 23:24 alini left 23:32 espadrine left
b2gills m: #`[ is there a way to mark a `gather` block as infinite ] say Bool.roll(*).infinite; 23:36
camelia rakudo-moar 676c25: OUTPUT«False␤»
23:38 pecastro left 23:44 Rounin left 23:49 telex left
tony-o b2gills: you're looking for that to keep rolling? 23:49
23:49 airdisa joined, erdic left 23:51 erdic joined 23:52 telex joined, telex left
tony-o m: print "$_ " for (True,False).roll(*); 23:52
camelia rakudo-moar 676c25: OUTPUT«(timeout)True True False True True False True True True False False True False True True False True False False False False False True True False False False True True True True False True True False False False True True True False False True False True F…» 23:53
23:54 telex joined