»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by masak on 12 May 2015.
00:13 _28_ria left 00:14 _28_ria joined 00:15 virtualsue left 00:18 adu joined 00:27 sufrostico joined 00:29 aborazmeh joined, aborazmeh left, aborazmeh joined
mspo github.com/kostya/benchmarks#json <- missing :) 00:29
00:31 jnm_theMailman joined 00:37 leont left 00:38 adhoc joined 00:40 adu left 00:42 tokuhirom_ left
itz_stmuk a594769 has the Grammar::Debugger breakage but my laptop is about to die (as I am) 00:46
00:46 llfourn joined 00:47 telex left
itz_stmuk " handle junction on LHS of regex correctly 00:47
maybe that?
zzz
00:48 cognominal left, telex joined, cognominal joined 00:51 llfourn left 00:52 lichtkind left 01:04 adu joined 01:11 colomon left 01:13 jnm_theMailman left 01:17 eliasr left, yeahnoob joined 01:19 tokuhiro_ joined 01:22 yeahnoob left, yeahnoob joined 01:24 tokuhiro_ left 01:28 kalkin-_ joined 01:29 colomon joined 01:31 colomon left 01:32 kalkin-__ left 01:34 colomon joined 01:35 jnm_theMailman joined 01:36 sufrostico left 01:41 jnm_theMailman left 01:42 tokuhirom_ joined 01:45 raiph left 01:47 tokuhirom_ left 01:48 adu left 01:50 adu joined 01:51 dayangkun joined
dj_goku so I am using File::Find find function and the only way I have found to us in a for loop is with this: find(:dir<.>).list is that the correct/best way to do that? 02:01
s/to us/to use/ 02:02
02:05 skids joined 02:07 raiph joined 02:09 jacoby_ joined 02:10 noganex_ joined, _28_ria left, _28_ria joined 02:12 noganex left 02:13 kid51 left, jacoby left 02:14 _28_ria left, _28_ria joined 02:15 tokuhiro_ joined
[Coke] we need info on perl6.org about how to report a bug. 02:17
02:20 chenryn joined, _28_ria left 02:21 _28_ria joined 02:22 _28_ria left, _28_ria joined 02:23 _28_ria left, _28_ria joined 02:25 _28_ria left, _28_ria joined, _28_ria left 02:26 _28_ria joined 02:30 _28_ria left, _28_ria joined, _28_ria left
dalek kudo/nom: e303970 | coke++ | docs/announce/2015.10.md:
Add a placeholder release announcement
02:37
02:39 adu left 02:42 colomon left 02:43 tokuhirom_ joined 02:44 y0rl3 joined, y0rl3 left, BenGoldberg left, colomon joined 02:45 BenGoldberg joined 02:46 BenGoldberg left, BenGoldberg joined 02:48 tokuhirom_ left 02:49 llfourn joined 02:51 BenGoldberg left 02:52 skids left 02:53 colomon left 02:54 llfourn left 02:57 colomon joined 02:58 AlexDaniel left 03:02 kaare_ joined 03:06 aindilis left, aindilis joined 03:07 raiph left 03:12 SmokeMachine_ is now known as SmokeMachine
dalek roast: 2041303 | hoelzro++ | S17-procasync/kill.t: 03:13
roast: kill.t: Only test SIGINT
roast:
roast: SIGINT is available on all of our target operating systems, and it has
roast: consistent semantics among them. We shouldn't try every signal
03:13 dalek left, dalek joined, ChanServ sets mode: +v dalek
hoelzro hmm, what'd I do to kill dalek? 03:14
03:14 llfourn joined
geekosaur if the commit message is too long, dalek can get overenthusiastic about it and freenode boots it for flooding 03:17
hoelzro ahhh 03:18
geekosaur really, dalek just needs to insert a pause after each line starting around the 4th 03:21
most bots I've seen use a 1 second pause (or just truncate after the 3rd line) ; this may be overkill 03:22
03:36 xpen joined 03:39 xpen left
timotimo varlogrant.blogspot.de/2015/10/over...ening.html - someone could have a quick look at this :) 03:44
03:46 Oatmeal joined 03:54 xpen joined 03:55 raiph joined, xpen left 03:56 Zoffix joined 04:04 jacoby_ left 04:06 khw left 04:42 raiph left
timotimo perhaps it's just that .permutations wants to get the GLR treatment, because that custom recursion for permutation finding is 2x faster than .permutations 04:43
gist.github.com/timo/41ecb85a9fad659f6809 04:46
04:50 atweiden left 04:52 gonz_ left 04:57 gonz_ joined 05:00 aborazmeh left 05:19 davido_ joined, [Sno] left 05:27 [Sno] joined 05:28 baest left 05:29 tokuhirom_ joined 05:33 baest joined, spollei left, tokuhirom_ left 05:42 [Sno] left 05:49 rurban joined 05:58 firstdayonthejob joined 06:04 simcop2387 left 06:08 diana_olhovik joined
pink_mist timotimo: well, calling subroutines in perl5 is notoriously slow, so any recursive algorithm will suffer ... try to unwind it into a loop instead perhaps? 06:09
timotimo: can't really say anything about the perl6 version, but that didn't seem to have been benchmarked anyway :P 06:11
timotimo i'm up again for a little bit 06:12
(as sleep isn't initiating)
what do you mean "not benchmarked"?
there's a timing at the bottom
the two versions i put up there in the gist (one commented out, the other not) i let run to completion 06:13
397.02user 1.21system 6:38.09elapsed 100%CPU (0avgtext+0avgdata 124428maxresident)k
986.12user 1.32system 16:27.02elapsed 100%CPU (0avgtext+0avgdata 203812maxresident)k
the first is the recursive version, the second is with permutations
aand now with for ... -> $foo { &blah($foo) } replaced with .map(&blah) 06:14
06:22 chenryn left
pink_mist timotimo: err, I /only/ looked on the blogpost 06:24
didn't even realise until just now that the gist was related :P
06:25 n0xff left
timotimo oh 06:30
rarara_ Algorithm::Permute::Nativecall :p 06:32
06:42 Ven joined 06:43 O47m341 joined 06:44 firstdayonthejob left 06:46 Oatmeal left 06:48 FROGGS joined 06:50 simcop2387 joined 06:56 murre left 07:03 xfix joined, danstoner left 07:08 abraxxa joined 07:15 davido_ left 07:30 ely-se joined 07:33 maddingue joined, maddingu1 joined 07:35 maddingue left, maddingu1 left 07:36 maddingue joined 07:38 ShimmerFairy left 07:40 [Sno] joined
llfourn m: "pay 'foo'" 07:43
camelia rakudo-moar e30397: OUTPUT«WARNINGS:␤Useless use of constant string "pay 'foo'" in sink context (line 1)␤»
llfourn m: "my $x = pay 'foo'" 07:44
camelia rakudo-moar e30397: OUTPUT«5===SORRY!5=== Error while compiling /tmp/sRsvXivIIw␤Variable '$x' is not declared␤at /tmp/sRsvXivIIw:1␤------> 3"my 7⏏5$x = pay 'foo'"␤»
llfourn ...anyway I was wondering if there is any way to get Perl 6 to give me error correction suggestions on method names like it does with subs
07:45 araujo_ joined
llfourn if I do perl6 -e 'pay "foo"' => it says did you mean "say"? but if I do "foo".pay it doesn't give me a correction. 07:45
Ven a tad harder, because of the dynamic nature (fallback, handles, MOP, etc)
it couldn't be too clever is what I'm saying :)
llfourn Ven: Yep I see your point 07:46
07:46 darutoko joined
pink_mist m: my $x = pay 'foo'; # why did you wrap your code in " so it was interpreted as a single string instead of a statement? 07:47
camelia rakudo-moar e30397: OUTPUT«5===SORRY!5=== Error while compiling /tmp/S_hAnJjbp5␤Undeclared routine:␤ pay used at line 1. Did you mean 'say'?␤␤»
llfourn pink_mist: urgh right I was just using -e so...thanks!
07:49 araujo left 07:51 ShimmerFairy joined
cosimo how do I address the PF_INET6 constant in IO::Socket::INET / PIO ? 07:53
m: use IO::Socket::INET; say 'PF_INET6=', PIO::PF_INET6; 07:54
camelia rakudo-moar e30397: OUTPUT«===SORRY!===␤Could not find IO::Socket::INET in any of:␤ file#/home/camelia/.perl6/2015.09-442-ge303970/lib␤ inst#/home/camelia/.perl6/2015.09-442-ge303970␤ file#/home/camelia/rakudo-inst-1/share/perl6/lib␤ file#/home/camelia/rakudo-inst-1/sh…»
moritz urks
my module PIO {
not at all, I fear
cosimo no way to get it from there?
moritz need to patch rakudo first :( 07:55
cosimo alright
I'm trying to address all issues on LWP::Simple
at least update them with current info
moritz cosimo: yes, I've seen a flood of issues updated on github. Very immpressive!
cosimo++
m: PIO.PF_INET6
camelia rakudo-moar e30397: OUTPUT«PIO is disallowed in restricted setting␤ in sub restricted at src/RESTRICTED.setting:1␤ in method FALLBACK at src/RESTRICTED.setting:50␤ in any at gen/moar/m-Metamodel.nqp:2864␤ in any at gen/moar/m-Metamodel.nqp:1674␤ in block <unit> at /…»
lizmat m: my $a = ^10; for ^10 { say $a[$_] } 07:56
camelia rakudo-moar e30397: OUTPUT«0␤1␤2␤3␤4␤5␤6␤7␤8␤9␤»
lizmat ^^^ always hits the AT-POS-SLOWPATH :-(
07:57 kjs_ joined
lizmat which is weird, as we have Range have its own iterator ? 07:57
07:59 g4 joined
cosimo I used `perl Configure.pl --backends=jvm,moar'. At the end of the make/make install phase, perl6 points to the jvm backend. Any way to switch to moar, or do I need to rebuilt? 08:01
rebuild?
08:02 kjs_ left 08:03 RabidGravy joined 08:04 Ven left 08:05 FROGGS left 08:06 Ven joined 08:07 eliasr joined, kjs_ joined
Ven cosimo: use perl6-m 08:07
lizmat .tell colomon is very-broken-combinations in List still needd ? 08:09
yoleaux lizmat: I'll pass your message to colomon.
cosimo Ven: I don't seem to have any perl6-* binary? 08:12
Ven cosimo: really? strange 08:13
cosimo Ven: a find command showed me I indeed have them
just not in $PATH
08:14 espadrine_ joined 08:18 dakkar joined 08:20 chenryn joined
timotimo right, it'll be where you supplied --prefix= 08:21
08:25 chenryn left, espadrine_ left
lizmat afk for a few hours& 08:36
08:37 kjs_ left 08:38 bjz joined 08:39 bjz left 08:52 Ven left 08:53 Ven joined
El_Che #perl6: pack your bags for Fosdem 2016: we're having a devroom Sunday 31th January 08:58
cosimo nice 08:59
09:00 araujo_ left, araujo joined, araujo left, araujo joined 09:08 espadrine_ joined 09:16 ely-se left 09:17 Ven left 09:20 woolfy joined
woolfy El-Che++ 09:21
09:22 Ven joined 09:24 kjs_ joined
nine Wow, after 16 years of programming in Perl, I now have the first case where I'm porting parts to C for performance improvements. 09:24
09:26 ely-se joined
Ven nine: good thing our ffi works nicely, then :) 09:32
09:36 edehont joined
nine Unfortunately this is in Perl 5. I don't even want to know how slow this code would be in Perl 6... 09:42
09:45 FROGGS joined 09:47 espadrine_ left 09:50 kjs_ left, virtualsue joined 09:51 yeahnoob left 09:53 brrt joined
brrt \o 09:54
El_Che woolfy: no. woolfie++ you mean 09:55
nine: that's a good exercise (and good to know) 09:56
brrt \o/
09:56 rindolf joined
brrt El_Che: is that a perl devroom or a perl6 devroom? 09:56
tokuhiro_ d.hatena.ne.jp/sugyan/20151022/1445505412
brrt supposes a general perl devroom 09:57
tokuhiro_ Another Hello world in Perl6
m: ::('!{.(?'~^'.~!)~'~^')^.^^'~^'?!^?('~^'??)!{')('!?}}~~(!^~{~))(.{~('~^'))?^?.).(?.}?)().!~'~^'~!.?}?~.^.{?!)~}!).'~^'}!!.~(}(!?}~{!}).(('~^')^(^.(.)~?!.()!})?)')
camelia rakudo-moar e30397: OUTPUT«Hello, world!␤»
09:57 spider-mario joined
brrt oh, wow 09:57
El_Che brrt: a general perl devroom.
brrt cool
we're one community, after all 09:58
El_Che and there is no way in hell we'll get 2 different devrooms
I see the python 2.7 people starting a riot :)
brrt i don't see python people starting a riot 09:59
rubyists, maybe
10:00 geekosaur left
mrf tokuhiro_: because if they're going to call the language linenoise anyway then why not prove it. 10:01
El_Che no, actually, the atmosphere at Fosdem is pretty nice 10:03
no language wars
I like it
btyler tokuhiro_: that is....that is amazing 10:04
10:07 espadrine_ joined
mrf If anyone has time I would be really interested in a deconstruction of what that is doing 10:08
10:12 telex left 10:14 telex joined
dakkar m: 'ab' ~^ 'AB' 10:18
camelia rakudo-moar e30397: OUTPUT«WARNINGS:␤Useless use of "~^" in expression "'ab' ~^ 'AB'" in sink context (line 1)␤»
dakkar m: say 'ab' ~^ 'AB'
camelia rakudo-moar e30397: OUTPUT« ␤»
dakkar m: say ord('b' ~^ 'B)'
camelia rakudo-moar e30397: OUTPUT«5===SORRY!5=== Error while compiling /tmp/ROdRevHhA5␤Unable to parse expression in argument list; couldn't find final ')' ␤at /tmp/ROdRevHhA5:1␤------> 3say ord('b' ~^ 'B)'7⏏5<EOL>␤»
dakkar m: say ord('b' ~^ 'B')
camelia rakudo-moar e30397: OUTPUT«32␤»
dakkar yep, that's the trick
10:21 chenryn joined, kjs_ joined
woolfy brrt: earlier this year, at FOSDEM, the Python people had a booth next to our Perl-booth. It was their 2nd year, our 7th (??) year. The complained that we had two tables and they had only one table. 10:22
Our two tables were completely covered with stuff: books, camels, wine, buttons, stickers, tuits, Camelia 3D-puzzles, brochures, pens etc etc. They had 3 books, one pile of t-shirts, and one small pile of stickers. Over 66% of their table was empty. 10:23
But that was all. FOSDEM is friendly.
Timbus they needed the blank space
brrt camelia 3d puzzles? :-o 10:25
well, /me is looking forward to it
10:25 chenryn left 10:26 Ven left
itz_stmuk I think the FAQ needs a Q "Why is Rakudo so slow?" and I'm trying to phrase something positive 10:27
draft at gist.github.com/stmuk/5f2f086733e084d5d829
I'd be grateful for suggestions
10:27 FROGGS left
llfourn m: ('!{.(?' ~^'.~!)~' ~^')^.^^' ~^'?!^?(' ~^'??)!{').say; ('!?}}~~(!^~{~))(.{~('~^'))?^?.).(?.}?)().!~'~^'~!.?}?~.^.{?!)~}!).'~^'}!!.~(}(!?}~{!}).(('~^')^(^.(.)~?!.()!})?)').say 10:27
camelia rakudo-moar e30397: OUTPUT«&EVAL␤"Hello, world!".say␤»
lizmat OMG 10:28
10:28 ely-se left
nine woolfy: you know how significant whitespace is in Python :) 10:28
llfourn worries about fun "puzzels" like this on irc with EVAL something dangerous 10:29
10:29 ab6tract joined
ab6tract tokuhiro_: WOW :D 10:29
brrt itz_stmuk: because perl6 is to awesome for the current generation of computers 10:30
:-P
(that's not true, though. the real answer is 'we haven't gotten around to making it faster yet, but we know several good ways to do so'
10:31 pmurias joined
itz_stmuk actually I remember emacs being quite unusable on late 80s UNIX systems and being banned by sysadmins and it's faster than the Java IDEs today :) 10:31
llfourn we are trying to capture the market for people who like short breaks inbetween development
itz_stmuk has anyone examples of what is fast and isn't? I'm aware that empty loops are (or were) fast but that isn't that great :) 10:32
maybe creating objects 10:33
10:33 ely-se joined
brrt considers emacs to be a perfectly fine java ide 10:34
10:34 karim joined
karim how can I create an array of arrays? and how to access it then? 10:35
brrt do you want an array of arrays, or do you want a multidimensional array 10:36
gfldex m: my @lol = []; @lol[2] = []; @lol[2][1] = 'item'; @lol.perl.say;
camelia rakudo-moar e30397: OUTPUT«[Any, Any, [Any, "item"]]␤»
brrt m: my @a; @a[1][2] = 4; say @a.perl;
camelia rakudo-moar e30397: OUTPUT«[Any, [Any, Any, 4]]␤»
brrt autovivification ftw 10:37
karim array of array
s
is that it?
llfourn m: my $a = [ [ 1 ], ]; say $a; #notice the comma
camelia rakudo-moar e30397: OUTPUT«[[1]]␤»
brrt kind of, yes, karim
karim I mean, how can I declare a variable of this type?
brrt hmmm
karim @var1 - is just an array
brrt i'm not 100% familiar with that though 10:38
llfourn m: my @a = [1],; say @a.perl;
camelia rakudo-moar e30397: OUTPUT«[[1],]␤»
llfourn m: my @a = [1]; say @a.perl;
brrt m: my Array[Array] @a; @a[1][2] = 3; sa @a.perl;
camelia rakudo-moar e30397: OUTPUT«[1]␤»
rakudo-moar e30397: OUTPUT«5===SORRY!5=== Error while compiling /tmp/_I9Us09foE␤Undeclared routine:␤ sa used at line 1. Did you mean 'so'?␤␤»
brrt y
m: my Array[Array] @a; @a[1][2] = 3; say @a.perl; 10:39
camelia rakudo-moar e30397: OUTPUT«Type check failed in assignment to @a; expected Array[Array] but got Array␤ in block <unit> at /tmp/1JziUJxb_M:1␤␤»
llfourn is confused by brrt
RabidGravy m: my Array @g = [['f'],]; say @g.perl;
camelia rakudo-moar e30397: OUTPUT«Array[Array].new($["f"])␤»
llfourn brrt: that's an array of array of arrays :S?
brrt yeah, i was wrong
huh, that's actually cooler than i had thought 10:40
gfldex karim: see design.perl6.org/S09.html#Multidime...nal_arrays 10:41
brrt m: my Array[Array] $x; say $x.perl;
camelia rakudo-moar e30397: OUTPUT«Array[Array]␤»
brrt m: my Array[Array] $x; $x[1][2] = 0; say $x.perl;
camelia rakudo-moar e30397: OUTPUT«Type check failed in assignment to $x; expected Array[Array] but got Array␤ in block <unit> at /tmp/JWSXZYZNzj:1␤␤»
brrt m: my Array[Array] $x .= new; say $x.perl; 10:42
camelia rakudo-moar e30397: OUTPUT«Array[Array].new()␤»
brrt m: my Array[Array] $x .= new; $x[1][2] = 0; say $x.perl;
camelia rakudo-moar e30397: OUTPUT«Cannot call postcircumfix:<[ ]>(NQPMu, Int, Int); none of these signatures match:␤ (\SELF, Any:U $type, |c is raw)␤ (\SELF, int $pos)␤ (\SELF, int $pos, Mu \assignee)␤ (\SELF, int $pos, Mu :$BIND! is raw)␤ (\SELF, int $pos, :$SINK!…»
10:42 FROGGS joined
brrt aargh 10:42
ab6tract brrt: I didn't think that typed arrays were truly supported in that way yet? 10:45
10:45 ab6tract left
brrt possibly 10:45
10:46 karim left, karim joined
woolfy nine++ Python whitespace... :-) 10:50
DrForr woolfy: FOSDEM talks coming later today. 10:51
woolfy DrForr++
10:51 Celelibi left
itz_stmuk DrForr: is it January already? 10:52
DrForr checks with Doc Brown.
10:54 Celelibi joined
DrForr Already giving them at Cluj.pm, may as well go for it. Plus I'll *definitely* be on the list to attend this way :) 10:56
(plus by then I won't have to do my Dr. House impression.) 10:58
10:59 skids joined 11:00 karim left 11:03 TEttinger left 11:05 chenryn joined 11:07 weihan joined, dayangkun left
El_Che DrForr: coming back to Fosdem? That's great 11:08
DrForr Wouldn't miss it, though I'm still going to beg for a few more days 'round it. 11:09
El_Che DrForr++
DrForr Need to make a more exhaustive evaluation of the chocolate options :) 11:10
El_Che About woolfy booth: by far the greatest of all the conference. True story each year
DrForr And heaviest :)
woolfy I'm still carrying most of the stuff anyway!
El_Che DrForr: I've got some extra muscle after a few years :) 11:11
woolfy And I already have a nice surprise in the making. Secret secret.
El_Che woolfy: you're 2 heads bigger than DrForr and me :
:)
woolfy :-)
In case anybody feels some pressure to also send me a talk proposal: that would be very welcome. wendyga.wordpress.com/2015/10/08/f...-speakers/ 11:12
pmurias itz_stmuk: re "Why is Rakudo slow?", I think it will be hard produce a good answer to that 11:15
itz_stmuk: in most Perl 6 implementations it has always been "because it's no fast yet"
brrt yeah, that is the true answer 11:16
11:16 kjs_ left
moritz too many levels of indirection with too little optimization 11:17
pmurias I think a deeper reason might be that it's complex enough that there is no simple way to do things fast, and instead it will require a bunch of special casing and smart optimalizations
11:19 Ven joined
pmurias For really killer performance a few iterations might be required, just like the JavaScript engines have gone through a really complex evolution 11:19
brrt and what moritz says, is also true 11:22
itz_stmuk gist.github.com/stmuk/5f2f086733e084d5d829 11:23
El_Che the javascript example makes sense
itz_stmuk I added a very crude benchmark
El_Che they got eventually very fast
Ven El_Che: I'm not sure we have the same kind of money to throw at it, though :P
pmurias stealing designs is cheaper than inventing them 11:24
El_Che wait until Oracle forks Perl6 :)
moritz Unbreakable Perl 6
(Enterprise)
El_Che Unbreakable Perl 6 - Java Enterprise Desktop Edition and Exadata Big Cloud Edition 11:25
11:25 kalkin-_ left
itz_stmuk I thought "Unbreakable" was a particularly clueless marketing name sure to attract the best^uworst of the open source/hacker community :) 11:25
El_Che (yes, Sun and Oracle used to call everything Java, even non-Java projects) 11:26
itz_stmuk: you really don't get it
itz_stmuk: they were talking about the license :)
itz_stmuk :) 11:27
hmm should I include a benchmark? any strong views against? I'm very wary of benchmarks
brrt well, what point do you want to make with it? 11:28
here's the thing: it's probably best to be upfront with it
hmmm 11:29
no wait
itz_stmuk "A crude benchmark (with all the usual caveats) shows at least in some situations Perl 6 can be marginally faster than Perl 5."
brrt forget i said that
ruby wasn't upfront about their slowness
11:29 rindolf left
brrt python isn't especially explicit about it 11:29
itz_stmuk it will be a frequently asked question
brrt do you think so?
11:30 tokuhirom_ joined
brrt i'd be surprised if i saw it on ruby-lang.org 11:30
itz_stmuk I've no idea about the ruby community I know the perl community very well
brrt 'why is ruby so slow?' - 'because ruby is very flexible'
hmmm
i have no definitive ideas about it
11:31 weihan left
itz_stmuk maybe it needs a marketing line about how cool the JIT will be 11:32
11:34 tokuhirom_ left
pmurias itz_stmuk: I wouldn't try to twist things around with a carefully choosen benchmarks 11:35
itz_stmuk: one problem with JITs is that it's not that obvious how coll they will end up 11:36
itz_stmuk: there is a thin line between things being amazing and making stuff slower 11:37
11:37 brrt left
itz_stmuk pmurias: that wasnt a carefully chosen benchmark 11:37
its doing common things 11:38
removing the say would have prolly made p6 faster due to perl 5 buffering 11:40
Zoffix itz_stmuk, on my box that bench shows a very slight advantage in P5: gist.github.com/stmuk/5f2f086733e0...nt-1602277 11:42
It's Perl5 5.20..
itz_stmuk ok I will remove numbers and say common tasks at equivalent speed 11:43
some common tasks
11:43 Ven left
dalek p: 66c3cd7 | (Pawel Murias)++ | src/QAST/Block.nqp:
Print the blocktype for QAST::Block when dumping the AST.
11:44
p: 24e39b9 | (Pawel Murias)++ | src/vm/js/nqp-runtime/io.js:
[js] make nqp::mkdir($file, $mode) do nothing if $file exists just like on moarvm
11:45 kid51 joined
El_Che I was positively surprised by perl6 for smaller command line applications. Startup wasn't slow. I had Moose from a few years ago in mind (I switched to Moo for that kind of apllications) 11:46
11:46 chenryn left
itz_stmuk I've seen people try and use Moose for CGI which is pretty insane 11:46
11:47 Ven joined
El_Che itz_stmuk: 90% of the occidental world is addicted to sugar (source: the internet) 11:48
RabidGravy What perl6 is missing is a CGI libray ;-) 11:52
mrf itz_stmuk: OOI do you know what the benchmark would be if you hypered the perl6 example. Might be worth showing how the new features can recover some of the lost time?
mrf is unable to figure out how to hyper the example 11:53
flussence it seems like installed modules currently have a quadratic effect on startup time... the diff between "perl6 -e 1" and "perl6" (repl) is ~100ms on my server box with no modules installed... and 16 seconds on my laptop.
11:53 kid51 left
itz_stmuk mrf: I was using directly equivalent code on purpose .. I'm sure it's possible to increase and decrease the speeds of both scripts 11:54
mrf itz_stmuk: thats fair.
llfourn flussence: modules your not using shouldn't affect speed :S (apart frmo Linenoise)
11:55 araujo_ joined
flussence yeah, I don't get it. my desktop takes 5 seconds to start a repl now and that's hardly a weak cpu. 11:55
RabidGravy I thought there was a thing due to reading the manifest or something 11:56
11:56 Ven left, ely-se left
RabidGravy or was that fixed 11:56
flussence I thought that was fixed, guess not :(
(or it unfixed itself)
11:57 edehont left
lizmat flussence: fwiw, that''s exactly what we're trying to fix 11:57
flussence oh, if it's being done I'll shut up then :)
11:58 araujo left 12:01 ely-se joined
lizmat flussence: no, please don't shut up 12:03
just pointing out it's a known problem :-) 12:04
12:13 kjs_ joined
mrf Is there a way of delegating to another grammar in a rule rather than a named rule. e.g 'rule TOP { <MY::Other::Grammar> <another-rule>}' 12:15
I specifically don't want to inherit of compose the other grammar. I wish to delegate to its normal parse.
12:16 anonymouse_ joined
RabidGravy because there's nothing better than a 2014 chateau bottled Vouvray which you can't remember why you bought it, for lunch 12:17
12:20 Upasaka left
mrf I suppose I could do 'rule TOP { <MY::Other::Grammar::TOP> }' 12:21
12:21 Upasaka joined
moritz mrf: method TOP(|c) { OtherGrammer.TOP(|c) } 12:22
flussence after a bit more poking around it seems it's "just" Linenoise causing the slowdown, installing other modules doesn't significantly add to the delay. that's useful to remember when I reinstall.
mrf moritz: do grammers always have to have a TOP rule ? 12:23
RabidGravy usually
if you don't have one you have to specify the name of the "top" rule to .parse()
DrForr You can specify that you want to run starting at a different rule during the parse, so I don't think it's *required* per se.
moritz mrf: you can all call YourGrammar.parse($string, :rule('startrule')) 12:24
mrf ok but if you call .parse($string) it looks for a TOP ?
RabidGravy yep
mrf awesome.
For context it seems normal for a document to be composed of several descrete parts each of which may have their own distinct grammar (HTTP and MIME) are good examples. and Combining these without namespace clashes seems useful. 12:25
lizmat flussence: could it be that because Linenoise is *not* precomped, that we have the delay ? 12:27
[Coke] reminder, there's theoretically a birthday release of the compiler today
mrf so grammar HTTP::Message { rule TOP { <HTTP::StartLine::TOP> [<HTTP::Header::TOP>]+ \n <HTTP::Body::TOP>}}
12:27 skids left
mrf flussence: Concure that installing Linenoise has caused a >2s delay for the repl 12:28
itz_stmuk [Coke]: will there be cake and ice cream?
lizmat flussence: what if you do
time perl6 -MLinenoise -e''
?
DrForr The cake... never mind. 12:29
dalek kudo/nom: 084e462 | lizmat++ | src/core/List.pm:
Nativy and GLRify List.combinations

It's now about 25x faster
12:30
flussence lizmat: on my good computer, 2.62s user time, compared to 3.30s for starting the repl. No -MLinenoise is 0.12s
lizmat yeah, so that's pure parsing of Linenoise that's the delay then
flussence (and I've just figured out how to manually precomp it with the *right* file extension, that helps a huge amount!) 12:34
llfourn m: <one two three>.grep: { not 1 == 1 or not /./ } 12:35
camelia rakudo-moar e30397: OUTPUT«Method 'match' not found for invocant of class 'Any'␤ in block <unit> at /tmp/ZCNpjhUlSO:1␤␤»
llfourn ^^ bug yes?
12:35 ely-se left
lizmat m: <one two three>.grep: { /./ } 12:36
camelia ( no output )
lizmat m: <one two three>.grep: { not /./ }
camelia rakudo-moar e30397: OUTPUT«Method 'match' not found for invocant of class 'Any'␤ in block <unit> at /tmp/u67oVswSGh:1␤␤»
lizmat hmmm...
m: <one two three>.grep: { !/./ }
camelia rakudo-moar e30397: OUTPUT«Method 'match' not found for invocant of class 'Any'␤ in block <unit> at /tmp/tVujcsKWam:1␤␤»
lizmat m: <one two three>.grep: { not( /./ ) }
camelia rakudo-moar e30397: OUTPUT«Method 'match' not found for invocant of class 'Any'␤ in block <unit> at /tmp/4qXRniSfWb:1␤␤»
lizmat <one two three>.grep: { not 1 == 1 or not m/./ } 12:37
m: <one two three>.grep: { not 1 == 1 or not m/./ }
camelia ( no output )
lizmat that's exactly the reason I would not allow { // } to work
12:37 rindolf joined
lizmat / is just a Regex 12:38
m: dd (//).WHAT
camelia rakudo-moar e30397: OUTPUT«5===SORRY!5=== Error while compiling /tmp/IeLy36zwQx␤Null regex not allowed␤at /tmp/IeLy36zwQx:1␤------> 3dd (//7⏏5).WHAT␤»
lizmat m: dd (/./).WHAT
camelia rakudo-moar e30397: OUTPUT«Regex $var = Regex␤»
lizmat m: dd (/./).Bool
camelia rakudo-moar e30397: OUTPUT«Method 'match' not found for invocant of class 'Any'␤ in block <unit> at /tmp/kddF9WkA79:1␤␤»
12:39 sufrostico joined, virtualsue left
lizmat m: (/./).Bool # the problem golfed 12:39
camelia rakudo-moar e30397: OUTPUT«Method 'match' not found for invocant of class 'Any'␤ in block <unit> at /tmp/tsPKKhr7JS:1␤␤»
lizmat to make this work, I think we should Regex.Bool do a match on $_
llfourn lizmat: hmm yep that explains everything I was completely stuck. The original thing I was trying to do was: 12:41
m: my $rx = /./; <one two three>.grep: { not $rx or so $rx }
camelia rakudo-moar e30397: OUTPUT«Method 'match' not found for invocant of class 'Any'␤ in block <unit> at /tmp/Xmh9Jnqox4:1␤␤»
llfourn I was trying to see if the $rx was not defined with the first not and then if it was test it against $_ 12:42
ShimmerFairy m: say (m/./).Bool
camelia rakudo-moar e30397: OUTPUT«Method 'match' not found for invocant of class 'Any'␤ in block <unit> at /tmp/_pwXAMyKLn:1␤␤»
ShimmerFairy m: say (rx/./).Bool
camelia rakudo-moar e30397: OUTPUT«Method 'match' not found for invocant of class 'Any'␤ in block <unit> at /tmp/1N_dsoKuSc:1␤␤»
llfourn m: my $rx = /./; <one two three>.grep: { not $rx or $_ ~~ $rx } # actually more like
camelia rakudo-moar e30397: OUTPUT«Method 'match' not found for invocant of class 'Any'␤ in block <unit> at /tmp/U4PasoknDL:1␤␤»
moritz lizmat: it already does a match on $_. But $_ is Any, hence the error
llfourn m: my $rx = /./; <one two three>.grep: { not $rx.defined or $_ ~~ $rx } # actually more like 12:43
camelia ( no output )
ShimmerFairy The problem really is that !/./ doesn't do a match and negate, which I happen to think is reasonable :)
llfourn ^^ that is what I wanted :S
moritz m: $_ = (class MyFunnyClass {}); /./.Bool
camelia rakudo-moar e30397: OUTPUT«Method 'match' not found for invocant of class 'MyFunnyClass'␤ in block <unit> at /tmp/8tj_BvwVrP:1␤␤»
moritz m: $_ = (class MyFunnyClass {}); !/./
camelia rakudo-moar e30397: OUTPUT«WARNINGS:␤Useless use of "!" in expression "!/./" in sink context (line 1)␤Method 'match' not found for invocant of class 'Any'␤ in block <unit> at /tmp/sK90YKEb4C:1␤␤»
moritz ShimmerFairy: no, the problem is that prefix:<!> seems to clobber $_ 12:44
ShimmerFairy I still think trying to negate a regex doesn't make sense :)
moritz yes yes, we're used to your arguments by now :-)
12:45 tokuhirom_ joined 12:46 ShimmerFairy left 12:47 virtualsue joined 12:49 rurban left 12:50 tokuhirom_ left 12:51 ely-se joined 12:54 rurban joined
tadzik today I learned about --b, which is like o/ but for "thumbs up" 12:55
12:55 anonymouse_ left
flussence looked to see if that's in the default XCompose files but only found one for "o/" -> "🙌" 12:59
dalek c: 9dbc09c | (Steve Mynott)++ | doc/Language/faq.pod:
[FAQ] Is Perl 6 fast enough for me
13:01
c: 6e7a9f3 | (Steve Mynott)++ | doc/Language/faq.pod:
[FAQ] minor tweaks
jdv79 it'd be cool if we had more optimizer type devs. are they hard to create? 13:03
13:03 sunnavy left
tadzik hm, perl6.org/compilers/features looks a bit outdated 13:04
moritz well, you need a pretty solid understanding of large parts of the language AND the stack before you can really optimize
that makes them hard to come by, yes 13:05
nine And if you have that kind of understanding, you're currently probably busy making Rakudo work right, rather than fast.
13:05 zakharyas joined 13:06 araujo_ left, araujo joined
RabidGravy right now, working is good. with working will come optimization inclined people 13:06
13:06 araujo left
dalek kudo/nom: eee3442 | lizmat++ | src/core/Any.pm:
Oops, we don't want any flattening for dd
13:08
kudo/nom: 987cdee | lizmat++ | src/core/List.pm:
Remove debug code (at least for the release)
lizmat .tell colomon I've removed the code with 987cdeec38
yoleaux lizmat: I'll pass your message to colomon.
lizmat m: my @a; @a[^5] = ^5; dd @a # sigh 13:13
camelia rakudo-moar 084e46: OUTPUT«block <unit>␤»
13:13 Ven joined
lizmat m: my @a; @a[^5] = ^5; say @a 13:13
camelia rakudo-moar 084e46: OUTPUT«[]␤»
lizmat m: my @a = ^10; say @a[^15] # I would argue this is also wrong 13:15
camelia rakudo-moar 084e46: OUTPUT«(0 1 2 3 4 5 6 7 8 9)␤»
lizmat there is no Whatever involved with [^15], so it should continue
the fact that it doesn't, is what causes the @a[^5] = ^5 fail
13:17 rurban left 13:18 Ven left
rarara_ itz_stmuk: I think it makes no sense to troll Perl 6 in the Perl 6 FAQ: the question "why is it slow?" does not really make sense, what would make sense would be "why it is slower than XXX in performing XXX thing?" 13:18
Zoffix +1 13:20
itz_stmuk rarara_: that's not the question it's "Is Perl 6 fast enough for me?" 13:21
Zoffix Ah :)
itz_stmuk rarara_: if you can suggest XXX type info please supply pull requests
13:24 rurban joined
[Coke] lizmat: do you still have any blockers for the release today? 13:26
lizmat looking at making array slices faster 13:28
but if you want to start releasing now, it will just have to wait post-release... 13:29
itz_stmuk is the Grammar::Debugger breakage mentioned in the scrollback the fault of that module?
the recent regexp signature change one
lizmat someone had bisected a commit ? 13:30
itz_stmuk I *think* it's fairly obvious the change
FROGGS there was a regex signature change? 13:31
itz_stmuk the error suggests 5d83db
13:31 loren joined
FROGGS ohh, that was me 13:31
itz_stmuk ==> Testing Grammar::Debugger 13:32
===SORRY!===
Cannot call ACCEPTS(Regex: Mu); none of these signatures match:
FROGGS hmmmm
itz_stmuk: can you no-paste a backtrace? 13:34
ohh nvm
I can reproduce
lizmat [Coke]: trying to a simple [^5] speedup, should know if ok in the next 20 mins or so 13:35
13:38 ely-se left 13:39 sunnavy joined
FROGGS itz_stmuk: I'll PR Grammar::Debugger... 13:39
13:41 araujo joined, araujo left
itz_stmuk I guess it's the sort of module fragile to rakudo changes! 13:41
FROGGS itz_stmuk: see: github.com/jnthn/grammar-debugger/pull/21 13:42
itz_stmuk: aye
13:42 ely-se joined 13:44 raiph joined
lizmat #76676 13:46
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...l?id=76676
lizmat [Coke]: ok, forget it, seems we need clipping for slices after all :-(
we just need to implement it better and that is going to be.... interesting 13:47
jdv79 i was trying to optimze some stuff but had a hard time determining the hotspots 13:50
are there any cool tools anyone uses or is it just trial and error and experience at this point?
PerlJam jdv79: and --profile 13:51
jdv79 for instance, --profile, for a few things was essentially flat for a few
death by a thousand cuts type of thing 13:52
13:52 Sqirrel left 13:53 grondilu left, geekosaur joined 13:59 tokuhirom_ joined 14:03 Ven joined 14:05 Sqirrel joined 14:06 Hotkeys left, Hotkeys joined 14:07 ely-se left 14:10 khw joined 14:11 ely-se joined 14:12 araujo joined, araujo left, araujo joined
rarara_ I am just starting to learn perl 6, may I ask your opinion? which of the two version of a method would you think is more proper? gist.github.com/anonymous/d548488b1c3ad9abde3c (or if you have any other suggestions) 14:13
14:13 zakharyas left
rarara_ it is a boring task, just a style advice 14:14
dalek ast: 4e63f72 | (Steve Mynott)++ | S32-num/rat.t:
add test for RT #126391 - wrong div by 0 error
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=126391
PerlJam rarara_: "more proper" is really a design decision that's up to you :)
rarara_: though, I wonder why you're backwhacking your constants. That seems a little weird to me. 14:15
rarara_ PerlJam so that they are grouped
PerlJam grouped? 14:16
why not use an enum then?
(though, I still don't understand how the \ in constant \foo implies some grouping)
rarara_ I didn't know you had enum :) This seems good. Regarding the \ it resembles more the Perl5 constants 14:17
you didn't type $ there 14:18
pink_mist because they were subroutines :P
PerlJam rarara_: you don't need a $ or a \ though in P6
rarara_: constant FOO = 7; is just fine 14:19
rarara_ true also
PerlJam (also, I'm not sure you need the := either :)
pink_mist well with the \ the := might have been needed? or am I overthinking things? :P 14:20
rarara_ good to learn all this things!
PerlJam pink_mist: nah.
rarara_ pink_mist I checked: nop
14:21 g4 left
mrf rarara_: I am not sure you need \FOO in p5 either. 14:22
PerlJam afaik, constant initialization already happens at BEGIN time and since your assigning a literal, there should be no difference between binding and assignment
s/your/you're/ 14:23
14:25 pmurias_ joined
pink_mist mrf: no that was just that rarara_ didn't want to put $ on his constants, so he thought he had to use \ 14:25
(or maybe rarara_ is a she?) 14:26
mrf pink_mist: Constants in P5 are barewords (they are odd subs) not scalars. The \ in p5 creates a reference
pink_mist mrf: yes I know 14:27
mrf: but rarara_ thought he needed a \ in p6
rarara_ mrf: pink_mist is right
pink_mist mrf: we've spent some time convincing him he doesn't
14:27 Zoffix left
mrf ok. :) 14:27
rarara_ I just wanted to avoid the $ in perl 6, which you don't need to 14:28
14:28 pmurias left, Zoffix joined, pmurias_ left
lizmat [Coke]: I have one optimization for array slice assignment (about 3x as fast) 14:29
[Coke]: still ok to commit that ?
PerlJam rarara_: actually, the answer to you original question is ... the first one is least Perlian, so I wouldn't do that one. :)
rarara_: so perhaps the second one but with an enum instead of the constants 14:30
14:30 virtualsue left
gfldex m: my $foo = 'foo'; my \bar = 'bar'; say "Without sigils you lose the ability to say $foo. However, you can still say {bar}."; 14:32
camelia rakudo-moar 987cde: OUTPUT«Without sigils you lose the ability to say foo. However, you can still say bar.␤»
rarara_ PerlJam the second one with enum seems the best fit for this situation. There is no need to hide the user about the values of flags
PerlJam gfldex: good point.
hoelzro o/ #perl6
14:33 ely-se left
PerlJam rarara_: also, with an enum, you don't have to say "is export" so many times 14:34
RabidGravy I've got an example of initialising an enum from some bit masks in one of my modules even, can't remember which one though 14:35
dalek kudo/nom: 49fd9ff | lizmat++ | src/core/array_slice.pm:
Make $foo[slice] = list about 3x as fast
14:36
rarara_ I'm trying to search for that 14:39
RabidGravy github.com/jonathanstowe/Audio-Snd...le/Info.pm for example, but I'm sure there's one that has some bit shifting involved 14:41
PerlJam rarara_: see S12:1939 perhaps
synbot6 Link: design.perl6.org/S12.html#line_1939
14:45 tokuhiro_ left
rarara_ m: enum End( :File(0x00000000), :Little(0x10000000), :Big(0x20000000), :Cpu(0x30000000)); say End(Big).Int.base(16) 14:46
camelia rakudo-moar 987cde: OUTPUT«20000000␤»
14:46 ely-se joined
rarara_ m: enum End( :File(0x00000000), :Little(0x10000000), :Big(0x20000000), :Cpu(0x30000000)); say End(Big).base(16) 14:46
camelia rakudo-moar 987cde: OUTPUT«20000000␤»
FROGGS m: enum End( :File(0x00000000), :Little(0x10000000), :Big(0x20000000), :Cpu(0x30000000)); say End(0x20000000) 14:47
camelia rakudo-moar 987cde: OUTPUT«Big␤»
ilmari m: enum End( :File(0x00000000), :Little(0x10000000), :Big(0x20000000), :Cpu(0x30000000)); say Big.base(16)
camelia rakudo-moar 987cde: OUTPUT«20000000␤»
PerlJam ilmari++ FROGGS++ I was just about to do those! : ) 14:48
er, :)
FROGGS hehe
:\ ) # unspace allowed
itz_stmuk t/spec/S17-supply/throttle.t fails for me on a mac
14:49 sqirrel_ joined
FROGGS it fails on my box when my system is busy running a windows VM 14:49
moritz
.oO( hello, I'm a Mac. And I fail your spectests )
FROGGS :P
itz_stmuk oops wrong screen session .. I meant linux
:)
rarara_ Thanks
14:50 Zoffix left, ely-se left, jnm_theMailman joined
itz_stmuk just trying nuke 14:51
14:53 FROGGS left, jnm_theMailman_ joined 14:55 jnm_theMailman_ left 14:56 noganex joined, dj_goku_ joined
[Coke] lizmat: I'm not getting to the release until after $dayjob. 14:57
14:57 jnm_theMailman left, CurtisOvidPoe_ joined
[Coke] so, go to otwn. 14:57
*town
14:57 ggoebel2 joined
itz_stmuk refactor all the things! 14:57
14:59 sqirrel_ left, jdv79_ joined 15:00 xinming joined, erxeto joined, sergot_ joined, diakopte1 joined, BooK_ joined 15:01 mspo_ joined, zakharyas joined, sufrostico left 15:02 PotatoGim_ joined, Ven left 15:03 kjs_ left, ggherdov_ joined 15:04 timbunce_ joined, mjgardner joined, agentzh left, edehont joined, edehont left 15:05 n0tjack left
hoelzro itz_stmuk: throttle.t fails sometimes; it probably has a race condition or something 15:06
15:06 dalek left, colomon left, noganex_ left, dj_goku left, ggherdov left, CurtisOvidPoe left, mspo left, sergot left, synbot6 left, BooK left, lsm-desktop left, xinming_ left, ggoebel left, [Tux] left, Gardner left, hobbified left, samb1 left, PotatoGim left, jdv79 left, diakopter left, oha left, erxeto_ left, keix left, isacloud left, skarn left, timbunce left, CurtisOvidPoe_ is now known as CurtisOvidPoe, mjgardner is now known as Gardner, timbunce_ is now known as timbunce 15:07 jdv79_ is now known as jdv79
itz_stmuk ah 15:08
[Coke] CurtisOvidPoe: hio. Find any good bugs today?
CurtisOvidPoe Haven’t have a chance today. Been grading Perl 5 tests all week. 15:09
PerlJam Found any good candidates?
lizmat itz_stmuk: re t/spec/S17-supply/throttle.t , doesn't fail for me on a Mac
PerlJam I got the impression after your blog post that you were flooded with not-so-good applicants
lizmat but OTOH, maybe the timing tests are a bit too tight
CurtisOvidPoe And still trying to get ready for Amsterdam. I need to find a better example for the concurrency work since the examples I’ve created are now rakudobugs :)
[Coke] uhoh. and jnthn++'s on holiday this week. 15:10
all of the S17 tests are fiddly and need examining. :|
lizmat CurtisOvidPoe: do you have gists of the errors, or are they RT'd ?
CurtisOvidPoe PerlJam: yes, but it’s not a call we make until everyone finishes the process.
[Coke] Anyone has suggestions for more text on the birthday release, please read the placeholder release announcement and let me know. 15:11
lizmat itz_stmuk: which test specifically fail ?
15:11 isacloud joined
CurtisOvidPoe lizmat: one is simple. Setting the environment variable PERL5LIB to ‘lib’ causes ‘rakudobrew build panda’ to break. 15:11
[Coke] lurkers: want to help out? write a perl 6 script that grabs the list of Perl Monger groups in json, and compares it to the list of rakudo tag names, and gives a list of unused PM groups to use for a release name.
RabidGravy :) 15:12
PerlJam [Coke]++
lizmat [Coke]: shouldn't we just call this release "Birthday" ?
PerlJam lizmat: there is no Birthday.pm :)
CurtisOvidPoe liamat: gist.github.com/Ovid/8d3085d466110d78aeda is the gist in question.
[Coke] (i.e. www.pm.org/groups/perl_mongers.json)
15:12 diana_olhovik left
[Coke] lizmat: this release gets 3 tags. the monthly, the PM, and v6b (or however we're spelling it) 15:13
lizmat CurtisOvidPoe: that's the PERL5LIB one ?
15:13 jnm_theMailman joined
CurtisOvidPoe Yes. Should be an easy fix once the Perl 5 call is found. 15:13
itz_stmuk v6β 15:14
[Coke] ooooh, I think I have a PM group with a good name to use. :)
15:14 ely-se joined 15:15 colomon joined
CurtisOvidPoe And this is the one which is causing me to redo some slides for my talk: rt.perl.org/Public/Bug/Display.html?id=126390 15:15
15:16 PotatoGim_ is now known as PotatoGim 15:17 ely-se left, ggherdov_ is now known as ggherdov 15:18 govt joined
itz_stmuk [Coke]: which one? 15:19
lizmat CurtisOvidPoe: sorry, won't be able to fix that before Mon 15:20
CurtisOvidPoe Kind of figured that one :)
It looks non-trivial.
RabidGravy CurtisOvidPoe, that latter if you put a URI.new anywhere outside the start { } will work
CurtisOvidPoe Can someone point me to an example of *interesting* concurrent code that will fit on a slide? 15:21
RabidGravy the problem is tracked right down to something in the way URI loads the grammar
[Coke] itz_stmuk: itz_a_surprise
CurtisOvidPoe Note: sleepsort is funny, not interesting :)
Hmm, grammars have deadlocks? 15:22
lizmat afk for a bit, maybe longer
RabidGravy who knows? There's quite a lot of stuff going on in the constructor 15:23
CurtisOvidPoe Time to break out the coffman conditions. Though I’d be surprised if merely parsing a grammar grabs an unshareable resource.
15:23 rindolf left
RabidGravy i.e. perl6 -MHTTP::UserAgent -MURI -e 'my $url = "www.rakudo.org/"; URI.new; my $ua = HTTP::UserAgent.new; await start { say $ua.get($url) }' # works fine 15:24
15:24 govt left 15:25 hobbs joined
RabidGravy as long as it has required the grammar before hitting the thread 15:25
itz_stmuk It's a pity Advent.pm was used
and that none of these contain spaces 15:26
RabidGravy CurtisOvidPoe, so you could use the original example you had in mind but just gloss over the seemingly useless URI.new at the top of the code 15:27
CurtisOvidPoe RabidGravy: Hmm, I’ll give that a try.
15:28 tokuhirom_ left 15:31 raiph left
jdv79 or apply my PR 15:34
15:34 oha joined
jdv79 it seems to be something with require'ing something that's already loaded and threads 15:35
15:35 rindolf joined
jdv79 but the code that triggers it in URI is lame imo 15:35
RabidGravy: do you even get that constructor? 15:36
RabidGravy yeah 15:37
it works
[Coke] anyone run the inline Perl 5 tests recently?
jdv79 i know it works. lots of stuff can work and be lame.
RabidGravy er, I thought you meant something else 15:38
PerlJam What's the P6 equivalent ot P5's s///r ? /me is drawing a blank
15:39 kjs_ joined, Ataul joined
psch PerlJam: S/// i think? 15:40
m: $_ = "foo"; say S/o/u/; .say
camelia rakudo-moar 782b13: OUTPUT«「o」␤foo␤»
psch ISTR something changed there recently, though
m: my $x = "foo"; my $y = $x ~~ S/o/O/; say $x; say $y 15:41
camelia rakudo-moar 782b13: OUTPUT«foo␤「o」␤»
PerlJam I thought it was S/// too, but then I tried it :)
[Coke] t/spec/S17-supply/throttle.t failing for me locally (no surprise. :(
TimToady someone broke S///
Ataul Can someone help me with the GUI part of Perl 15:42
15:42 [Tux] joined
psch i think the S/// breakage is from 32d7b083 15:42
TimToady my fault for not writing tests
PerlJam Ataul: GUI part of Perl 6?
psch s/is/might be/
Ataul Yes
PerlJam Ataul: what's the question? 15:43
or problem
or whatever
Ataul will Tk module work fine in Perl 6
lizmat [Coke]: which test is failing for Supply.throttle ?
Ataul i haven't installed perl 6 yet. just curious to know about perl 6 15:44
itz_stmuk Ataul: no but GTK might
Ataul ok. Thanks
15:45 colomon left
lizmat moritz: looks like dalek is awol again 15:45
15:46 skarn joined
PerlJam Ataul: you could make a Tk binding for Perl 6 :) 15:46
15:46 tokuhiro_ joined
Ataul What do you guys think best module to work for perl GUI? 15:46
Tk? or do u suggest something else
15:47 mattn joined, mattn left
PerlJam There aren't as many options for GUIs for Perl 6 as there are for Perl 5 (yet). 15:47
[Coke] lizmat: didn't save it. "S17 fails under load" is an unfortunate reality. :| 15:48
Ataul ok
PerlJam If I were going to write a GUI app right now in Perl, I would use Perl 5.
Ataul ok.. Thanks [perlJam]
15:48 telex left
pink_mist . o O ( if PerlJam is [PerlJam], does that mean [Coke] is [[Coke]]? ) 15:49
15:49 lsm-desktop joined
PerlJam pink_mist: only if you speak POSIX 15:49
pink_mist hah
15:50 dalek joined
RabidGravy bindings for GUI libraries tend to be a lot of work so you have to be peculiarly motivated I guess ;-) 15:50
15:50 telex joined, ChanServ sets mode: +v dalek
PerlJam or have figured out a way to automate most of the work. 15:50
15:50 tokuhiro_ left
RabidGravy indeed 15:50
15:50 colomon joined 15:52 zakharyas left, grondilu joined
nine I dare say there aren't even that many good options for GUIs in Perl 5... 15:53
15:53 keix joined
Ataul @nine I agree 15:54
itz_stmuk I wouldn't even write a GUI in perl 5 TBH 15:55
15:56 abraxxa left 15:57 pollei joined 15:58 mattn_jp joined
dalek kudo/nom: 0e26a47 | lizmat++ | / (2 files):
Oops, forgot to also change the generator
15:58
15:59 pollei left 16:00 mattn_jp left, mattn_jp joined
ilmari [Coke]: ’ is not an apostrophe 16:01
' is an apostrophe
16:01 pollei joined, mattn_jp left
ilmari ’ - U+02019 - RIGHT SINGLE QUOTATION MARK 16:01
that's for closing a quotation started by ‘ - U+02018 - LEFT SINGLE QUOTATION MARK
tedclancy.wordpress.com/2015/06/03...ery-wrong/
16:01 mattn_jp joined, mattn_jp left
ilmari if you absolutely want something unicodey, use ʼ - U+002BC - MODIFIER LETTER APOSTROPHE 16:02
masak 'night, #perl6
dalek ast: 22d8cbe | lizmat++ | S17-supply/throttle.t:
Hopefully make test less load sensitive
16:04
pink_mist ilmari: I read that blog post a month or two ago .. he has some very good points imo
ilmari pink_mist: yeah
16:05 Ataul left 16:06 mattn_jp joined 16:08 rbk_ joined
[Coke] ilmari: thank you. 16:10
16:11 Ven joined
loren night, #perl6 .. o/ 16:13
16:13 loren left
rbk_ msg I downloaded rakudo-star-2015.09.tar.gz and did tar zxvf into the directory rakudo-star-2015.09 16:13
When I run perl Configure.pl --backend=moar --gen-moar
I get the following errors 16:14
3rdparty/libuv/src/unix/fs.c: In function ‘uv__fs_read’: 3rdparty/libuv/src/unix/fs.c:248:5: error: ISO C90 forbids mixed declarations and code [-Werror=declaration-after-statement] static int no_preadv; ^ 3rdparty/libuv/src/unix/fs.c: In function ‘uv__fs_write’: 3rdparty/libuv/src/unix/fs.c:606:5: error: ISO C90 forbids mixed declarations and code [-Werror=declaration-after-statement] static int no_pwritev; 16:17
16:17 jevin left
grondilu what's your compiler? 16:17
rbk_ I am using gcc version 4.8.2
on linux 16:18
gfldex gcc (Debian 4.9.2-10) 4.9.2 works fine for me
16:19 n0tjack joined
rbk_ Oh, ok. Thank you gfldex and grondilu 16:19
I will try with 4.9.2
RabidGravy yeah 5.1.1 here and a few warnings but no error
rbk_ Thanks, RabidGravy 16:20
grondilu gcc (Raspbian 4.9.2-10) 4.9.2
Copyright (C) 2014 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
(sorry for the verbose output, ran /exec -out gcc --version)
rbk_ How about gcc 5.2? Did anybody try that?
16:20 araujo left
grondilu looks fairly bleeding edge 16:21
give it a try and report to us :)
RabidGravy I just take what I get ;-)
rbk_ Yeah, I will try and report back :) 16:22
Yesterday I tried to install git so I can do git clone 16:24
git installed successfully, but when I tried to clone, it said "No remote helper for https" available 16:25
16:25 mattn_jp left 16:26 mattn_jp joined, mattn_jp left
dalek kudo/nom: d70ff74 | coke++ | docs/release_guide.pod:
use more -correct- unicode

  ilmari++
16:27
rbk_ Any ideas on how to make enable https for git?
[Coke] ilmari: ^^ better?
16:27 mattn_jp joined
ilmari rbk_: use an https url 16:27
16:27 eliasr left
itz_stmuk lizmat++ # 100% passes now 16:27
16:27 araujo joined
ilmari [Coke]: yes 16:29
rbk_ ilmari: I tried the url git clone github.com/tadzik/rakudobrew ~/.rakudobrew
16:29 araujo left
gfldex rbk_: what's your git --version ? 16:29
[Coke] rbk_: github.com/tadzik/rakudobrew.git
ilmari rbk_: and what happened?
[Coke] You appear to be missing a .git 16:30
ilmari [Coke]: theres's a bunch of ’ being used as apostrophes in docs/announce/ as well
rbk_ git version 2.6.1
dalek kudo/nom: a76c349 | coke++ | docs/announce/2015.10.md:
use more -correct- unicode

   ilmari++
16:31
[Coke] ilmari: done.
ilmari coke++
rbk_ ilamari: I got the message Unable to find remote helper for https
16:32 PrometheusX_ joined
gfldex rbk_: you may be missing curl 16:32
[Coke] rbk_: how did you install git?
(missing .git on that url doesn't seem to matter, ah well)
ilmari gfldex: does git really use curl?!
do you mean libcurl?
gfldex libcurl actually, last time i checked 16:33
ilmari yeah, /usr/lib/git-core/git-remote-http on my system is linked against libcurl-gnutls.so.4
rbk_ I followed the isntructions from git-scm.com/book/en/v2/Getting-Sta...alling-Git
mattn_jp why don't use single quote? because avoiding issues on markdown?
gfldex on debian/stable dep: libcurl3-gnutls (>= 7.16.2)
ilmari rbk_: which linux distribution are you using?
gfldex rbk_: if you are on debian you could try to install git-all 16:34
rbk_ I am using RedHat
16:34 kmel joined
gfldex there is your problem! :-> 16:34
ilmari rbk_: that page has many different ways of installing it. which did you use? 16:35
16:35 AlexDaniel joined
rbk_ I followed the instructions at the end of that page under the heading "Then, compile and install:" 16:36
ilmari rbk_: why did you not not use the "installing on linux" instructions at the top?
"sudo yum install git"
16:37 ^elyse^ joined
rbk_ ilmari: I don't have root access this linux box 16:37
ilmari rbk_: ask whoever has root to install it for you
or at least openssl-devel, so you can build your own with https support
rbk_ ilmari: Thank you, I will that 16:38
gfldex or you try to substitute https with http or git
ilmari for the specific case of github, yes
mattn_jp anyone help me please.
16:38 Hor|zon_ joined
mattn_jp now I'm trying to port Plack::Middleware::ErrorDocument. 16:38
And I'm having problem to pass arguments like perl5 as below 16:39
500 => '/path/to/500.html'
dalek kudo/nom: fb39bda | PerlJam++ | / (2 files):
tool for Coke++
rbk_ gfldex: I tried replacing https with http. Even for http, it gave me remote helper not found message
mattn_jp But perl6 occur errors when arguments are defined as *%args 16:40
for example: sub enable(*%args) { say %args; }
gfldex mattn_jp: see design.perl6.org/S06.html#Named_arguments
ilmari rbk_: looks like you don't have curl-devel either
rbk_ gfldex: I tried with git:// and it just hangs there
ilmari rbk_: looks like you're firewalled
rbk_: just get your sysadmin to install git using yum already
PerlJam mattn_jp: What's the error(s) you get ?
mattn_jp gfldex: yes, i know. but: this should work. enable foo => 1, bar => 2;
but enable 500 => 1; 16:41
this doesn't
gfldex rbk_: are you in some educational institution?
mattn_jp Too many positionals passed; expected 0 arguments but got 1
16:41 Ven left, Hor|zon left
gfldex mattn_jp: try '500' => 1 16:41
rbk_ I am working for a telcom company
psch m: sub enable (*%args) { say %args }; enable 500 => 1
camelia rakudo-moar 0e26a4: OUTPUT«Too many positionals passed; expected 0 arguments but got 1␤ in sub enable at /tmp/d1Rss6TeA4:1␤ in block <unit> at /tmp/d1Rss6TeA4:1␤␤»
mattn_jp but not same as perl5 way.
gfldex rbk_: i'm sorry to hear that :->
ilmari m: sub (*%args) { say %args }( '500' => 1 )
psch m: sub enable (*%args) { say %args }; enable foo => 1
camelia rakudo-moar 0e26a4: OUTPUT«Too many positionals passed; expected 0 arguments but got 1␤ in sub at /tmp/wECqwQHWTp:1␤ in block <unit> at /tmp/wECqwQHWTp:1␤␤»
rakudo-moar 0e26a4: OUTPUT«foo => 1␤»
ilmari m: sub (*%args) { say %args }( 'foo' => 1 ) 16:42
camelia rakudo-moar 0e26a4: OUTPUT«Too many positionals passed; expected 0 arguments but got 1␤ in sub at /tmp/rI3GYMkA76:1␤ in block <unit> at /tmp/rI3GYMkA76:1␤␤»
ilmari m: sub (*%args) { say %args }( foo => 1 )
camelia rakudo-moar 0e26a4: OUTPUT«foo => 1␤»
nine mattn_jp: named arguments must be valid identifiers
mattn_jp: they cannot start with numbers
ilmari m: sub (%args) { say %args }( (500 => 1) )
camelia rakudo-moar 0e26a4: OUTPUT«500 => 1␤»
mattn_jp m: sub enable(|args) { say args; }; enable 500 => 1; 16:43
camelia rakudo-moar 0e26a4: OUTPUT«\(500 => 1)␤»
mattn_jp i know this way works fine but. can't define with types.
16:43 Hor|zon joined
psch m: sub enable(|args) { say args.hash; }; enable 500 => 1; 16:43
camelia rakudo-moar 0e26a4: OUTPUT«Map.new()␤»
psch mattn_jp: as nine says, '500 => 1' is not a valid named argument 16:44
rbk_ ilmari: gfldex: Thanks a lot for your suggestions, I will try them
nine m: sub foo(:$500) { }
camelia rakudo-moar 0e26a4: OUTPUT«5===SORRY!5=== Error while compiling /tmp/qw45WtLJN4␤Cannot declare a numeric parameter␤at /tmp/qw45WtLJN4:1␤------> 3sub foo(:$5007⏏5) { }␤»
16:44 Hor|zon_ left
mattn_jp psch: is it spec of perl6? 16:44
search.cpan.org/dist/Plack/lib/Plac...ocument.pm 16:45
nine mattn_jp: why are you trying to pass that as named argument anyway? Couldn't you just accept a positional one? You will get a Pair.
psch mattn_jp: i'm pretty confident it is, yes
nine m: sub foo($arg) { say "{$arg.key}, {$arg.value}"; }; foo 500 => 1;
camelia rakudo-moar 0e26a4: OUTPUT«500, 1␤»
16:46 adu joined
PerlJam mattn_jp: S06:Named arguments 16:46
mattn_jp: S06:778
oh, no bot
16:47 PrometheusX_ left
psch m: my enum HTTPCodes <200, 400, 500>; sub f(%h) { %h.perl.say }; f 500 => 1; 16:47
camelia rakudo-moar 0e26a4: OUTPUT«500 => 1␤»
psch vOv
that's just hacking around it, and i'd actually discourage it :P
16:47 synbot6 joined
mattn_jp m: sub foo($arg) { say "{$arg.key}, {$arg.value}"; }; foo foo => 1; 16:47
camelia rakudo-moar 0e26a4: OUTPUT«Too few positionals passed; expected 1 argument but got 0␤ in sub foo at /tmp/hLn_VS62Hv:1␤ in block <unit> at /tmp/hLn_VS62Hv:1␤␤»
16:47 tokuhiro_ joined
mattn_jp my fault 16:47
ilmari m: grep { / ^ <[A..Z]> \w+ / }, <foo Bar bat Zoot> 16:48
camelia ( no output )
ilmari m: say grep { / ^ <[A..Z]> \w+ / }, <foo Bar bat Zoot>
camelia rakudo-moar 0e26a4: OUTPUT«(Bar Zoot)␤»
mattn_jp m: sub enable($arg) { say "{$arg.key}, {$arg.value}"; }; enable foo => 1;
camelia rakudo-moar 0e26a4: OUTPUT«Too few positionals passed; expected 1 argument but got 0␤ in sub enable at /tmp/d6rNy5ybwe:1␤ in block <unit> at /tmp/d6rNy5ybwe:1␤␤»
ilmari bah, my rakudo is too old
ilmari nukes and rebuilds
mattn_jp P::M::E should take multiple arguments with number prefixed keys. 16:49
nine m: sub enable($arg) { say "{$arg.key}, {$arg.value}"; }; enable "foo" => 1;
camelia rakudo-moar 0e26a4: OUTPUT«foo, 1␤»
nine mattn_jp: ^^^ 16:50
mattn_jp m: sub enable($arg) { say "{$arg.key}, {$arg.value}"; }; enable "foo" => 1, "bar" => 2;
camelia rakudo-moar 0e26a4: OUTPUT«Too many positionals passed; expected 1 argument but got 2␤ in sub enable at /tmp/JKkEasrROq:1␤ in block <unit> at /tmp/JKkEasrROq:1␤␤»
ilmari m: sub enable (%args) { say %args }; enable foo => 42, 500 => 37
camelia rakudo-moar 0e26a4: OUTPUT«Unexpected named parameter 'foo' passed␤ in sub enable at /tmp/G8p0gkfBtk:1␤ in block <unit> at /tmp/G8p0gkfBtk:1␤␤»
16:50 espadrine_ left
ilmari m: sub enable (%args) { say %args }; enable (foo => 42, 500 => 37) 16:50
camelia rakudo-moar 0e26a4: OUTPUT«Type check failed in binding %args; expected Associative but got List␤ in sub enable at /tmp/htVJ3kBfy7:1␤ in block <unit> at /tmp/htVJ3kBfy7:1␤␤»
ilmari m: sub enable (%args) { say %args }; enable {foo => 42, 500 => 37}
camelia rakudo-moar 0e26a4: OUTPUT«500 => 37, foo => 42␤»
nine m: sub enable(@args) { say "{$_.key}, {$_.value}" for @args; }; enable "foo" => 1, 500 => 37; 16:51
camelia rakudo-moar 0e26a4: OUTPUT«Too many positionals passed; expected 1 argument but got 2␤ in sub enable at /tmp/hUgfTNzQWr:1␤ in block <unit> at /tmp/hUgfTNzQWr:1␤␤»
16:51 rurban left
nine m: sub enable(*@args) { say "{$_.key}, {$_.value}" for @args; }; enable "foo" => 1, 500 => 37; 16:51
camelia rakudo-moar 0e26a4: OUTPUT«foo, 1␤500, 37␤»
mattn_jp needless braces...
so quote is required? 16:52
nine m: sub enable(*@args, *%args) { say "{$_.key}, {$_.value}" for flat @args, %args; }; enable foo => 1, 500 => 37;
camelia rakudo-moar 0e26a4: OUTPUT«500, 37␤foo, 1␤»
16:52 rurban joined, tokuhiro_ left, araujo joined
nine mattn_jp: there's a way around that ^^^ 16:52
psch mattn_jp: it really depends on your motivation
mattn_jp yes man!
awesome.
psch mattn_jp: from what i can see you want to copy the interface 1:1 from perl5, which i don't know if that's a good idea
nine mattn_jp: what psch++ said. 16:53
psch mattn_jp: if you're set on that there's two ways around it, the one shown by nine++ probably the cleaner one
16:53 edehont joined
mattn_jp thanks. nine/psch 16:53
will apply this into github.com/tokuhirom/p6-Crust/blob...cument.pm6 :) 16:55
16:55 edehont left
n0tjack What is MoarVM written in? 16:55
ilmari n0tjack: C
mattn_jp AFAIK, C.
16:56 zakharyas joined
n0tjack wow, I applaud anyone who's willing to write C so the rest of us never have to write C 16:56
ilmari 97.2% C, 1.7% Perl, 1.1% other, according to github
n0tjack Perl as in "Perl 5", or Perl as in "Perl 6"? 16:57
psch the Perl in moar is probably mostly Configure.pl
Perl 5
ilmari n0tjack: a bit of both. Configure is perl5, tools/* is perl6
psch oh
ilmari (and a bit of perl 5, sh and python)
n0tjack python! heretics.
psch well, i'm not really in the mvm codebase either... the C sentiment holds :) 16:58
ilmari n0tjack: it's for extending gdb
psch goes back to debugging java... :P
n0tjack what are the major barriers to a self-hosting p6?
(I suppose I mean above the VM level)
why nqp instead of qp? 16:59
psch S99:Circularity_Saw
synbot6 Link: design.perl6.org/S99.html#Circularity_Saw
psch some pieces don't fit together to well
nine came across a spot with Bool, and the bit on jvm i'm working could probably also be argued to have similar causes underneath
n0tjack that link doesn't really answer thr question so much as punt it 17:00
psch m: say Attribute.^attributes[0].WHAT
camelia rakudo-moar a76c34: OUTPUT«Method 'gist' not found for invocant of class 'BOOTSTRAPATTR'␤ in block <unit> at /tmp/s3ny_JjIBG:1␤␤»
n0tjack psch: ah, well, it's an academic question anyway
psch n0tjack: ^^^ that's one of the obvious things lie beyond the vm-level
n0tjack psch: I've seen a lot of Type.^something recently -- what's with the ^?
psch n0tjack: Foo.^meth is Foo.HOW.meth(Foo) 17:01
n0tjack ah, htanks
also, and in addition, thanks.
psch n0tjack: HOW is the Higher Order Workings, i.e. the meta object
m: Any.HOW.^name.say
camelia rakudo-moar a76c34: OUTPUT«Perl6::Metamodel::ClassHOW␤»
n0tjack m: Mu.HOW.say; 17:02
camelia rakudo-moar a76c34: OUTPUT«Perl6::Metamodel::ClassHOW.new␤»
mattn_jp one more question.
is it possible to inherit Any?
psch mattn_jp: everything automatically inherits from Any
mattn_jp for example, making to-json method for all types.
psch m: class Foo { }; Foo.^mro.say 17:03
camelia rakudo-moar a76c34: OUTPUT«((Foo) (Any) (Mu))␤»
psch (terms and conditions may apply)
17:03 virtualsue joined
psch mattn_jp: you want to mixin into Any, which currently has strong caveats - i.e. you need to recompose every object that's supposed to know about the mixin 17:03
17:03 tokuhirom_ joined, ggoebel2 left
psch mattn_jp: if this is only about supplying and object-y notation you can use object notation with routine names directly 17:04
mattn_jp psch: it's not possible to add_method on Any.
Should be mu?
dalek kudo/nom: 75e92fc | diakopter++ | src/Perl6/Actions.nqp:
fix S///
17:05
kudo/nom: 6c810d8 | diakopter++ | / (3 files):
Merge branch 'nom' of github.com:rakudo/rakudo into nom
psch m: Any.^add_method("foo", method (Any: ) { say "impossible" }); Any.foo
camelia rakudo-moar a76c34: OUTPUT«impossible␤»
gfldex mattn_jp: it is possible to add_method to Any but it wont bubble up to childs
17:05 firstdayonthejob joined
psch mattn_jp: it is clearly possible to add_method on Any, but you need to recompose every child that should know the method 17:05
mattn_jp gfldex: yes, that's right.
psch m: Any.^add_method("foo", method (Any: ) { say "impossible" }); Int.^compose; Int.foo
camelia rakudo-moar a76c34: OUTPUT«impossible␤»
psch m: Any.^add_method("foo", method (Any: ) { say "impossible" }); Int.foo
camelia rakudo-moar a76c34: OUTPUT«Method 'foo' not found for invocant of class 'Int'␤ in block <unit> at /tmp/_i5IfdSLP2:1␤␤»
psch (recomposing the class that had the method added is also something you probably want to do, due to caching) 17:06
PerlJam mattn_jp: besides ... you could just use the to-json multi-sub that comes with Rakudo :)
psch m: Any.&to-json.say
camelia rakudo-moar a76c34: OUTPUT«null␤»
psch ^^^ that's the object-y notation i was talking about a bit before
mattn_jp hmm.
ilmari m: Any.new.&to-json.say
camelia rakudo-moar a76c34: OUTPUT«Can't serialize an object of type Any␤ in block <unit> at /tmp/KffYLvQ4zH:1␤␤»
ilmari m: Date.today.&to-json.say 17:07
camelia rakudo-moar a76c34: OUTPUT«Can't serialize an object of type Date␤ in block <unit> at /tmp/dvWYTXYABm:1␤␤»
ilmari m: Date.today.say
camelia rakudo-moar a76c34: OUTPUT«2015-10-22␤»
ilmari m: Date.today.Str.&to-json.say
camelia rakudo-moar a76c34: OUTPUT«"2015-10-22"␤»
diakopte1 m: $_="foo"; say S/o/l/
camelia rakudo-moar a76c34: OUTPUT«「o」␤»
mattn_jp m: Any.^add_method( 'to-json', method () { say "Jesus"; }); 1.to-json;
camelia rakudo-moar a76c34: OUTPUT«Method 'to-json' not found for invocant of class 'Int'␤ in block <unit> at /tmp/hhkt13jiVd:1␤␤»
17:07 diakopte1 is now known as diakopter
psch m: Any.^add_method( 'to-json', method () { say "Jesus"; }); Int.^compose; 1.to-json; 17:07
camelia rakudo-moar a76c34: OUTPUT«Jesus␤»
17:08 tokuhirom_ left
mattn_jp oh, i/stand 17:08
psch: thanks!
psch mattn_jp: it's actually not a good idea to want to do that, in my opinion
mattn_jp psch: i see.
PerlJam
.oO( but, but, ruby does it! )
17:09
(sorta)
mattn_jp lol
psch m: Any.^add_method("foo", my method foo { say "foo" }); class Bar { method foo { say "bar" } }; Bar.new.foo
camelia rakudo-moar a76c34: OUTPUT«bar␤»
dalek ast: e82eb2d | TimToady++ | S05-substitution/subst.t:
add tests for S///
17:11
nine psch: I just can't shake the feeling that my Bool problem and your JVM Attribute thing are connected
diakopter sorry for the merge commit 17:12
17:12 Hor|zon left 17:13 raiph joined
diakopter raiph: heya 17:13
17:15 kmel left 17:17 dakkar left, rbk_ left
psch nine: you can try applying this diff to nqp gist.github.com/peschwa/e63482bc9c260a654f96 17:19
nine: err, no, not that one hold on
nine: updated the gist at the same link 17:20
nine: if it's related you should get "type object: Bool from SC: gen/jvm/BOOTSTRAP.nqp to SC: gen/jvm/CORE.setting" on stderr during CORE compilation 17:21
nine: on your branch that is
17:21 ggoebel joined
psch nine: the curious bit is, that according to all i can see from the outside moar has the same problem but just doesn't care, in contrast to jvm 17:22
i'll readily admit that might be because i have no clue how to verify that moar does the same stuff behind the scenes - printf debugging somehow didn't work the last time i tried :P
17:24 leont joined
[Coke] yay, looks like if I ever roll out a perl 6 web app at $dayjob, it won't have to be in java. 17:25
17:25 Ch0c0late joined
[Coke] diakopter++ welcome back. :) 17:25
17:27 ^elyse^ left, FROGGS joined 17:28 jevin joined
diakopter FROGGS: sry I mangled your codegen code 17:28
m: $_="foo"; say S:Fuuuuuuuuuu/o/l/ 17:30
camelia rakudo-moar 6c810d: OUTPUT«5===SORRY!5=== Error while compiling /tmp/WvLsGU5Xjp␤Adverb Fuuuuuuuuuu not allowed on substitution␤at /tmp/WvLsGU5Xjp:1␤------> 3$_="foo"; say S:Fuuuuuuuuuu/o/l/7⏏5<EOL>␤»
diakopter m: $_="foo"; say S:g/o/l/
camelia rakudo-moar 6c810d: OUTPUT«fll␤»
17:30 samb1 joined
diakopter ^ Ft Lauderdale 17:30
17:31 st_iron joined
st_iron good afternoon 17:31
FROGGS diakopter: you did what? O.o
diakopter hiiii
st_iron wow this channel is growing
it's almost Christmas
[Coke] tries to find "S" on the doc site.
diakopter [Coke]: see TimToady's last commit to roast
mattn_jp similar to ruby: gist.github.com/mattn/6550bc27cf55f11d1136
FROGGS diakopter: and there is no spectest fallout? what does your patch solve? 17:32
diakopter TimToady wrote tests for it
I dunno; we didn't run the whole spectest suite
probably should...
[Coke] diakopter: sure, but I still can't find it on the doc site. :)
TimToady I ran the tests 17:34
FROGGS hah!
TimToady is also unbreaking the S/// in smartmatch warning
FROGGS TimToady: now S/// does what I proposed it might should do :o)
TimToady I don't know what you proposed
FROGGS and also what my local code did before I changed it
TimToady S/// returned the modified string before
S/// was an experiment at the time, so was sub-documented :) 17:35
FROGGS ahh yes 17:36
dalek kudo/nom: 006526c | TimToady++ | src/Perl6/Actions.nqp:
restore S/// in smartmatch warning
FROGGS I proposed to return the replacement for s/// instead... irclog.perlgeek.de/perl6/2015-10-17#i_11393001
so, nvm
n0tjack .mangle my bonnie lies over the ocean 17:39
yoleaux Further builders are above sea level
n0tjack .mangle life, the universe, and everything
yoleaux Life, the universe and everything
n0tjack .mangle Neither snow nor rain nor heat nor gloom of night stays these couriers from the swift completion of their appointed rounds. 17:40
yoleaux Neither snow nor rain nor heat nor darkness of night, the completion of their appointed rounds this fast couriers.
n0tjack meh
17:42 mattn_jp left, muraiki joined
leont How can I detect if I'm running rakudo-moar or rakudo-jvm? 17:44
n0tjack perl6 --version
psch r: say $*VM
FROGGS m: say $*PERL.compiler.name
camelia rakudo-jvm 6c810d: OUTPUT«jvm (1.7)␤»
..rakudo-moar 6c810d: OUTPUT«moar (2015.9.79.gee.9.fc.2.b)␤»
rakudo-moar 6c810d: OUTPUT«rakudo␤»
FROGGS ohh, $*VM... 17:45
m: sub foo { @_ = 42; if @_ -> { say &?BLOCK } }; foo # a pointy does not set &?BLOCK?
camelia rakudo-moar 6c810d: OUTPUT«sub foo (*@_) { #`(Sub|76137832) ... }␤»
diakopter m: say $*VM 17:46
camelia rakudo-moar 6c810d: OUTPUT«moar (2015.9.79.gee.9.fc.2.b)␤»
leont $*VM.name it is
m: say $*VM.name
camelia rakudo-moar 6c810d: OUTPUT«moar␤»
[Coke] t/spec/S17-procasync/kill hanging on a stress test run; killing it, everything still passes. 17:47
FROGGS m: if 42 -> $a { say $a }; if 42 -> *@_ { say @_ } 17:48
camelia rakudo-moar 6c810d: OUTPUT«42␤[]␤»
FROGGS that is quite strange
psch m: if 42 -> $a { say $a }; if 42 -> *@b { say @b } 17:49
camelia rakudo-moar 6c810d: OUTPUT«42␤[]␤»
psch m: if [42] -> *@b { say @b }
camelia rakudo-moar 6c810d: OUTPUT«[]␤»
psch m: (-> *@_ { say @_ })(42) 17:50
camelia rakudo-moar 6c810d: OUTPUT«[42]␤»
FROGGS weird
psch m: if 42 -> @b { say @b } 17:51
camelia rakudo-moar 6c810d: OUTPUT«Type check failed in binding @b; expected Positional but got Int␤ in block <unit> at /tmp/xrhayv4KnY:1␤␤»
psch m: if [42] -> @b { say @b }
camelia rakudo-moar 6c810d: OUTPUT«[42]␤»
psch huh
FROGGS do we just check for the arity?
psch no idea 17:54
FROGGS P6::A:7085 is interesting
psch i have something more of a clue wrt the jvm SC stuff though
FROGGS as well as this comment: $pb.arity(1); # gotta force this, or Block node gets optimized away
\o/
psch: I love you :o) 17:55
psch uh.. :x
FROGGS *g*
psch afaiu, BEGIN blocks *always* add the result to the current SC
which is probably not quite right
and 'BEGIN Attribute.^compose;' returns the new Attribute
- self.add_object($r); 17:57
+ self.add_object_if_no_sc($r);
in Perl6/World.nqp:2400 might be enough...
eh, line 2403 actually
misread the git diff :)
FROGGS hmmmm 17:59
psch not sure how much we actually can/(want to) use .add_object in Perl6::World, especially if this is actually the reason for the bug
FROGGS I guess you have to add it to the current SC 18:00
how do you want to alter the other SC? I mean, you can only load it
that's reposession, no?
psch FROGGS: we don't want to alter the SC, the type object doesn't have any state
FROGGS: we want to alter the STable which knows the methods though 18:01
18:01 ^elyse^ joined
psch at least that's my understanding from what jnthn said about this whole thing... :s 18:01
FROGGS what if we reparent a type object... do we want to own it then? 18:02
psch reparent?
FROGGS like moving a type underneath a just created type... like we move stuff under Any
just as an example 18:03
but for Attribute, won't the recomposed Attribute not have a new STable?
psch (fwiw, make runs through with that change)
gotta take care of some stuff quickly, back in around 10 or so 18:04
FROGGS a precomp test might give insights
k
ahh I guess you don't even need a precomp test... 18:06
18:06 espadrine_ joined
FROGGS if we recompose Attribute at compile time of the setting, and dont add it to the SC of the setting, we would already know when we run the setting later 18:06
18:06 llfourn left
FROGGS like, we run perl6-j and the Attribute we see would still have an STable from BOOTSTRAP 18:07
18:08 xpen joined 18:09 softmoth joined 18:13 kjs_ left, diana_olhovik_ joined
psch $ ./perl6-j -e'Attribute.map({ .say })' 18:13
(Attribute)
FROGGS: i think that proves enough, doesn't it?
FROGGS: 'cause .map gets added during CORE.setting compilation
nine psch: you're a genius! 18:16
jdv79 gist.github.com/anonymous/e329f07eca6b0f894162
anyone get why the p6 one is failing?
i don't see it ^H
psch nine: err, ok..? :)
jdv79 hmm, well that p5 one has my user hardcoded:( 18:17
18:17 vendethiel joined
nine psch: the good news is that with self.add_object_if_no_sc($rc); my Bool issue is finally gone! Bool.isa(Bool) now. The bad news is that I get segfaults with e.g. Bool.pick(*).elems 18:19
timotimo ah, i've finally caught up with backlog
lizmat nine: I just found out that Regex.Bool should do what I discussed earlier
it doesn't
timotimo itz_stmuk: do you realize that 10000 iterations of creating an object, assigning an attribute, and stringifying the object basically measures start-up time?
psch nine: i suspect moar is cheating somewhere with its SC handling. no idea if that's behind your segfault though 18:20
timotimo itz_stmuk: if you add a couple zeroes, you'll be measuring our implementation of for-ing over ranges (soon to be automatically converted into a proper loop loop again, hopefully)
lizmat seems like it expects to find $_ one level up, but it needs to look up 2 levels
m: $_ = "foo"; say ?/./ # this should work, right ? 18:22
camelia rakudo-moar 006526: OUTPUT«Method 'match' not found for invocant of class 'Any'␤ in block <unit> at /tmp/XfPgP7MSjL:1␤␤»
FROGGS psch: does that mean that the new STable get added to the SC anyway?
18:22 diana_olhovik_ left
FROGGS m: $_ = "foo"; say ?m/./ 18:23
camelia rakudo-moar 006526: OUTPUT«True␤»
FROGGS lizmat: this should
lizmat apparently, Regex.Bool is now 2 call frames away from the callee 18:24
if I look up one more level, it all works
FROGGS I wonder why ?/./ tries to match at all... is it meant to?
lizmat it is meant to, looking at Regex.Bool
FROGGS star-m: $_ = "foo"; say ?/./
camelia star-m 2015.09: OUTPUT«Method 'match' not found for invocant of class 'Any'␤ in block <unit> at /tmp/IUHuTqbuKG:1␤␤»
lizmat so it's been broken for a while :-) 18:25
but Regex.Bool tries to find $_ to match with and return its result
and even set $/
psch FROGGS: afaiu, there's a fixup for the STable during deserialization of CORE 18:26
18:26 xpen left
psch FROGGS: the type object itself gets deserialized from BOOTSTRAP 18:26
FROGGS hmmm, so the STable makes it to the new SC
lizmat FROGGS: question is now whether the fact that the proto is not oprtimized away, is the bug
FROGGS otherwise there would be no fixup
nine lizmat: when code depends on an optimization to work, I become nervous 18:27
lizmat yeah
FROGGS lizmat: and I guess the (perhaps more expensive) CALLERS does not work there?
lizmat will try 18:28
CALLER::CALLER worked :-)
FROGGS nine: there is low level code that does not ignore protos, and then there is high level code that does
lizmat: CALLER*S*
lizmat yeah... :-)
18:29 Hor|zon joined
FROGGS CALLER # Contextual symbols in the immediate caller's lexical scope 18:29
CALLERS # Contextual symbols in any caller's lexical scope
not quite what I thought but it might still work
itz_stmuk timotimo: I had more zeros at first but got bored of waiting
timotimo: I'll experiment and probably update 18:30
FROGGS CLIENT might not work in this case though
timotimo hah
lizmat FROGGS: CALLERS doesn't cut it 18:31
psch FROGGS: actually, i remember having debug-seen repossession of the Attribute STable to CORE
FROGGS :/
psch: that's good then
lizmat FROGGS: trying CLIENT 18:32
psch FROGGS: i'm still wondering what's behind moar never having cared about the reassignment of the SC...
FROGGS lizmat: if the $_ is now always to frames away, then just add another nqp::ctxcaller or what it is called... 18:33
lizmat FROGGS: yeah, that works, tried that
but it feels fragile
FROGGS lizmat: why? because someone might remove the proto?
lizmat or it might be optimized away ? 18:34
nine lizmat: how do you feel about rebasing curli on nom? Right now there are more merge commits in it than real ones.
18:34 kjs_ joined
lizmat nine: not a good idea, because it contains some WIP of mine 18:34
psch MVM_sc_set_obj_sc calls MVM_sc_set_collectable_sc, and the latter doesn't really make sense to me
lizmat which breaks precomp atm
nine lizmat: understood
FROGGS lizmat: I guess the optimization should either not optimize/inline stuff that fiddles with caller or it should fake the inlined frames so caller works
itz_stmuk 90 wallclock s for perl 6 v 120 for perl5 with 1m objs 18:35
YMMV
lizmat well, sometime in the past, something happened there, and Regex.Bool broke
wonder if that happened during the GLE
GLR
itz_stmuk . o O ( I should compile the perl5 with threads )
psch itz_stmuk: that's object creation on Moose vs rakudo-m?
(just guessing :s )
itz_stmuk basically yes 18:36
nine itz_stmuk: is it with immutable Moose classes?
itz_stmuk no
nine The __PACKAGE__->meta->make_immutable; has huge performance impact on object creation 18:37
Since it inlines the constructor
itz_stmuk its a naive test .. I didn't want to customize too heavily
I suppose I could have used ints on the loop
and not used say since ours isn't buffered 18:38
etc etc
jdv79 moose without make_immutable is unthinkable!
itz_stmuk I've seen plenty of production code without it 18:39
jdv79 must not be perf sensitive then
lizmat FROGGS: Regex.ACCEPTS uses the same idea to access $/, but that *does* work correctly with only 1 level 18:40
jdv79 seems H::UA may not know how to consume cookies very well
dalek c: 7e45aeb | (Steve Mynott)++ | doc/Language/faq.pod:
[FAQ] bump example to 1m objs timotimo++
18:41
18:42 rurban left
xenu win 11 18:42
oops
;)
FROGGS :o) 18:43
timotimo itz_stmuk: and the timings? 18:44
also, i really like putting _ into numbers that match 1 0+
FROGGS m: $_ = "foo"; (/./).Bool; say $/
camelia rakudo-moar 006526: OUTPUT«「f」␤»
FROGGS m: $_ = "foo"; ?/./; say $/ 18:45
camelia rakudo-moar 006526: OUTPUT«WARNINGS:␤Useless use of "?" in expression "?/./" in sink context (line 1)␤Method 'match' not found for invocant of class 'Any'␤ in block <unit> at /tmp/PiG1Xw6LUd:1␤␤»
itz_stmuk see above .. just trying immutable moose
FROGGS m: $_ = "foo"; ?(/./); say $/
camelia rakudo-moar 006526: OUTPUT«WARNINGS:␤Useless use of "?" in expression "?(/./)" in sink context (line 1)␤Method 'match' not found for invocant of class 'Any'␤ in block <unit> at /tmp/RqNEa1VxP3:1␤␤»
FROGGS lizmat: that's why I dont understand currently
itz_stmuk immutable moose doesn't seem to make much difference
timotimo that's very weird 18:46
BBIAB
jdv79 gist.github.com/anonymous/3af1447cd2859ff2a54b seems like a solid lead on the issue
itz_stmuk maybe recent Moose is clever
lizmat FROGGS: $ 6 '$_ = "foo"; ?/./; say $/'
WARNINGS:
Useless use of "?" in expression "?/./" in sink context (line 1)
「f」
but with this change, I get quite a lot of spectest breakage
FROGGS m: $_ = "foo"; (/./).Bool; say $/ # lizmat: does this still work?
camelia rakudo-moar 006526: OUTPUT«「f」␤»
itz_stmuk or maybe reini is right about recent perl 5s ;) *joke* 18:47
FROGGS hehe
lizmat FROGGS: no it's not :-(
grrr 18:48
FROGGS lizmat: that means ?/./ compiles wrongish?
lizmat ah, hmmm... good point
18:49 tokuhiro_ joined
lizmat lemme check 18:49
RabidGravy jdv79, can you make that into a test and PR it on github? A fix would be better of course, but unless there's a test or an issue or something it won't get done 18:50
FROGGS m: $_ = "foo"; prefix:<?>(/./)
camelia rakudo-moar 006526: OUTPUT«WARNINGS:␤Useless use of "prefix:<?>(/./)" in expression "prefix:<?>(/./)" in sink context (line 1)␤Method 'match' not found for invocant of class 'Any'␤ in block <unit> at /tmp/K8tRWY4RsX:1␤␤»
jdv79 i'm still having energy to dig
i'll at least bug it 18:51
FROGGS lizmat: does that just mean that the prefix:<?>() call adds another indirection?
lizmat the proto for Bool occurs in the stack trace 18:52
with ?/./
18:52 zostay joined
FROGGS m: sub booly(Mu $thing) { $thing.Bool }; $_ = "foo"; booly(/./); say $/ 18:52
camelia rakudo-moar 006526: OUTPUT«Method 'match' not found for invocant of class 'Any'␤ in sub booly at /tmp/MMRlsTZTp7:1␤ in block <unit> at /tmp/MMRlsTZTp7:1␤␤»
FROGGS lizmat: like in here
that's the same as what prefix:<?> does I guess 18:53
lizmat checks
dalek kudo/nom: 582661f | TimToady++ | src/Perl6/Actions.nqp:
Allow list assoc and meta ops to autoprime
FROGGS m: sub booly(Mu $thing) { $_ := CALLER::<$_>; $thing.Bool }; $_ = "foo"; booly(/./); say $/
camelia rakudo-moar 006526: OUTPUT«Nil␤»
lizmat multi sub prefix:<?>(Mu \a) { a.Bool }
18:53 tokuhiro_ left, zakharyas left
dalek ast: 113c002 | TimToady++ | S02-types/whatever.t:
tests for * with X and Z metaops
18:54
FROGGS m: sub booly(Mu $thing) { $_ := CALLERS::<$_>; $thing.Bool }; $_ = "foo"; booly(/./); say $/
camelia rakudo-moar 006526: OUTPUT«Nil␤»
FROGGS m: sub booly(Mu $thing) { say $_ := CALLER::<$_>; $thing.Bool }; $_ = "foo"; booly(/./); say $/
camelia rakudo-moar 006526: OUTPUT«foo␤Nil␤»
zostay someone suggested an interesting method call operator for perl 5 just now as a shortcut for (ref $a && $a->do): $a//->do;
FROGGS m: sub booly(Mu \thing) { say $_ := CALLER::<$_>; thing.Bool }; $_ = "foo"; booly(/./); say $/
camelia rakudo-moar 006526: OUTPUT«foo␤Nil␤»
FROGGS why is that Nil?
lizmat FROGGS: all of the Bool prefixes where last changed almost a year ago
TimToady m: say 'foo' ~~ S/o/O/ 18:55
camelia rakudo-moar 006526: OUTPUT«Potential difficulties:␤ Smartmatch with S/// can never succeed because the subsequent string match will fail␤ at /tmp/bIfqTYwJJ4:1␤ ------> 3say 'foo' ~~ S/o/O/7⏏5<EOL>␤False␤»
timotimo itz_stmuk: i'm very surprised we're faster than p5 on this
FROGGS lizmat: and you know how long it is broken?
TimToady m: say S/o/O/ given 'foo'
camelia rakudo-moar 006526: OUTPUT«fOo␤»
lizmat well, at least since Rakudo 2015.09 :-)
is what you established
FROGGS zostay: that's nice indeed... :o) 18:56
itz_stmuk timotimo: its roughly the same .. my systems seem to have p6 slightly faster but YMMV
FROGGS lizmat: and you know that it worked every before?
ever*
lizmat well, looking at the code in Regex.Bool, I think it is expected ?
I think the problem really is that prefix:? is no longer inlined or so 18:57
FROGGS: I'll put in some code to look for the first defined $_ now
so at least it works in the release
FROGGS even if we inlined it, it should not have an effect of the caller ops
lizmat ok, then it maybe has never worked 18:58
the prefix:<?> just adds another level
FROGGS *nod*
lizmat so I'll create a separate candidate to be used by prefix:<?>
FROGGS m: $_ = "foo"; !/./; say $/ 19:01
camelia rakudo-moar 006526: OUTPUT«WARNINGS:␤Useless use of "!" in expression "!/./" in sink context (line 1)␤Method 'match' not found for invocant of class 'Any'␤ in block <unit> at /tmp/DdQtAtMogV:1␤␤»
dalek c: 5d7b737 | (Steve Mynott)++ | doc/Language/faq.pod:
[FAQ] underscores in 1m and immutable moose
FROGGS m: $_ = "foo"; so /./; say $/
camelia rakudo-moar 006526: OUTPUT«WARNINGS:␤Useless use of "so " in expression "so /./" in sink context (line 1)␤Method 'match' not found for invocant of class 'Any'␤ in block <unit> at /tmp/viP_UsrLLP:1␤␤»
itz_stmuk 45s p6 v 55s p5 on another system with those versions
zostay m: class Foo { method foo(Foo:D:) { say 'foo' } }; my Foo $f; $f.?foo;
camelia rakudo-moar 006526: OUTPUT«Invocant requires an instance of type Foo, but a type object was passed. Did you forget a .new?␤ in method foo at /tmp/09atUd0VAT:1␤ in block <unit> at /tmp/09atUd0VAT:1␤␤»
FROGGS m: $_ = "foo"; say ~/./; say $/ 19:02
camelia rakudo-moar 006526: OUTPUT«Regex object coerced to string (please use .gist or .perl to do that) in block <unit> at /tmp/4lUQxJ49ii:1␤␤Nil␤»
FROGGS lizmat: there are so many ops that would need adjustment...
zostay m: class Foo { }; my Foo $f; $f.?foo;
camelia ( no output )
dalek kudo/nom: cc67265 | peschwa++ | src/Perl6/World.nqp:
Only add constant folded results to the current SC if they don't have one.

