»ö« 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.
ShimmerFairy anyone else getting "Default constructor for 'Panda::Ecosystem' only takes named arguments" for latest panda (and latest rakudo) now, doing ./bootstrap.pl ? 00:02
tadzik yeah, jit bug 00:08
ShimmerFairy Can I do something about it, or am I stuck without panda for however long? :(
(also, a link to the specifics of the bug?) 00:10
tadzik: ? 00:28
raiph ShimmerFairy: irclog.perlgeek.de/perl6/2015-09-20#i_11248456 and below 00:37
ShimmerFairy thanks :) 00:38
raiph: and that 'my $ = ' workaround mentioned seems to be a usable workaround \o/ 00:40
00:47 colomon left, colomon joined 01:09 zakharyas joined 01:13 leont left 01:18 Peter_R left 01:27 aborazmeh joined, aborazmeh left, aborazmeh joined 01:29 frodwith joined 01:58 kid51 left 02:03 colomon left 02:04 colomon joined 02:32 araujo_ joined 02:33 araujo left, araujo_ left 02:34 araujo_ joined 02:46 noganex joined 02:49 noganex_ left 02:55 TEttinger joined 02:59 laouji joined 03:01 kaare_ joined 03:04 laouji left 03:24 araujo__ joined 03:25 araujo_ left 03:44 vendethiel joined 03:49 CQ2 joined 03:52 CQ left, CQ2 is now known as CQ 04:00 laouji joined 04:01 laouji left 04:03 cognominal joined 04:07 laouji joined 04:08 vendethiel left 04:12 skids left 04:14 rurban joined 04:16 laouji left 04:24 laouji joined 04:26 rmgk left, rmgk_ joined, rmgk_ is now known as rmgk 04:28 laouji left 04:56 khw left 05:25 davido_ joined 05:39 laouji joined 05:42 zacts joined 05:43 xinming left, laouji left 05:44 xinming joined 05:48 araujo__ left 05:56 [Sno] left 05:58 cognominal left 06:00 rurban left 06:04 diana_olhovik joined 06:09 laouji joined, mmapp joined, rurban joined 06:13 laouji left 06:18 mmapp left 06:20 rurban left 06:23 jack_rabbit_ joined 06:41 aborazmeh left
moritz ShimmerFairy: MVM_JIT_DISABLE=1 is also a useful workaround 06:48
ShimmerFairy ah, thanks
06:57 oetiker left 07:01 davido_ left 07:02 domidumont joined 07:07 domidumont left, domidumont joined 07:11 frodwith left 07:30 FROGGS joined 07:31 abraxxa joined 07:34 [TuxCM] joined 07:39 rindolf joined 07:51 brrt joined 07:55 salva joined 08:06 dakkar joined 08:09 laouji joined, FROGGS left 08:12 darutoko joined 08:13 Alina-malina left, laouji left 08:20 araujo joined, araujo left, araujo joined 08:22 Alina-malina joined 08:33 TEttinger left 08:43 [Sno] joined 08:47 AlexDaniel joined 08:50 rindolf left 08:51 grondilu joined 08:53 isacloud left, preyalone left 08:56 mprelude joined 09:06 cschwenz joined, cschwenz left 09:07 isacloud joined 09:12 preyalone joined 09:16 zakharyas left 09:24 laouji joined 09:28 laouji left 09:30 cognominal joined, cognominal left 09:35 larion joined 09:49 espadrine joined 09:54 laouji joined 09:56 brrt left 09:58 laouji left 10:04 andreoss joined 10:06 leont joined 10:13 Guest34943 is now known as felher, andreoss left 10:25 abraxxa left 10:26 abraxxa joined 10:27 cognominal joined
lizmat drops a pin 10:47
nine sssht! 10:49
masak combs the sound waves back to placidity 10:53
11:01 telex left 11:02 telex joined
DrForr drops a pin 180 degrees out of phase. 11:02
11:03 rindolf joined
masak I hear you can drop pins to approximate the value of pi 11:03
basically a simple Monte Carlo simulation
DrForr Yep, a wood strip floor and pins exactly as wide as the strip, I think 4/\pi pins will cross the boundary on average. French mathematician, I think. 11:05
masak I approve of anyone who assumes LaTeX notation for explaining things 11:06
moritz or simply draw a quarter circle, and drop grain or something
masak: did you mean \LaTeX notation? :-)
or was that \latex (to produce the logo)?
moritz is rusty
DrForr looks around for a bell, eventually we'll need it ;) 11:07
moritz DrForr: you mean for ee'Tex (ding) ?
DrForr Got it in one. Biobreak, back in a while.
masak .oO( ìTex )
11:10 Ven joined 11:12 ][Sno][ joined 11:13 rurban joined 11:15 [Sno] left 11:24 woolfy joined
DrForr waves at woolfy 11:24
woolfy waves back to DrForr (continent-wide wave) 11:25
Ehm...
German Perl Workshop will be on 9-12 March 2012: act.yapc.eu/gpw2016/
german Perl Workshop would like to have a lot of Perl 6 talks, since it will be shortly after the launch of Perl 6.0.0.
DrForr Well, I should be strong enough to make it by then... :) 11:26
pink_mist 2012? 0_o
moritz 2016 :-)
pink_mist that makes more sense :P 11:27
moritz woolfy: also, I'll be one of the folks deciding which talks will be accepted :-)
DrForr o/' Goin' back in time... o/'
woolfy So if you live in the neighbourhood (Germany, Czech republic, Poland, Sweden, Netherlands, France) and you are a bit or more involved in Perl 6, register, and submit a proposal to talk: act.yapc.eu/gpw2016/newtalk
2016. 2016. 2016. Raah...
moritz: it was Steffen Winkler who asked on the Perl 6 page on Facebook ( www.facebook.com/groups/1595443877388632/ ) 11:28
DrForr Have they decided on a location in Germany?
woolfy Nuremberg
Lovely city.
moritz woolfy: ah yes, one of the more active organizers 11:29
moritz guesses he should get his stuff together and become more active himself
woolfy moritz: I assume blindly that you will be impartial and make a rightful selection of Perl 5 and Perl 6 and other (maybe not-Perl-related) talks. No favoritism for Perl 6. :-) 11:30
CQ maybe a 6:5 ratio of the talks? ; )
woolfy :-) 11:31
moritz woolfy: assumptions are dangerous... :-)
woolfy certainly when made blindly...
And bny the way, the Perl 6 page on Facebook is starting to be interesting. Emil Elshishini, for example, asked a question on installing Perl 6 Rakudo via rakudobrew and had some problems, and DrForr reacted by pointing him here. 11:32
And itz reacted substantively. 11:33
moritz makes me almost sorry that I'm not active on Facebook 11:34
DrForr I'm still somewhat in pain and couldn't quite follow what he was asking. And I thought that more traffic here was a good thing.
timotimo i'd appreciate it if you could follow the messages on that facebook group without being logged in >_> 11:36
_itz timotimo: I think you can. I turned off various things on FB (inc. messenger) and get email alerts 11:38
DrForr moritz: It shouldn't. The other perl groups are a cesspool, basically Indian offshored workers either trying to get interview questions asked or asking for people to write their code for them.
_itz I'm not 100% convinced its actually worth it anyway :)
timotimo _itz: i don't have a facebook account at all
_itz timotimo: you aren't missing much 11:39
11:39 kid51 joined 11:40 kolikov joined
timotimo oh, actually, "i don't have a facebook account" is most probably wrong 11:40
"i didn't apply for one" is more accurate 11:41
DrForr I didn't either, I just got one one day. Under my real name :(
timotimo i don't think it makes a difference if you use your real name or not; facebook has such a massive collection of data that the graph just gives it away anyway
DrForr Oh, definitely. 11:42
kolikov m: sub f( Array :@x ) { }; f( x => [] );
camelia rakudo-moar c189c7: OUTPUT«Type check failed in binding @x; expected 'Positional[Array]' but got 'Array'␤ in sub f at /tmp/YKqfNG4_W7:1␤ in block <unit> at /tmp/YKqfNG4_W7:1␤␤»
kolikov m: sub f( Array :$x ) { }; f( x => [] );
camelia ( no output )
moritz m: sub f(:@x) { }; f x => []; 11:43
camelia ( no output )
timotimo kolikov: the @ sigil already declares "you want a listy thing", that's why it says "Positional"
so writing "Array @foo" is actually like "an array of arrays"
just like "Int @foo" is "an array declared to hold Int objects"
kolikov Ha ... I see thanks :) 11:44
cognominal I don't have a FB account because I thought they were pure evil; but they gave us react, so they are only mostly evil. Probably pure evil does not exist, we just want to. 11:45
Ven ohai, #perl6!
Ven hugs woolfy++
timotimo one common pitfall is that if you declare in your signature "Int @foo", you'll have to actually pass an array *declared* to hold Int objects; just putting in an array that has only Int in them is not enough
Zefram_Fysh oh, that reminds me: S02 shows things like "my Array of Int @a" to get an array of integers, whereas in Rakudo the "Array of" is implicit. S02 should be changed to match Rakudo
kolikov @ timotimo so ... sub f( Int :@x ) { }; f( x => [1] ); would throw an error ... 11:47
sub f( Int :@x ) { }; f( x => [1] );
m: sub f( Int :@x ) { }; f( x => [1] );
camelia rakudo-moar c189c7: OUTPUT«Type check failed in binding @x; expected 'Positional[Int]' but got 'Array'␤ in sub f at /tmp/vLWa1wkt__:1␤ in block <unit> at /tmp/vLWa1wkt__:1␤␤»
timotimo yeah
moritz kolikov: correct
timotimo m: sub f( Int :@x ) { }; f( x => Array[Int].new(1) );
camelia ( no output )
timotimo m: sub f( Int :@x ) { }; my Int @thingie = 1, 2, 3; f( x => @thingie );
camelia ( no output )
DrForr woolfy: Do you think pointing people to #perl6 is the right thing to do?
pink_mist can you make the Int :@x coersive? 11:48
timotimo pink_mist: we don't have a solution for that yet
pink_mist ah, darn
woolfy hugz Ven
11:49 dalek left
woolfy DrForr: don't know yet. I can just hope that some people come here and do good things. 11:49
Zefram_Fysh you can't coerce because the array is writable
timotimo aye, and the coerced array would just be a copy
Zefram_Fysh interesting variant here: 11:50
11:50 dalek joined, ChanServ sets mode: +v dalek
Zefram_Fysh m: sub f(Numeric @x) { @x[0] = 1/3; }; my Int @a; f(@a); say @a[0] 11:50
camelia rakudo-moar c189c7: OUTPUT«Type check failed in assignment to '@a'; expected 'Int' but got 'Rat'␤ in sub f at /tmp/O4Of0KFWGT:1␤ in block <unit> at /tmp/O4Of0KFWGT:1␤␤»
timotimo or you'd replace the thing passed-in, which only works if it's not literal (and it'll confuse the F out of people)
DrForr Well, as we get closer to release more people will come in, may as well start boiling the proverbial frog :)
Zefram_Fysh Array[Int] satisfies the Positional[Numeric] constraint, but the Int constraint is enforced on write
kolikov timotimo : I'll take Array[].new() then ... Thanks ! 11:51
moritz Zefram_Fysh: we'd need covariant and contravariant typing to avoid that
Zefram_Fysh yes
moritz and I don't think anybody wants that :-) 11:52
Zefram_Fysh it is somewhat strange that after the (Numeric @x) declaration you can't write an arbitrary Numeric into the array. I think I'd sometimes want to get that sort of guarantee 11:53
moritz the Perl 6 type system isn't strong enough to give that guarantuee, ever 11:54
and I don't think it can be made that way, while still staying naturally usable in a dynamic language
11:54 kid51 left 11:55 SteffenW joined
dalek kudo/nom: c26954b | lizmat++ | src/core/Str.pm:
GLRify Str.lines properly

