»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by sorear on 25 June 2013.
00:05 cognome left
dalek ast: 1721021 | coke++ | S01-perl-5-integration/basic.t:
This test isn't run by rakudo.

remove premature fudges (obscures other fudges that need tickets, etc.)
00:12
Mouq "Iteration past end of grapheme iterator" wut 00:13
Looks to be a regression... 00:15
00:18 thou left
Mouq Hmm... Not sure what the issue is... You know, perl6/doc really seems to be good for finding Moar bugs 00:19
[Coke] p6: "what".note
camelia niecza v24-109-g48a8de3: OUTPUT«Unhandled exception: Unable to resolve method note in type Str␤ at /tmp/tmpfile line 1 (mainline @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4595 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4596 (module-CORE @ 576) ␤ …»
..rakudo-{parrot,jvm,moar} 0ce18d: OUTPUT«No such method 'note' for invocant of type 'Str'␤ in block at /tmp/tmpfile:1␤␤»
timotimo sounds like a good thing to me :3 00:22
BenGoldberg rn: "abc".encode("latin1")[*].say
camelia niecza v24-109-g48a8de3: OUTPUT«Buf.new(...)␤»
..rakudo-{parrot,jvm,moar} 0ce18d: OUTPUT«97 98 99␤»
00:24 gamo left
[Coke] we have a test that things "note" should be a method on Str. I don't see that explicitly in the specs. 00:27
Mouq (+1 for Str.note) 00:29
[Coke] one moment… 00:33
ooh, I should get my new 16G 64bit laptop this week for work. squeee. 00:42
dalek kudo/nom: d97cd1f | coke++ | src/core/Mu.pm:
Add Mu.note
00:43
ast: 27d3eff | coke++ | S32-io/note.t:
rakudo now has Mu.note, which covers this
00:44
Mouq [Coke]++ :) 00:48
00:51 xenoterracide joined
Mouq Jeez it takes forever to install jvm+panda 01:01
Oh, wait... why is it building panda again..?
Oh, nvm :P
Is URI known to be failing tests on the JVM? :| 01:07
dalek ast: b1b2436 | coke++ | S32-num/rand.t:
note that test needs fixing.
[Coke] Mouq: check github.com/coke/perl6-roast-data 01:10
log/rakud*jvm*
Mouq [Coke]++ it looks clean here: github.com/coke/rakudo-star-daily/...odules.log 01:12
so maybe it's something with me…
.tell jnthn I haven't been able to test on multiple backends, but I get this running perl6/doc/htmlify.p6 and think it's MoarVM related: gist.github.com/Mouq/d81105012d86e04814f9 01:15
yoleaux Mouq: I'll pass your message to jnthn.
dalek ast: dd70cbe | coke++ | S32-num/power.t:
Relax fudging for rakudo.moar
01:16
01:17 dayangkun joined 01:18 thou joined
dalek ast: 516a6dc | coke++ | S32-str/substr.t:
substr fossil, this is done via substr-rw now
01:22
01:23 thou left
dalek ast: 012b339 | coke++ | S32-str/substr.t:
substr fossil, this is done via substr-rw now
01:27
Mouq finally gets JVM running htmlify.p6 01:29
dalek ast: e9d171f | coke++ | S32-str/uc.t:
remove lcfirst reference, unfudge
01:32
[Coke] n: "asdf".indent('0x10').say; 01:34
camelia niecza v24-109-g48a8de3: OUTPUT« asdf␤»
[Coke] m: "asdf".indent('0x10').say;
camelia rakudo-moar d97cd1: OUTPUT«Cannot call 'indent'; none of these signatures match:␤:(Str: Int $steps where { ... }, *%_)␤:(Str: Int $steps where { ... }, *%_)␤:(Str: Any $steps where { ... }, *%_)␤ in block at /tmp/h9TQ8mwcc1:1␤␤»
dalek ast: f5c6cb1 | coke++ | S32-str/indent.t:
add an RT ref
01:37
01:38 klapperl joined 01:41 klapperl_ left 01:42 FROGGS_ joined, rurban joined
[Coke] m: (1..7 ==> grep {$_ % 2}).say 01:44
camelia rakudo-moar d97cd1: OUTPUT«1 3 5 7␤»
[Coke] m: (grep {$_ % 2} <== 1..7).say
camelia rakudo-moar d97cd1: OUTPUT«1 3 5 7␤»
01:45 Sqirrel left, FROGGS left
dalek kudo/nom: cf09bda | coke++ | t/spectest.data:
hey, this test already passes 100%
01:52
[Coke] m: say uniname("\0") 01:57
camelia rakudo-moar d97cd1: OUTPUT«NULL␤»
02:00 chenryn joined
[Coke] m: say uniname("\x[80]") 02:00
camelia rakudo-moar d97cd1: OUTPUT«␤»
02:01 rurban left
dalek kudo/nom: 7dcc38c | coke++ | t/spectest.data:
This test is fudged; run it
02:05
ast: 2ec03c5 | coke++ | S15-unicode-information/uniname.t:
tag with RTs
[Coke] p6: use Test; ok 0,:todo(1); 02:09
camelia rakudo-jvm d97cd1: OUTPUT«(timeout)»
..rakudo-moar d97cd1: OUTPUT«Unexpected named parameter 'todo' passed␤ in sub ok at lib/Test.pm:75␤ in sub ok at lib/Test.pm:75␤ in block at /tmp/tmpfile:1␤␤»
..rakudo-parrot d97cd1: OUTPUT«Unexpected named parameter 'todo' passed␤ in sub ok at lib/Test.pm:75␤ in sub ok at lib/Test.pm:79␤ in block at /tmp/tmpfile:1␤␤»
..niecza v24-109-g48a8de3: OUTPUT«Unhandled exception: Excess arguments to ok, unused named todo␤ at /home/p6eval/niecza/lib/Test.pm6 line 0 (ok @ 1) ␤ at /tmp/tmpfile line 1 (mainline @ 4) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4595 (ANON @ 3) ␤ at /home/p6eval/ni…»
[Coke] ^^ S24-testing/6-done_testing.t - that looks like a fossil. 02:10
02:12 noganex joined, lustlife joined 02:15 noganex_ left 02:17 rurban joined 02:19 ventica2 joined
dalek ast: 887acde | coke++ | S05-modifier/perl5_6.t:
lazy fudge (these will need tickets)
02:19
kudo/nom: ded723a | coke++ | t/spectest.data:
This test is fudged, run it.
02:36 dayangkun left 02:45 Mouq left 02:59 Sqirrel joined 03:06 thou joined 03:10 thou left 03:15 yeltzooo joined 03:16 haroldwu left 03:17 haroldwu joined
dalek ast: 093b8ed | coke++ | S09-hashes/objecthash.t:
slight unfudge (tested on moar)
03:22
ast: 49402fa | coke++ | S09-subscript/slice.t:
use "RT" in skip message.
03:27
ast: 7d03646 | coke++ | S02-types/hash.t:
fix "RT" usage in skip message.
03:33
03:45 dayangkun joined 03:46 BenGoldberg left 03:49 rindolf joined 03:57 xenoterracide left 04:05 chenryn left 04:12 nbrown_ left 04:18 anaeem1 joined 04:30 atroxaper joined 04:36 chenryn joined 04:43 rurban left, xinming_ joined
[Coke] .u ∅ 04:44
yoleaux U+2205 EMPTY SET [Sm] (∅)
04:44 xinming left
dalek kudo/nqp-dogfood: 1681fff | duff++ | tools/build/check-versions.nqp:
[WIP] Create NQP version of check-versions.pl