This fixes a bug on JVM where the Attribute type object gets reassigned to the CORE.setting serialization context (from BOOTSTRAP.nqp), which broke runtime-creation of Attributes due to an SC-mismatch during Attribute attribute lookup.
zostay that feels like a bug to me
lizmat prefix ? ! so not ^ afaics
dalek p: 255ddbf | peschwa++ | src/vm/jvm/runtime/org/perl6/nqp/sixmodel/reprs/P6OpaqueBaseInstance.java:
Revert "Only compare STables when looking for the nameToHintMap."

This reverts commit 52e409ec22755de7d9dd6309e10996a88f4ec872.
Conflicts: src/vm/jvm/runtime/org/perl6/nqp/sixmodel/reprs/P6OpaqueBaseInstance.java
With Rakudo commit cc672654 we don't need this workaround anymore.
19:03
FROGGS lizmat: also ~
lizmat: basically every op that you can imagine
psch zostay: why? .? means "call method if there is one, otherwise Nil" 19:04
[Coke] moarvm 2015.10 tagged; no upload or macport until jnthn returns, I think.
itz_stmuk conversely I've noticed pure maths on perl6 to be an order of magnitude slower (based on a pi calculation)
psch m: class Foo { method foo { say "ok" } }; my Foo $f; $f.?foo
camelia rakudo-moar 006526: OUTPUT«ok␤»
zostay psch: but there isn't one, right? no signature matches my call
FROGGS [Coke]: we only need the upload for star, right?
psch zostay: right, which is why it returns Nil
m: class Foo { }; my Foo $f; say $f.?foo
camelia rakudo-moar 006526: OUTPUT«Nil␤»
zostay yes, i know, i think you missed my first m: up there 19:05
leont What's the right way to do catfile/catdir in perl6? I'm not seeing any such method documented on IO::Path :-s
psch zostay: oh, yes i did
zostay: with that added information i'd still say "not a bug", though
[Coke] FROGGS: macports needs it. I think Star just bundles it, someone can manually finagle that if needed.
psch zostay: there is a method, and the signature doesn't fit, which is what it complains about
leont And IO::Spec is a bit low-level for my taste (though it'd work fine probably)
FROGGS m: say $*SPEC.catpath('foo', 'bar', 'baz') # 19:06
camelia rakudo-moar 006526: OUTPUT«bar/baz␤»
psch zostay: .? doesn't check "can we dispatch to this", it only checks "does the method exist"
FROGGS leont: ^^
flussence m: '/foo'.IO.child('bar').say
camelia rakudo-moar 006526: OUTPUT«"/foo/bar".IO␤»
19:06 raiph left
leont flussence: thanks, that's what I was looking for :-) 19:06
zostay psch: yes, i think that's wrong... convince me that that's the right way to think about it 19:07
dalek c: b0392f9 | ugexe++ | doc/Type/Supply.pod:
Fix zip-latest signature and throttle header
psch zostay: i don't understand how it can be wrong, fwiw. it's implemented as written.
FROGGS zostay: if the question mark only means "if there is no method", then it is implemented correctly. 19:08
zostay yes, and all of my code always works as written too, but that doesn't mean that's the right implementation
psch m: class Foo { method f(Foo:D:) { } }; Foo.^can('f')[0]() # that's what .? means
camelia rakudo-moar 006526: OUTPUT«Too few positionals passed; expected 1 argument but got 0␤ in method f at /tmp/BibxCS_LKs:1␤ in block <unit> at /tmp/BibxCS_LKs:1␤␤»
FROGGS zostay: if it instead should mean "if there is no applicable method" on the other hand...
zostay but SHOULD it mean that? why should it mean that?
FROGGS zostay: check the design docs
psch zostay: oh, that's a very different question :) 19:09
zostay RTFM? really?
psch zostay: as it stands, the behavior in rakudo is not a bug, because it conforms to the design/tests
FROGGS zostay: no, RTFDD... that's for the cool ppl :o)
timotimo i'm a little surprised that @array == 5 is measurably slower than @array.elems == 5 19:10
nine m: subset CompUnit::PrecompilationId of Str:D where { 2 < .chars < 64 && /^<[A..Za..z0..9_]>$/ };
camelia ( no output )
zostay i didn't specify what whether it's a design bug or a rakudo bug, i just say it feels like a bug to me
FROGGS timotimo: sounds like a job for The Timomizer™ :o) 19:11
timotimo not sure; it's probably just that it adds one more call to the call chain
as in: @arr == 5 would call @arr.Int which then calls @arr.elems?
leont My program has a --help flag, how do I make it display the Pod to the user?
ugexe its nice for providing hooks for roles, like `my $conn-host = self.?proxy // $header<host>;` where your default implementation has no proxy role but you are welcome to apply one and it will be handled 19:12
lizmat psch: do we need an NQP bump or not ?
psch lizmat: oh, right, i missed that, yes
lizmat: thanks
19:12 pecastro joined
FROGGS lizmat: btw, the fact that /./ in combination with ops does not do the right thing hints to using m/./ instead 19:13
lizmat timotimo: .elems is optimized in the iterator as doing count-only, maybe that's the difference ?
dalek kudo/nom: a91a75e | peschwa++ | tools/build/NQP_REVISION:
Bump NQP_REVISION for the jvm SC fix.
zostay psgh, FROGGS: as far as i can tell the RTFDD doesn't justify the description and doesn't really imply psch's implementation either, it just says "it does this" 19:14
FROGGS lizmat: so please don't make it work, if the solution is hacky and the semantics might not survive anyway
psch design.perl6.org/S12.html#Calling_s...of_methods say "$object.?meth(@args) # calls method if there is one, otherwise Nil"
lizmat FROGGS: now spectesting .Bool going up the stack until it finds the first .DEFINITE $_ 19:15
this seems to pass all tests *and* makes ?/./ work
zostay yes, but what does "if there is one" mean? that's not specific
the roast tests don't demonstrate this case at all, i say it's not specified what it means
psch zostay: yes, i concede that the wording is a bit terse. i read it as "calls method meth if it exists in $object, otherwise return Nil"
FROGGS lizmat: that sounds better then adding another .Bool candidate
lizmat yup
19:16 st_iron left
psch zostay: i also recognize that it could be understood to mean "calls method meth if it exists in $object and can be dispatched to, otherwise return Nil" 19:16
FROGGS zostay: to me a method 'is there' if it implemented... even if it is implemented in a way that it will never be callable
psch zostay: that's where roast is probably the better DD to R, as it tests actual behavior
zostay i'll submit a PR and it can get hashed out further there :) 19:17
thx!
FROGGS zostay++
19:17 virtualsue left
dalek kudo/nom: 3c9c459 | lizmat++ | src/core/Regex.pm:
Make both /./.Bool as well as ?/./ work