for $str.lines now 40% faster, and $str.lines.elems 14x as fast.
11:56
Zefram_Fysh the Positional[Numeric] parameter type could be taken to require an exact match on Numeric for writable Positional types, and that would be useful
moritz no 11:57
Zefram_Fysh no?
moritz in your exmaple, Positional[Any] would also allow the write
so it'd be too strict
Zefram_Fysh but Positional[Any] would lack the read guarantee
for read/write types, you need an exact match on the element type
moritz but the rabbit hole goes much deeper
you can't require an exact match for Positional[Numeric]; Array[Numeric] isn't an exact match 11:58
so you have to special-case the first part of the type check
Zefram_Fysh I only said you'd need an exact match on the element type
and only for read/write Positional classes, such as Array
for read-only container classes, a covariant match of element type is appropriate 11:59
moritz but that gives trouble for nesting
Zefram_Fysh and in theory, a write-only container class would want a contravariant match of element type
moritz sub f(Positional[Numeric] @x) { g(@x[0]) }; sub g (Numeric @x) { g[0] = 1/3 } 12:00
Zefram_Fysh the nesting works just fine. same rules apply at each level, based on the kind of match required by the level above
moritz so you don't want to special-case based on nesting, but on whether it's a container vs. element type?
Zefram_Fysh huh?
container vs element type is not an inherent feature of the classes, it's about the relationship between them 12:01
moritz in sub f(Positional[Numeric] @x)
the expected type is Positional[Positional[Numeric]]
Zefram_Fysh yes
moritz would you allow passing an Array[Array[Numeric]] to it? 12:02
Zefram_Fysh no
moritz then it's pretty useless
because you can't instantiate Positional
Zefram_Fysh an Array[] argument would require exact match of the element type, and Array[Numeric] isn't the same as Positional[Numeric]
Positional[Positional[Numeric]] would accept a read-only container at top level with Array[Numeric] elements 12:03
12:03 pullphinger joined
SteffenW act.yapc.eu/gpw2016/ German Perl Workshop, Wed 2016-03-09, registration is open, think about your talks, 3 conference days + 1 hackathron day + partnerprogramm 12:03
Zefram_Fysh does List work as a read-only Positional? 12:04
moritz SteffenW: woolfy already came in here :-)
m: say List ~~ Positional
camelia rakudo-moar c189c7: OUTPUT«True␤»
Zefram_Fysh m: say List[Int].new(1,2) 12:05
camelia rakudo-moar c189c7: OUTPUT«5===SORRY!5=== Error while compiling /tmp/dWY0zqIU1l␤List cannot be parameterized␤at /tmp/dWY0zqIU1l:1␤------> 3say List[Int]7⏏5.new(1,2)␤»
Zefram_Fysh I think you'd want a List that actually contains only T values to count as a Positional[T], despite the lack of explicit parameterisation of List for construction 12:07
moritz Zefram_Fysh: that would be nice, but also confusing, because Lists are lazy 12:08
Zefram_Fysh oh, right
is there an eager equivalent? 12:09
moritz no
Zefram_Fysh that's troublesome, then
moritz well, there's array (with lower case), but that's already natively typed
Zefram_Fysh a lack of immutable structured types would certainly impact the practicality of the theoretically-correct type system 12:10
moritz any theoretician will facepalm when confronted with Perl 6's type system 12:13
timotimo aye, sadly it's no good for those kinds of people
it's still loads better than what perl5 offers, mind you :P
Zefram_Fysh with List being lazy, maybe it *should* be explicitly parameterisable 12:15
[TuxCM] when will panda be fixed?
moritz when will MoarVM be fixed? 12:19
12:21 luiz_lha joined
pink_mist . o O ( panda fixed? a neutered panda? ) 12:21
12:21 luiz_lha is now known as Guest81364
timotimo was there ever a change to moarvm to make the "return with nameds" thing work? 12:22
moritz timotimo: seems not; which is why panda is still broken
timotimo but then why does disabling the jit fix the problem?
i haven't looked at gen'd code yet, but the jit isn't really treating return ops differently from the interpreter 12:23
12:23 Guest81364 is now known as luiz_lha
jnthn afternoon, #perl6 12:23
timotimo the only thing that'd make sense to me would be that the spesh'd versions of the return ops don't work perfectly, but return ops don't actually get spesh'd *and* then keeping spesh on should also show the problem
moritz timotimo: I have no idea
DrForr Afternoon. 12:24
12:24 Ven left
timotimo me neither :| 12:29
i should look at the generated code to figure out what's wrong
dalek kudo-star-daily: e1b343f | coke++ | log/ (8 files):
today (automated commit)
12:32
rl6-roast-data: 15e0990 | coke++ | / (9 files):
today (automated commit)
12:33 aborazmeh joined, aborazmeh left, aborazmeh joined
nine woolfy: are there still talk slots available for FOSDEM? 12:35
timotimo wait ... 12:36
the problem arises from having "return Foo::Bar.new(named parameters here)" vs "Foo::Bar.new(named parameters here)" ?!?
jnthn timotimo: Did you manage to recreate it? 12:37
timotimo no, just digging through the irclog so far 12:38
jnthn ah
[Coke] mst: Pretty sure I have a tcl grammar lying about somewhere.
timotimo irclog.perlgeek.de/perl6/2015-09-19#i_11245158 - this is a relevant section
DrForr There's a TCL ANTLR grammar, maybe use my converter? 12:42
lizmat nine: could it be that Inline::Perl5 has not be de-EnumMapped ? 12:47
nine lizmat: oh indeed! 12:48
dalek line-Perl5: fd6413e | (Stefan Seifert)++ | lib/Inline/Perl5.pm6:
EnumMap is now Map

