»ö« 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.
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
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␤»
[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
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
dalek ast: 516a6dc | coke++ | S32-str/substr.t:
substr fossil, this is done via substr-rw now
01:22
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
[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␤»
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␤»
[Coke] m: say uniname("\x[80]") 02:00
camelia rakudo-moar d97cd1: OUTPUT«␤»
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
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.
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
[Coke] .u ∅ 04:44
yoleaux U+2205 EMPTY SET [Sm] (∅)
dalek kudo/nqp-dogfood: 1681fff | duff++ | tools/build/check-versions.nqp:
[WIP] Create NQP version of check-versions.pl

Unfinished.
04:54
sergot hi o/ 06:16
masak morning, #perl6 06:52
FROGGS_ morning 06:52
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
nwc10 \o/ 07:05
has anyone spotted any progress on Rubinius X?
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␤»
masak m: say so try die 42 07:55
camelia rakudo-moar ded723: OUTPUT«False␤»
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␤»
[Coke] has got to get some sleep, ugh 07:59
masak waves a Wand of Sleep at [Coke] 08:02
nwc10 steal his coffee
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
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
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
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
FROGGS okay, SELF is of type enum_class_Sub 09:43
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
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
jnthn lizmat: I'm not sure that's a bug 10:40
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 :)
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
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
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 :)
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␤␤»
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
psch lizmat++: thanks again 11:32
now to see if that was actually the only broken thing left in my branch
lizmat m: note # should't this say "Noted" ? 11:40
camelia rakudo-moar 23c4ea: OUTPUT«␤»
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
dalek kudo/nom: 1070a89 | (Elizabeth Mattijsen)++ | src/core/ (2 files):
Bring implementation (exists|delete)_key in line
11:49
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
hoelzro morning #perl6 12:06
carlin \o hoelzro
(only been "morning" here for 6 minutes) 12:07
hoelzro carlin: which TZ?
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
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␤»
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
carlin exciting 12:12
"later on" means it'll probably be summer?
jnthn Not quite; more like mid-late spring. 12:13
carlin ah, lambing season :)
moritz confusing seasons are confusing :-) 12:13
jnthn Yes. :) Going to Argentina in European spring to find the colors of autumn there was a little disconcerting. :) 12:14
nwc10 was the food good? 12:15
jnthn Really.
Was one of the highlights of the trip. :) 12:16
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
dalek ast/S26-WHY: 81f69dc | (Rob Hoelz)++ | S26-TODO.md:
More notes
12:29
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
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
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
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
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
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
[Coke] lizmat++ #file access cleanup 13:32
FROGGS jnthn: I am checking now every Parrot_pcc_invoke_sub_from_c_args 13:34
lizmat cycling& 13:40
masak goodbye lower-case &eval. you were too good for this world. 13:43
carlin :D NativeCall is so good 14:37
btyler it really is 14:38
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 :)
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?
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 ...
TimToady well, but LTA is a subtle concept 15:41
sjn yeah
maybe come up with some more examples? :)
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
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
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
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)
[Coke] today's failures: jvm up to 45. moar at 5. parrot up more to 1862. niecza still at 1386 16:03
[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
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
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
TimToady regrets putting (1) x $times into P5 16:10
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 :)
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
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 !
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
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)
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
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?"
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...
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
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
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
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
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)
[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
lichtkind is the actually a name to use a classname out of a variable and make a instance 17:51
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?
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
vendethiel sjn: it's not intentional, it's just a french habit I can't get rid of 18:01
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)
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
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.
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
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
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
rindolf TimToady: are you feeling any better? 18:36
FROGGS rindolf: I think he said so last time 18:37
timotimo jnthn: i did it in a branch; i think it failed at something in some mysterious way at some point 18:50
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
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
jnthn oh, I got rid of that bit 19:01
Just put the methods directly on QAST::Node
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␤»
FROGGS m: constant term:<<"\x2205">> = set(); say GLOBAL::; say &term:<∅> 19:06
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
FROGGS m: constant term:<<"\x2205">> = set(); say GLOBAL::; say term:<∅> 19:06
camelia rakudo-moar caee53: OUTPUT«("term:<∅>" => set()).hash␤set()␤»
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
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
timotimo OK 19:14
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
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)
lizmat same error 19:38
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
lizmat FROGGS: after building the setting, in which stash should I be able to see ∅ ? 19:53
FROGGS I dunno 19:56
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
btyler I noticed segfaulting with multiple connections as well 20:04
tony-o with jvm or with moar? 20:05
btyler moar 20:05
tony-o i ran 100 loops of -n 100 -c 5 and had no problems on jvm 20:06
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
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
btyler r-j seems to be just fine for me as well 20:09
masak 'night, #perl6 20:19
FROGGS night masak
lizmat night masak 20:20
hoelzro night masak
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
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)
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?
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
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)␤»
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.
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 =)
dalek kudo/nom: 54b4503 | (Tobias Leich)++ | src/Perl6/ (2 files):
unbust term:<∅> for usage as empty set
21:12
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
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)
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
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.
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
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
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
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
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
Ulti just lost a second by building moar .o/ 22:04
and I built yesterday or maybe even this morning
Ulti oh I guess its the whole codon table bit I need to extract really 22:06
lizmat aha, so maybe that should be looked at priming 22:09
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
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?
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
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
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
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
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
FROGGS [Coke]: I am fudging the bad commit for parrot 23:03
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?
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
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
btyler but sometimes you just need to burn through data to find a thing quickly 23:12
timotimo aye
hoelzro so I had a thought while implementing S26 for roles 23:21
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
[Coke] FROGGS++ 23:27
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
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