Unfinished.
04:54
04:55 thou joined 04:58 gfldex joined 04:59 thou left 05:01 atroxaper left 05:02 atroxaper joined 05:03 chenryn left 05:05 atroxaper left 05:11 [Sno] left 05:16 ventica2 left, slavik left 05:20 Sterver|AFK left, Sterver|AFK joined, slavik joined, chenryn joined 05:29 ventica2 joined 05:37 mr-foobar joined 05:38 gfldex left 05:50 raiph joined 05:52 chenryn left 06:14 brrt joined
sergot hi o/ 06:16
06:16 jercos joined 06:20 denis_boyun_ joined 06:21 jercos left, jercos joined, kivutar joined 06:26 PotatoGim left 06:33 ventica2 left 06:42 anaeem1 left 06:43 thou joined 06:47 thou left 06:50 iarna left, iarna joined
masak morning, #perl6 06:52
06:52 [Sno] joined
FROGGS_ morning 06:52
06:52 chenryn joined 06:56 kaleem joined 06:57 anaeem1_ joined 06:59 iarna left, iarna joined 07:00 Ven joined
Ven noticed the learnxiny was mentioned in the perl weekly 07:00
yoleaux 2 Aug 2014 20:58Z <dwarring> Ven: PDF::Grammar README has been improved, added some usage notes and examples. Thanks for feedback Ven++
Ven dwarring++ # I actually ended up copy-pasting and vimming, but it's nice anyhow :) 07:01
07:01 dayangkun left 07:03 iarna left 07:04 anaeem1_ left 07:05 iarna joined
nwc10 \o/ 07:05
has anyone spotted any progress on Rubinius X?
07:09 anaeem1_ joined 07:10 slavik left 07:14 dayangkun joined 07:15 slavik joined 07:17 Sterver|AFK is now known as Sterver 07:28 dayangkun left 07:32 dmol joined 07:36 dayangkun joined 07:37 raiph left 07:39 darutoko joined
sergot m: say try { True } 07:43
camelia rakudo-moar ded723: OUTPUT«True␤»
sergot m: say try { 5 }
camelia rakudo-moar ded723: OUTPUT«5␤»
moritz m: say so try { die 42 } 07:46
yoleaux 1 Aug 2014 20:14Z <[Coke]> moritz: fyi, --git-protocol doesn't look like it's passed down to nqp, so nqp tries the default https://
camelia rakudo-moar ded723: OUTPUT«False␤»
07:47 chenryn left 07:48 virtualsue joined 07:51 kaleem left
masak m: say so try die 42 07:55
camelia rakudo-moar ded723: OUTPUT«False␤»
07:55 Ven left
masak m: say so try die say die so die try say die 42 07:55
camelia rakudo-moar ded723: OUTPUT«use of uninitialized value of type Any in string context in block at /tmp/HKNcNWzaoT:1␤␤False␤»
07:58 kurahaupo_ left
[Coke] has got to get some sleep, ugh 07:59
08:00 kivutar left
masak waves a Wand of Sleep at [Coke] 08:02
nwc10 steal his coffee
08:04 chenryn joined 08:08 pecastro left 08:11 brrt left 08:14 chenryn left 08:19 kaleem joined 08:20 FROGGS_ is now known as FROGGS 08:25 virtualsue left 08:26 chenryn joined 08:30 dakkar joined 08:31 thou joined 08:35 thou left 08:37 iarna left
FROGGS p: use Test; say :10("111") 08:39
camelia rakudo-parrot ded723: OUTPUT«(signal )»
FROGGS jnthn: that is not a regression introduced by parrot... I just built against 6.4.0 and it still segfaults 08:40
08:40 brrt joined 08:44 spider-mario joined
FROGGS jnthn: it also segfaults with parrot 6.1.0 08:52
that does not mean that it is not an issue with parrot, just means it has been there for a while 08:53
jnthn Hmm
yoleaux 01:15Z <Mouq> jnthn: I haven't been able to test on multiple backends, but I get this running perl6/doc/htmlify.p6 and think it's MoarVM related: gist.github.com/Mouq/d81105012d86e04814f9
jnthn .tell Mouq yes, it is...that error should never happen. 08:54
yoleaux jnthn: I'll pass your message to Mouq.
jnthn FROGGS: Well, if it's so easily triggerable it may not be too bad to find...
nwc10 I was getting two coredumps from parrot during the spectest 08:55
I don't really know more than that (ie, didn't dig to figure out which tests, or when it started)
jnthn FROGGS: Is that SEGV the one that causes issues with the R* module? 08:56
FROGGS jnthn: bt: gist.github.com/FROGGS/6a3d23f0b93db0a9938b 08:57
jnthn: no, that one causes >1600 spectest fails
jnthn: it was introduced by the junction fallback signature changes... 08:58
timotimo vendethiel: i ... don't see that i mentioned learnxinyminutes on p6weekly :o 09:03
i really should have
09:03 slavik left
timotimo oh, it's in the perlweekly 09:04
not the perl6 weekly
nwc10 also, I really don't have time to dig into why parrot fails spectests. It's not my itch
jnthn FROGGS: Hmm...the bt isn't offering so many clues 09:11
FROGGS jnthn: well, sub is NULL
09:12 virtualsue joined
FROGGS and sub is obtained like: PMC_get_sub(INTERP, SELF, sub); 09:12
so I try to debug that now
dalek ast: ba67478 | (Elizabeth Mattijsen)++ | S16-filehandles/filestat.t:
Remove tests that test state of mounted FS
09:18
09:21 pecastro joined 09:40 virtualsue left
FROGGS okay, SELF is of type enum_class_Sub 09:43
09:43 virtualsue joined
FROGGS and PARROT_SUB(SELF) returns NULL 09:44
lizmat gist.github.com/lizmat/65d9e44743dffca1157c # is exporting of dynamic variables done at runtime ???
FROGGS p _self->data 09:46
$3 = (DPOINTER *) 0x0
so, we have a sub that has no PMC_data
10:00 rindolf left 10:01 Sterver is now known as Sterver|AFK 10:07 dayangkun left 10:11 brrt left 10:20 thou joined 10:24 thou left
lizmat is thinking of rakudobugging gist.github.com/lizmat/65d9e44743dffca1157c 10:26
as it is the one thing blocking making 'use lib' lexotic 10:27
10:37 akaseki left 10:38 cognome joined, akaseki joined 10:39 kaare_ joined
jnthn lizmat: I'm not sure that's a bug 10:40
10:40 chenryn left
lizmat ah? 10:40
jnthn You're not in the dynamic scope of the program mainline.
It's the compiler than calls a BEGIN block
But at runtime you are of course entering thorugh the mainline :) 10:41
lizmat isn't that a shortcoming of the compiler calling the BEGIN block then?
jnthn uh
That's THE POINT of BEGIN!
That it runs at compile time. 10:42
lizmat yes, I agree
jnthn Even if the surroudning scope isn't finished parsing yet :)
10:42 Sterver|AFK is now known as Sterver
jnthn The only way it could be made to work is if we hunt in the enclosing lexical scope too for $*FOO 10:42
lizmat well, you *can* export a sub to the lexical scope 10:43
at compile time
jnthn Right
lizmat and you can call it at compile time as well
10:43 rindolf joined
lizmat so from a user's point of view, the current behaviour doesn't make much sense 10:45
I understand it is not trivial to fix
:-)
sjn \o 10:47
lizmat sjn o/
sjn wonders what a "lexotic op" is
<- reading p6weekly.wordpress.com/2014/07/28/2...-refactor/
lizmat S04:71 10:48
synopsebot Link: perlcabal.org/syn/S04.html#line_71
nwc10 the gloarry isn't in the topic?
glossary
naughty fingers
psch m: my %a; %a{5} = "a"; %a{5} :delete # i assume this should warn on assign and give a non-LTA error 10:50
camelia rakudo-moar ded723: OUTPUT«This type cannot unbox to a native string␤ in method delete_key at src/gen/m-CORE.setting:9487␤ in block at src/gen/m-CORE.setting:2001␤ in sub postcircumfix:<{ }> at src/gen/m-CORE.setting:2669␤ in block at /tmp/0Bhhmh8vKD:1␤␤»
psch that's the one thing that breaks in my branch for m:g// and s:g/// 10:51
in S05-modifiers/overlapping.t is a test that iterates over @$/ and uses each value as a hash key, but assigns strings as keys
lizmat looks at it 10:52
10:52 krunen joined
lizmat ah, looks like we have a MMD issue 10:53
m: my %a; %a{5} = "a"; %a{"5"}:delete; say %a
camelia rakudo-moar ded723: OUTPUT«().hash␤»
lizmat works fine
psch lizmat: i've found S09:1156 related to that
synopsebot Link: perlcabal.org/syn/S09.html#line_1156
lizmat m: my %a; %a{5} = "a"; %a{5}:delete; say %a
camelia rakudo-moar ded723: OUTPUT«This type cannot unbox to a native string␤ in method delete_key at src/gen/m-CORE.setting:9487␤ in block at src/gen/m-CORE.setting:2001␤ in sub postcircumfix:<{ }> at src/gen/m-CORE.setting:2669␤ in block at /tmp/rcXqPQ4KbP:1␤␤»
psch m: my %a{Any}; %a{5} = "a"; %a{5} :delete 10:54
camelia ( no output )
psch lizmat: afaiu, the test is wrong, because it assumes {$/[0} to be a string
lizmat no, that's not really the issue here, I would think
and from a performance point of view, you don't want to use %h{Any}, as it adds a layer of indirection 10:55
the thing is: if you can specify %h{5} and have the key stringify correctly in assignment, it should also do this when deleting 10:56
psch right, that makes sense
dalek kudo/nom: 23c4ea2 | (Elizabeth Mattijsen)++ | src/core/control.pm:
"die" will now say "Died"
11:06
lizmat psch: testing a change 11:08
psch lizmat: thanks :)
11:10 zakharyas joined 11:11 chenryn joined
lizmat alas, no simple fix yet 11:13
m: nqp::unbox_s(5) # the real issue here 11:14
camelia rakudo-moar ded723: OUTPUT«This type cannot unbox to a native string␤ in block at /tmp/1A3ECu2r5V:1␤␤»
11:15 chenryn left
jnthn Well, that's completely correct 11:15
I suspect we're missing a candidate or coercion somewhere
That does .Str or so 11:16
lizmat exists_key handles this by saying key.Stringy
jnthn .Str would be better
.Stringy is too generic
psch jnthn: in Hash.pm:132ff: multi method delete_key($key) but multi method delete($key as Str)
the coercion for the argument? 11:17
lizmat delete is deprecated
jnthn Well, it's better to add a Str candidate and an Any one for delete_key
lizmat ok
jnthn Though I guess a normal method and "as Str" isn't bad; it type checks before calling .Str 11:18
So the specializer can still figure it out
lizmat testing "as Str" now
spectesting now 11:19
FROGGS is 'as Str' implemented? 11:21
lizmat m: sub a ($a) { say $a.WHAT }; a(5) 11:22
camelia rakudo-moar ded723: OUTPUT«(Int)␤»
lizmat m: sub a ($a as Str) { say $a.WHAT }; a(5)
camelia rakudo-moar ded723: OUTPUT«(Str)␤»
lizmat apparently
FROGGS ohh, nice
:o)
dalek kudo/nom: 59fee83 | (Elizabeth Mattijsen)++ | src/core/Hash.pm:
Fix %a{5}:delete, as reported by psch
11:25
lizmat psch: ^^^ 11:26
11:28 zakharyas left 11:29 Sterver left 11:31 psch joined
psch lizmat++: thanks again 11:32
now to see if that was actually the only broken thing left in my branch
11:34 chenryn joined 11:39 mr-foobar left 11:40 mr-foobar joined
lizmat m: note # should't this say "Noted" ? 11:40
camelia rakudo-moar 23c4ea: OUTPUT«␤»
11:41 xragnar_ joined, xragnar is now known as Guest88011, xragnar_ is now known as xragnar
lizmat jnthn: conspicuously, the delete-adverb tests in spectest started to fail, but only when run in the spectest 11:43
they run fine seperately
wonder whether the "as Str" fix is not tickling something under stress
11:44 cognome left 11:45 zakharyas joined, Guest88011 left 11:47 zakharyas left, zakharyas joined 11:48 chenryn left 11:49 zakharyas left
dalek kudo/nom: 1070a89 | (Elizabeth Mattijsen)++ | src/core/ (2 files):
Bring implementation (exists|delete)_key in line
11:49
11:59 chenryn joined
dalek kudo/nom: 0bf81fa | (Elizabeth Mattijsen)++ | src/core/IO.pm:
Make "note" say "Noted"
12:00
kudo/nom: f8b669c | (Elizabeth Mattijsen)++ | docs/ChangeLog:
Some ChangeLog additions
12:02 lucas_ joined
hoelzro morning #perl6 12:06
carlin \o hoelzro
(only been "morning" here for 6 minutes) 12:07
hoelzro carlin: which TZ?
12:08 thou joined
carlin NZST 12:08
moritz it's always morning in UGT!
jnthn Are there a Perl Monger groups in NZ, ooc?
carlin perl6 -e "say \$*TZ / 60 / 60"
12
there is a Wellington.pm 12:09
but I'm on the wrong Island for that
I don't know how active it is
12:09 cooper__ joined
jnthn Ah, so you're on the south island :) 12:09
lizmat m: my %h=a=>1; say %h.delete_key("a") # jnthn: is nqp::delete_key supposed to return the value ? 12:10
camelia rakudo-moar 23c4ea: OUTPUT«1␤»
12:10 labster_ joined
carlin yes, the colder island 12:10
jnthn I like the cold; works for me :)
jnthn will be visiting NZ for the first time later on this year, all being well :) 12:11
12:12 thou left, kivutar joined, woolfy1 joined
carlin exciting 12:12
"later on" means it'll probably be summer?
12:13 FROGGS_ joined
jnthn Not quite; more like mid-late spring. 12:13
carlin ah, lambing season :)
12:13 dwarring left
moritz confusing seasons are confusing :-) 12:13
12:13 ponbiki_ joined 12:14 rjbs- joined
jnthn Yes. :) Going to Argentina in European spring to find the colors of autumn there was a little disconcerting. :) 12:14
12:15 lustlife left, brrt joined, yeltzooo4 joined
nwc10 was the food good? 12:15
jnthn Really.
Was one of the highlights of the trip. :) 12:16
12:16 lustlife joined
jnthn That and the glaciers and mountains. :) 12:17
carlin and the beer? :p
jnthn I did manage to find some microbrewed beer, though it wasn't quite so easy to come by.
Well, it was in the capital. A little less so elsewhere. Maybe I just didn't look hard enough. :) 12:18
12:19 yeltzooo left, FROGGS left, oetiker left, ribasushi left, cooper_ left, ponbiki left, eiro left, labster_ is now known as labster 12:20 ribasushi joined 12:25 bjz_ left, bjz joined 12:26 eiro joined
dalek ast/S26-WHY: 81f69dc | (Rob Hoelz)++ | S26-TODO.md:
More notes
12:29
12:33 oetiker joined 12:34 jnap joined 12:36 FROGGS_ is now known as FROGGS 12:48 cognome joined 12:53 cognome left 12:54 cognome joined
dalek kudo/nom: f48e207 | (Elizabeth Mattijsen)++ | src/core/ (3 files):
Further work on optimizing :delete in sink context
13:00
lizmat now to get the codegen to actually pass the :SINK to the postcircumfix handling 13:01
jnthn Shouldn't be too hard. 13:02
13:02 anaeem1_ left
lizmat my idea as well, but I would need some pointers... 13:03
jnthn 0xDEADBEEF
lizmat I assume the optimizer would add the :SINK ?
jnthn Don't see why to do it in the optimizer
lizmat
.oO( I was more thinking about dogs )
13:04
jnthn Could QAST::Want it...
lizmat because it is an optimization ?
jnthn Sure, but I mean it could be easier to gen appropriate code up front
13:04 chenryn left
jnthn That can handle sink context 13:04
FROGGS jnthn: do you think this is related to the parrot problems? github.com/rakudo/rakudo/blob/nom/....ops#L1049 13:05
jnthn But if you do it in the optimzier then visit_op would be the place
FROGGS because I also see "P->" in my bt and that piece of code also has something todo with dispatchers (and the "bad" commit was also about that)
jnthn Hmm...that's about $*DISPATCHER... 13:06
FROGGS jnthn: could it be related?
jnthn Maybe; I don't immediately see it 13:07
FROGGS k
jnthn Do we touch that bit of code just before teh segv?
FROGGS I dunno
jnthn Is it on the callstack?
Hm, I guess maybe not
FROGGS jnthn: only parrot internals are on the callstack 13:08
but there is that #5 0x00007ffff7a2a191 in Parrot_ext_call (interp=interp@entry=0x60f050, sub_pmc=0x35dbc98, signature=signature@entry=0x7ffff7b2e0b3 "P->") at src/extend.c:158
jnthn yeah, we seem to not even be in a nested runloop there
Yeah, but that's the initial entry iiuc
FROGGS I'll let it now always do the Parrot_ex_throw_from_c_args instead of invoking X::NoDispatcher... 13:10
if that changes something...
lizmat my %poison_calls := nqp::hash(
'eval', NQPMu, '&eval', NQPMu,
jnthn: I guess the line with 'eval' can go now ? 13:11
13:11 kaare_ left
FROGGS yes 13:11
unless..
lizmat EVAL is listed as wel
l
jnthn yeah, we had both in there before eval was removed 13:12
The removal patch musta missed this reference to it.
lizmat will remove and spectest now
.oO( optimizing the optimizer)
13:13
FROGGS should this be changed? rakudo/src/perl6-debug.nqp:443: nqp::findmethod(Perl6::Compiler, 'eval')(self, |@pos, |%named)
ahh, probably not, HLL::Compiler still has .eval
lizmat yup 13:14
dalek ast/S26-WHY: 08db084 | (Rob Hoelz)++ | S26-TODO.md:
Parametric role groups and S26 a bad match make
13:15
13:15 chenryn joined 13:17 chenryn left
FROGGS jnthn: okay, that does not help at all :( 13:17
dalek kudo/nom: f25e551 | (Elizabeth Mattijsen)++ | src/Perl6/Optimizer.nqp:
Remove "eval" from poison list

That should never happen anymore, as it's called EVAL now.
13:19
13:20 rurban joined
moritz m: eval 'say 42' 13:25
camelia rakudo-moar f8b669: OUTPUT«===SORRY!=== Error while compiling /tmp/lzpZbgzQrP␤Undeclared routine:␤ eval used at line 1␤␤»
moritz ok, it's gone \o/ 13:26
13:31 groky left
[Coke] lizmat++ #file access cleanup 13:32
13:33 groky joined, iarna joined, ivanshmakov left
FROGGS jnthn: I am checking now every Parrot_pcc_invoke_sub_from_c_args 13:34
13:37 ivanshmakov joined, kaleem left, user3 joined
lizmat cycling& 13:40
13:43 user3 left
masak goodbye lower-case &eval. you were too good for this world. 13:43
13:44 anaeem1_ joined 13:45 chenryn joined 13:46 molaf joined 13:50 raiph joined 13:54 anaeem1_ left, anaeem1 joined 13:56 thou joined 14:01 molaf left, thou left, anaeem1 left 14:08 rindolf left 14:10 [Sno] left 14:16 thou joined 14:17 treehug88 joined 14:22 anaeem1 joined 14:27 kaare_ joined 14:28 noganex left 14:35 rurban left 14:37 MilkmanDan left, MilkmanDan joined
carlin :D NativeCall is so good 14:37
btyler it really is 14:38
14:48 rurban joined 14:50 chenryn left, shlomif joined 14:51 shlomif is now known as rindolf 14:54 anaeem1 left 14:56 chenryn joined 15:01 iarna left, iarna joined 15:10 chenryn left 15:14 akaseki is now known as midoriseki 15:15 denis_boyun_ left 15:22 chenryn joined 15:31 [Sno] joined
PerlJam r: sub foo($x as Int) { }; say &foo.signature; 15:33
camelia rakudo-jvm f25e55: OUTPUT«(timeout)»
..rakudo-{parrot,moar} f25e55: OUTPUT«:(Any $x)␤»
PerlJam Should as-types show up in the signature?
(that rakudo-jvm result is surprising, btw) 15:34
timotimo it's not
rakudo-jvm behaves oddly when run by our evalbot in many cases ;(
j: say "hello"
camelia rakudo-jvm f25e55: OUTPUT«hello␤»
dalek ecs: ceebcfa | (Salve J. Nilsen)++ | S99-glossary.pod:
Add "splat"; Fix some POD errors and long lines.
15:35
timotimo r: sub foo($x as Int) { }; say &foo.signature;
camelia rakudo-{parrot,jvm,moar} f25e55: OUTPUT«:(Any $x)␤»
PerlJam timotimo: alrighty then! I guess I'm applying my moar expectations to jvm :)
15:35 chenryn left
timotimo is Salve J. Nilsen in here? 15:35
sjn <- sjn 15:36
timotimo ah
the bogus characters after "Less Than Awesome." were actually intended :)
sjn oh?
timotimo yup 15:37
PerlJam because they are LTA :)
sjn ehrm
ok, non-obvious joke found then :) 15:38
timotimo let me find something in the irclogs to help you understand
sjn maybe add =encoding utf-8 to the top of the file then?
15:39 pecastro left
timotimo irclog.perlgeek.de/perl6/2011-06-27#i_4012725 - these are LTA errors for example 15:40
but i was hunting for a much more LTA error ...
15:40 brrt left, pecastro joined
TimToady well, but LTA is a subtle concept 15:41
sjn yeah
maybe come up with some more examples? :)
15:41 brrt joined
TimToady Ways Error Messages Go Subtly Wrong 15:41
sjn or just c&p examples from IRC? 15:42
psch rt.perl.org/Ticket/Display.html?id=71482 this has a great LTA example, i think
timotimo during some part of the past, it was pretty easy to get rakudo-parrot vomit data regions out to stdout/stderr when something went wrong
timotimo AFK
15:43 brrt left
PerlJam btw, where are as-types documented? 15:44
Are they the same thing as S02:565 ?
synopsebot Link: perlcabal.org/syn/S02.html#line_565
TimToady yes 15:45
PerlJam okay, good. Because that's what I've been rather unconciously thinking of them as. 15:46
psch i'm not sure how to correct the tests for s/// behavior 15:56
m: use Test; $_ = "a"; is s/a/b/, "a", '"a".subst(/a/, "b") is "b"' # this one for example fails with my branch
camelia rakudo-moar f25e55: OUTPUT«not ok 1 - "a".subst(/a/, "b") is "b"␤␤# Failed test '"a".subst(/a/, "b") is "b"'␤# at lib/Test.pm line 89␤# got: 'b'␤# expected: 'a'␤»
psch ...i typed it wrong
sjn is reading learnxinyminutes.com/docs/perl6/ 15:57
TimToady maybe put a ~ on the s/// 15:58
and the comment is wrong
oh, you said that
psch it's in S05-substitution/subst.t:41ff 15:59
TimToady m: $_ = 'a'; say ~s/a/b/;
camelia rakudo-moar f25e55: OUTPUT«b␤»
TimToady that should say a
15:59 Rotwang joined
psch TimToady: it does in my branch; i've been working on m// and s/// with and without :g for a bit now 15:59
16:00 molaf joined
TimToady psch++ 16:00
psch TimToady: so you're saying those tests are for stringification of the Match, and not match contents?
i'm not sure how i'd test for the actual contents of a Match, anyway 16:01
TimToady you just have to test its various components, I guess 16:02
dalek kudo-star-daily: 49e7d1c | coke++ | log/ (14 files):
today (automated commit)
rl6-roast-data: f8837b7 | coke++ | / (5 files):
today (automated commit)
16:02 iarna left
[Coke] today's failures: jvm up to 45. moar at 5. parrot up more to 1862. niecza still at 1386 16:03
16:03 iarna joined
[Coke] jvm has a LOT of flapping tests in S32-io/IO-Socket-INET.t - 16:03
[6~[6~
TimToady wonders what a [6~ critter is, and why two of them are doing a mating dance on screen... 16:05
16:06 chenryn joined, denis_boyun joined
psch there's also a bunch of passing TODOs in overlapping.t, but one line that confuses me slighty 16:06
%expected{map {$_[1]}, @expected} = (1) x @expected; # the line in question
i *think* it wants 1 for each elem in the hash, but it gets one elem set to 1111 16:07
16:07 ventica joined
TimToady that looks like Perl 5 16:07
the (1) x part of it, anyway 16:08
psch TimToady: the file is commented at the top as "Probably needs syntax updates to remove P5isms"
m: my @a = 1 xx 3; say @a.elems
camelia rakudo-moar f25e55: OUTPUT«3␤»
psch i guess xx instead of x does what was intended 16:09
TimToady yeah
16:09 dmol left
TimToady regrets putting (1) x $times into P5 16:10
16:10 treehug88 left
psch with changing that and changing .to to .from for the match position and adjusting the plan, overlapping.t passes 16:10
as in, all TODOs pass
that's more than i set out to do :)
16:10 chenryn left
TimToady maybe they're TODONEs now :) 16:10
hoelzro what are others' thoughts on allowing → as a synonymn for --> in sub signatures? 16:11
TimToady surely that would be ⟶ 16:13
hoelzro oh, right
[Coke] any passing TODOs in files I just touched may be fudging issues with parrot vs. jvm vs moar 16:17
r: use Test; is(:10('01110') , 0d1110, "FROGGS, this one");
camelia rakudo-parrot f25e55: OUTPUT«(signal )»
..rakudo-{jvm,moar} f25e55: OUTPUT«ok 1 - FROGGS, this one␤»
TimToady p: say 0d1110 16:18
camelia rakudo-parrot f25e55: OUTPUT«1110␤»
TimToady p: say :10('01110')
camelia rakudo-parrot f25e55: OUTPUT«1110␤»
TimToady o.O
dalek kudo/nom: caee539 | duff++ | src/core/Str.pm:
RT #122469 coerce indent()'s arg to Int
16:21
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122469
FROGGS maybe I should bisect Test.pm to see what piece makes the other thing segfault... 16:22
sjn wonders who's been working on LearnXinYminutes' Perl 6 page 16:23
raydiak good morning, #perl6 16:24
sjn git logs don't mention anyone else than "Nami-Doc" as author or committer
raydiak sjn: vendethiel did that
sjn ah, cool
vendethiel++ 16:25
16:25 iarna left
raydiak vendethiel++, I should say :) 16:25
dalek ast: 328957c | duff++ | S32-str/indent.t:
un-todo indent test for RT #122469
16:27
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122469
tony-o btyler: http server async seems to work better with latest rakudo build 16:33
i seem to at least get an error to trackdown instead of segfault
and it's serving at 40ms on jvm with no errors
vendethiel timotimo: yeah, I was talking about perl weekly, not yours :) 16:36
FROGGS jnthn: this is when I invoke it several times, without a precomp'd version of Test.pm: gist.github.com/FROGGS/5a8688b59c1b06137ec1 16:38
jnthn Arse, that looks just like memory corruption. 16:39
FROGGS jnthn: but reverting your commit helps 16:40
sjn vendethiel: reading your work on learnxinyminutes :)
good stuff
vendethiel sjn: yeah, my github username is a mistake that I can't really fix now :(. actually caused some confusion when I introduced myself to lizmat++ as "Nami-Doc" (no clue how she remembered I was vendethiel, tbh.)
sjn: thanks !
16:41 telex left
sjn vendethiel: is it ok with you if I do a pull-request with some nit-picks fixed? :) 16:41
btyler tony-o: awesome! my rakudo rebuild just finished :)
vendethiel sjn: please do. As a frog, I know my english is LTA :)
FROGGS O.o 16:42
timotimo vendethiel: github.com/settings/admin ← can change your username here
16:42 telex joined
timotimo "changing you rusername can have unlimited side effects" :P 16:42
vendethiel timotimo: I know I can. But as I said - I'd break the world. Do not want.
sjn heheh
vendethiel FROGGS: frog as in "french". Not as in FROGGS. 16:43
FROGGS vendethiel: I guessed that :o)
16:47 colomon left
FROGGS jnthn: umm, actually it doesn't matter what module I use... an empty file will do 16:48
lucas_ Hello channel 16:49
Please, correct if I'm wrong. When I do "my Foo(Bar) $x", at every assignment of a Bar object to $x, it will get coerced into a Foo object?
FROGGS dinner &
lucas_ Does it make sense to have more than one type coercion? Like this: my Foo(Bar(Baz)) $x; 16:50
16:52 colomon joined
hoelzro I wasn't aware that type coercions would work for variable types, but I don't see why it shouldn't 16:52
lucas_: so what you're thinking is "coerce Bar into Foo via Baz?"
16:53 FROGGS[mobile] joined
lucas_ hoelzro: yes, something like force a value follow a chain of coercions to arrive at a final type. 16:54
hoelzro that's an interesting idea
what's the usecase, though?
lucas_ but I don't know if could exist a use case for this. Just thinking...
16:54 gfldex joined
vendethiel remembers people asking for chained implicits in scala and shivers :) 16:55
FROGGS[mobile] jnthn: in case nothing helps I'll fudge all the lines of your patch
jnthn We didn't implement coercion types in Rakudo yet, but I imagine they'll go in as first-class types.
FROGGS[mobile]: Well, can even revert it, but...it's really odd.
(The implification being that Foo(T) can handle T also being a coercion type) 16:56
FROGGS[mobile] it is odd, aye
16:56 dakkar left
lucas_ I don't know if I get. Is it something like this?: my &c = Foo(Bar); my Foo $x = &c(Bar.new) 16:59
17:00 chenryn joined
hoelzro lucas_: you mean the coercion logic? 17:03
jnthn Coercions tend to be expressed as method calls
.Str # coerce to string, for example
sjn vendethiel: pull request sent, let's see how it goes :) 17:04
17:04 chenryn left, virtualsue left
sjn vendethiel: github.com/adambard/learnxinyminut...s/pull/697 <- here it is 17:05
vendethiel sjn: don't worry, I've seen it :)
lucas_ I was thinking about coercions as a first class values... 17:06
vendethiel sjn: you can see I'm french due to my spacing of punctuation :p 17:07
hoelzro lucas_: oh, now I understand
psch m: my $a = "5.2"; my Int(Num(Str))) $b = $a; say $b.WHAT # lucas_: there's a NYI failure already at least
camelia rakudo-moar f25e55: OUTPUT«===SORRY!=== Error while compiling /tmp/ljp6131JTh␤coercive type declarations not yet implemented. Sorry. ␤at /tmp/ljp6131JTh:1␤------> my $a = "5.2"; my Int(Num(Str))⏏) $b = $a; say $b.WHAT # lucas_: there's␤»
sjn vendethiel: no worries, I've tried to keep the text at least a little consistent punctuation-wise
hoelzro because one can do my $type = Foo, why couldn't one do $type = Foo(Bar)? 17:08
psch i'm not sure if i got the order right in the example though, i'd assume it coerces outwards 17:09
jnthn What hoelzro said :)
Curiously, that also means that a role Foo[::T] { } could be parameterized on a coercion type
The actual behavior of it would be implemented in a meta-object somewhere 17:12
Needs some pondering though, because coercions don't always make sense. :)
lucas_ Thanks everybody for answering my doubts.
jnthn $foo ~~ Str(Int) # should we even allow this, for example... 17:13
17:16 pecastro left
vendethiel sjn: reviewed it. Thanks for that! 17:20
(note: I can understand I've left quite a bit of comments. If you don't want to bother, tell me, I'll fix it myself when I get a round tuit)
17:25 kaleem joined 17:36 midoriseki left 17:38 kaleem left 17:40 anaeem1 joined 17:45 denis_boyun left 17:46 denis_boyun joined 17:48 lucas_ left
[Coke] duff++ #coercion. thanks, I could be bothered to figure that out. :) 17:49
sjn vendethiel: yeah, saw them
vendethiel: saw the "space before colon" thing everywhere in the file, so I assumed it was intentional (I usually don't do it that way) 17:50
17:50 lichtkind joined
lichtkind is the actually a name to use a classname out of a variable and make a instance 17:51
17:51 zakharyas joined
lichtkind i thoufht using :: is the right prefix to deref for that 17:51
thought
[Coke] p6: constant term:<<"\x2205">> = set(); 17:52
camelia ( no output ) 17:53
[Coke] p6: constant term:<<"\x2205">> = set(); say "alive";
camelia rakudo-{parrot,jvm,moar} caee53, niecza v24-109-g48a8de3: OUTPUT«alive␤»
[Coke] ^^ can anyone rewrite that so it works in the setting?
17:55 xinming_ is now known as xinming
psch m: my $type = "Int"; ::($type).WHAT.say # this what you mean lichtkind? 17:57
camelia rakudo-moar caee53: OUTPUT«(Int)␤»
lichtkind psch: your great exactly 17:58
i got it only used wrong type of braces
18:01 chenryn joined
vendethiel sjn: it's not intentional, it's just a french habit I can't get rid of 18:01
18:03 anaeem1 left
sjn vendethiel: yes, let's blame the state! ;) 18:05
vendethiel the language :) (I really dislike french as a language. It does everything it shouldn't do)
18:05 chenryn left
sjn Blasphemy! what would Moliére say? o_O 18:06
(not sure how his name is spelled. Molíere?)
vendethiel sjn: he's say "it's Molière, not Moliére"
he'd*.
sjn ah :)
PerlJam c'est la vie ;)
vendethiel ì doesn't exist in french
18:09 denis_boyun left 18:12 colomon left
masak .oO( there's no "ì" in "French" ) 18:16
FROGGS there is also no "I" in "Team Perl 6" :o) 18:17
masak well, there's an "I" in "6"
cognome For the correct spelling, we should ask le maître d'. C'est la vie. Déjà vu. 18:18
jnthn FROGGS: But there is in "Team Peril 6" :P 18:22
FROGGS *g* 18:23
yeah
cognome too bad, the autocorrect fixed my frenglish and added the diacritics. Spoiling my parody.
18:23 Alina-malina joined
jnthn FROGGS: I'm looking at QAST memory usage. One big issue is the hash we allocate for annotations whether we need it or not. 18:23
FROGGS jnthn: the :node? 18:24
18:24 molaf left
jnthn FROGGS: I have some patches locally that replace $ast<foo> := ... with $ast.annotate('foo', ...), and the lookup is $ast.annotation(...) 18:24
FROGGS ahh, this
jnthn uh, $ast.annotation('foo') that is
FROGGS I though timotimo++ did that (in a branch) 18:25
18:25 akaseki joined
jnthn Oh... 18:25
Hmmm
Did he do it successfully? :)
jnthn has it working for NQP, and has Rakudo barfing...
FROGGS github.com/perl6/nqp/tree/qast_lazy_annotation
jnthn: no, there were issues at some point, probably also in rakudp 18:26
rakudo*
the good thing is that I've got a QAST.atpos and .atkey wrapper in v5, I can easily switch :o) 18:27
jnthn ah, OK
Thing is that it's hard to grep out annoations usage at present too
FROGGS well, rather postcircumfix candidates
yeah, it is easier for me in v5
well, sort of
jnthn Anyway, my question was gonna be "will this be a nuisance to you in v5"... :) 18:28
FROGGS jnthn: not at all :o)
jnthn ok
18:30 ivan`` joined 18:32 aoseki joined 18:34 akaseki left 18:35 virtualsue joined 18:36 aoseki left
rindolf TimToady: are you feeling any better? 18:36
18:37 akaseki joined
FROGGS rindolf: I think he said so last time 18:37
18:46 dmol joined
timotimo jnthn: i did it in a branch; i think it failed at something in some mysterious way at some point 18:50
18:50 aoseki joined
jnthn Yeah 18:50
I've got one that builds NQP and Rakudo and at least passes sanity tests in Rakudo 18:51
(and all in NQP)
But it has uncovered some kind of spesh bug.
hah, my first guess at where it might be was right 18:52
18:53 cooper__ left, akaseki left 18:55 pecastro joined 18:56 zakharyas left
lizmat r: p6: constant term:<<"\x2205">> = set(); say ∅ 18:56
camelia rakudo-{parrot,jvm,moar} caee53: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Two terms in a row␤at /tmp/tmpfile:1␤------> constant term:<<"\x2205">> = set(); say ⏏∅␤ expecting any of:␤ argument list␤ pr…»
lizmat m: constant term:<<"\x2205">> = set(); say ∅
camelia rakudo-moar caee53: OUTPUT«===SORRY!=== Error while compiling /tmp/jmwZSbP097␤Two terms in a row␤at /tmp/jmwZSbP097:1␤------> constant term:<<"\x2205">> = set(); say ⏏∅␤ expecting any of:␤ argument list␤ prefix or…»
timotimo jnthn: did you have to duplicate my work because i didn't point out my own branch fast enough? :( 18:57
jnthn timotimo: Well, for some definition of duplicate; seems I did it somewhat differently. 18:58
(didn't have a mixin, just avoided allocating the hash)
Since annotations are currently relatively common, the mixin approach may not be a win... 18:59
Though may be worth trying it.
timotimo ah 19:00
i didn't know we could delay the allocation ... as it's using the "associative_delegate" mechanism
i didn't actually look into how exactly that thing does its magic
19:01 zakharyas joined
jnthn oh, I got rid of that bit 19:01
Just put the methods directly on QAST::Node
19:01 Alina-malina left, chenryn joined
flussence is doing boring janitorial work on the specs repo... is it a good idea for me to run that create_contents.p6 thing? The diff is pretty long... 19:02
lizmat m: constant term:<<"\x2205">> = set(); say unival('∅') 19:03
camelia rakudo-moar caee53: OUTPUT«NaN␤»
FROGGS .u ∅
yoleaux U+2205 EMPTY SET [Sm] (∅)
flussence eh, looks like it just hasn't been run in a while. If anything breaks as a result I'll fix it :)
lizmat [Coke]: feels like we need more than just getting the definition work 19:04
FROGGS m: constant term:<<"\x2205">> = set(); say GLOBAL::
camelia rakudo-moar caee53: OUTPUT«("term:<∅>" => set()).hash␤»
19:05 araujo left
FROGGS m: constant term:<<"\x2205">> = set(); say GLOBAL::; say &term:<∅> 19:06
19:06 chenryn left
camelia rakudo-moar caee53: OUTPUT«===SORRY!=== Error while compiling /tmp/Ca8kPAzoHW␤Undeclared routine:␤ &term:<∅> used at line 1. Did you mean '&term:<now>'?␤␤» 19:06
19:06 Alina-malina joined
FROGGS m: constant term:<<"\x2205">> = set(); say GLOBAL::; say term:<∅> 19:06
camelia rakudo-moar caee53: OUTPUT«("term:<∅>" => set()).hash␤set()␤»
19:07 virtualsue left
dalek ecs: 5aed9c8 | flussence++ | S (4 files):
Fix some minor POD errors