Thanks to lizmat++ for the reminder!
12:50
lizmat nine: Can't locate Sub/Name.pm in @INC # didn't know Sub::Name is now a requirement ?
[TuxCM]: export MVM_JIT_DISABLE=1 will for now allow you to build panda 12:51
Ulti nine if I wanted to fix my code ahead of lots of hash/map changes should I work against your GMR branch? or is that more speculative than spec at the moment? 12:52
nine timotimo: maybe github.com/rakudo/rakudo/commit/0d40e0080 gives a hint what could go wrong?
Ulti: it's already merged
Ulti nine ahh ok cool
I will start fixing my BioInfo package then 12:53
its a lot more dead than I had hoped for ;___;
12:53 cognominal left
nine lizmat: yes Sub::Name is a requirement now. I seem to have thought that it's in CORE. May degrade it to a runtime requirement, since it's only required if you use v6::inline; 12:53
timotimo nine: are we sure that the $*IN_RETURN gets cleared properly for things?
Ulti I suspect mostly a generous sprinkle of .flat or .list will bring it back to life
nine timotimo: do not assume that. If anything I cargo culted and no one has cought me yet. 12:54
12:54 brrt joined
timotimo hah 12:54
lizmat nine: This is perl 5, version 20, subversion 0 (v5.20.0) built for darwin-2level is on OS X 10.10.5 and does not have Sub::Name
woolfy nine: there's no official call for proposals for FOSDEM yet. But... 12:55
lizmat checks for updates
timotimo AFK for a bit
ilmari nine: Sub::Name is not in core. Sub::Util is as of 5.22
Sub::Util includes the functionality from both Sub::Name and Sub::Identify
woolfy nine: FOSDEM no news yet: fosdem.org/2016/news/
[Coke] sees that PerlJam closed a ticket assigned to Coke without checking with coke, and coke didn't get an email. 12:56
nine woolfy: with so much time still available, I'm not sure what exactly I'm gonna be able to talk about. However I do know that I would want to give a talk again :) 12:57
ilmari: oh, nice. So replacing Sub::Name::subname by Sub::Util::set_subname would already help many people.
[Coke] woolfy: there's a perl 6 page on facebook?
Ulti there's also a Perl 6 sub reddit that no one goes to :S 12:58
or at least no one comments on
DrForr Courtesy yours truly. There wasn't much p6 traffic, I thought it was because everyone was fixated on p5.
[Coke] Ulti: if I reddited, I'd use it. :) 12:59
brrt timotimo: broken stuff?
DrForr Lots of modules in the ecosystem, but very few people talking about them. 13:00
brrt aye, but jit bug?
nine lizmat: demoting to a runtime dependency won't help much if the tests still fail....hmm... 13:01
Ulti [Coke] I just use it for Perl news, other than twitter its about the only place with up to date info 13:02
lizmat if I recall correctly, Sub::Name is a minimal amount of XS
nine: maybe it would be handier to just put the XS into the Inline::Perl5 logic ?
woolfy Slides of Perl 6 talk by garu during YAPC::Brasil. In Portuguese. www.slideshare.net/garux/introduo-ao-perl-6
brrt .ask timotimo is this a new jit bug or the old one? 13:03
yoleaux brrt: I'll pass your message to timotimo.
nine lizmat: that's my current line of thinking. It's not that much code.
woolfy nine: you are welcome to send a talk proposal to me. Or just tell me you want to talk in the Perl-devroom, and I will put you on the list to contact next month, to ask you for a title, summary, and your "bio". 13:04
[Coke]: Perl 6 page on Facebook: indeed. www.facebook.com/groups/1595443877388632/ 13:05
DrForr He's already signed up :)
nine woolfy: yes I do want to talk in the Perl-devroom and please put me on the list :) I will probably talk about some Perl 5 <-> Perl 6 stuff :)
DrForr Sigh. Throw my name on there as well, I'll try a different approach :) 13:06
13:06 larion left
woolfy nine: will do. by the way, I am utterly surprised that you want to talk about Perl 5 <-> Perl 6 stuff. ;-) 13:06
nine brrt: the bug faced with merging the gmr branch which adds a Pair.new($key, $value) candidate. So far I've failed to reproduce it outside of panda. 13:07
brrt gmr branch?
woolfy DrForr: throw your name on the list of speakers for Perl-devroom at FOSDEM? Or were you not talking to me?
DrForr Yes, that.
nine woolfy: yeah, who'd have thought? ;)
woolfy DrForr: done 13:08
nine: me me me me me! 13:09
DrForr I missed a chance to promote ::ToPerl6 at YAPC, FOSDEM will have to do :)
woolfy DrForr: I can't guarantee we will get a devroom. I can't even apply for one yet, since they did not start the process yet. 13:10
DrForr 'sokay, I can see the writing on the wall.
nine brrt: basically postcircumfix.com/2015-08-29-untang...-hierarchy
brrt oh, yes
i read that, looked good 13:11
hmmm
nine brrt: thought so, too, so I implemented it :)
brrt ok, so with that, we have a bug in panda
somehwere
brrt realizes he's some weeks behind his rakudo 13:12
13:13 Ven joined
nine brrt: return 1, :foo(2); needed fixing because foo got promoted to a named argument, despite being just a Pair constructor. My first attempt caused foo in return Foo.new(:foo(1)) to no longer be a named argument, but I fixed that. It seems like the JIT needs some fix for that as well. 13:13
[TuxCM] OH WOW 13:14
test 50000 34.591 34.512
test-t 50000 35.531 35.451
brrt so, return 1, :foo(2) breaks evilly in the JIT?
moritz nine: there's nothing wrong with return 1, :foo(2) having :foo as a named argument, as long as &return doesn't discard named params 13:15
13:15 aborazmeh left
nine moritz: but &return does 13:16
moritz nine: then &return needs fixing, not the grammar or actions
13:17 andreoss joined
nine moritz: is return a function or is it just implemented as one? 13:17
moritz src/core/control.pm:my &return := -> | { 13:18
nine: it's a block, actually
not a function
13:19 aborazmeh joined, aborazmeh left, aborazmeh joined
nine That's how it's implemented. I'm wondering about the design. 13:20
lizmat [TuxCM]: better ? 13:22
fwiw, I think it should be a sub :-) 13:23
but I seem to recall, that breaks things at least on the JVM
nine brrt: no, this: github.com/tadzik/panda/blob/maste...App.pm#L39
13:23 cognominal joined
brrt hmm, ok 13:24
oh, i have a hypothesis
nine brrt: the error message indicates, that those arguments to the constructor are no longer promoted to named ones.
brrt oh, i no longer have a hypothesis
nine :(
brrt: github.com/rakudo/rakudo/commit/0d40e0080 was my fix for return 1, :a(2); 13:25
timotimo brrt: it actually seems like a function that takes named arguments breaks when a "return" is put in front of it
yoleaux 13:03Z <brrt> timotimo: is this a new jit bug or the old one?
timotimo but only if the jit is turned on
which ... wtf?
brrt ok, let's try that out 13:26
this in all rakudo's or just the gmr rakudo
timotimo there's no "gmr rakudo"
gmr has been merged into nom already
brrt oh
ok :-) 13:27
13:31 cschwenz joined, cschwenz left 13:35 Ven left
[TuxCM] lizmat, yes 13:36
first time ever under 36 13:37
lizmat I guess it's my .lines changes...
13:37 AlexDani` joined
lizmat hmmm... can't be 13:37
[TuxCM]: no idea what caused that improvement 13:38
[TuxCM] and my stuff has no .lines calls anywhere :)
lizmat yeah :-)
jnthn I thought the outer loop of test-t uses lines() ?
13:38 AlexDaniel left
lizmat ah, could be :-) 13:39
13:40 larion joined
nine Yes, it does. 13:40
13:42 Ven joined 13:43 SteffenW left, mullagainn joined
[Coke] RT: 1,025 ; GLR - 3; testneeded - 9; Christmas - 108 13:48
[TuxCM] else { # fastest, but unsafe 13:49
for lines () :eager {
jnthn [Coke]: How'd you get the 108? :)
[TuxCM] that one?
timotimo you can kick out the :eager fwiw
jnthn [Coke]: I'm guessing you counted dependencies of RT #123766?
[Coke] jnthn: the hard way.
jnthn Damn, I thought you had a clever way. But when I counted yesterday I got 118...hmm :) 13:50
[Coke] right, looked at linked tickets,copied them into vi, checked the #lines.
jnthn Hm
OK :)
[Coke] double checks..
same.
[Coke] chuckles at rt.perl.org/Ticket/Graphs/index.html?id=123766 13:51
timotimo blergh %) 13:52
brrt oh, lord, that is indeed difficult to reproduce 13:53
nine [Coke]: I cannot look at that graph. Neither with the anonymous user, nor with my own. 13:54
13:54 laouji joined, AlexDani` is now known as AlexDaniel
lizmat [TuxCM]: forget about :eager, just use .lines: it's safe now 13:54
nine and fast :) 13:55
[TuxCM] test 50000 34.742 34.663
test-t 50000 35.831 35.752
without :eager
[Coke] sees a ticket mail, ponders replying to it as a DIHWIDT, and sees that jnthn++ has already fixed it, added tests, and closed it. 13:56
13:57 aborazmeh left 13:58 laouji left 13:59 rurban left 14:02 hernanGOA joined 14:04 Ven left, skids joined
andreoss could list comprehension be lazy? 14:04
m: my @f = ($_ if $_ %% 2 for 1..*); say @f[^10]; 14:05
camelia rakudo-moar c26954: OUTPUT«(timeout)»
timotimo hmm 14:06
i was hoping i could get the extra node info from SpecialArg as well as Op by using "~ callsame", but no joy :(
skids Array assignment is eager, no?
leont But binding isn't
andreoss m: my @f = 1..*; say @f[^10] 14:07
camelia rakudo-moar c26954: OUTPUT«(1 2 3 4 5 6 7 8 9 10)␤»
leont my @f := (1..*).grep(* %% 2).list; say @f[^10];
andreoss m: my @f = (1..*).grep(* %% 3); say @f[^10]; 14:08
camelia rakudo-moar c26954: OUTPUT«(3 6 9 12 15 18 21 24 27 30)␤»
andreoss it should detect infinite structures and make array lazy explicitly 14:10
but should it work with python-styled list comprehension? 14:11
colomon panda’s broken for nom?
timotimo there's a simple fix available, IIUC 14:12
14:12 brrt left
timotimo we could "just" turn the offending line into two lines 14:12
14:12 Sqirrel_ left 14:16 Ven joined, khw joined
skids Ah, It's for. IIRC for was to stay eager at one point due to usual expectations from procedural languages. 14:20
14:23 aiacob joined 14:24 laouji joined 14:29 laouji left 14:33 Loren joined
Loren evening #perl6 . 14:33
hoelzro o/ #perl6 14:34
[Coke] hoelzro, Loren: ohai. 14:36
hoelzro o/ [Coke]
Loren (Coke, hoelzro).map(&sayhi) 14:37
Is it right? 14:38
14:38 hernanGOA left
hoelzro looks good to me =) 14:38
14:39 hernanGOA joined
Loren haha. 14:41
dalek kudo/nom: b578b41 | lizmat++ | src/core/IO/Handle.pm:
Only one consumer, we don't need a role