Turns out that most likely, ?/./ has never worked, because the code in Regex.Bool was looking in the wrong caller frame. This commit makes it adaptive: Regex.Bool will use the first DEFINITE $_ it finds up the call stack: 1 level for direct calls like /./.Bool, 2 levels when using a boolean prefix such as ? ! so not ^.
19:18
leont When are state's initialized? First entry of that scope?
timotimo m: say "out"; do { say "begin"; state $foo = say "hi"; say "end"; } 19:19
camelia rakudo-moar 006526: OUTPUT«out␤begin␤hi␤end␤»
timotimo m: say "out"; for ^3 { say "begin"; state $foo = say "hi"; say "end"; }
camelia rakudo-moar 006526: OUTPUT«out␤begin␤hi␤end␤begin␤end␤begin␤end␤»
19:19 tokuhirom_ joined
timotimo apparently the first time it gets encountered 19:19
leont Excellent! 19:20
timotimo m: say "out"; for ^3 { say "begin"; state $foo = say "hi" if Bool.pick; say "end"; }
camelia rakudo-moar 006526: OUTPUT«out␤begin␤end␤begin␤end␤begin␤end␤»
timotimo m: say "out"; for ^3 { say "begin"; state $foo = say "hi" if Bool.pick; say "end"; }
camelia rakudo-moar 006526: OUTPUT«out␤begin␤hi␤end␤begin␤end␤begin␤end␤»
timotimo m: say "out"; for ^3 { say "begin"; state $foo = say "hi" if Bool.pick; say "end"; }
camelia rakudo-moar 006526: OUTPUT«out␤begin␤hi␤end␤begin␤end␤begin␤end␤»
timotimo m: say "out"; for ^3 { say "begin"; state $foo = say "hi" if Bool.pick; say "end"; }
camelia rakudo-moar 006526: OUTPUT«out␤begin␤end␤begin␤end␤begin␤end␤»
timotimo m: say "out"; for ^3 { say "begin"; state $foo = say "hi" if Bool.pick; say "end"; }
camelia rakudo-moar 006526: OUTPUT«out␤begin␤end␤begin␤end␤begin␤end␤»
timotimo interesting
lizmat psch: error: pathspec '2015.09.1-150-g0b8fc76' did not match any file(s) known to git 19:21
???
19:21 martinf82 joined
lizmat cannot build rakudo atm 19:21
psch uh
nine m: subset CompUnit::PrecompilationId of Str:D where { 2 < .chars < 64 && /^<[A..Za..z0..9_]>$/ }; CompUnit::PrecompilationID $foo = 'abc123'; 19:22
camelia rakudo-moar 006526: OUTPUT«5===SORRY!5=== Error while compiling /tmp/a4_i0JIq4R␤Variable '$foo' is not declared␤at /tmp/a4_i0JIq4R:1␤------> 030..9_]>$/ }; CompUnit::PrecompilationID 7⏏5$foo = 'abc123';␤»
psch err
lizmat even on a clean install :-(
psch yeah, wrong workflow
nine m: subset CompUnit::PrecompilationId of Str:D where { 2 < .chars < 64 && /^<[A..Za..z0..9_]>$/ }; my CompUnit::PrecompilationID $foo = 'abc123';
camelia rakudo-moar 006526: OUTPUT«5===SORRY!5===␤Type 'CompUnit::PrecompilationID' is not declared␤at /tmp/vtkYsIjPYh:1␤------> 3.9_]>$/ }; my CompUnit::PrecompilationID7⏏5 $foo = 'abc123';␤Malformed my␤at /tmp/vtkYsIjPYh:1␤------> 3& /^<[A..Za..z0..9_]>$/ }; my Comp…»
psch i messed up the bump
nine m: subset CompUnit::PrecompilationId of Str:D where { 2 < .chars < 64 && /^<[A..Za..z0..9_]>$/ }; my CompUnit::PrecompilationId $foo = 'abc123';
camelia rakudo-moar 006526: OUTPUT«Method 'match' not found for invocant of class 'Any'␤ in any accepts_type at gen/moar/m-Metamodel.nqp:3232␤ in block <unit> at /tmp/jj_bk7trXu:1␤␤»
nine m: subset CompUnit::PrecompilationId of Str:D where { 2 < .chars < 64 && /^<[A..Za..z0..9_]>$/ }; my CompUnit::PrecompilationId $foo;
camelia ( no output )
hoelzro someone forgot to push a tag?
nine m: subset CompUnit::PrecompilationId of Str:D where { 2 < .chars < 64 && /^<[A..Za..z0..9_]>$/ }; sub foo(CompUnit::PrecompilationId $foo) {};
camelia rakudo-moar 006526: OUTPUT«===SORRY!===␤Cannot find method 'nominalize'␤»
nine Ah, there it is.
m: subset CompUnit::PrecompilationId of Str where { 2 < .chars < 64 && /^<[A..Za..z0..9_]>$/ }; sub foo(CompUnit::PrecompilationId $foo) {};
camelia ( no output )
FROGGS uhh 19:23
nine: can you RT it?
hoelzro not even 0b8fc76 resolves in nqp =S
nine FROGGS: on it
FROGGS nine++
19:23 jevin left
psch lizmat, hoelzro: yes, that was nqp-j --version output without the commit actually commit 19:23
my bad
+ed 19:24
nine FROGGS: any reason why Perl6::Metamodel::DefiniteHOW is not nominal?
19:24 tokuhirom_ left
psch actually verifies the new NQP_REVISION is correct this time 19:24
dalek kudo/nom: 97e0a36 | peschwa++ | tools/build/NQP_REVISION:
Correctly bump NQP_REVISION.
19:25
psch it builds here
so i *think* i did it right this time... :S
again, sorry
lizmat checks 19:26
psch: no worries :-)
19:26 raiph joined
PerlJam psch++ (for giving us another opportunity to display forgiveness ;) 19:26
lizmat looks ok so far :-)
19:27 jevin joined
FROGGS nine: I dunno 19:27
19:28 skids joined
FROGGS does not even know what it means 19:28
nine FROGGS: from my very limited understanding I think it should be :nominalizable and have the same method nominalize as SubsetHOW
FROGGS hmmm, I thought this was tied to SubsetHOW 19:31
but that was just a guess
jdv79 sergot_: around? 19:32
19:32 woolfy left
dalek ast: c7e7bde | lizmat++ | S05-metasyntax/regex.t:
Add some tests for ? ! so not /./.Bool
19:35
19:37 flussence left
lizmat m: my $rx = /./; say <one two three>.grep: { not $rx or so $rx } 19:39
camelia rakudo-moar cc6726: OUTPUT«Method 'match' not found for invocant of class 'Any'␤ in block <unit> at /tmp/StQ9jLjr3K:1␤␤»
lizmat this should work soon :-)
.tell llfourn commit 3c9c4591cf0f666607dd made my $rx = /./; say <one two three>.grep: { not $rx or so $rx } DWIM 19:40
yoleaux lizmat: I'll pass your message to llfourn.
dalek kudo/nom: 31146cc | TimToady++ | src/Perl6/Actions.nqp:
don't need these can('returns') guards now