Stops perldoc complaining about missing encodings and parser confusion.
19:08
ecs: 03abe1f | flussence++ | contents.pod:
Refresh contents.pod

This looked pretty out of date, so I've re-ran the script that generates it.
timotimo jnthn: that's cheating! :P
19:08 cooper_ joined
lizmat flussence++ 19:09
jnthn timotimo: It may work out cheaper though
timotimo: Remember that mixing in has to do some amount of work/allocation
19:10 darutoko left, zakharyas left 19:12 treehug88 joined 19:13 colomon joined
timotimo OK 19:14
19:14 virtualsue joined
masak rt.perl.org/Ticket/Display.html?id=71482 from the backlog -- I think we can consider it fix'd. do we also need a spectest for it? 19:17
nwc10: Rubinius X looks interesting, but it also looks like the Github repo has one commit (an import from somewhere), and then nothing after Feb 2.
nwc10 masak: this was exactly what I spotted 2 days ago (the 1 commit) and could see nothing else 19:18
hence why I asked
19:20 ponbiki_ is now known as ponbiki
FROGGS lizmat: 19:25
perl6-m -e 'constant term:<∅> = set(); say ∅'
set()
masak nwc10: preliminary hypothesis: it's easier to make a page with a list of great improvements, than it is to make the improvements.
FROGGS perl6-m -e 'constant term:term:<<"\x2205">> = set(); say ∅'
===SORRY!=== Error while compiling -e
lizmat: declaring the constant in the setting using the ∅ character will work when you remove the term:sym<∅> token from the grammar 19:26
lizmat but that will only work for moar and jvm, not for parrot
nwc10 masak: right now, that's the simplest explanation I can see that fits the observed facts.
which is a bit :-( because I would like to have seen how the design panned out 19:27
FROGGS perl6-m -e 'constant term:<<"\x2205">> = set(); say ∅'
set()
ohh
lizmat putting the ∅ into the source code, will make parrot chew on the settings indefinitely
FROGGS hmmmm
lizmat or can I remove stuff from the grammar for jvm and moar only ?
FROGGS no, I think only the setting stuff an be fudged 19:28
so parrot does not like term:<<"\x2205">> ?
lizmat that's what I thought
no, parrot does not like non-ascii characters 19:29
FROGGS p: constant term:<<"\x2206">> = set(); say GLOBAL::; say ∆
camelia rakudo-parrot caee53: OUTPUT«("term:<∆>" => set()).hash␤set()␤»
FROGGS m: constant term:<<"\x2206">> = set(); say GLOBAL::; say ∆
camelia rakudo-moar caee53: OUTPUT«("term:<∆>" => set()).hash␤set()␤» 19:30
FROGGS j: constant term:<<"\x2206">> = set(); say GLOBAL::; say ∆
camelia rakudo-jvm caee53: OUTPUT«("term:<∆>" => set()).hash␤set()␤»
FROGGS works here...
lizmat FROGGS: gist.github.com/lizmat/4677b993a07ab89f02f6 # error trace when activating the term
masak nwc10: me too. at least some bits. 19:31
FROGGS p: constant term:<<"\x2205">> = set(); say GLOBAL::; say ∅
camelia rakudo-parrot caee53: OUTPUT«===SORRY!=== Error while compiling /tmp/R9HMD3Vn77␤Two terms in a row␤at /tmp/R9HMD3Vn77:1␤------> <<"\x2205">> = set(); say GLOBAL::; say ⏏∅␤ expecting any of:␤ argument list␤ prefix …»
FROGGS okay, I'll try anyway
lizmat FROGGS: using 2206 in the settings, gives the same error
FROGGS so the setting is the problem... 19:32
hmmm
lizmat yes, that's the problem
I also tried to do it as the very last statement in the settings
same error
the hex representation is not the problem either 19:33
constant term:<∅> = set();
gives the same error in the settings
FROGGS what if you assign a literal?
lizmat ?
FROGGS constant term:<<"\x2205">> = 42 19:34
because that happens at compile time, and set() might not be there yet
lizmat set() exists at the end of settings
and there it doesn't work either
having said that, it appears that =42 *does* work 19:35
FROGGS what about constant term:<<"\x2205">> := set() ? 19:36
(I'm still compiling nqp)
19:37 pecastro left
lizmat same error 19:38
19:39 pecastro joined, dwarring joined
FROGGS how should it work anyway? 19:40
like that?
m: constant term:<<"\x2206">> := &set; say ∆(1, 2)
camelia rakudo-moar caee53: OUTPUT«set(1, 2)␤»
FROGGS and without the parens?
lizmat no, ∅ *IS* the empty set
FROGGS ahh
*g*
lizmat it is *not* a shortcut to making a set
FROGGS yeah
m: constant term:<<"\x2206">> := Set.new; say ∆ 19:41
camelia rakudo-moar caee53: OUTPUT«set()␤»
FROGGS p: constant term:<<"\x2206">> = Set.new; say ∆
camelia rakudo-parrot caee53: OUTPUT«set()␤»
masak .oO( Next week, thriller on the silver screen: The Empty Set. it hides. in everything. )
lizmat -#constant term:<<"\x2205">> = set(); #Cannot call ACCEPTS; no signatures match
+my $EMPTY_SET := set();
+constant term:<<"\x2205">> = $EMPTY_SET;
seems to compile
masak ship it! 19:42
lizmat but doing a "say ∅" is a TTIAR
FROGGS we are totally agile!
lizmat which removing from the grammar would fix?
FROGGS lizmat: you have changed the grammar?
lizmat nope
FROGGS yeah
lizmat checking that now 19:43
jnthn erm...any chance we could *not* define new operators/terms in CORE.setting that are not in Grammar.pm?
Or are you learning it in Grammar.pm also? 19:44
lizmat still TTIAR
lue would suggest the problem, as discovered, lies with Parrot, not rakudo. He couldn't even begin to know how to fix it in Parrot though :/ 19:47
19:48 virtualsue left 19:51 denis_boyun_ joined
lizmat FROGGS: after building the setting, in which stash should I be able to see ∅ ? 19:53
FROGGS I dunno 19:56
19:56 denis_boyun_ left
FROGGS there was a way to find out... but I don't remember 19:56
tony-o btyler: no joy. handled errors moar was having and now it's back to just segfaulting 20:02
20:02 chenryn joined
btyler I noticed segfaulting with multiple connections as well 20:04
tony-o with jvm or with moar? 20:05
20:05 vendethiel left
btyler moar 20:05
tony-o i ran 100 loops of -n 100 -c 5 and had no problems on jvm 20:06
20:06 vendethiel joined
lizmat FROGGS: we need someone smarter than us to fix this 20:06
FROGGS lizmat: nah, I don't give up just now 20:07
20:07 chenryn left
lizmat I've been spending many hours on this before today 20:07
btyler tony-o: here's the error I saw on r-m: gist.github.com/kanatohodets/1dfbe...e4ddc60ede
often just segfaults, but that pops up every now and then
that was -t 1 and -c 10, I think 20:08
20:08 iarna joined
btyler r-j seems to be just fine for me as well 20:09
20:10 ventica left
masak 'night, #perl6 20:19
FROGGS night masak
lizmat night masak 20:20
hoelzro night masak
20:20 colomon left
FROGGS <.end_keyword> is a problem... 20:22
m: my regex end_keyword { <!before <[ \( \\ ' \- ]> || \h* '=>'> » }; say "\x2205" ~~ / "\x2205" <.end_keyword> / 20:25
camelia rakudo-moar caee53: OUTPUT«Nil␤»
FROGGS m: my regex end_keyword { <!before <[ \( \\ ' \- ]> || \h* '=>'> » }; say "\x2205" ~~ / "\x2205" /
camelia rakudo-moar caee53: OUTPUT«「∅」␤␤»
tony-o nternal error: Unwound entire stack and missed handler 20:26
FROGGS tony-o: you are using labeled loops?
dalek p: 5ad771c | jnthn++ | src/ (9 files):
Eliminate $ast<annotation> in favor or methods.

This makes it far easier to pick out annotation use amongst all the keying into Match objects, for one. For another, it means we can be smarter about allocating storage for annotations, saving a Hash being allocated for many QAST nodes.
20:28
20:28 jnap left
FROGGS lizmat: I think I got something... 20:29
tony-o FROGGS: i don't believe so, that error happened on this line: while $*SCHEDULER.max_threads > $*SCHEDULER.loads + $!thread_buffer && @.queue.elems > 0 {
dalek p: 0a5be64 | jnthn++ | tools/build/MOAR_REVISION:
Get latest MoarVM fixes/improvements.

Including an inlining fix exposed by QAST refactor.
tony-o i'm trying to run down a segfault in moar that has no error output 20:30
FROGGS hmmm
tony-o btyler's output above happens to me too and I can fix that one (i have it corrected locally) but still segfaulting
jnthn tony-o: What tool are you using to produce load, ooc? 20:31
tony-o ab
btyler I've been using wrk, which is very similar
jnthn ah, cool, looks like I can get ab for Windows :) 20:32
tony-o wrk is much nicer than ab if you can get that on windows too :-)
jnthn (I have a Linux VM handy, just would miss the VS debugger :-))
FROGGS jnthn: the ab or wrk could run on linux and connect to your windows box... 20:33
jnthn FROGGS: so effort... :P
FROGGS gah 20:34
tony-o lol
jnthn So long as I can make it crash, I'm good to track it down.
I just fixed all the ones I could find by refreshing quickly enough in Chrome... :P
tony-o haha 20:35
i don't know where to even begin debugging r-m
jnthn Anyway, will give it a go with ab, maybe tomorrow, maybe later in the week (depends how my errands tomorrow pan out)
20:39 kaare_ left
FROGGS jnthn: Stage parse : This type does not support associative operations 20:39
at src/Perl6/World.nqp:238 (blib/Perl6/World.moarvm:push_lexpad:44)
from src/Perl6/Grammar.nqp:936 (blib/Perl6/Grammar.moarvm:comp_unit:809)
from src/Perl6/Grammar.nqp:346 (blib/Perl6/Grammar.moarvm:TOP:532)
ohh
I need to wait for a rakudo patch, right? 20:40
dalek kudo/nom: f2842a5 | jnthn++ | / (5 files):
Update to new QAST annotations API.
FROGGS ahh
:P
vendethiel sjn: did you see the learnxiny in the perl weekly, btw ? 20:41
there's another guy that's started reporting few mistakes and I think he followed that link. I'm glad.
tony-o jnthn: thank you 20:42
dalek kudo/nom: 225b5e0 | (Elizabeth Mattijsen)++ | src/core/CompUnit (2 files):
Further simplify creation of CompUnit object
20:46
carlin is there a way to get the output of a printf() that some C code (used with NativeCall) did into a variable? 20:52
some trickery with $*IN or something?
20:52 cooper_ left 20:53 cooper_ joined
carlin err, I mean $*OUT 20:53
hoelzro hmm
[Coke] swap out out.
one sec: 20:54
lizmat WOW: Files=912, Tests=31959, 188 wallclock secs ( 8.98 usr 4.06 sys + 1166.13 cusr 146.03 csys = 1325.20 CPU)
hoelzro well, since printf is talking directly to the stdlib's stdout, I don't know if you can mess with $*OUT in such a way that would make it work
[Coke] github.com/perl6/roast/blob/master...list.t#L21
oh, you mean -c-'s printf?
hoelzro it makes me think that messing around $*OUT should have deeper semantics, though
[Coke] not C code calling perl 6's printf ?
hoelzro: given that $*OUT can be an anonymous class, good luck pushing that down into nativecall. 20:55
lizmat these last upgrade of Moar/NQP/Rakudo seems to have 8% speed increase
hoelzro like assigning to $*OUT should dup() things
lizmat *this
jnthn++
[Coke] jnthn++ indeed.
carlin [Coke]: yeah, C code used with NativeCall that calls C's printf()
lizmat we only have a few casualties in t/spec/S32-str/encode.t 20:56
carlin hoelzro: darn, I thought that would be the case
20:56 pecastro left
hoelzro puts $*OUT/$*ERR monkey business into Perl 6 ideas file 20:56
lizmat m: "\x1F63E".encode("UTF-16").WHAT.say 20:57
camelia rakudo-moar caee53: OUTPUT«(utf16)␤»
20:57 araujo joined
lizmat m: "\x1F63E".encode("UTF-16").Bool.say 20:58
camelia rakudo-moar caee53: OUTPUT«True␤»
lizmat jnthn: ^^^ returns False now
jnthn lizmat: Hmmmm...
Will investigate.
20:59 ventica joined
jnthn Well, in a moment. Doing a refactor to help brrt++'s JIT work at the moment. :) 20:59
lizmat other than that: double jnthn++, jnthn++
FROGGS carlin: have you tried: my $foo = qx"command here"
lizmat okidoki, was just reporting
TimToady m: "\x1F63E".encode("UTF-16").perl
camelia ( no output )
FROGGS ohh, wait
TimToady m: "\x1F63E".encode("UTF-16").perl.say
camelia rakudo-moar caee53: OUTPUT«utf16.new(55357, 56894)␤»
FROGGS carlin: nvm 21:00
lizmat $ 6 '"\x1F63E".encode("UTF-16").perl.say'
utf16.new()
TimToady that would explain the False
lizmat yup
jnthn quick walk; bbi10 21:02
hoelzro carlin: for the time being, you could probably muck with dup2 to redirect where printfs are going =)
21:02 rindolf left 21:03 chenryn joined 21:07 virtualsue joined 21:09 chenryn left, FROGGS[mobile] left 21:10 akaseki joined
dalek kudo/nom: 54b4503 | (Tobias Leich)++ | src/Perl6/ (2 files):
unbust term:<∅> for usage as empty set
21:12
21:13 aoseki left 21:14 aoseki joined
lizmat m: say nqp::encode(nqp::unbox_s("\x1F63E"), nqp::unbox_s("utf16"), nqp::decont(utf16.new)) 21:14
camelia rakudo-moar caee53: OUTPUT«Buf:0x<d83d de3e>␤»
lizmat jnthn: this gives Buf:0x<> now
21:16 akaseki left
lizmat tests FROGGS++ last fix 21:16
[Coke] FROGGS: there is another reference to ∅ in the setting.
(commented out)
lizmat first tries with starred out version 21:17
FROGGS [Coke]: yes, forgot to re-remove it after pulling latest changes...
doing now
lizmat as well
[Coke] FROGGS++ there's also a roast test that you can unfudge.
dalek kudo/nom: 8d5d20c | (Tobias Leich)++ | src/core/set_operators.pm:
remove fossil about term:<∅> in the setting
21:18
lizmat tries again
$ 6 'say ∅' 21:20
set()
FROGGS++
FROGGS :o)
21:21 aoseki left
lizmat will take care of the unfudgable tests, ok FROGGS? 21:24
FROGGS lizmat: sure
lizmat $ time perl6 -e 1
real0m0.285s
user0m0.236s
sys0m0.046s
FROGGS I can't spectest atm anyway
lizmat First time I see this below .3 seconds!
tony-o is that moar? 21:26
lizmat yup 21:27
$ time perl5.18.2-threaded -MMoose -e 1
real0m0.167s
user0m0.154s
sys0m0.011s
only 2x as slow as Perl 5 + Moose
21:27 kivutar left
lizmat but with o so many more features than Moose 21:28
timotimo we ought to make it as fast and give more features, other people won't accept us otherwise 21:29
and even then, they'll say "bah. we don't actually care about start-up time! HAHAHA!"
Ulti neat that's quite a bit of speed up 21:31
the problem is what happens after startup though, moarvm has been more than fast enough to start for me for a long time >:3
tony-o we could just take the android approache and say that people need to get faster machines so speed isn't as important
Ulti I think my problem is I am using fancy things which are slower than just using normal loops and simple constructs 21:32
lizmat which fancy things in particular ? 21:33
timotimo we ought to keep fancy things cheap if at all possible! 21:34
Ulti github.com/MattOates/BioInfo/blob/...ucleic.pm6 <--- the stuff in here is quite slow
lizmat Ulti: are you calling .translate a lot ? 21:35
Ulti yeah if I want to translate ten million strings which have been split into fifty pieces and complemented
the reality is the data I work on is a hundred million strings 21:36
dalek p: d8e06c1 | jnthn++ | tools/build/MOAR_REVISION:
Get a MoarVM with improved ext-op API.
21:36 rurban left
lizmat seems to me the initialization of %aminos and %codon_table could be taken outside of the method 21:36
Ulti yeah
at the moment I'm doing it on purpose :P
easier to see improvements
but yeah I guess I am creating a lot of stuff 21:37
lizmat hmmm... I guess codon_table not, but %aminos can be taken out of the method
dalek kudo/nom: b17a24b | jnthn++ | / (2 files):
Update to latest MoarVM; use new extop API.

Changes are to make JIT of extops rather easier to implement. This may also be a small efficiency win, though a shiny C compiler will probably have done alright on the previous code anyway.
Ulti is there semantics for just making it the equivalent of local in C
just as a quick hack to see if that makes that much difference 21:38
lizmat move the initialization of %aminos just after the has @.residues
Ulti sure :P but I wanted to learn if there is local too
lizmat not sure what you mean with local? 21:39
do you need that table in some other classes as well ?
jnthn If you want to keep it scoped to a method but only initialize it once, there's state :)
Ulti no I mean so that the value is kept between function calls 21:40
jnthn: k k
21:40 colomon joined
Ulti is that static in C rather than local :S 21:40
too many languages
lizmat s/my %aminos/state %aminos/ 21:41
jnthn
.oO( %amigos are friendlier... )
21:43
Ulti heh two seconds slower with state :3
funtimes 21:44
I'll try moving it
dalek ast: 0828e60 | (Elizabeth Mattijsen)++ | S03-operators/ (2 files):
Unfudge now passing ∅ related tests

  FROGGS++ for not giving up on ∅
21:45
Ulti is there a class variable equivalent of state?
lizmat state ?
Ulti orly
lizmat state $foo is equivalent to: 21:46
state $foo = 42 -> my $foo; once $foo = 42;
so it also works at the class variable level 21:47
but there it is not needed
as the body of a class is only run once anyway
Ulti oh wow its slower moved into the class too 21:48
weird
21:49 virtualsue left
lizmat that *is* weird! 21:49
Ulti only a little bit though so might be well within the error of just running with and without cache 21:51
hmmm the state version is a lot slower though
21:52 BenGoldberg joined 21:53 rurban joined
jnthn I think I see what's going on with the encode thing, but don't think I've the energy to fix it tonight 21:57
Will look at it tomorrow.
lizmat okidoki 21:58
sleep is good
will take some soon as well
21:58 ventica left
lizmat Ulti: gist.github.com/lizmat/56e4fbe79d2f941c4d94 # some timing differences between 22:00
the cases you described
Ulti yeah why aren't I seeing that :/ 22:01
Ulti checks he isnt doing something profoundly stupid
though you are doing that a lot
lizmat welcome to the club :-) 22:02
22:04 lustlife left
Ulti just lost a second by building moar .o/ 22:04
and I built yesterday or maybe even this morning
22:05 chenryn joined
Ulti oh I guess its the whole codon table bit I need to extract really 22:06
22:07 ventica joined
lizmat aha, so maybe that should be looked at priming 22:09
22:10 chenryn left 22:11 lichtkind left
Ulti urgh now I remember why its in this mess 22:12
@.residues is only defined in the concrete child class 22:13
timotimo m: say $^O 22:14
camelia rakudo-moar 225b5e: OUTPUT«===SORRY!=== Error while compiling /tmp/lYZuPhCNZk␤Unsupported use of $^O variable; in Perl 6 please use $?DISTRO.name or $*DISTRO.name␤at /tmp/lYZuPhCNZk:1␤------> say $^O⏏<EOL>␤»
timotimo (this segfaults locally ... ?!?) 22:15
lizmat timotimo: not for me with moar on OSX
22:15 Sqirrel left
Ulti not for me and I built from whatever rakudobrew pulls in about five minutes ago on Linux 22:16
FROGGS timotimo: not for me
timotimo: you are on the moar-jit branch?
jnthn timotimo: Are your Rakuo and Moar out of sync?
Ulti $?DISTRO.name doesn't work though only $*DISTRO.name 22:17
lizmat is going to get some sleep
FROGGS ohh, I am behind the extop refactor
lizmat Ulti: yes, $?DISTRO is NYI
Ulti k k
I have a strong feeling I need to rethink most of the "design" of these stupid sequence classes 22:18
sjn vendethiel: Yeah, that's where I saw it 22:20
Ulti or make the parent a role I guess
sjn (Perl Weekly)
timotimo could be that my stuff is b0rked 22:26
jnthn 'night, #perl6 22:27
FROGGS gnight jnthn
timotimo can someone give me a few measurements for right now vs last monday? 22:30
like start-up speed, core setting time all in all, spectest time all in all, ...
lizmat: do you have that information handy per chance?
22:31 Psyche^ joined
FROGGS does that make sense? 22:31
proto prefix:<~^>(Mu $?, Mu $?) is pure { * }
multi prefix:<~^>(\a) { ~^ a.Stringy }
a prefix with a two-param proto?
timotimo well, two optional params 22:33
FROGGS hmmm
still, it is a prefix
timotimo oh 22:34
yes, interesting
i don't think it makes sense
a named argument i could understand (though i find the possibility to supply nameds to operators with adverbs a bit magical) 22:35
22:35 Psyche^_ left
FROGGS and again: 22:36
proto prefix:<+^>(Mu $?, Mu $?) is pure { * }
multi prefix:<+^>($x) { +^ $x.Numeric.Int }
m: say +^42
camelia rakudo-moar 225b5e: OUTPUT«-43␤»
FROGGS I change it anyway
22:38 gfldex left
lue It'd be nice if you got a "probable typo" warning for +^@array , I had a weird bug caused by that a while back, and it took me a bit to understand what was even happening :) 22:39
(where the intention is ^+@array, if that's not clear) 22:40
FROGGS hmmmm 22:42
std: my @array; +^@array
camelia std 0f2049c: OUTPUT«ok 00:00 122m␤»
FROGGS I'd like to see std do that first
lue fair enough, though admittedly I can't immediately think of a good reason to do bitwise negation the number of elements in an array :) 22:44
*negation on the
[Coke] here, have some rope. 22:49
lue thanks, I've been meaning to build a better string type :P 22:51
timotimo hm. i'm pretty sure my current write-up of the last week's things is riddled with holes 22:52
22:52 xenoterracide joined
timotimo p6weekly.wordpress.com/?p=207&s...00ea919c22 - please feed back? 22:52
FROGGS timotimo: is / foo ** { ^42.pick } / worth mentioning? 22:56
timotimo it was already in last week's :)
FROGGS ahh :/ 22:57
22:58 rurban left
timotimo sorry to disappoint :) 22:58
FROGGS hehe, np
:o)
I am about to unbust parrot... if you can wait like 30minutes
lue timotimo: couple things: first, i.E. very often) should rather be i.e. very often) (minor capitalization thing)
timotimo oh
lue And secondly, The second sentence of the third-to-last (non-empty) bullet feels like a run-on sentence to me, though I can't say for sure why. 22:59
btyler timotimo: I don't know if you do library stuff, and it's far from done, but github.com/kanatohodets/p6-json-jansson is complete enough to be useful for pulling data out of large JSON blobs speedily 23:00
timotimo oh yes of course!
lue In that sentence though, "improve the " should be "improves the " . Aside from that, looks like a good post :)
timotimo how could i forget? :)
thanks
[Coke] FROGGS: oooh. what was it? 23:02
23:02 dmol left
FROGGS [Coke]: I am fudging the bad commit for parrot 23:03
23:03 treehug88 left
timotimo btyler: have you tried measuring how fast you can create a hierarchy of hash-likes and array-likes from a json document? 23:05
vs how JOSN::Tiny does it?
23:06 chenryn joined
btyler well, the data structures are all there once jansson is done parsing. the binding just accesses them with syntax that mostly looks like normal p6 hash/array usage 23:06
the really rough benchmark I did was a 10mb json file, mentioned in the readme 23:07
jansson chewed through it in about two seconds (probably more like 1 second, but this included p6 startup/etc), JSON::Tiny was still working about 4 minutes in
23:08 PZt joined
btyler it's a really nicely designed library, emphasis on correct unicode handling 23:08
jansson's perf is good, but I think unexceptional among C/C++ JSON libs
it's really a rather unfair comparison, since JSON::Tiny gives you true p6 data structures and all the data lives under the management of p6. jansson has its own refcounting memory management, and the binding cheats heavily. doing anything complex with the jansson-objects via the binding will become painful fairly quickly I suspect 23:11
23:11 chenryn left
btyler but sometimes you just need to burn through data to find a thing quickly 23:12
timotimo aye
23:18 akaseki joined
hoelzro so I had a thought while implementing S26 for roles 23:21
23:21 spider-mario left
hoelzro if I have this: #| one role R[] {} #| two role R[::T] {} 23:21
what's R.WHY supposed to be?
dalek kudo/nom: cf544ab | (Tobias Leich)++ | src/core/ (4 files):
unbust >1600 parrot spectest failures introduces by 9515bb7