This makes IO.words again 20-30% faster, as we're no longer bothered by RT #126120, so we can use a native int for the position.
14:45
14:46 synbot6 joined, kivutar joined
andreoss m: sub say-hi { "hi, $^x!" }; qw/coke hoelzro/».&say-hi 14:49
camelia ( no output )
14:49 Sqirrel joined
andreoss m: sub say-hi { "hi, $^x!".say }; qw/coke hoelzro/».&say-hi 14:49
camelia rakudo-moar c26954: OUTPUT«hi, coke!␤hi, hoelzro!␤»
14:50 brrt joined, Loren left 14:51 jack_rabbit_ left, Loren joined 14:53 andreoss left 14:54 xfix joined 14:55 aindilis left 14:56 aindilis joined 14:57 rurban joined
brrt you know what i find confusing? i wouldn't expect make-default-ecosystem to run often at all 14:58
nine I also have not been able to reproduce by doing something like sub foo() { return Foo.new(:bar(1)) }; foo() for 1 .. 10000; 14:59
brrt that is almost, to the letter, my exact test :-) 15:00
nine woah :) 15:01
timotimo brrt: you are right, that confused me quite a bit, too 15:03
nine Are we sure the JIT is at fault here?
15:04 aiacob left, oZ_ joined, oZ_ is now known as oZ]
timotimo well, turning the jit off is the one thing that fixes it ... for no good reason at all IMO 15:04
15:04 oZ] left
nine That's the only (albeit strong) indicator pointing in the JIT's direction. OTOH I'd assume that the JIT is far too low level for a bug like this. Am I wrong? 15:05
15:05 domidumont left
timotimo don't think you're wrong 15:05
but what do i know
15:06 domidumont joined
brrt hmmm 15:06
i could imagine a bug in handling named arguments, but i'm not seeing good evidence of it
timotimo did we already check reverting just the "return 1, :a(1)" commit fixes this 15:08
15:15 [TuxCM] left, Ven left
moritz timotimo: not that I'm aware of 15:17
timotimo i shall have a go 15:18
brrt interesting
15:19 DrForr left, DrForr joined
timotimo yeah, that fixes it 15:20
i was assuming for a little bit that the constructor to ecosystem is being called with the named parameters as Pair objects instead
but the QAST doesn't look like that
oh, look at that 15:21
er, no, the bug isn't going to suddenly show itself again unless i undo the revert %)
Zefram_Fysh m: sub aa (Hash[Any] @a) { }; my @a of Hash[Any]; aa(@a) 15:25
camelia rakudo-moar b578b4: OUTPUT«Type check failed in binding @a; expected 'Positional[Hash[Any]]' but got 'Array[Hash[Any]]'␤ in sub aa at /tmp/K0isqvhFkg:1␤ in block <unit> at /tmp/K0isqvhFkg:1␤␤»
Zefram_Fysh that type mismatch looks nonsensical 15:26
timotimo m: say Array[Hash[Any]] ~~ Positional[Hash[Any]]
camelia rakudo-moar b578b4: OUTPUT«True␤»
timotimo yeah
Zefram_Fysh should I RT it? 15:27
timotimo m: sub aa (Hash[Any] @a) { }; my Hash[Any] @a; aa(@a)
camelia ( no output )
timotimo huh, interesting
so just "of" being wrong?
Zefram_Fysh er, not sure
the prefix is certainly behaving differently from the "of" 15:28
timotimo well, without using "of" it seems to work
right
Zefram_Fysh m: sub aa(Int @a) { }; my Hash[Any] @a; aa(@a)
camelia rakudo-moar b578b4: OUTPUT«5===SORRY!5=== Error while compiling /tmp/dI0qCfs3Ju␤Calling aa(Positional[Hash[Any]]) will never work with declared signature (Int @a)␤at /tmp/dI0qCfs3Ju:1␤------> 3sub aa(Int @a) { }; my Hash[Any] @a; 7⏏5aa(@a)␤»
Zefram_Fysh m: sub aa(Int @a) { }; my @a of Hash[Any]; aa(@a) 15:29
camelia rakudo-moar b578b4: OUTPUT«Type check failed in binding @a; expected 'Positional[Int]' but got 'Array[Hash[Any]]'␤ in sub aa at /tmp/Rr20o0AT5e:1␤ in block <unit> at /tmp/Rr20o0AT5e:1␤␤»
Zefram_Fysh why are those so different?
15:30 diana_olhovik left, FROGGS joined 15:31 larion left
Zefram_Fysh m: sub aa (Hash[Any] @a) { }; my Hash[Any] @a; aa(@a) 15:31
camelia ( no output )
15:36 frodwith joined 15:37 domidumont left
timotimo i may have done the check wrong after reverting 15:39
timotimo re-checks
brrt dinner & 15:41
timotimo no, reverting that commit in question fixes things 15:42
brrt timotimo++ for bughunting :-)
timotimo and --optimize=off (as i thought may change things) doesn't do anything
i may be hunting, but ... not really progressin' 15:43
15:46 brrt left
FROGGS o/ 15:47
yoleaux 20 Sep 2015 10:14Z <jnthn> FROGGS: thanks, added those to gist.github.com/jnthn/040f4502899d39b2cbb4
[Coke] GLoRious 15:50
ilmari a workaround would be to do my $panda-ecosystem = Panda::Ecosystem.new(...); return $panda-ecosystem; 15:51
timotimo yeah 15:52
i actually do have commit access to panda ...
ilmari I guess the promotion should only be inhibited at the top-level of return's arguments
[Coke] 04-phasers/pre-post.t is dying with a SORRY.
ilmari not when parsing arguments to other subs/methods within the return
15:53 baest_ joined
timotimo i've committed something 15:53
ilmari is there a good perl6-mode for emacs? 15:54
lizmat [Coke]: it's been for a while :-( 15:55
15:56 abraxxa left
[Coke] m: sub bar(Int $i) { POST { $i < 5 } } 15:57
camelia rakudo-moar b578b4: OUTPUT«===SORRY!===␤Lexical '$_' already declared␤»
[Coke] ^^
15:57 xinming left 15:59 xinming joined
[Coke] m: sub bar { POST {} } 16:00
camelia rakudo-moar b578b4: OUTPUT«===SORRY!===␤Lexical '$_' already declared␤»
[Coke] m: POST {}
camelia rakudo-moar b578b4: OUTPUT«===SORRY!===␤Lexical '$_' already declared␤»
[Coke] whee.
japhb waves from his usual morning location: in a bus in a traffic jam 16:02
lizmat japhb o/ 16:03
japhb timotimo: Did you ever merge your new benchmarks into perl6-bench?
timotimo oh
perhaps i didn't
gimme a sec
japhb np
timotimo pushed 16:04
dalek rl6-bench: d0b8fda | timotimo++ | microbenchmarks.pl:
add a benchmark for 2d indices with unpacking
japhb lizmat++ # Lots and lots of optimization work on commonly-used paths
Thanks, timotimo
16:04 eternaleye left
nine ilmari: that's already fixed. And I've so far failed to reproduce the bug outside of panda. 16:04
timotimo lizmat: if you're interested, i think putting the values of an xx into an array could be GLRified for big wins 16:05
lizmat japhb: for me it's really just getting a feel of the GLR and it's possibility
*ies
timotimo: noted
I'm eyeing Str.split and Str.comb atm
dalek ast: 9505191 | coke++ | S04-phasers/pre-post.t:
Merge duplicate tickets
16:07
timotimo ah, cool
japhb Yeah, I'm going to need to do that at some point too (really get a feel for the GLR API and its possibilities). For now most of my GLR-ification has been unbreaking places in my code that assumed different flattening behavior. 16:08
16:09 larion joined
japhb .ask jnthn Are the specs for GLR internal API on your short list? Or is there other stuff in front of them? 16:09
yoleaux japhb: I'll pass your message to jnthn.
16:10 Loren left
timotimo lizmat: did you get behind why some code was calling push-one over and over, instead of using push-exactly? 16:11
[Coke] is bisecting the POST failure.. 16:13
16:13 perl6_newbee joined
lizmat timotimo: no, I didn't look into that further: 16:14
timotimo maybe i can lend a hand
lizmat and it was "push-exactly" being called with 1 , rather than pull-one() 16:15
timotimo ah
moritz japhb: fwiw doc.perl6.org has something on the Iterator API 16:17
japhb: as well as Seq
dalek kudo/nom: 5253ae0 | lizmat++ | src/core/Str.pm:
Make Str.ords about 3x as fast

