»ö« 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.
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.
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
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
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'␤»
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
perlvim Thanks TimToday_ 03:06
TimToady_ hmm, I grew a tail... 03:07
perlvim TimToady: if the method is not exported to CORE::, how to call it dynamically with name? 03:17
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
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.
[Tux] still no Inline::Perl5 06:32
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)
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
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
brrt \o 06:55
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
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+{<…»
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
lizmat quester: |Tux| :I think TimToady's latest patch (revert actually) might fix that 08:46
rebootstrapping now
and good *, #perl6!
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+{<…»
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
lizmat jnthn: oddly enough, that's the only thing that src/core/Method.pm 08:52
does
jnthn Yeah
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...
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
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
RabidGravy morning 09:54
masak good noon, RabidGravy 09:55
|Tux| is not in a hurry 10:13
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␤»
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␤␤»
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
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
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
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
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
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
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.
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
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
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
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
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)
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
jepeway gone. 12:44
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
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
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
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
cognominal maybe I don't want to segfault camelia. What happens then 13:33
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
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
timotimo funny. just earlier today i thought about arrays that have enum indices 13:51
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
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
cognominal indeed it uses an already installed nqp-m :( 14:17
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
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
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 :)
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
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
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 :-)
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" :-(
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
ugexe is there a better way to write: if once {1} || $some-cond { ... } 16:03
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 { ... }?
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
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?
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)/.
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
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?
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
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
moritz made a big rhubarb crumble, and served it with ice cream 16:53
RabidGravy colomon++ # playing music 16:54
timotimo RabidGravy: thank you very much 16:58
RabidGravy I haven't done it yet ;-) 17:05
timotimo ++RabidGravy
RabidGravy :-) 17:10
TimToady hoelzro: there's just !before and !after currently 17:38
cygx TimToady: is $*EXECUTABLE going to stay, or will it be replaced by S28 $*SHEBANG? 17:45
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
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
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
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
liztormato cygx: check the code of CompUnit.precomp. It does just that 18:06
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␤»
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␤»
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
jnthn RabidGravy: Seems like a reasonable plan to me. 18:30
jnthn masak: What'd it take to actually close it? :) 18:31
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.
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
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
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
masak "kwargs" is so Python. :) we typically call them "named parameters" (on the callee side). 20:04
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
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! )
moritz and you interpolate quargs with /\quargs, right? 20:17
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
PerlJam Are .ast and .made going to remain synonymous or will .ast eventually disappear? 20:33
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
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
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
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*
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";
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
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
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
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)
pippo FYI: the ipad of my wife renders it correctly. 21:31
P1RATEZ p6: say 'hi'; 21:33
camelia rakudo-moar 676c25: OUTPUT«hi␤»
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!␤»
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!
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
PerlJam (though bed time is 6+ hours away for me) 21:43
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>␤»
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«Ḍ␤»
flussence now that I'm paying attention, it does render correct for me. irssi/tmux/urxvt here. 21:48
flussence doesn't work in perl -e though, guess I need to update that :) 21:50
pippo o/ 22:15
lizmat good night, #perl6! 22:22
japhb o/ lizmat 22:23
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?
jnthn labster: foo() is always a function call 23:11
labster ah, got it
m: say q (') 23:12
camelia rakudo-moar 676c25: OUTPUT«'␤»
jnthn sleep time...'night o/ 23:15
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␤»
tony-o b2gills: you're looking for that to keep rolling? 23:49
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