This patch does not really fix the issue on parrot, it just fudges the by the patch changed lines so these will only be made ative for jvm and moar. Sidenote: proto prefix:<+^>($?, $?) and proto prefix:<~^>($?, $?) were changed to take precisely one argument, since these are prefixes.
hoelzro and for that matter, how would that work for multis?
FROGGS [Coke]: p-spectest should be down to ten failures for the next run 23:24
23:24 bjz left
[Coke] FROGGS++ 23:27
23:27 bjz joined 23:30 bjz left, bjz joined
btyler timotimo: if it helps you put things in perspective for jansson, it's about 1/3rd the speed of JSON::XS for decoding 23:32
(JSON::XS is crazy fast)
timotimo i shall use jansson in code i built myself soon :) 23:33
23:40 bjz left
BenGoldberg m: my @a = 12, '12a', 2, 12; say @a[$_] cmp @a[$_+1] for 0..2; 23:45
camelia rakudo-moar b17a24: OUTPUT«Less␤Less␤Less␤»
BenGoldberg The cmp operator is nontransitive. How bad is that? 23:46
timotimo m: my @a = 12, '12a', 2, 12; @a.rotor(2, 1).map: { $^a cmp $^b } 23:47
camelia rakudo-moar b17a24: OUTPUT«Unhandled exception: Not enough positional parameters passed; got 1 but expected 2␤ at /tmp/Yam9GIy6EU:1 (<ephemeral file>::0)␤ from src/gen/m-CORE.setting:7833 (/home/p6eval/rakudo-inst-2/languages/perl6/runtime/CORE.setting.moarvm::846)␤ from s…»
timotimo m: my @a = 12, '12a', 2, 12; @a.rotor(2, 1).perl.say 23:48
camelia rakudo-moar b17a24: OUTPUT«($(12, "12a"), $("12a", 2), $(2, 12)).list␤»
timotimo m: my @a = 12, '12a', 2, 12; @a.rotor(2, 1).map: -> ($a, $b) { $a cmp $b }
camelia ( no output )
timotimo m: my @a = 12, '12a', 2, 12; @a.rotor(2, 1).map: -> ($a, $b) { say $a cmp $b }
camelia rakudo-moar b17a24: OUTPUT«Less␤Less␤Less␤»
timotimo didn't end up being shorter :\
BenGoldberg m: my @a = 12, '12a', 2, 12; say @a.pick(*).sort; 23:49
camelia rakudo-moar b17a24: OUTPUT«2 12 12 12a␤»
rakudo-moar b17a24: OUTPUT«12 12 12a 2␤»
BenGoldberg m: my @a = 12, '12a', 2, 12; my %b;++%b{ @a.pick(*).sort } for 1..20; %b.say 23:51
camelia rakudo-moar b17a24: OUTPUT«No such method 'succ' for invocant of type 'Parcel'␤ in sub prefix:<++> at src/gen/m-CORE.setting:1833␤ in block at /tmp/6gtdPpJ904:1␤␤»
BenGoldberg m: my @a = 12, '12a', 2, 12; my %b; %b{ @a.pick(*).sort } += 1 for 1..20; %b.say 23:52
camelia rakudo-moar b17a24: OUTPUT«("12" => Any, "12a" => Any, "2" => Any).hash␤»
BenGoldberg m: my @a = 12, '12a', 2, 12; my %b; %b{ @a.pick(*).sort.Str } += 1 for 1..20; %b.say
camelia rakudo-moar b17a24: OUTPUT«("12 12 12a 2" => 4, "2 12 12 12a" => 16).hash␤»
BenGoldberg m: my @a = 12, '12a', 2, 12; my %b; %b{ @a.pick(*).sort.Str } += 1 for 1..1000; %b.say
camelia rakudo-moar b17a24: OUTPUT«("12 12 12a 2" => 316, "2 12 12 12a" => 684).hash␤»
BenGoldberg The simple solution to getting a stable sort is to be less clever when comparing two different types. Instead of comparing mismatched objects, just do a lexigraphical comparison of the type names. 23:55
That would put all Int objects before Str objects, since "I" comes before "S". 23:56