since we catch infix:<,> upstream from this now
19:41
kudo/nom: f45ed86 | TimToady++ | src/Perl6/Actions.nqp:
also need to not curry invocant variant of comma
19:41 rindolf left 19:42 pullphinger joined, pullphinger left, travis-ci joined
travis-ci Rakudo build failed. Pepe Schwarz 'Bump NQP_REVISION for the jvm SC fix.' 19:42
travis-ci.org/rakudo/rakudo/builds/86891917 github.com/rakudo/rakudo/compare/c...1a75e1f822
19:42 travis-ci left
dalek ast: 6a07e75 | usev6++ | S05-match/capturing-contexts.t:
Add test for RT #118453
19:42
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=118453
psch /o\
but travis, i fixed it already :/
FROGGS psch: give travis some time
19:42 pullphinger joined 19:44 raiph left
jdv79 RabidGravy: quite a little pile... 19:45
19:47 flussence joined 19:48 travis-ci joined
travis-ci Rakudo build failed. Elizabeth Mattijsen 'Make both /./.Bool as well as ?/./ work 19:48
travis-ci.org/rakudo/rakudo/builds/86892922 github.com/rakudo/rakudo/compare/a...9c4591cf0f
19:48 travis-ci left
lizmat in further news, psch's fix is still underway to Travis 19:50
19:50 raiph joined 19:51 Mhoram left
PerlJam maybe during periods of "high activity" travis should only attempt a build every N minutes or M commits or something. 19:51
I don't even know if you can configure travis that way, but if you could it would save on confusion and resources
19:52 Mhoram joined, Mhoram is now known as abaugher 19:54 zakharyas joined
hoelzro PerlJam: I don't think you can; I remember looking into it a while ago 19:54
we have a very similar problem @ work =/
19:55 xinming left, xinming joined, [Sno] left 19:56 abraxxa joined, abraxxa left
psch nine: fwiw, bool_enum fails on jvm with "Attribute '$!value' is not a native int" in the bindattr_i for Int 20:00
nine: which makes sense, 'cause Int!value is a bigint
nine: maybe that helps with your moar efforts there
nine And again something that moar doesn't complain about...
psch: thanks for the hint! 20:01
psch ("for Int" means "in the Bool area where Int!value for Bool::False is set, but that's probably already understood...) 20:02
s/,/",/
(and s/",/,"/ for people who like english quotes-and-commas rules :P ) 20:03
jdv79 RabidGravy: any idea why form fields end up as http header fields? 20:04
nine psch: FWIW I didn't even know if I should use bindattr_i or bindattr. It's all cargo culted ;)
20:04 sufrostico joined
jdv79 RabidGravy: or why header values are split on comma? 20:05
those are what i've found yet
haven't fixed them well enough though and dinner &
cosimo seems that travis doesn't resolve IPv6 addresses
RabidGravy what form fields?
psch nine: the hint is usually the declared type of the attribute. if that's native, use the bindattr_* form, otherwise bindattr
nine: i at least haven't found a spot where that's the wrong approach :)= 20:06
-=
nine jnthn++ # dropping subtle little errors in his gists for added debugging fun :)
jdv79 oh right, ha. well that's cool. 20:07
so POST is essentially unimplemented as far as payload
RabidGravy yes
jdv79 so one bug and one feature then instead of 2 bugs 20:08
maybe tomorrow
[Coke] nqp-j has a failing test. 20:09
RabidGravy you can add payload, just you have to have it in the correct format
20:10 pierrot left
psch [Coke]: i'll look at that in a bit. it's probably my fault anyway... :s 20:10
lizmat confirms jvm builds on OS-X
20:10 TEttinger joined
Hotkeys Why does the second one work but the first doesn't 20:11
pastebin.com/tkUGe41F
am I just bad at syntax
RabidGravy jdv79, see also the HTTP::Request::Common that has helpers to do a lot of the for you
Hotkeys am I using map incorrectly
RabidGravy I think it needs a cookbook
FROGGS Hotkeys: .elems yields an integer, and you basically call .map on that 20:12
psch m: say .elems 20:13
camelia rakudo-moar 97e0a3: OUTPUT«1␤»
geekosaur *.elems ?
psch m: say map .elems, ^10
camelia rakudo-moar 97e0a3: OUTPUT«Cannot call map(Int, Range); none of these signatures match:␤ (&code, + is raw)␤ in block <unit> at /tmp/6bMBRh2CM2:1␤␤»
geekosaur m: say map *.elems, ^10 20:14
camelia rakudo-moar 97e0a3: OUTPUT«(1 1 1 1 1 1 1 1 1 1)␤»
Hotkeys *.elems just gives me a list of 1s
geekosaur m: say map {.elems}, ^10
camelia rakudo-moar 97e0a3: OUTPUT«(1 1 1 1 1 1 1 1 1 1)␤»
psch i think there's also a do { } missing?
Hotkeys oh
right
psch maybe not, i think i'm slightly over-eager with do-blocks, sometimes :)
Hotkeys does the bot keep things, can I define a function in one line and then call it in another 20:15
or does it only do one line statements
(with ';')
lizmat [Coke]: FWIW, I'm seeing a lot of fails on JVM in spectest
RabidGravy one line only
geekosaur but you can feed it a gist, I think 20:16
FROGGS lizmat: the jvm spectest was very unclean since the GLR
geekosaur (as in gist.github.com url)
psch there's a failure in 51-multi.t on nqp-j
i suspect that's (part of) what [Coke]++ is talking about 20:17
Hotkeys m: sub collatz($x) { return $x, -> $a { $a %% 2 ?? $a / 2 !! 3 * $a + 1 } ... 1; } say map { .elems }, (collatz($_) for 1, 3 ... 10)
camelia rakudo-moar 97e0a3: OUTPUT«5===SORRY!5=== Error while compiling /tmp/veVOTxHnv6␤Strange text after block (missing semicolon or comma?)␤at /tmp/veVOTxHnv6:1␤------> 3 %% 2 ?? $a / 2 !! 3 * $a + 1 } ... 1; }7⏏5 say map { .elems }, (collatz($_) for 1,␤ expecting an…»
Hotkeys m: sub collatz($x) { return $x, -> $a { $a %% 2 ?? $a / 2 !! 3 * $a + 1 } ... 1; }; say map { .elems }, (collatz($_) for 1, 3 ... 10)
camelia rakudo-moar 97e0a3: OUTPUT«(1 8 6 17 20)␤»
Hotkeys what
I just tried it locally and it didn't work
geekosaur how recent is your build? 20:18
FROGGS lizmat: it is at 30%ish since mid September
Hotkeys 2015.09 msi of rakudo
geekosaur camelia's version moves quickly with bugfixes
FROGGS lizmat: github.com/coke/perl6-roast-data/b..._rates.csv
20:18 zakharyas left
Hotkeys running on windows 20:18
lizmat ok... so nothing new then... :-(
20:18 darutoko left
psch lizmat: i'm confident that the lowest breakage is fixed now, so i can start looking at spectests agian 20:18
lizmat psch++
psch well, and nqp-j first... :s
geekosaur Hotkeys, there have been a LOT of fixes since then 20:19
Hotkeys ah
FROGGS lizmat: correct... the Attribute conversation this evening is still a result of the GLR and other stuff
Hotkeys should I just build from source
geekosaur I don;t even recall if that release had the initial GLR implementation yet --- that change made a lot of things more rational
FROGGS Hotkeys: there will be a 2015.10 msi soonish
gnight #perl6 20:20
20:20 FROGGS left
dalek kudo/nom: 416b5aa | (Stefan Seifert)++ | src/Perl6/Metamodel/DefiniteHOW.nqp:
Fix subtypes of definite types

Fixes subtype Foo of Str:D; failing with
  "Cannot find method 'nominalize'"
20:21
cosimo RabidGravy: did you have a chance to look at Cache::Memcached failures? 20:22
nine .tell FROGGS github.com/rakudo/rakudo/commit/416b5aa612
yoleaux nine: I'll pass your message to FROGGS.
bartolin psch++ # rakudo.jvm fixes 20:23
Hotkeys I'm going to attempt building from source 20:24
psch huh, the test that fails is barely two weeks old 20:26
nine psch: with bindattr I get P6opaque: representation mismatch when storing value to attribute
RabidGravy cosimo, I sent A PR - it's all worky here
psch i think that means we just didn't know it's broken...
20:27 Ch0c0late left
RabidGravy :) There were only or two things that needed changing 20:27
[Coke] lizmat: we shipped a broken jvm last month, will probably do so again. :| 20:28
psch nine: looking a bit closer, i wonder why you add a second int-typed $!value attribute to Bool 20:29
20:29 jnm_theMailman left, xfix left
psch nine: you get one for free from Int, which should probably be enough 20:29
RabidGravy cosimo, github.com/cosimo/perl6-cache-memcached/pull/6
20:29 abraxxa joined
leont I have a list of arguments, that I want to separate on "does it start with -- or not", is there a cleaner way than grepping twice? 20:29
20:30 abraxxa left
nine psch: good questions. It's been a while since I've been working on this code. And it took me quite some time to figure out how all of this works 20:30
psch nine: the repr mismatch is probably the reason for the workaround in src/core/allomorphic.pm for IntStr
cosimo RabidGravy: cool, thanks
psch nine: line 4 in that file, to be precise. an IntStr is Int is Str, but we can't bindattr{,_i} because bigints aren't quite nqp-level exposed
leont @all.classify({...}).{True,False} is the best I can come up with, but not being able to use @variables is meh
cosimo RabidGravy: indeed, it's passing for me too, with the 2 todo tests passing too 20:31
psch nine: you could co-opt the workaround from allomorphic.pm or try to not have a secondary $!value - the latter would be my suggestion, because in contrast to IntStr you don't have two attributes called $!value
20:31 kjs_ left
cosimo RabidGravy: awesome, thanks 20:31
nine psch: even if I loose the $!value from Bool, I still have to bind to the $!value from Int which is where the problem lies 20:32
RabidGravy cosimo, I found the timeout tests somewhat flaky, sometimes don't work
so I TODOd them
psch nine: oh. right, Int brings the bigint, which means the nqp::add_I workaround is probably the workable solution 20:33
cosimo RabidGravy: understood
[Coke] ilmari: someone disagrees with you:
github.com/rakudo/rakudo/commit/d7...t-13935958 20:34
nine psch: nqp::add_I($false, 0, Int);?
psch nine: hrm, but that's kinda troublesome too, 'cause you don't have a convenient peg to hang the binding onto...
oh, nvm, you do
nine: not quite. $false := nqp::add_I(0, 0, Bool);
nine: and the bindattr_s for "False" after that 20:35
nine: actually, just replace the nqp::create call with the add_I call
nine: and delete the bindattr_i calls
nine: because Bool is Int, you can create a Bool with add_I
nine: and onto the Bool created thus you bindattr_s the $!key
nine This representation (P6int) cannot unbox to other types 20:36
m: use nqp; nqp::add_I(0, 0, Int); 20:37
camelia ( no output )
nine m: use nqp; class B is Int {}; nqp::add_I(0, 0, B);
camelia ( no output )
PerlJam leont: what do you mean about not being able to use @variables?
leont I preferred to have them end up in two @variable, but I don't think I can do that without breaking it up in multiple lines 20:38
But I decided to get rid of that entire piece of code, so I'm not actively looking anymore
20:39 rurban joined, martinf82 left
psch nine: EnumHOW and ClassHOW repr mismatch i guess..? 20:40
20:40 Greg__ joined
psch nine: IntStr clearly still has a ClassHOW underneath... 20:40
nine psch: or nqp 0 is no Perl 6 0 20:41
I guess nqp's 0 is an int which is repr P6int
leont It seems MAIN's argument handling doesn't understand :@multi-arg parameters :-(
The way Getopt::Long does…
vendethiel leont: named mutli-args?
multi
20:42 yqt joined
psch nine: right, maybe that too 20:42
vendethiel m: sub MAIN(:@arg) {}; say USAGE; 20:43
camelia rakudo-moar f45ed8: OUTPUT«5===SORRY!5=== Error while compiling /tmp/XQIPBUEDL_␤Undeclared name:␤ USAGE used at line 1␤␤»
leont In Getopt::Long, you can declare an argument "bar=s@", and then do «foo --bar=1 --bar=42», and it will end up in
nine I hope nqp::create(Int) gives me a 0. But how on earth do I create a 1?
PerlJam leont: I think you have to do your own arg processing for that 20:44
ugexe do $multi-arg not @Multi-arg
20:44 mspo_ is now known as mspo
leont That kind of sucks :-/ 20:45
leont sometimes has high expectations from perl6
20:46 n0tjack left 20:47 kjs_ joined
nine psch: ah, basic mathematics: nqp::pow_I(nqp::create(Int), nqp::create(Int), Int, Int) # I guess this code is so obvious, it doesn't even warrant a comment... 20:48
garu leont: check github.com/tokuhirom/p6-Getopt-Tiny :) 20:49
it should DWYW
lizmat m: sub a(:$a) { dd $a }; a( :42a, :666a) # leont: underlying reason 20:50
camelia rakudo-moar f45ed8: OUTPUT«Int $var = 666␤»
20:50 tokuhiro_ joined
leont garu: yeah, was considering that, but it's for rakudo-core ;-) 20:51
nine psch: unfortunatly it still segfaults :/
lizmat m: sub a(:@a) { dd @a }; a( :42a, :666a) # now if this would work :-)
camelia rakudo-moar f45ed8: OUTPUT«Type check failed in binding @a; expected Positional but got Int␤ in sub a at /tmp/Gnu4_lRDqm:1␤ in block <unit> at /tmp/Gnu4_lRDqm:1␤␤»
leont Anyway, I'm very close to having a functional harness for rakudo. 20:54
20:55 tokuhiro_ left
leont How important is archiving? There's a target for it in the jvm makefile, but not the moar one 20:55
nine But except for those weird segfaults in Bool.pick(*) and Bool.roll, all other spec test failures are out of date tests :) 20:57
psch nine: what does Bool.list do for you locally? 20:58
nine: nevermind, just saw Bool has its own .roll and .pick 20:59
m: my enum Foo <a b>; say (Foo::a, Foo::b).pick 21:00
camelia rakudo-moar 416b5a: OUTPUT«a␤»
psch m: my enum Foo <a b>; say Foo.pick
camelia rakudo-moar 416b5a: OUTPUT«b␤»
psch m: my enum Foo <a b>; say Foo.pick(*)
camelia rakudo-moar 416b5a: OUTPUT«(a b)␤»
leont Why is IO::Spec::Win32 ~~ IO::Spec::Unix? 21:01
That's the sort of mistake we made in perl5 that wasn't good to repeat, really
psch nine: re: "warrant a comment", i'd probably at least document it with "0 ** 0 == 1" or something succint like that 21:03
21:03 kaare_ left
ugexe m: say IO::Spec::Win32.ACCEPTS(IO::Spec::Unix); 21:04
camelia rakudo-moar 416b5a: OUTPUT«False␤»
lizmat leont: in what way was that a mistake ?
21:04 rindolf joined
psch m: say IO::Spec::Win32.isa(IO::Spec::Unix) 21:04
camelia rakudo-moar 416b5a: OUTPUT«True␤»
21:04 geraud joined
leont I wanted to check if I had a IO::Spec::Unix or not, and I got the wrong answer! 21:05
It's leaking out an implementation detail 21:06
psch .oO( $thing ~~ $typeobj is more of a instanceof, not isInstance... shush java-think!)
s/isInstance/$thing.getClass().equals($typeobj.getClass())/ # i confuse those, occassionally... 21:07
21:07 sufrostico left
psch leont: i can your concern though (the java-detour aside) 21:08
+understand
leont I want to rewrite from Unix filename to local filename, but only when necessary.
psch leont: .WHAT === .WHAT is probably the best for type identity 21:09
leont: infix:<~~> always allows subclasses, which might still be wonky in case someone decided OSX.isa(Unix) for example
or whathaveyou 21:10
leont I understand how ~~ works
I just hadn't expected something to be a subclass when it actually fails the Liskov substitution principle 21:11
21:11 Greg__ left 21:12 pullphinger left
leont You can not use an IO::Spec::Win32 in place of an IO::Spec::Unix, and expect your program to continue functioning the way it did before. 21:13
TimToady probably means something should in a role rather than in a class
pink_mist IO::Spec::Unixy!
leont IO::Spec::Base, pretty much 21:14
Or whatever one wants to call it
lizmat FWIW, in my opinion IO::Spec should die
leont Isn't IO::Spec a thing already?
psch didn't newio throw them out?
or did that get suspended
leont lizmat: I suspect we will need the functionality somewhere, but we may be able to do better than what we have inherited 21:16
lizmat psch: newio is dead in the water after GLR
and was pretty dormant before it 21:17
leont Great, my naive solution false triggers QNX and Cygwin as non-unix :-s
21:17 kmel joined
psch lizmat: oh alright, thanks for the info 21:18
lizmat: ooc, was that decision about GLR specifically or more of "adapting this is gonna be too horrible"? 21:19
s/GLR/something in GLR/
Hotkeys Anyone have any idea why I'm getting this err when trying to build rakudo pastebin.com/RBwprw5F
can't find anything on the google 21:20
lizmat no, it's just that many things were broken during the GLR: merges are not clean atm
and since there was no consensus on the work I had done in there
I figured I wouldn't spend any more time on it
hoelzro Hotkeys: I don't know, but let me know if you figure it out; I've been trying to set up a Windows dev env forever 21:21
ooc, which version of Windows and which compiler are you using?
Hotkeys 7
geekosaur guesses an exception, and the moar version needs to be verified
Hotkeys using the visual studio 2015 nmake 21:22
geekosaur nmake is just the messenger there 21:23
itz_stmuk I could only build 32 bit rakudo on VS2015 myself 21:25
leont is fine with IO::Spec leaving tomorrow, but prefers having a sensible thing today (unless you beat me to it while away for the weekend) 21:26
lizmat leont: not going to happen :-(
so please beat us!
Hotkeys gonna try rakudobrew
hoelzro I think I did 64bit VS2015 and got an access violation 21:27
maybe I should try the 32bit vers
itz_stmuk I ended up downgrading VS 21:28
psch hm, the 51-multi.t failure in nqp is because named arguments don't count as arguments 21:29
which seems wrong on the surface, but simply counting them doesn't quite work out
21:29 adu left
hoelzro itz_stmuk: I tried that too =/ 21:30
I tried VS2015, VS2013, and Mingw on Win8
and VS2013 on Win7
itz_stmuk I had no problems at all with VS2010 21:31
psch unfortunately that's again an area where i'm not sure i can derive useful information from the corresponding bits in mvm, if i can even find them...
itz_stmuk I think jnthn said he used VS2013
21:32 lichtkind joined
itz_stmuk with VS2010 I installed SP1 for it and SDK 7.1 (for 64bit support) and it still worked on Windows 10 21:32
21:32 kmel left
dalek oblem_solver_tutorial: 6c85e5f | lichtkind++ | chapter/self1.pl6:
selfprinting example
21:33
oblem_solver_tutorial: 80be9e0 | lichtkind++ | chapter/text0.md:
completed paragraph 5 chapter 0
lichtkind latest part is about perl philosophy
21:33 captian-adequate left
lichtkind especially larry please check if it correctly represents your views - thank you 21:33
21:34 sufrostico joined 21:36 muraiki left
Hotkeys brb going to school 21:37
hooray for night lectures /s
dalek p: 9b68e81 | coke++ | tools/build/MOAR_REVISION:
bump MOAR_REVISION to latest release
21:40
p: e4334e6 | coke++ | VERSION:
bump VERSION to 2015.10
retupmoca re: rakudo windows build failure: I have a ticket created, but it looks like a jitbug to me github.com/MoarVM/MoarVM/issues/284 21:41
21:43 ^elyse^ left
[Coke] oh, hey, I have no idea what passphrase I used to create my key when I did the release last month. 21:43
lizmat [Coke]: :-( 21:45
pink_mist that seems to not be ideal
skids :( (Neither do I :)
leont Meh, I can't make IO::Spec a role without getting rid of the IO::Spec.select method 21:47
lizmat leont: welcome to my newio world :-)
good night, #perl6! 21:48
21:48 kjs_ left
psch night lizmat o/ 21:48
spider-mario <dalek> nqp: bump VERSION to 2015.10
2015.10?
2015.10!
that’s a release
leont IO::Spec::Any it is! 21:50
21:50 tokuhirom_ joined
[Coke] spider-mario: I'm working on it. 21:51
stuck on the (&#@$# tagging step.
21:54 cygx joined
cygx o/ 21:54
Hotkeys, hoelzro: try building Rakudo with MVM_SPESH_DISABLE=1 set
hoelzro cygx: thanks, I'll give that a shot! 21:55
21:55 tokuhirom_ left
cygx hoelzro: setting that variable is the only way I get the setting to build, but it works fine otherwise 21:56
hoelzro the setting? I couldn't even get NQP to build =/
21:57 zakharyas joined
cygx I have yet to see the NQP build fail... 21:57
(Win 7 64-bit, Strawberry Perl 5.20.2 / MSWin32-x64-multi-thread) 21:59
psch hrm, the naive fix for the nqp-j test failure probably messes up our arity caching there... 22:02
i guess that mean i have to actually understand what's going on there... /o\
leont Have a patch, superficially seems to work, now lets test for real 22:04
psch leont++
22:07 vike left
psch .tell zostay some research suggests C# has a ?. operator, which means "if the LHS is not null, call the RHS as method on it" 22:11
yoleaux psch: I'll pass your message to zostay.
22:11 vike joined
leont Weird, it dies during compilation with: Error while constructing error object:Could not locate compile-time value for symbol X::InvalidType 22:11
psch leont: that usually means you have a failure of the type of the exception it can't load before that exception is composed properly 22:12
leont: it usually dumps the hash it would use to construct that exception below, which should have a hint or two 22:13
leont suggestions: (unstringifiable object) typename: IO::Spec::Any
psch .tell zostay the semantic difference, as i see it, is that we can have methods that work as class methods or instance methods but don't (neccessarily) know before we try to dispatch
yoleaux psch: I'll pass your message to zostay.
psch .tell zostay whereas C# can say "ok this is{,n't} always an instance method" during compile time 22:14
yoleaux psch: I'll pass your message to zostay.
leont It seems my sourcefile isn't included in the setting
How do I cause it to be there?
psch leont: add it to tools/build/Makefile-$backends.in 22:15
leont ack suggests tools/build/moar_core_sources
22:15 lichtkind left
leont Makefile-$backends seems logical too 22:15
psch leont: oh, right, i think there's something i'm not 100% up-to-date about whether we generate bits or not 22:16
leont It seems I need to update Makefile-JVM and moar-core-sources
psch leont: as in, i'm not sure if Makefile-$backends.in are generated or not - pmurias++ recently said Makefile-JS.in is generated, but i'm pretty sure Makefile-JVM.in isn't... 22:17
TimToady m: say (* X+ 42 X+ *)(41,43) 22:18
camelia rakudo-moar 416b5a: OUTPUT«Too many positionals passed; expected 1 argument but got 2␤ in block <unit> at /tmp/T9rWXt3LUG:1␤␤»
22:18 tokuhiro_ joined
TimToady testing a patch for this 22:18
[Coke]: are you tagging nqp or rakudo? I hope I have time to get this patch in... 22:20
dalek ast: 78701f5 | TimToady++ | S02-types/whatever.t:
fixed multiple * on autopriming call ops
22:22
kudo/nom: 1f2ea21 | TimToady++ | src/Perl6/Actions.nqp:
fix multiple * on autoprimed call ops

This fixes things like * X+ *
22:23
22:25 tokuhiro_ left
jdv79 RabidGravy: why is that not in Request.pm? 22:26
that's wrong 22:27
dalek kudo/nom: 75db4a5 | TimToady++ | docs/ChangeLog:
list assoc can now autoprime
RabidGravy why?
jdv79 because doing that stuff is basic
it should be "core"'ed 22:28
RabidGravy no it's a common use, but not basic
jdv79 performing a useful POST is basic 22:30
leont Meh, now the restricted setting doesn't compile :-/
RabidGravy you meaning performing an form/x-url-encoded is basic?
22:31 vendethiel left
jdv79 either url-encoded or multi-part 22:31
leont Probably fixed it, but this recompile cycle is slow :-s
RabidGravy I could argue that so is performing a text/javascript post is basic
or application/xml 22:32
or whatever
jdv79 are you being serious?
RabidGravy yes
psch ...i'm starting to question the design of org.perl6.nqp.reprs.MultiCacheInstance 22:34
oh, but that's probably because i'm not paying enough attention, carry on!
jdv79 in my 15 year career i can only remember seeing url-encoded or multi-part POSTS.
leont That's what browsers would do 22:35
If you're not a browser, you can do anything, really
RabidGravy never used REST or SOAP or XML::RPC?
22:36 rurban left
jdv79 i'm merely advocating for making the common paths the defaults/easiest 22:36
RabidGravy that's my point
everyone has a different common path 22:37
psch hrm, but something is weird there
m: sub f($, :$a) { }; say &f.arity
camelia rakudo-moar 416b5a: OUTPUT«1␤»
psch assuming that semantic carries down to nqp, at least 22:38
RabidGravy I spent the last five years building a system that used HTTP as an interface between parts and not once did it use url-encoded posts but posted a lot of data
jdv79 ok 22:42
the very concept of a ::Common ns seems ridiculous to me but ok 22:43
if its common then perhaps that should be the base
itz_stmuk oh no 22:47
act.yapc.eu/lpw2015/talk/6436
22:49 virtualsue joined
leont It's working at last! \o/ 22:50
psch itz_stmuk: that's a bit discouraging
i've seen bits of Zefram++, mostly RTs and a bit of discussion
22:51 telex left
RabidGravy itz_stmuk, I saw that earlier, got a bit confused, ignored it and decided that I wouldn't be going to LPW 22:51
psch irclog.perlgeek.de/perl6/2015-09-24#i_11268124 that's where he went, afair
where "went" means "left"
22:52 telex joined
itz_stmuk he's heavily into scheme now 22:53
or rather his own version
psch i really just don't understand the motivation behind that 22:55
reminds me of this C3 talk about the vulnerability in bugzilla and how that means perl5 is a bad language 22:56
jdv79 i feel there have been a few of those over the years 22:58
RabidGravy jdv79, this not all to say I'm averse to putting in some convenient and simple .post method into the UserAgent class it's just not high on my personal priorities :) 22:59
jdv79 my motivation is simply to have the lib be as useful as possible. if someone has to dig to find something "common" that's a problem. 23:00
no big deal
i just lied. it is: 23:02
:)
[Coke] I'm still working on nqp 23:03
jdv79 how's that going?
RabidGravy my motivation is simply to have the lib be as useful to *me* as possible, and I have no interest at the moment in the things you think are "common" 23:04
[Coke] Guess I have to throw out that key and create a new one.
RabidGravy ;-p
23:06 firstdayonthejob left
RabidGravy I'm only fixing it up to the extent that I can make some very specific interfaces with it 23:06
23:07 spider-mario left 23:10 virtualsue left, espadrine_ left, tokuhirom_ joined 23:13 colomon left
TimToady m: say (* X+ 42 X+ *)(41,43) 23:16
camelia rakudo-moar 75db4a: OUTPUT«(126)␤»
TimToady \o/
23:18 cygx left
RabidGravy the crack is strong in this one ;-) 23:19
23:19 rindolf left
TimToady m: say &infix:<+>(*, 42) 23:22
camelia rakudo-moar 75db4a: OUTPUT«Inf␤»
TimToady I'm not sure I like this
rather than defaulting to Inf, the conservative thing would be to blow up if * is used where it's not expected, because then we can add more meanings to * later 23:24
psch sounds sound
TimToady as it is, people will start relying on * mapping to Inf
psch m: say Whatever.new.Numeric
camelia rakudo-moar 75db4a: OUTPUT«Inf␤»
TimToady lemme take it out and see what blows up in roast...
psch m: say Whatever.new.Str 23:25
camelia rakudo-moar 75db4a: OUTPUT«Whatever<140427946008856>␤»
psch m: say Whatever.new.Stringy
camelia rakudo-moar 75db4a: OUTPUT«Whatever<140242053959960>␤»
[Coke] Does the changelog need care? 23:30
RabidGravy if I want to "require Foo" at runtime and use a type defined therein is "::($typename)" my only option, or is there another trick? 23:38
[Coke] nqp cut and on the site.
23:38 yqt left
psch RabidGravy: i think you can still assign the result of that lookup to a sigilless variable 23:41
RabidGravy: that only changes the look slighty, of course, but maybe that's the motivation vOv
RabidGravy ooh, yes that hadn't occurred to me 23:42
[Coke] TimToady: you going to try to cram anything else in, or can I start on the rakudo release? 23:48
23:50 jnm_theMailman joined 23:52 softmoth left 23:54 jnm_theMailman left
TimToady I think I'm done 23:55
well, excpet the * -> Inf thing... 23:56
dalek kudo/nom: 4e35e80 | TimToady++ | src/core/Whatever.pm:
* no longer defaults to Inf

This is to protect extensibility of * to other dwimmy situations.
23:58
ast: 690dbe4 | TimToady++ | S02-types/whatever.t:
R- now works better with * too
TimToady now I'm doner :) 23:59