Also intruduce a basic ProcessStr role for convenience in further work
kudo/nom: e2482f4 | lizmat++ | src/core/Str.pm:
Make Str.lines consume the ProcessStr role
moritz doc.perl6.org/type/Iterator doc.perl6.org/type/Seq
16:18 rurban left
moritz the GLR is about much more than that, but it helped me a lot to understand those two pieces 16:19
16:24 laouji joined
[Coke] moritz: I want to add something to the six docs that would keep the title visible as you scroll down, and maybe part of the header. Any complaints/suggestions? 16:25
also perhaps multicolumn the routines listing, as that gets kind of unweildy on long lists. 16:26
moritz [Coke]: +1 to multicolumn routine listings
16:26 spider-mario joined
moritz [Coke]: -0.5 to sticky title; what's the use case? 16:26
[Coke] So I know where I am when I'm 20 page-downs on a page. 16:27
and have an easy way to jump to the next thing.
(without having to scroll back to top)
dalek c: e320a97 | TimToady++ | lib/Type/Seq.pod:
s/.lines/.cache/
TimToady er, .list
moritz [Coke]: I usually look at the title bar of my browser window for that 16:28
16:28 laouji left
dalek c: 9cf2469 | coke++ | lib/Type/PositionalBindFailover.pod:
fix typos
16:29
moritz sticky titles permantently use up screen estate, and are annoying on low-powered devices
timotimo agreed; if you put something in, make sure it's "responsive" 16:30
[Coke] lack of navigation is a PITA for people spending a long time going to different locations on the site.
I'll mock something up for that part instead of just committing, we can argue about an implementation. :)
dalek kudo/nom: 07ef13a | lizmat++ | src/core/Str.pm:
Make Str.comb() about 3x as fast
16:32
japhb moritz: Thanks for the doc pointers! 16:33
jnthn++ # Making the internal API good enough to gain us such nice performance wins 16:35
16:47 dakkar left 16:50 spider-mario left 16:51 spider-mario joined, larion left, patrickz joined 16:53 laouji joined 16:54 muraiki joined 16:57 dnmfarrell joined 16:58 laouji left
dnmfarrell good afternoon sixers! I've written an article on setting Vim syntax highlighting for Perl 6 files. It's not yet live, but would you mind taking a look (particularly the Conclusion) and letting me know if I'm way off base here? Planning to publish it later this week. perltricks.com/article/194/2015/9/...ing-in-Vim 16:58
hoelzro dnmfarrell: nice writeup! btw, vim-perl has a script for determining whether or a not a script looks like Perl 6: github.com/vim-perl/vim-perl/blob/...perl11.vim 17:01
dnmfarrell nice work hoelzro ! 17:02
[Coke] jnthn: you broke POST with a328aab7acd070b5c0a5565a5840e26706484f5a
17:03 [TuxCM] joined, diana_olhovik_ joined
[Coke] updates RT #124961 17:03
lizmat m: "aaaa".comb("aa").say # this feels wrong
camelia rakudo-moar 07ef13: OUTPUT«(aa aa aa)␤»
[Coke] lizmat: I recall something like :overlap somewhere. don't see it on comb, though. 17:05
m: "92p3874234".comb(/../).say
camelia rakudo-moar 07ef13: OUTPUT«(92 p3 87 42 34)␤»
[Coke] m: "aaaa".comb(/'aa'/).say
camelia rakudo-moar 07ef13: OUTPUT«(aa aa)␤»
lizmat yeah., so it's wrong 17:06
[Coke] oh. That's probably my fault. I think I just implemented that at SPW.
Want me to fix it?
ah, it was the GLR-ified. 17:07
17:08 rurban joined
[Coke] *then 17:08
17:08 [TuxCM] left
[Coke] oh, maybe I did the regex one? That was actual weeks ago, I have no idea. :) 17:09
17:09 laouji joined
lizmat no pb, fixing it now :-) 17:09
dalek kudo/nom: a297b94 | lizmat++ | src/core/Str.pm:
Add twigils, for consistency
17:12
17:12 kivutar left 17:14 laouji left
[Coke] t/spec/S17-supply/watch-path.t failed under high TEST_JOBS 17:20
timotimo did i already report that split_string_constant has become 8.5x slower since the pre-glr release? 17:21
oh, and there's "rand" which is also slower compared to pre-glr, but that's most probably just the for-to-while optimization missing 17:24
[Coke] might be worth opening RTs so we don't lose those reports. 17:25
(and tagging them [GLR]) 17:26
17:27 rurban left 17:29 perl6_newbee left
TimToady turns out that making List a distinguished smartmatch return value does not interfere with List.ACCEPTS, so we're just gonna leave it there 17:39
17:39 laouji joined 17:40 FROGGS left
TimToady however, the current semantics are wimpy, and even mis-implemented (won't work on wildcards over non-numerics), so we're gonna powerup to recursive smartmatch, and do the variable-width wildcard with ** instead of * 17:40
so * will match a single list item
17:42 [TuxCM] joined
[Coke] m: say $\ 17:43
camelia rakudo-moar 07ef13: OUTPUT«5===SORRY!5=== Error while compiling /tmp/4UbBiB4LPa␤Confused␤at /tmp/4UbBiB4LPa:1␤------> 3say $\7⏏5<EOL>␤ expecting any of:␤ postfix␤»
17:43 laouji left
TimToady Using !== instead of !=== is the cause for RT #123144 btw 17:43
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=123144
TimToady so that'll fix too
[Coke] TimToady: ^^ that looks like an extra <terminator> is in the rule for $\ that might want to go away.
(RT #123887)
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=123887
TimToady m: say $\ ; 17:44
camelia rakudo-moar 07ef13: OUTPUT«5===SORRY!5=== Error while compiling /tmp/PRBAlRRvqv␤Unsupported use of $\ variable; in Perl 6 please use the filehandle's .nl attribute␤at /tmp/PRBAlRRvqv:1␤------> 3say $\7⏏5 ;␤»
17:44 [TuxCM] left
TimToady m: say $\ .WHAT 17:44
camelia rakudo-moar 07ef13: OUTPUT«5===SORRY!5=== Error while compiling /tmp/FLP4dQ1YE9␤Unsupported use of $\ variable; in Perl 6 please use the filehandle's .nl attribute␤at /tmp/FLP4dQ1YE9:1␤------> 3say $\7⏏5 .WHAT␤»
TimToady so not parsing as unspace
m: say $\␤ 17:45
camelia rakudo-moar 07ef13: OUTPUT«5===SORRY!5=== Error while compiling /tmp/Sx6z8Pl479␤Unsupported use of $\ variable; in Perl 6 please use the filehandle's .nl attribute␤at /tmp/Sx6z8Pl479:1␤------> 3say $\7⏏5<EOL>␤»
TimToady it doesn't recognize $\ at EOF, is all
[Coke] Right. 17:46
the token for that has an explicit <terminator> which isn't included in most of the other var tokens near it, which was my guess. Figured it was LHF for you. :) 17:47
17:54 laouji joined 17:59 laouji left 18:07 patrickz left 18:09 rurban joined, patrickz joined, laouji joined 18:13 laouji left 18:18 vendethiel joined
bartolin good evening, #perl6 18:21
can someone give me a pointer what the syntax $var:adverb is about? 18:22
m: my $a = 5; say $a:foobar
camelia rakudo-moar a297b9: OUTPUT«5␤»
mst [Coke]: if you happen to remember where, I' 18:31
[Coke]: if you happen to remember where, I'd love to look; if you don't immediately, no need to spend time looking for it now, I won't be using it any time soon, I'll ask you when I'm closer :) 18:32
TimToady std: my $a = 5; say $a:foobar 18:36
camelia std 28329a7: OUTPUT«5===SORRY!5===␤Variable $a:foobar is not predeclared at /tmp/EXcAAgx311 line 1:␤------> 3my $a = 5; say 7⏏5$a:foobar␤Check failed␤FAILED 00:00 137m␤»
TimToady std and rakudo have a difference of opinion there 18:37
18:38 rurban left, laouji joined 18:39 yqt joined, mr_ron joined
mr_ron m; my $a:b = 3; say $a:b 18:40
18:40 gt9k joined
mr_ron m: my $a:b = 3; say $a:b 18:41
camelia rakudo-moar a297b9: OUTPUT«5===SORRY!5=== Error while compiling /tmp/H_ObjCSL9C␤Variable '$a' is not declared␤at /tmp/H_ObjCSL9C:1␤------> 3my $a:b = 3; say 7⏏5$a:b␤»
lizmat m: "abcd".comb.say; "abcd".comb("").say # shouldn't these be the same ? 18:42
camelia rakudo-moar a297b9: OUTPUT«(a b c d)␤( )␤»
TimToady you're confusing comb with split 18:43
18:43 laouji left
lizmat not really, just looking at the implementation of Str.comb :-) 18:43
TimToady comb returns what was matched, and "" can never match a character 18:44
lizmat I guess .comb("") combs out 5 empty strings between 4 letters above
18:44 Peter_R joined 18:46 eternaleye joined
bartolin TimToady: interesting, thanks! I found three tests in roast which look related. (with grep -r '\$[a-z]\+:[a-z]') 18:47
m: use Test; throws-like { EVAL q[my $fo:o::b:ar = "bla"] }, X::Syntax::Confused, "var names cannot have colons in their names either"
camelia rakudo-moar a297b9: OUTPUT« 1..2␤ ok 1 - code dies␤ ok 2 - right exception type (X::Syntax::Confused)␤ok 1 - var names cannot have colons in their names either␤»
bartolin m: use Test; my $three = 3; my $thing = 1 ?? $three:foo !! 2; is $three, 3, "variable and adverb in second part of ternary" 18:48
camelia rakudo-moar a297b9: OUTPUT«ok 1 - variable and adverb in second part of ternary␤»
bartolin m: my $a = 1; eval-dies-ok q[$a:delete], "Cannot :delete a scalar"
camelia rakudo-moar a297b9: OUTPUT«5===SORRY!5=== Error while compiling /tmp/3VH3rAYDXq␤Undeclared routine:␤ eval-dies-ok used at line 1␤␤»
bartolin m: use Test; my $a = 1; eval-dies-ok q[$a:delete], "Cannot :delete a scalar"
camelia rakudo-moar a297b9: OUTPUT«ok 1 - Cannot :delete a scalar␤»
bartolin at least that last one seems to pass for the wrong reason: 18:49
18:49 rurban joined
bartolin m: use Test; eval-dies-ok q[my $a = 1; $a:delete], "Cannot :delete a scalar" 18:49
camelia rakudo-moar a297b9: OUTPUT«not ok 1 - Cannot :delete a scalar␤␤# Failed test 'Cannot :delete a scalar'␤# at /tmp/aWCh6BtzOu line 1␤»
18:50 larion joined, eternaleye left
bartolin so, roast seems to have a difference of opinion there, too :-) 18:50
lizmat eval-dies-ok and dies-ok are evil, in my opinion, as they very easily create false positives 18:53
18:54 laouji joined, eternaleye joined
jnthn [Coke]: Oops...though that is rather odd. Hmm. 18:54
yoleaux 16:09Z <japhb> jnthn: Are the specs for GLR internal API on your short list? Or is there other stuff in front of them?
bartolin lizmat: yeah, i stumbled about this while trying to replace 'eval-dies-ok q[...]' with 'dies-ok { EVAL q[...] }' 18:55
[Coke] mst: what?
jnthn .tell japhb Well, they're on the shortlist, yeah, but stuff figuring out the JIT issue that causes Panda explosions is higher priority... :) 18:56
yoleaux jnthn: I'll pass your message to japhb.
18:59 laouji left
bartolin lizmat: wrt dies-ok: if there is no typed exception, then 'dies-ok { EVAL q[...] }' is equivalent with 'throws-like q[...], Exception', isn't it? 19:00
lizmat well, one would hope
better is probably X::AdHoc
Exception is too broad, that would also cover any other exception 19:01
jnthn Well, otoh Exception means the test will keep working if we upgrade to a typed exception.
dalek kudo/nom: af39b8d | lizmat++ | src/core/Str.pm:
Make Str.comb("a")/comb("a",limit) 50x faster
lizmat jnthn: then one might as well use dies-ok 19:02
jnthn We should prolly audit our remaining non-typed ones thrown in CORE and the compiler ahead of 6.christmas
lizmat: Indeed :)
vendethiel lizmat: is there any kind of performance benefit from moving the class out of the function?
or does our very smart compiler/vm takes care of this sort of stuff for me? :)
lizmat vendethiel: not sure if I follow you 19:03
vendethiel lizmat++: move the anonymous class out of the function (in your last commit)
lizmat did I?
vendethiel I'm asking if it'd improve performance 19:04
mst [Coke]: < [Coke]> mst: Pretty sure I have a tcl grammar lying about somewhere.
jnthn vendethiel: There was a benefit, then I fixed our code-gen, and now there ain't really :)
vendethiel nice :-)
lizmat vendethiel: I'm pretty sure I left it inside the function
[Coke] mst: github.com/partcl/partcl-nqp/blob/...Grammar.pm
From my unfinshed attempt to migrate from parrot-nqp to perl6/nqp 19:05
mst ta
[Coke] (you can tell it's old because it's got :pirop's in it!)
19:08 mr_ron left 19:10 gt9k left
jdv79 and its got par in the name... 19:12
[Coke] that was historic. I wasn't going to change the name of the project at that point. 19:13
mst [Coke]: cute, though I'm faintly confused by the true/false as a first class thing 19:14
[Coke] oh, here:
github.com/partcl/partcl-nqp/blob/...Grammar.pm
mst that's not how tcls normally work
jnthn It means we get to make partcl accelerator puns if we make it run faster :P
jdv79 let the par rot 19:15
[Coke] that's a slightly better version that might work on Moar but probably doesn't.
mst: sure, probably some cheats there.
mst: note that the true/false in that grammar aren't referenced by anything else.
japhb jnthn: Gotcha, thank you 19:16
yoleaux 18:56Z <jnthn> japhb: Well, they're on the shortlist, yeah, but stuff figuring out the JIT issue that causes Panda explosions is higher priority... :)
[Coke] they are just tokens that we can use later to verify if a string is trueish
mst ah, right, ok
sorry, I just skimmed it 19:17
...
jnthn: admittedly, the mental image I got for 'panda explosions' was AWESOME
jnthn: GIB! GIB! GIB! GIB!
[Coke] GIB: CGI Technologies and Solutions Inc , 37.18 up .99 19:18
19:19 rurban left
jnthn :P 19:19
19:20 ab6tract joined
jnthn Well, it'll be tomorrow before I do that bug hunt. Full of cold and have to get up and give a talk in the morning... 19:20
19:20 rurban joined 19:22 TEttinger joined 19:23 laouji joined 19:24 darutoko left, patrickz left, mprelude left 19:25 patrickz joined, brrt joined
lizmat jnthn: get well 19:26
brrt yes, do that 19:27
meanwhile, i have an hypothesis
but it requires some checking
jnthn lizmat: Thanks...think it's nothing more than a minor cold.
Just annoying more than anything.
lizmat know the feeliing :-) 19:28
19:28 laouji left 19:30 muraiki left, pullphinger left 19:32 rurban left
brrt ok, my suspicion is very strongly that with and without jit rakudo compiles panda in different ways 19:34
19:34 rurban joined
brrt i'm... not 100% convinced that is the case 19:34
but there are certainly suspicious things in the patch 19:35
19:35 flussence left
brrt wait 19:35
actuall in the diff
19:36 flussence joined 19:37 larion left
brrt ok, i'm wrong, that's certainly not it 19:38
(same exact MAST once compilation identifiers have been removed)
19:39 laouji joined
[Coke] wonders again if he should add panda to the daily runs. 19:39
[Coke] guesses so.
dalek rl6-roast-data: ea1f8a4 | coke++ | / (9 files):
today (automated commit)
19:40 ][Sno][ left
brrt i have one more theory up my sleeve 19:40
the extop check for the moarvm interpreter has finer granularity than the invokish check i'm currently using 19:41
19:41 kolikov left
nine is crossing fingers 19:41
jnthn brrt: Good luck!
'night, #perl6 19:42
brrt goodnight :-)
nine Good night!
19:43 eternaleye left, muraiki joined, laouji left
dalek ast: e7bb759 | usev6++ | S03-binding/ (3 files):
Replace eval-dies-ok with throws-like in S03-binding/*
19:45
ast: 69f7679 | usev6++ | S32-array/ (4 files):
Replace most eval-dies-ok with throws-like in S32-array/*
kudo/nom: 2473067 | lizmat++ | src/core/Iterator.pm:
Add 'bool-only' method for Iterators

The idea being that if we want the boolean value of a Seq, we can call this method (which would only do a pull-one once), and thus save a *lot* of work.
Making Seq.Bool call this method, only causes 1 test-file with errors: t/spec/S03-smartmatch/signature-signature.t . Not sure whether that are just lame tests or something more nefarious. Waiting for a general ++ from
  jnthn for the concept before digging deeper into this.
19:48
lizmat with this change, something like "if @a.grep{something} { " would become very fast, as it would become equivalent to @a.first(something) 19:50
well, technically @a.first(something).Bool
nine m: my $a = (1, 2).grep(*); say so $a for 1 .. 10; 19:51
camelia rakudo-moar af39b8: OUTPUT«True␤True␤True␤True␤True␤True␤True␤True␤True␤True␤»
nine lizmat: ^^^
19:51 lichtkind joined
nine Right now one can call .Bool on a Seq as often as one likes 19:52
lizmat yes, I understand
19:52 telex left
lizmat my change would change that, indeed 19:52
but the performance benefits would be very big 19:53
nine And you can simply cache the result, so you only run pull-one once
lizmat also, I was considering caching the numeric / boolean value of a Seq inside the Seq 19:54
19:54 kaare_ left
brrt something like p6finddispatcher is basically unjittable 19:54
or, almost unjittable
19:54 telex joined
brrt maybe it's marked that way 19:54
lizmat so Seq.elems would become something like $!count //= self.is-laze ?? fail.new !! self.iterator.count-only
then you could do something like 20 < @a.grep(something) < 40 19:55
and not have to actually cache the result of the grep
19:55 ab6tract left, eternaleye joined 19:56 eternaleye left
nine Is grep specced to actually evaluate the code for the whole list or is it allowed to shortcut that way? 19:56
lizmat good question...
19:56 larion joined
lizmat can't find much about it :-( 19:59
brrt nope, that's not it 20:00
darn
damnit, it's not devirt either 20:02
ok, we may rule those two out
i have no good hypotheses left
colomon nine, lizmat: grep is allowed to be lazy, no? 20:04
lizmat well, I assumed so, but can't find anything in the spec about it 20:05
nine If grep is not allowed to be lazy, it's current implementation is wrong anyway, isn't it? 20:06
lizmat probably :-)
dalek ast: ad86ccc | usev6++ | S32- (4 files):
Replace some eval-dies-ok with throws-like in S32-*/*
20:07
line-Perl5: 91d78b8 | (Stefan Seifert)++ | / (2 files):
Inline Sub::Util::set_subname to get rid of the dependency

Code of set_subname copied from Sub::Util and reduced to what we actually need for use in Inline::Perl5. This gets us rid of the only non-core dependency. Can be reverted (and changed to Sub::Util) once we drop support for perl < 5.22
Thanks to lizmat++ for the reminder.
20:08
20:09 laouji joined
lizmat nine++ :-) 20:09
brrt afk without succes :-( 20:10
20:10 brrt left 20:13 laouji left
lizmat have we tried this on the JVM to see if iits error (if any) could be enlightning? 20:16
20:17 patrickz left 20:20 jnthn joined 20:21 TEttinger left, integral left 20:22 pullphinger joined, integral joined
TimToady grep is supposed to be lazy 20:23
zostay woo woo, i like the new Pair with bound values: nine++
20:24 laouji joined
zostay time to completely rethink KnottyPair 20:25
lizmat TimToady: ok, so a Seq.Bool calling Iterator.bool-only would make sense 20:28
20:28 laouji left
zostay m: class C { method m($v) { say $v } }; sub s($v) { say $v }; C.new.m(42, :foo); s(42, :foo); 20:28
camelia rakudo-moar 247306: OUTPUT«42␤Unexpected named parameter 'foo' passed␤ in sub s at /tmp/1HDxKRrc5A:1␤ in block <unit> at /tmp/1HDxKRrc5A:1␤␤»
zostay is there a reason why extra named params work on methods, but not subs? 20:29
less passive aggressive: what's the reasoning for why extra named params work on methods, but not subs?
20:34 patrickz joined, vendethiel left
mst zostay: I don't think that's precisely true 20:35
zostay: I think what you're seeing is that the compiler can tell that the s() call is never going to work, so throws an exception then and there
zostay: whereas it can't necessarily be sure that the m() is never going to work, so doesn't throw on that 20:36
zostay: so you get a compile time exception from the s()
zostay: which means it never gets as far as running the m() call and blowing that up at runtime
m: class C { method m($v) { say $v } }; sub s($v) { say $v }; C.new.m(42, :foo);
camelia rakudo-moar 247306: OUTPUT«42␤»
mst or I'm completely wrong
never mind
summon somebody who knows what they're talking about :D 20:37
20:37 felher left
moritz design.perl6.org/S12.html#Interface_Consistency 20:38
though I still think it's a stupid rule 20:39
20:39 laouji joined 20:40 rindolf left 20:41 integral left, smash joined
hoelzro I wish we could tell methods "if named parameter isn't touched by you or any ancestor calls, throw an exception", but that would likely come with an unacceptably huge runtime cost 20:42
20:42 jnthn left, jnthn joined, integral joined
dalek ast: 347cc36 | usev6++ | S03- (6 files):
Replace some eval-dies-ok with throws-like in S03-*/*
20:43
TimToady zostay: current policy is discussed in design.perl6.org/S12.html#Interface_Consistency
20:43 laouji left
TimToady but yes, it would be nice to know if something is unused 20:43
lizmat hoelzro: afaik, jnthn has some ideas about it, but I'm afraid they will wind up on the nope list for now 20:45
hoelzro lizmat: I'm guessing it's 6.1 if anything?
lizmat I would hope so :-) 20:46
hoelzro wouldn't changing that behavior break otherwise functional 6.0 programs? 20:48
or would it only be active if one has 'use 6.1' in scope?
lizmat I can think of scenario's where this would break code, indeed 20:49
PerlJam hoelzro: assuming we have a way to actually make that work. 20:52
hoelzro right
PerlJam: I would love to hear jnthn's ideas on the matter, but it's not a priority atm, I understand 20:53
20:54 xfix left
lizmat exploding panda is 20:54
.oo( teasing mst with the imagery )
20:57 pullphinger left 21:02 eternaleye joined 21:04 [Sno] joined 21:06 diana_olhovik_ left 21:08 rurban left, laouji joined 21:09 vendethiel joined 21:10 skids left
lizmat Attempt at making rand xx N two times faster: gist.github.com/lizmat/b74af9a1d79a9f48bf8b 21:10
m: say q/Whfg nabgure Crey unpxre/.trans('a .. z' => 'n .. za .. m', 'A .. Z' => 'N .. ZA .. M') # hangs with the above change 21:11
camelia rakudo-moar 247306: OUTPUT«Whfg nnbgure Crey unpxre␤»
patrickz What program file types can I expect to find in the Perl6 ecosystem (on Windows)? Executables, Perl6, .bat, Perl?, anything else?
21:13 laouji left
lizmat Attempt at making "foo" xx * three times faster: gist.github.com/lizmat/a24f1fb4c2d3d8aa7465 21:13
also causes several test failures, most notably related to meta-ops: 21:14
m: say (0,0,0,0,0,0) >>+>> (Slip(1,2,3) xx *) # non-dwimmy hyperop must have same length: left: 1 elements, right: 3 elements
camelia rakudo-moar 247306: OUTPUT«(1 2 3 1 2 3)␤»
lizmat leaving these patches for some other eyeballs to see, as mine are getting to tired now 21:15
*too
hoelzro .tell pmurias I added support for negative bitwise ops to node-bignum for nqp-js: github.com/justmoon/node-bignum/pull/61 21:17
yoleaux hoelzro: I'll pass your message to pmurias.
leont Just wondering, is there a difference between Seq.cache and Seq.list? 21:18
TimToady yes, .list no longer caches 21:19
all .list means now is "gimme something that can act like a list" 21:20
dalek kudo/nom: 8394bc7 | TimToady++ | src/core/ (2 files):
List.ACCEPTS now uses ~~ and treats ** as glob

List.ACCEPTS was really wimpy and not pulling its weight. It now recursively matches a list with smartmatch. Since * is a valid smartmatch matching a single item, we now use ** as the globber that can match multiple items, which is more consistent with the rest of the language. And since the submatches are now approximate, we can get temporary false positives, so in that case it now backtracks more like regex patterns do.
21:21
kudo/nom: b7cabad | TimToady++ | src/core/List.pm:
accidentally broke List as OKness
kudo/nom: a6b9e8d | TimToady++ | t/spectest.data:
remove bogus/obsolete spectests
kudo/nom: 8cc5f80 | TimToady++ | src/core/List.pm:
List.ACCEPTS now only passes Match lists as self
ast: 90ba9fc | TimToady++ | S03-smartmatch/a (2 files):
test new powered-up List.ACCEPTS semantics

Also fixes RT#123144 as it happens.
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=123144
21:22 rangerprice joined
leont I see, thanks! 21:24
21:30 pmurias joined
pmurias hoelzro: great :) 21:30
yoleaux 21:17Z <hoelzro> pmurias: I added support for negative bitwise ops to node-bignum for nqp-js: github.com/justmoon/node-bignum/pull/61
hoelzro we'll see if/when they accept it =/ 21:31
pmurias hoelzro: I'll get back to work on nqp-js tommorow
hoelzro excellent! 21:32
21:36 mullagainn left 21:43 muraiki left 21:44 vendethiel left 22:00 cognominal left
dalek kudo/nom: 871268e | lizmat++ | t/harness:
Add randomize option

The idea being that if test files are executed in random order, the ones that are twiddling their thumbs (like the S17-supply tests) will be more evenly distributed over the course of the test, and thus cause a lower wallclock time. So far, that didn't turn out the case just yet. :-( Adding the option for further testing anyway.
22:07
22:07 TEttinger joined
lizmat took me a while to figure out how to to @a.pick(*) again in Perl 5 :-) 22:07
22:08 espadrine left
lizmat and on that note, I wish #perl6 a good night 22:08
colomon o/ 22:10
22:12 pmurias left 22:15 adu joined 22:17 dnmfarrell left 22:34 hernanGOA left 22:39 laouji joined
TimToady m: say (1,2,3,4,5) ~~ (**, Cool, 3, **, 5) 22:42
camelia rakudo-moar 871268: OUTPUT«True␤»
TimToady m: say (1,2,3,4,5) ~~ (**, Cool, * == 5)
camelia rakudo-moar 871268: OUTPUT«True␤»
22:43 kid51 joined 22:44 laouji left 22:47 jack_rabbit_ joined 22:50 spider-mario left 22:54 laouji joined 22:58 laouji left, patrickz left 23:10 BenGoldberg joined
TimToady hmm, #?v6.0.0+ seems like a fudge line that is guaranteed to break the moment we release 6.0.0 23:17
23:17 BenGoldberg left 23:19 avuserow joined 23:20 yqt left 23:23 laouji joined
ShimmerFairy TimToady: I don't think I've ever seen it used, to be honest. I don't know where it would be used, and I'm not sure how it would be more useful than, say, tags/branches on roast for particular P6 versions. 23:26
23:26 zed_ joined, mantovani joined
mantovani the perl6 compiler production ready will be released this year ? 23:27
23:27 rangerprice left 23:28 laouji left
TimToady mantovani: that's the plan 23:29
zostay thx TimToady 23:30
23:31 rurban joined
ShimmerFairy TimToady: surprisingly, every single '#?v6...' line comes from 2015 (or at least was last touched this year) O_o 23:31
TimToady it's intended to indicate things that are post-6.0, but it's botched a bit, since 6.0.0+ includes 6.0.0 23:32
23:33 zed_ left
TimToady also, our version numbers don't support v6.christmas and such 23:33
ShimmerFairy TimToady: I think that's why some of them use arbitrary later version numbers, which seems just as bad, if not worse
mantovani does rakudo runs under AIX ?
ShimmerFairy m: say Version.new("6.christmas"); # we can have Versions like that, just not version literals :P
camelia rakudo-moar 871268: OUTPUT«v6.christmas␤»
TimToady mantovani: only supporting Linus, OSX, and Windows to begin with 23:34
mantovani How can I contribute to run under AIX ? 23:35
That's importante for me.
TimToady well, it just needs someone to port it
mantovani that's a guide, I mean people already did for Windows and OSX. 23:36
maybe there is a doc
23:38 BenGoldberg joined
mantovani s/that's a guide,/there is a guide ?/ 23:39
23:40 thundergnat joined
mantovani "migration to an OS considerations" 23:40
23:40 leont left
ShimmerFairy mantovani: if AIX can run the JVM, then you can try rakudo on jvm. The other option would be to add AIX support to MoarVM (which I don't think there's an explicit guide for at the moment, and I wouldn't know how it'd be done myself). 23:44
mantovani: if AIX can handle most things that assume posix, then platform shouldn't be an issue for MoarVM (I wouldn't think). The only concern might be what kind of processor you have, but I don't know MVM enough to say where processor-dependent things will crop up. 23:53
23:53 laouji joined
TimToady well, you might not get to have a JIT if it's not x86 23:57
ShimmerFairy Yes, that's the one thing I saw in Moar's source, at least via filenames. You'd have to add a JIT for your platform if it's not x86 or x86_64 23:58
23:58 laouji left
ShimmerFairy (you can run without a jit though, it's not a requirement for having a usable moarvm) 23:59