»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by sorear on 25 June 2013.
00:00 ajr_ left 00:02 Hor|zon joined 00:06 chenryn joined, Hor|zon left 00:08 erkan joined 00:09 erkan left, erkan joined 00:11 immortal left 00:15 fhelmberger joined 00:18 chenryn left 00:20 fhelmberger left 00:30 chipotle left
tony-o lue: is Pod::Walker still intended for use? 00:30
lue I faintly recall someone writing a better form of it, but I think it's still usable :) . 00:31
00:35 chipotle joined 00:52 rmgk left 00:55 rmgk joined 01:01 lizmat_ joined, lizmat left 01:13 fuad joined 01:17 Sqirrel left, Sqirrel joined 01:21 colomon left 01:22 colomon joined 01:36 fuad left 01:38 BenGoldberg left
pmichaud r: say {foo => (1,2,3).map: {$_}}.perl 01:44
camelia rakudo-{parrot,moar} fd017a: OUTPUT«{"foo" => (1, 2, 3).list.item}␤»
01:48 xinming_ left, xinming joined 02:03 Hor|zon joined 02:07 Hor|zon left
pmichaud p6: my @a; @a.push: $("one,two,three".split(',')); say @a 02:22
camelia rakudo-{parrot,moar} fd017a: OUTPUT«one two three␤»
02:28 chenryn joined 02:29 kyun joined
gtodd what is $(... (split('')) ? 02:42
a list , a function , a list comprehension :-\ 02:43
a on list item in itemized context with a split method "inside" ? 02:45
one list
() is list context ... $() itemized or item context ... but you put a function inside the itemized context that acts on the items? 02:48
m: my @a; @a.push: $("one,two,three".comb); say @a
camelia rakudo-moar fd017a: OUTPUT«o n e , t w o , t h r e e␤»
gtodd my @a; @a.push: $("one,two,three".comb); say @a ; say @a.elems
m: my @a; @a.push: $("one,two,three".comb); say @a 02:49
camelia rakudo-moar fd017a: OUTPUT«o n e , t w o , t h r e e␤»
gtodd m: my @a; @a.push: $("one,two,three".comb); say @a ; say @a.elems
camelia rakudo-moar fd017a: OUTPUT«o n e , t w o , t h r e e␤1␤»
gtodd oh right
m: my @a; @a.push: $("one,two,three".comb); say @a.elems 02:51
camelia rakudo-moar fd017a: OUTPUT«1␤»
gtodd because @a is on one item list
m: my @a; @a.push: $("one,two,three".split(',')); say @a; say @a.elems 02:52
camelia rakudo-moar fd017a: OUTPUT«one two three␤1␤»
02:53 noganex joined
tony-o is there a spec for Pod type? 02:55
02:56 noganex_ left
pmichaud r: sub g(*@v) { say @v.infinite; }; g(1..*); 02:57
camelia rakudo-{parrot,moar} fd017a: OUTPUT«True␤»
pmichaud r: sub g(*@v) { say @v.infinite; }; g(|(1..*)); 02:58
camelia rakudo-{parrot,moar} fd017a: OUTPUT«False␤»
pmichaud r: sub g(*@v) { say @v.infinite; }; g(1,2,3,4..*); 03:03
camelia rakudo-{parrot,moar} fd017a: OUTPUT«Nil␤»
pmichaud r: sub g(*@v) { say @v.infinite; }; g(1,2,3,(4..*));
camelia rakudo-{parrot,moar} fd017a: OUTPUT«Nil␤»
pmichaud r: sub g(*@v) { say @v.infinite; }; g(1..5); 03:04
camelia rakudo-{parrot,moar} fd017a: OUTPUT«Nil␤»
pmichaud r: sub g(*@v) { say @v.infinite; }; g(1,2,3,(4..*)); 03:05
camelia rakudo-{parrot,moar} fd017a: OUTPUT«Nil␤»
pmichaud r: sub g(*@v) { say @v.infinite; }; g(|(1,2,3,(4..*)));
camelia rakudo-{parrot,moar} fd017a: OUTPUT«Nil␤»
pmichaud r: sub g(*@v) { say @v.infinite; }; g(|(4..*));
camelia rakudo-{parrot,moar} fd017a: OUTPUT«False␤»
pmichaud r: sub g(*@v) { say @v.infinite; }; g(|(1,4..*)); 03:06
camelia rakudo-{parrot,moar} fd017a: OUTPUT«Nil␤»
pmichaud r: sub g(*@v) { say @v.infinite; }; g(|(Nil,4..*));
camelia rakudo-{parrot,moar} fd017a: OUTPUT«Nil␤»
pmichaud r: sub g(*@v) { say @v[^5]; }; g(|(Nil,4..*));
camelia rakudo-{parrot,moar} fd017a: OUTPUT«4 5 6 7 8␤»
pmichaud r: sub g(*@v) { say @v.infinite; }; g(4..*); # correct 03:08
camelia rakudo-{parrot,moar} fd017a: OUTPUT«True␤»
pmichaud r: sub g(*@v) { say @v.infinite; }; g('a',4..*); # correct
camelia rakudo-{parrot,moar} fd017a: OUTPUT«Nil␤»
pmichaud r: sub g(*@v) { say @v.infinite; }; g(|('a',4..*)); # correct
camelia rakudo-{parrot,moar} fd017a: OUTPUT«Nil␤»
pmichaud r: sub g(*@v) { say @v.infinite; }; g(|(4..*)); # incorrect
camelia rakudo-{parrot,moar} fd017a: OUTPUT«False␤»
colomon Shouldn't you be asleep? 03:12
colomon hopes pmichaud++ has a very productive weekend 03:13
pmichaud I slept already for a while... I'm reviewing list-related tickets now. I'm about to head back to sleep for ~3 hrs 03:16
colomon Sounds like a good plan. 03:17
colomon thinks he slept in three four hour shifts the first night when he flew to Switzerland. 03:19
pmichaud anyway, time for sleep -- bbl. 03:23
03:42 yeahnoob joined 03:44 JimmyZ joined 04:04 Hor|zon joined 04:09 Hor|zon left 04:16 fhelmberger joined 04:20 fhelmberger left 04:23 araujo left 04:27 Brian_ joined 04:31 flaviusb joined 04:33 chenryn left 04:45 ggoebel1111116 joined 04:47 ggoebel1111115 left 04:49 bob_spoonmongler joined 04:58 avuserow joined 04:59 Brian_ left 05:03 chenryn joined 05:08 chenryn left 05:10 chenryn joined
dalek c: df28d11 | moritz++ | lib/Language/classtut.pod:
[classtut] small consistency fix
05:27
05:38 atroxaper joined
dalek c: 2a132e3 | moritz++ | lib/Language/classtut.pod:
[classtut] general cleanup

  * avoid unneccessary parens; instead explain coercive array assignment
  * mention .^name
  * avoid .join on a list of type objects
05:39
05:42 _slade_ left
pmichaud r: say 3[0] 05:44
camelia rakudo-{parrot,moar} fd017a: OUTPUT«3␤»
pmichaud say 3.kv 05:45
r: say 3.kv
camelia rakudo-{parrot,moar} fd017a: OUTPUT«0 3␤»
dalek ast: 42fdb20 | pmichaud++ | S02-types/flattening.t:
[S02] Remove bogus comment about "3[0] and 3.kv should fail". They're legal.
05:47
05:57 chenryn left, atroxaper left
dalek c: 97bd999 | moritz++ | lib/Language/regexes.pod:
[regxes] cleanup, wording improvements
05:57
c: 7fba5cf | moritz++ | lib/Language/regexes.pod:
explain alternations
05:58
pmichaud r: ((1,2), (3,4), (5,6)).roll 05:59
camelia ( no output )
pmichaud r: ((1,2), (3,4), (5,6)).roll.say
camelia rakudo-parrot fd017a: OUTPUT«1 2␤»
..rakudo-moar fd017a: OUTPUT«5 6␤»
pmichaud r: ((1,2), (3,4), (5,6)).pick.say 06:00
camelia rakudo-parrot fd017a: OUTPUT«1 2␤»
..rakudo-moar fd017a: OUTPUT«5 6␤»
pmichaud r: ((1,2), (3,4), (5,6)).sort.perl.say
camelia rakudo-{parrot,moar} fd017a: OUTPUT«((1, 2), (3, 4), (5, 6))␤»
pmichaud r: ((1,2), (3,4), (5,6)).join.perl.say
camelia rakudo-{parrot,moar} fd017a: OUTPUT«"123456"␤» 06:01
pmichaud r: ((1,2), (3,4), (5,6)).elems.say
camelia rakudo-{parrot,moar} fd017a: OUTPUT«3␤»
pmichaud r: ((1,2), (3,4), (5,6)).list.elems.say
camelia rakudo-{parrot,moar} fd017a: OUTPUT«3␤»
pmichaud hrm. 06:02
moritz r: ((1, 2), (3, 4), (5, 6)).flat.elems.say
camelia rakudo-{parrot,moar} fd017a: OUTPUT«6␤»
pmichaud I'm trying to remember/discover when that changed. I remembered it that .elems always flattened
moritz pmichaud: the current dogma seems to be that .list decontainerizes the invocant, and .flat flattens out parcels
pmichaud: iirc it was fairly recently 06:03
pmichaud: when TimToady++ started hacking list-y things in rakudo
(that is, on the order of 1-5 months or so :-)
pmichaud which means Rule 2 came into play :)
yeah, that's a change from previous years 06:04
okay, so .map flattens, .join flattens, but the rest do not?
moritz commit ef380d29f9ff94ac2a1b5316bd014306945d045d
Author: TimToady [email@hidden.address]
Date: 2014-09-02 00:32:36 -0700
Parcel no longer autoflattens for .elems or .[]
pmichaud oh, or for .[] !
that's..... interesting.
that's a significant change. 06:05
moritz that's the reason that .roll and .pick work the way they do
pmichaud that's a very significant change from what was previously spec'd.
06:05 Hor|zon joined
moritz though IMHO it would be consisten to make .join behave the same way 06:05
agreed
it means that autoflattening is no longer the default in many circumstances
pmichaud I will have to do a major update of my internal mental model for that 06:06
but .map still flattens?
moritz m: say ((1, 2), (3, 4), (5, 6)).map(*.perl).join: ' '
camelia rakudo-moar fd017a: OUTPUT«1 2 3 4 5 6␤»
moritz yes 06:07
pmichaud okay.
moritz m: say ((1, 2), (3, 4), (5, 6)).tree.map(*.perl).join: ' '
camelia rakudo-moar fd017a: OUTPUT«(1; 2).item (3; 4).item (5; 6).item␤»
moritz m: say ((1, 2), (3, 4), (5, 6)).lol.map(*.perl).join: ' '
camelia rakudo-moar fd017a: OUTPUT«$(1, 2) $(3, 4) $(5, 6)␤»
pmichaud yes, this changes a bunch of semantics from what I had remembered
and means we can close out quite a few rt tickets 06:08
anyway, time for breakfast here... bbiaw 06:09
06:10 Hor|zon left 06:11 kaare_ joined 06:16 notfix is now known as xfix, chenryn joined 06:20 gfldex joined, yeahnoob left
pmichaud ".list decontainerizes the invocant"... does that really mean that it de-itemizes it? (i.e., .list returns something that is flattenable) 06:21
moritz pmichaud: yes 06:23
m: .say for $(1, 2, 3)
camelia rakudo-moar fd017a: OUTPUT«1 2 3␤»
moritz m: .say for ($(1, 2, 3)).list
camelia rakudo-moar fd017a: OUTPUT«1␤2␤3␤»
pmichaud so yeah, de-itemize is more accurate I think 06:24
06:27 rindolf joined
moritz right, containers are mostly an implementation detail of how itemization currently works 06:27
pmichaud m: say ((1,2), (3,4), (5,6)).tree.WHAT 06:28
camelia rakudo-moar fd017a: OUTPUT«(LoL)␤»
pmichaud m: say ((1,2), (3,4), (5,6)).tree.perl
camelia rakudo-moar fd017a: OUTPUT«(1, 2; 3, 4; 5, 6).item␤»
pmichaud hmmm, I wouldn't have expected that final .item 06:29
moritz I guess that's debatable
pmichaud m: say ((1,2), (3,4), (5,6)).tree(*).perl
camelia rakudo-moar fd017a: OUTPUT«(1, 2; 3, 4; 5, 6).item␤»
pmichaud I'll have to look at that later... need breakfast 06:30
bbl
moritz that is, I wouldn't object to removing it (from the top of my head)
06:32 mauke joined, yeahnoob joined, rindolf left 06:34 darutoko joined 06:39 rindolf joined 06:45 rurban joined
timotimo o/ 06:45
wow, pm, you can survive on this little sleep? 06:46
mauke good morning 06:47
timotimo hoelzro: you don't need MAIN_HELPER to provide any features in order to make subcommander cool; you can completely replace it, at that point the original doesn't even run any more :)
06:47 crab joined 06:48 rurban left
timotimo tony-o, BSc_tadzik, precompiling things will splatter CUIDs all over, which include the timestamp; unless you build both files at exactly the same time (and i really do mean exactly), they are going to differ 06:49
06:50 azawawi joined
azawawi good morning #perl6 06:50
timotimo oh i understand now 06:51
(re pm's sleep)
dalek c: 775f199 | moritz++ | lib/Language/regexes.pod:
[regexes] describe capturing and groups
06:52 FROGGS joined
timotimo azawawi: re "ipython notebook", it'd be quite nice if we could actually have a rakudo version that speaks the ipython wire protocol 06:54
that way we get the actual ipython notebook and don't have to re-invent it
06:58 Ven joined
Ven o/, #perl6 06:58
timotimo o/ 06:59
07:00 crab left
dalek c: e3fec75 | moritz++ | lib/Language/regexes.pod:
Elaborate on capture numbering
07:05
07:05 molaf_ joined, Ven left 07:08 perl6blows joined
perl6blows why shud I use perl6 when I can use ruby 07:08
moritz perl6blows: faq.perl6.org/#features 07:09
mauke you shouldn't
07:09 molaf left 07:11 perl6blows left
timotimo is off to breakfast and venue 07:11
07:13 lizmat_ left 07:20 yeahnoob left 07:31 molaf_ left 07:32 pepl joined 07:33 yeahnoob joined 07:46 lizmat joined
pmichaud timotimo: (sleep) the short answer is yes, I can survive on very little sleep. :) 07:49
07:55 Ven joined
Ven Jnthn time o/ 07:55
TimToady just about 07:56
Ven technical issues time o/ 07:58
timotimo aye, jnthn time!
TimToady slept 10 hours 08:00
picture of Hong Kong 08:01
08:06 Hor|zon joined 08:09 leont_ joined
leont_ timotimo: wiki.gnome.org/action/show/Project...rospection 08:10
08:11 Hor|zon left 08:12 woolfy joined
timotimo thank you 08:13
now please build a module for that <3
Ven is perlgeek.de/en/article/5-to-6 still maintained? 08:14
timotimo we could probably do a pass over it again some time soon
.o( after the GLR? :) )
.o( during the hackathon? ) 08:15
Ven is it good to link it?
08:15 laben joined
laben hello #perl6, having a good time? 08:15
timotimo i liked that document last time i looked at it. i liked it a lot.
(just because it makes perl5 look so bad :P )
Ven Okay, putting it there. 08:16
laben Ven: did you get my memos from the other day? 08:17
timotimo about TPS reports?
Ven laben: you mean from the learnx?
laben Ven: yep
Ven or, er, for the*
I think I fixed those, didn't I? 08:18
laben Ven: i'll check straight away
Ven alright.
08:19 chenryn left
laben Ven: is this right? i don't understand... "$a ! $b ! $c; # with a list-associative `!`, this is `infix:<>`" 08:21
Ven notes it down 08:22
laben Ven: about "is" and traits, there's nothing?
Ven laben: there's a very small part 08:23
laben Ven: mh, i saw that now, but that's indeed ermetic. except synopses, where could i learn more? 08:24
JimmyZ "Using Perl 6" pdf 08:25
Ven That might be a bit out of the scope of the tutorial...
maybe I'll add a little bit
08:26 lizmat left
laben Ven: thanks, because when i read "`is rw`, is simply a dispatch to a function with this signature: # sub trait_mod:<is>(Routine $r, :$rw!) {}" i was like WTH does this mean? dispatch? to a function? 08:27
Ven multi dispatch is explained earlier, isn't it?
laben yes, but in the context of "is" it's not clear 08:28
Ven can you be a *little bit* more particuliar?
I think I see where you're going, but confused at the same time
08:29 molaf joined 08:30 anaeem1 joined
laben to be more specific, i think i understand now that "is rw" is a dispatch (a "call") to a function named trait_mod:<is>, but that was not really clear because you do not expect such a thing in that position 08:30
pepl apw2014 lightning talks schedule: act.useperl.at/apw2014/event/1616
TimToady laben: indeed, we try to confuse declaration with execution quite frequently :) 08:31
laben maybe it would be clearer to add a line that says something like "adding a trait with is automatically calls the trait-builder function"
Ven monitors and actors :o) 08:32
pepl++
laben monitors? 08:33
mauke asianitinerary.com/wp-content/uploa...Lizard.jpg 08:34
laben mauke: so cute XD 08:35
JimmyZ so many perl 6 lightning talk ...
timotimo that animal has a pretty cool pattern on it
laben oh btw, i couldn't find any info even in the synopses about a part of Signatures. I found, even in the docs, some params writtes as Str:D or Str:U. What do those mean and where are they documented? 08:39
Ven laben: might want to look at s06
timotimo "type smiley"
Ven they're for type objects. :U undefined
(like Int). :D defined (like 5) 08:40
08:41 molaf left
laben i'm pretty sure i read that entire synopse without finding anything. I'll reread it 08:41
timotimo we should have "type smiley" in the S99 and link to the right synopsis for the explanation 08:42
Ven mmh. maybe it's not in s06? 08:44
laben: perlcabal.org/syn/S12.html#Abstract...rete_types 08:45
C tags yay :)
timotimo yays
laben Ven: thanks, i did not find anything in the S06, but it's true i did not read S12, i wasn't expecting it to be there 08:46
08:47 gfldex left
laben Ven: that seems to be an easy little thing to be added to your guide, no? 08:48
timotimo good talk
jnthn++
Ven jnthn++ # great talk 08:49
laben: I'm currently seated at APW, but be sure I have notepad with your remarks written
timotimo can confirm :)
08:50 chenryn joined
laben Ven: no problems, i believe you :) 08:50
08:52 lizmat joined
jnthn phew, I survived my talk :) 08:52
timotimo now i know what daxim_ looks like! 08:53
FROGGS jnthn: so I can implement the slang keyword in 5 minutes? :o)
timotimo jnthn: something (or someone ... possibly me) apparently broke the GTK::Simple::Scheduler; the bit of code added to g_idle_add doesn't get called for some reason >_<
08:55 chenryn left
timotimo oh 08:55
it's supposed to return 1 if it wants to be called again, and it doesn't seem to do that ATM
Ven glances over timotimo's shoulder
jnthn FROGGS: Well, the syntax... :P
The semantics may be a little more work ;) 08:56
pmichaud on perlcabal.org/syn/, I _really_ want to get rid of the text that says "The Synopsis documents are to be taken as the formal specification for Perl 6 implementation". Normally I'd just do it and cite "forgiveness" > "permission", but it's just heavy-handed enough that I want to hear if anyone here objects first. :)
TimToady <crickets> 08:57
jnthn <footballs>
lizmat fwiw, I think the synopses and tests in roast serve different purposes
JimmyZ is waiting for the pdf ...
lizmat which should be in sync
jnthn oh, right... :)
pmichaud I'll do the commit and if anyone disagrees they can revert
(and I'll put that in the commit message)
TimToady the synopses are guidelines for writing tests :) 08:58
lizmat which would imply that the tests are leading ?
pmichaud I don't think there's a true "leader". 08:59
timotimo oh!
TimToady it's a whirlpool
pmichaud sometimes the design documents light the way. sometimes it's implementation. sometimes it's tests
timotimo i think my code may just not give the event loop an opportunity to idle
pmichaud the tests are the most formal component, however, and they provide a machine-computable way of checking compliance with the spec
jnthn jnthn.net/papers/2014-apw-objects-c...rrency.pdf
JimmyZ: ^^
lizmat jnthn: wrt to Monitors: am I correct in understanding that P5 shared hash semantics could be implemented with a Monitor on a Hash ? 09:00
TimToady it's the agreement of spec, tests, and implementation that kinda defines Perl 6
JimmyZ jnthn: Thanks!
timotimo the idle handler only gets called once ...
TimToady but at some point we have to say "this implementation is good enough"
JimmyZ oh, the pic of Hong Kong 09:01
jnthn JimmyZ: Yes, it was the latest holiday snap I liked enough to use for a talk front slide :)
JimmyZ awesome 09:02
TimToady mine were all awful, so I had to use lots of 'em :)
jnthn That one was a small pain to take 'cus it needed a long exposure time but it was windy enough to rock the camera... 09:03
TimToady faking tripods is a useful skill 09:04
jnthn lizmat: You could put a hash inside a monitor and delegate various methods...
Ven .o( I am a professional tripod faker )
lizmat and basically hide that in a trait
TimToady would probably have to use a tie to get a method interface though... 09:05
jnthn Well, though the obvious way to do it is SharedHash type and then we implement the use of "is" on a variable to specify the implementing type
Then it's just my %h is SharedHash;
lizmat yup
TimToady or are we talking P6 now?
jnthn But yep, very do-able module :)
lizmat I know some P5 people will like that ?
jnthn lizmat: Will they? :)
lizmat: Well, if it's a module those who like it can use it. :) 09:06
TimToady 'my %h :SharedHash;' in p5
jnthn I'm not proposing montor for core
TimToady or have they stolen 'is' yet?
09:06 chenryn joined
jnthn And I'm really not wanting actor in there 'cus there's more than one sane way to implement those :) 09:06
TimToady and I mean "stolen" in the nicest possible way :)
jnthn ooh, cake break :) 09:07
mauke nope, no 'is' builtin :-)
09:07 bjz joined
lizmat TimToady: 'my %h :shared' in P5 09:07
jnthn: I disagree with not wanting Monitor and Actor in core 09:08
there should be a simple version of this functionality in core for everybody to use
without having to resort to having to install modules
mephinet fwiw: switching from parrot to moarvm solved the segfault I received yesterday 09:10
mephinet is happy and head off for coffee
laben uh oh, Inline::Perl5 doesn't pass unit test inherit.t and Flower doesn't build anymore
mephinet s/head/heads/
09:10 Mso150 left
laben wth now it builds 09:12
JimmyZ there is a good actor names akka in scala world.. 09:14
laben nine: are you here? 09:15
JimmyZ and it's not in the scala core , iirc
we can have a actor in rakudo star , not in the core :P 09:17
09:17 rmgk left 09:19 rmgk joined
dalek : 0b23d38 | pmichaud++ | docs/feather/syn_index.html:
Reword the text of perlcabal.org to diassociate "synopsis" and "spec".

I've long felt that since the synopses contain quite a lot of speculation, treating them as "formal specification" is not correct. And Synopsis 1 has long indicated that Perl 6 compliance is defined by the official test suite, and not by compliance with the synopses or an implementation.
So, in the spirit of "forgiveness" > "permission" this commit is a somewhat heavy-handed declaration that "synopses are not the formal specification". If there's a consensus that this is taking things too far, feel free to revise or revert this commit until a consensus can be reached.
09:22
timotimo pepl: can you change the german title of my lightning talk to "I've got some more game-dev stuff to show you (than tadzik did already)"? 09:24
i intended to give it in english anyway
might as well let the people know what it's going to be about without needing them to google-translate it first
BSc_tadzik :) 09:29
yoleaux 10 Oct 2014 22:57Z <tony-o> BSc_tadzik: gist.github.com/tony-o/b8eca866073128527c15
timotimo i'm quite dissatisfied with the quality of my code :\ 09:31
TimToady pmichaud: well, but maybe then you shouldn't believe S01 when it says that :P
09:40 lizmat left
dalek : 79e11c0 | (Tobias Leich)++ | docs/feather/syn_index.html:
fix typo (offiical => official)
09:41
pepl timotimo: updated your talk
timotimo thanks 09:44
09:45 yeahnoob left
Ven thinks scala's akka is pretty bad 09:49
...because it's Any => Any
09:51 cognome left
TimToady FROGGS: "LTM prefers literals over cclasses", last I looked, this was not yet implemented in rakudo 09:52
09:55 kyun left
timotimo daxim needs to build a few cool webby things for rakudo :3 09:55
JimmyZ Is there any better one? :) 09:56
woolfy timotimo: needs to -> let's beg him please to do so... (daxim reacts negatively to "you need to do", as would I)... -> beg beg beg beg :-) 09:57
09:57 virtualsue joined
timotimo oh, yes, please interpret my comment as begging 09:57
09:57 virtualsue left
woolfy will do 09:58
timotimo daxim shall interpret it that way, too 09:59
woolfy of course he will (and maybe the begging works) 10:00
10:01 anaeem1 left
timotimo :) 10:02
10:03 tinyblak joined 10:04 cognome joined 10:07 Hor|zon joined 10:08 Ven left, Ven joined 10:09 cognome left 10:11 Ven left 10:12 Hor|zon left 10:13 Ven joined
azawawi finds a performance bottleneck in JSON::Tiny 10:21
rakudo-moar: use JSON::Tiny; my $output = ""; my %s = %( "output" => $output; ); say to-json(%s); 10:25
camelia rakudo-moar fd017a: OUTPUT«===SORRY!===␤Could not find JSON::Tiny in any of: /home/p6eval/rakudo-inst-1/languages/perl6/lib, /home/p6eval/rakudo-inst-1/languages/perl6␤»
10:26 JimmyZ left
azawawi JSON::Tiny becomes so slow when you add \n to output and farabi6 does that a lot when running user script, requests become slow. 10:26
timotimo oh, like a string concatenation that adds a single "\n" to a long string will be super slow? 10:27
azawawi use JSON::Tiny; my $output = ""; my %s = %( "output" => $output; ); say to-json(%s);
# 0.97413444 10:28
use JSON::Tiny; my $output = "\n" x 1000; my %s = %( "output" => $output; ); say to-json(%s);
# 3.2059284 second(s)
timotimo oh 10:29
azawawi {"\n" x 1000} is fast compared to the to-json call
timotimo so it's escaping that's unbearably slow?
well it'd have to be '\n' x 1000
moritz possibly tr or s being slow 10:30
10:31 kurahaupo_ joined
timotimo aye 10:31
10:33 peteretep joined
peteretep will be doing his MSc project on a design for CPAN 6 10:34
So I guess I'll be here more often
peteretep waves
10:35 immortal joined
moritz \o peteretep 10:36
peteretep: also implementation? or just design?
10:36 chenryn left
peteretep Design, and implementation of the PAUSE component, rather than other tooling 10:37
azawawi i just added time spent running the script text and some ajax loaders feather.perl6.nl:3030/
peteretep Specificially I would like it to be able to support Panda and cpanm out of the box 10:38
10:38 erkan left
peteretep moritz: The guidinging motivation I make is that CPAN6 was over-designed, the current text-file with Perl6 modules is under-designed, and I intend to find a middle design, and then implement it and gather feedback 10:38
I have a year to complete
moritz peteretep: sounds good 10:39
peteretep moritz: Let's see :-) 10:40
I have pumped enough cash in to this MSc at this point, and have a strong desire to maintain my grade average
So it /must/ happen, rather than me just wanting it to ;-)
10:41 laben left
moritz peteretep: I'm sure folks in here will be happy to discuss things with you, if you want to 10:42
peteretep: and the current ecosystem thingy (text file with links of URL) was just because nobody wrote something better :-)
10:43 tinyblak left
peteretep moritz: Absolutely. That works to my advantage a great deal 10:44
moritz: In terms of being able to contrast the CPAN6 approach, the ecosystem thingy, as part of the report
moritz so there won't be resistance to replace it with something better, as long as that better thing works :-)
azawawi pbrd.co/1tjKrEN # latest farabi6 with script time spent and various UI enhancements
moritz azawawi++ # nice 10:45
peteretep It's a software engineering MSc, so being able to contrast the approaches taken has quite a lot of meat
10:46 firefish5000 joined
azawawi moritz: thanks :) 10:47
moritz time perl6-m -e 'use JSON::Tiny; to-json({ a => ("a" x 10000)}) => 0.32s
time perl6-m -e 'use JSON::Tiny; to-json({ a => ("\n" x 10000)})' => 13.6s
moritz starts the profiler 10:48
adding --profile only makes it 2s faster
wow, it spends 51% of its time in index 10:49
azawawi moritz: 32s on my AMD FX-8150 lol 10:55
azawawi disabled AMD FX-8150... cant unleash its powers because of faulty heatsink
moritz azawawi: I have a local patch that halves the relevant calls to index, which should speed up the whole thing by 25% 10:56
azawawi: not great, but not bad for 10min hacking :-) 10:57
building/testing now
azawawi paste it plz... i will try it... farabi6 using json-tiny a lot :)
using=uses
moritz azawawi: gist.github.com/moritz/b4167b60f7baf97d8330 10:58
(rakudo patch)
will push as soon as the tests show that it doesn't break stuff 10:59
11:01 chenryn joined 11:04 anaeem1_ joined, tinyblak joined
moritz it's not significantly faster :( 11:07
wtf :( 11:08
11:14 laben joined
laben mh, what would be the best way to name a module which serves as binding to libpng? Png::Libpng? Libpng? Native::Libpng? 11:14
BSc_tadzik perhaps like in Perl 5, metacpan.org/release/Image-PNG-Libpng 11:16
laben good enough, i guess 11:17
11:17 tinyblak_ joined 11:19 tinyblak left
peteretep laben: Does it include libpng? 11:22
moritz azawawi: now trying a different patch :-) 11:26
11:27 bjz left, laben left, lizmat joined
pmichaud r: &infix:<[max]>(|(1..*)) 11:30
camelia rakudo-moar fd017a: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Undeclared routine:␤ &infix:<[max]> used at line 1. Did you mean '&infix:<max>', '&infix:<x>', '&infix:<min>'?␤␤»
..rakudo-parrot fd017a: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Undeclared routine:␤ &infix:<[max]> used at line 1. Did you mean '&infix:<max>', '&infix:<mod>', '&infix:<cmp>'?␤␤»
pmichaud r: say &infix:<max>(|(1..*)) 11:31
camelia rakudo-{parrot,moar} fd017a: OUTPUT«-Inf␤»
moritz m: say 13.5 / 4.9 11:35
camelia rakudo-moar fd017a: OUTPUT«2.755102␤»
moritz m: (13.5 - 4.9) / 13.5
camelia ( no output )
moritz m: say (13.5 - 4.9) / 13.5
camelia rakudo-moar fd017a: OUTPUT«0.637037␤»
dalek kudo/nom: fbac819 | moritz++ | src/core/Str.pm:
Speed up Str.trans

It does this by removing matchers that have no chance of matching again.
JSON::Tiny::to_string uses
  $d.trans(['"', '\\', "\b", "\f", "\n", "\r", "\t"]
   => ['\"', '\\\\', '\b', '\f', '\n', '\r', '\t'])
With $d = "\n" x 10000, this patch reduces the run time from 13.5s to 4.9s.
11:42
moritz azawawi: ^^ please try again with this commit :-)
11:42 ghostlines joined 11:46 spider-mario joined
timotimo looks like a good catch 11:46
moritz and I found a bug while looking at the .trans code 11:47
timotimo would still be nice to have it faster, but oh well
moritz m: say 'aaa'.subst(/^a/ => 'b')
camelia rakudo-moar fd017a: OUTPUT«Cannot call 'subst'; none of these signatures match:␤:(Cool: Any $matcher, Any $replacement, *%adverbs)␤:(Str: Any $matcher, Any $replacement, Any :ii(:samecase($samecase)), Any :ss(:samespace($samespace)), Any :SET_CALLER_DOLLAR_SLASH($SET_CALLER_DOLL…»
moritz m: say 'aaa'.trans(/^a/ => 'b')
camelia rakudo-moar fd017a: OUTPUT«bbb␤»
moritz testing a fix for that now
also, .trans has worse-than-linear performance characteristics 11:48
11:48 chenryn left
moritz probably due to repeated string concatenation 11:49
lizmat peteretep moritz: have you looked at S22 and its recommendation manager ? 11:51
moritz lizmat: I haven't (yet)
leont_ pepl: if we're ahead of schedule I could lengthen up my talk to a real one, I think
lizmat it's been there for 6+ months :-)
dalek kudo/nom: 62ae004 | moritz++ | src/core/Str.pm:
Str.trans: Fix regex context buglet

Previously, Str.trans used substr to extract a substring and then match a regex against that substring. This messes up all kinds of zero-width assertions (anchors, word boundaries, look-behinds).
Instead, use the Str.match(Regex, :continue($pos)) to tell the regex engine where to start
11:52
FROGGS nwc10++ # quite enjoyable :o)
jnthn Indeed :)
11:52 bjz joined
dalek ast: 52de4a2 | moritz++ | S05-transliteration/trans.t:
Test Str.trans with anchored regex, and with look-behind regex
11:53
11:53 laben joined
moritz suddenly feels p6roductive again 11:54
jnthn \o/
moritz azawawi++ # pointing out a bottleneck
jnthn++ # profiler
without the profiler, I would have suspected slow list code again
laben peteretep: no, it doesn't include it. Should i change it? 11:55
jnthn yay, the profiler helps again \o/
pmichaud r: say "abcde" ~~ / ab <![e]> cde | ab.. /
camelia rakudo-{parrot,moar} fd017a: OUTPUT«「abcd」␤␤»
pmichaud r: say "abcde" ~~ / ab cde | ab.. /
camelia rakudo-{parrot,moar} fd017a: OUTPUT«「abcde」␤␤»
pmichaud r: say "abcde" ~~ / ab <![e]> cde | ab.. / # LTM fail
camelia rakudo-{parrot,moar} fd017a: OUTPUT«「abcd」␤␤»
jnthn pmichaud: Ain't a lookahead an LTM terminator? 11:56
11:56 colomon left
jnthn Oh, but negative... 11:56
11:57 colomon joined
pmichaud negative lookaheads are not LTM terminators 11:58
colomon moritz++
jnthn OK. The current NFA builder things they are
elsif $subtype eq 'zerowidth' {
if $node.negate {
self.fate($node, $from, $to)
}
pmichaud positive lookaheads add to the LTM
jnthn Right, positive lookaheads add to the longest token, then fate after 'em
But it seems negative ones are immediate fate.
Which is...wrong?
pmichaud S05: So LTM completely ignores negative lookaheads, and 11:59
continues to look for pure patterns in whatever follows the negative
lookahead.
jnthn Wonder what if we just delete that self.ate call :)
moritz you ate the fate?
pmichaud S05:2887 # more precise reference 12:00
synopsebot Link: perlcabal.org/syn/S05.html#line_2887
12:00 JimmyZ joined
jnthn om nom fate 12:00
pmichaud r: say 'abcde' ~~ / ab <?[c]> de | ab.. / 12:01
camelia rakudo-{parrot,moar} fd017a: OUTPUT«「abcd」␤␤»
pmichaud r: say 'abcde' ~~ / ab <?[c]> de | ab /
jnthn The first one of those could never match...
camelia rakudo-{parrot,moar} fd017a: OUTPUT«「ab」␤␤»
pmichaud oh, yeah.
jnthn Aww
pmichaud r: say 'abcde' ~~ / ab <?[c]> ... | ab.. /
camelia rakudo-{parrot,moar} fd017a: OUTPUT«「abcd」␤␤»
jnthn Removing that self.fate call actually blows up the NQP build. 12:02
pmichaud r: say 'abcde' ~~ / ab <?[c]> ... | ab /
camelia rakudo-{parrot,moar} fd017a: OUTPUT«「abcde」␤␤»
pmichaud I'll file the rakudobug :)
colomon Any exciting talks today?
jnthn colomon: Well, it started off pretty boring... 12:03
FROGGS yeah, the first talk wasn't worth'ington to attend it :o)
12:03 chenryn joined
colomon does not believe jnthn 12:03
jnthn :D
colomon big surprise this morning? 12:04
FROGGS some interesting stuff about objects and concurrency I never thought about :o)
colomon slides online yet? :) 12:05
pmichaud rakudobug for LTM negative lookahead filed
FROGGS colomon: jnthn.net/papers/2014-apw-objects-c...rrency.pdf 12:06
moritz pmichaud++
colomon FROGGS++ jnthn++
moritz tests++
it's soooo useful to catch the stupid errors *before* the git push :-)
pmichaud suddenly feels productive again 12:07
12:08 Hor|zon joined
jnthn is working on getting modules from the talk out of the echosystem and into the ecosystem 12:09
moritz has a patch that removes quadratic string concat in Str.trans; waiting for the spectest to finish 12:11
12:13 Hor|zon left 12:14 jack_rabbit left
timotimo my space shooter now has explosions! :D 12:16
Ven I don't have much problems with flattening anymore, but I still can't read @! correctly :( 12:17
BSc_tadzik asdfmovie 8 is out :D
Ven yepp :) 12:18
timotimo oh god what 12:19
will you ever run out of asdfmovies?
-- no, because i work at ze asd-factory
FROGGS pmichaud: I've got a LTM cheat for the version token that seems to work fine: 12:21
token version {
- 'v' <?[\d]> {} $<vstr>=[<vnum>+ % '.' '+'?]
+ <?before v\d+> 'v' $<vstr>=[<vnum>+ % '.' '+'?]
Ven uuh... The debugger is giving me "Null regex not allowed" on that snippet 12:24
m: my $a = 1; macro foo($name) { my $f = 2; say $f }
camelia ( no output )
dalek kudo/nom: 90952ec | moritz++ | src/core/Str.pm:
Avoid repeated concatenation (O(n^2)) in Str.trans
12:25
Ulti azawawi is farabi6 100% p6? 12:26
timotimo nope. it's also some HTML and some javascript 12:27
azawawi Ulti: the UI is JS+HTML rest is p6
timotimo and CSS
:P
FROGGS pmichaud / TimToady: the same patch applies nicely to STD
Ulti azawawi cool, just installed it and had a play :3 12:28
azawawi moritz: Thanks for the patch. I will try it now 12:29
FROGGS pmichaud: spectests do pass, and now I snaptest STD
Ulti I made the backend crash out but just restarting got it going again with the front end, maybe add a forked parent process to just restart the server? 12:30
12:30 colomon left 12:31 travis-ci joined
travis-ci Rakudo build failed. Moritz Lenz 'Avoid repeated concatenation (O(n^2)) in Str.trans' 12:31
travis-ci.org/rakudo/rakudo/builds/37679559 github.com/rakudo/rakudo/compare/6...952ec5da9c
12:31 travis-ci left
azawawi Ulti: firefox is known to crash farabi6 btw... i use chromimum 12:31
Ulti I'm on Chrome atm
azawawi paste the crash plz 12:32
Ulti weird I did the exact same thing as before and the rakudo error message made it to the web interface instead of the server error output... hmm
azawawi can't at the moment unless I setup an ssh tunnel through this airport wifi :S will post it once I get a chance 12:33
FROGGS TimToady: do we want to fix s/eval/EVAL/ and perhaps also throws_like in STD?
azawawi it is ajax requests so if the server crashes, the browser sometimes sends it again
Ulti azawawi: the final crash out was "failed: Unknown system error" after it kept failing to read a directory
one of the temp ones created on a request for executing code 12:34
FROGGS >> Stage mast : Arg count 1 doesn't equal required operand count 2 for op 'push_s'
moritz: does that ring a bell?
azawawi Util: Did you try to open a file?
Ulti ahhh I might have done with a blank field
12:34 colomon joined
azawawi s/Util/Ulti/ :) 12:35
Ulti anyway I realise you are mid hacking on this, I wanted more to say it looks really cool!
azawawi Ulti: thanks. Are you using linux or windows btw for running the server? 12:36
Ulti OSX :)
moritz FROGGS: sorry, fixed
dalek kudo/nom: 04d0b9e | moritz++ | src/core/Str.pm:
Fix build failure, FROGGS++
moritz I forgot to 'git add' that fix before committing :( 12:37
12:37 JimmyZ left
Ulti wanders off to catch a plane .o/ 12:37
12:42 chenryn left 12:43 travis-ci joined
travis-ci Rakudo build passed. Moritz Lenz 'Fix build failure, FROGGS++' 12:43
travis-ci.org/rakudo/rakudo/builds/37680017 github.com/rakudo/rakudo/compare/9...d0b9e5d245
12:43 travis-ci left
dalek kudo/nom: d329723 | (Tobias Leich)++ | src/Perl6/Grammar.nqp:
fix parsing of versions with more than one digit (major-version > 9)

This fixes RT #116016;
12:43
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=116016
dalek d: f214dca | (Tobias Leich)++ | STD.pm6:
fix parsing of versions with more than one digit (major-version > 9)
12:45
12:49 immortal left
dalek ast: 2e4270c | (Tobias Leich)++ | S02-types/version.t:
add test for RT #116016 (version literals)
12:52
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=116016
moritz japhb: github.com/japhb/perl6-bench/pull/11 feedback welcome :-) 12:58
12:59 pmurias joined
dalek p-js: 55787b7 | (Pawel Murias)++ | TODO:
Remove finished item from TODO.
13:01
pmurias Ven: re nqp-js tasks for outsiders, writing more nqp tests requires little nqp-js knowledge and would help 13:02
Ven: a more interesting thing would be to come up with a good way to generate a unique filename the js code is put into before passing to node 13:03
13:07 JimmyZ joined 13:13 yeahnoob joined
moritz pmurias: any areas in particular that need nqp tests? 13:15
dalek rl6-bench: d2d7443 | moritz++ | / (3 files):
string escape benchmark

Perl 6 uses Str.trans exactly like JSON::Tiny::to-string does. The Perl 5 tr/// does not allow substitutions that lengthen the string, so that uses an (IMHO fairly idiomatic) s///g instead
13:18
rl6-bench: 997c920 | japhb++ | / (3 files):
Merge pull request #11 from moritz/string-escape

Add string escape benchmark
japhb moritz: How's that for feedback? ;-)
pmurias moritz: I have a list of things in TODO in the nqp-js repo 13:19
japhb (And FWIW, as soon as you pushed the original nom fixes, I put such a benchmark on my local TODO list. I'm extremely happy to see someone write a benchmark for the bottleneck they just found. :-) 13:20
moritz: Also, you now have a commit bit. :-) 13:21
moritz japhb: thanks for both
fwiw I have one more idea for how improve tr// 13:22
erm, Str.trans
currently it caches one next match
but it should really cache one next per matcher, to avoid duplicating the matching
*one next match per matcher
pmurias: did you see that 59-nqpop.t has tests for nqp::split? 13:24
13:26 colomon left
dalek p: cdf4639 | moritz++ | t/nqp/19-file-ops.t:
basic nqp::eoffh tests
13:27
moritz oh, specifically with the empty string
pmurias moritz: I pass most of test 59, it's the '@arr[1] := NQPMu;' line that nqp-js can't support 13:32
13:32 colomon joined
nine laben: yes 13:32
13:32 xinming_ joined
pmurias I'm working on sixmode/deserialization now so that should soon change 13:32
food&
colomon moritz: reran smoke with your changes, every module still works. moritz++ 13:35
13:35 xinming left 13:36 tinyblak_ left
jnthn github.com/jnthn/oo-monitors 13:37
laben nine: with rakudo from 5h ago, a test from Inline::Perl5 fails. it's inherit.t 13:38
dalek osystem: b245c2f | jonathan++ | META.list:
Add OO::Monitors.
13:39
p: c648263 | moritz++ | t/nqp/59-nqpop.t:
Tests for split with empty string
13:41
moritz nqp-m: say(nqp::isstr(52))
camelia nqp-moarvm: OUTPUT«0␤»
pmichaud FROGGS++ # fixing rakudo / std version numbers 13:46
timotimo i should perhaps stop playing around with adding new stuff to my "game" %) 13:47
but it's just so fun!
pmichaud r: say v10.4.2 > v10.4.1 13:48
camelia rakudo-moar d32972: OUTPUT«Cannot call 'Real'; none of these signatures match:␤:(Mu:U \v: *%_)␤ in sub infix:<>> at src/gen/m-CORE.setting:4525␤ in block <unit> at /tmp/tmpfile:1␤␤»
..rakudo-parrot d32972: OUTPUT«Cannot call 'Real'; none of these signatures match:␤:(Mu:U \v: *%_)␤ in any at gen/parrot/BOOTSTRAP.nqp:1226␤ in method Real at gen/parrot/CORE.setting:1113␤ in sub infix:<>> at gen/parrot/CORE.setting:4529␤ in sub infix:<>> at gen/parrot/…»
pmichaud oh well :-/
FROGGS r: say v10.4.2 cmp v10.4.1
13:48 bob__spoonmongle joined
camelia rakudo-{parrot,moar} d32972: OUTPUT«More␤» 13:48
jnthn r: say v10.4.2 - v10.4.1
camelia rakudo-moar d32972: OUTPUT«Cannot call 'Numeric'; none of these signatures match:␤:(Mu:U \v: *%_)␤ in sub infix:<-> at src/gen/m-CORE.setting:4463␤ in block <unit> at /tmp/tmpfile:1␤␤»
..rakudo-parrot d32972: OUTPUT«Cannot call 'Numeric'; none of these signatures match:␤:(Mu:U \v: *%_)␤ in any at gen/parrot/BOOTSTRAP.nqp:1226␤ in method Numeric at gen/parrot/CORE.setting:1108␤ in sub infix:<-> at gen/parrot/CORE.setting:4467␤ in sub infix:<-> at gen/p…»
jnthn Though so :)
13:49 azawawi left
gtodd m: ((1, 2), (3, 4), (5, 6)).flat.elems.say 13:49
camelia rakudo-moar d32972: OUTPUT«6␤»
gtodd m: ((1, 2), (3, 4), (5, 6)).map(*).elems.say 13:50
camelia rakudo-moar d32972: OUTPUT«3␤»
gtodd :-|
13:50 bob_spoonmongler left
jnthn OK, who wants to write the JS to give the Moar profiler a flame graph like this one? :) 13:51
We have the raw data... :)
TimToady do we have a p6-to-js translator :)
moritz jnthn: I was thinking about that just this morning
(that doesn't mean I'll do it... just considering it) 13:52
nine laben: ok, will update Rakudo and test here. The test passes without problems on my machine. 13:53
dalek p: 911da7b | moritz++ | t/nqp/85-type-tester.t:
Tests for nqp::is{int,num,str}, as requested by pmurias++
13:53 azawawi joined 13:54 pdcawley left, tinyblak joined
nine laben: might take a while. panda rebootstrap is failing :/ 13:56
jnthn About the frame graph - since we profile allocations we can use color to indicate allocation hot points ;)
nine ==> Fetching File::Find
No such method 'cleanup' for invocant of type 'Str' in sub local-fetch at /home/nine/install/panda/lib/Panda/Fetcher.pm:46
jnthn *flame
laben nine: let me test that too
FROGGS ohh, an IO::Path/Spec issue...
jnthn Also, we *do* produce a JSON blob and so actually could have it so you click and get a sub-graph. 13:57
Darn, I want it enough to implement it now, if nobody else is interested. :)
lizmat nine: checking
13:57 firefish5000 left
FROGGS jnthn: you could it present in a lightning talk if you are fast *g* 13:57
13:58 pdcawley joined
jnthn I did actually ponder that, but there's not quite enough time to do it :P 13:58
FROGGS I just ask enough question that you get your time :o)
timotimo i will call this "presentation-ready" now. "compo version" i guess
laben nine: works fine here, did you update panda? 13:59
nine oh, stupid me
Sorry for the alarm. Updated panda bootstraps just fine.
14:00 bob__spoonmongle left
lizmat well, OpenSSL failed to rebootstrap for me :-( 14:00
nine laben: inherit.t still passes just fine 14:01
laben lizmat: works fine here, both with banda and manually
moritz thinking out loud about a potential replacement for feather ...
laben s/banda/panda/
moritz when I had my job interview with my current employer (2+ years ago), they offered to host some perl 6 websites for free, if I wanted that 14:02
so, maybe I could convince them to give as a VM for free
or, I might convince them to let me put a 1 HE server into one of their racks
if that were the case, would anybody donate a 1 HE server for that purpose? 14:03
it's likely that that would give us much more power than a VM
colomon hits google to see what a 1 HE server is
nine colomon: 1U 14:04
colomon: a pizza box
14:04 tinyblak left
moritz sorry yes, I'm used to the German wording 14:05
14:05 cognome joined
laben nine: if i run t/inherit.t manually it works but still says Looks like you planned 8 tests but ran 5 14:05
moritz www.ebay.de/itm/like/130942134087?l...mp;viphx=1
something like that
www.ebay.de/itm/like/140802546547?l...mp;viphx=1 a bit larger
nine laben: that sounds like a segfault
laben: can you run it in gdb and give me a backtrace? 14:06
moritz (seems both of these have raid, but not discs, so might need extra stuff)
laben nine: how can i do that?
colomon don't suppose we could run purchase of a server through the Perl Foundation to make it tax deductable?
FROGGS moritz: I can donate to it if that would be fine
14:06 cognome left, cognome joined
colomon but yeah, could kick in a bit towards a better server for p6 14:07
nine moritz: I have a private i7 with a couple GiB RAM free sitting around idling hosted at Hetzner
moritz FROGGS: that would be great; then I'll ask my employer about that next week
nine laben: perl6 is just a shell script starting moarvm. So on my system the command to run gdb is: 14:08
moritz nine: sounds good too; would you be willing to give lots of people access to it?
nine gdb --args /home/nine/install/rakudo/install/bin/moar --execname="$0" --libpath="/home/nine/install/rakudo/install/languages/nqp/lib" --libpath="/home/nine/install/rakudo/install/languages/perl6/lib" --libpath="/home/nine/install/rakudo/install/languages/perl6/runtime" /home/nine/install/rakudo/install/languages/perl6/runtime/perl6.moarvm -I lib t/inherit.t
laben nine: thanks, i was investingating just that
nine moritz
14:08 ghostlines left
laben nine: welp, what a big cmdline 14:09
nine moritz: yes.
14:09 Hor|zon joined
nine moritz: setting up a VM for perl6 folks might be a good idea 14:09
moritz nine: (FTW, feather currently has 119 homes and about 30 sudoers)
14:11 cognome left
laben nine: inside gdb then i do "run" and then "bt", right? 14:13
14:13 Hor|zon left
nine laben: yes 14:14
laben nine: gives me "No stack."
14:14 tinyblak joined
nine laben: does it say "exited normally" before that? 14:14
laben nine: no, it says Inferior 1 exited with code 0377 14:15
FROGGS btw, I usually replace --execname="$0" by --execname="perl6" in the gdb line so that tests that shell() out work too
nine FROGGS: oh yes, of course. I did that once and usually just use bash history to dig it out again.
laben FROGGS: did that, too, to no avail 14:16
nine laben: I'm confused. Can you paste the complete output of your run somewhere?
FROGGS sure, just want to mention it :o)
laben nine: oh actually i saw just now that perl6 does say something about an unhandled exception
nine laben: details? 14:17
laben nine: coming up right now
nine: pastebin.com/hrP9KzzE 14:19
14:20 anaeem1_ left 14:22 anaeem1 joined, tinyblak left
laben nine: this is the gdb run pastebin.com/gm1wFybV 14:22
nine laben: oh, that's the hint: ok 1 - # SKIP Perl 5 Moose module not available 14:23
laben ok, but htese 5 are skipped alright 14:24
the remaining 3 are not run
dalek line-Perl5: 5d1368f | nine++ | t/inherit.t:
Fix t/inherit.t failing again if Moose is not installed
nine laben: sorry for that one. I added a comment to the plan line to remind me of the skip line for the next time...
laben oh, the last 3 too required moose
nine: i should apologize to you, i should have read the code and seen the trivial problem, dammit 14:25
nine laben: technically those tests don't require Moose. Maybe I should rip out the tests that really depend on Moose so I only have to skip those. 14:26
14:26 pecastro joined
laben all fine now :) 14:26
moritz maybe put them into a separate test file 14:27
that makes it much easier to selectively skip
nine moritz: that's what I meant
moritz: but before that I'd really like to find some test that reproduces the segfault I already have a fix for
moritz I thought "rip out" was "remove entirely"
laben nine: if i can help you reproduce it 14:28
nine moritz: second conference day....I'm already quite tired :)
14:29 Sqirrel left
moritz nine: don't need to tell a father of 2 about being tired :-) 14:30
TimToady or 4 :)
moritz or even of one, actually
TimToady "One kid takes all your time; two can't take any more of it..."
FROGGS jnthn: that's the flamegraph producing script: github.com/brendangregg/FlameGraph...megraph.pl 14:32
nine laben: the segfault I'm trying to provoke is a purely Perl 5 problem. I'm telling av_extend to extend an array by -1 elements which cannot work. But P5 survives it during my tests anyway. Just not during my talk :)
14:34 bob_spoonmongler joined
FROGGS jnthn: we should get away with our SVG module... it seems we don't need much more 14:34
dalek osystem: 7ce0d40 | jonathan++ | META.list:
Update META.list
nine FROGGS: reminds me that I should push my fix for SVG somewhere
colomon actors up now too? \o/ 14:35
FROGGS nine: where somewhere ends with "/pulls"? :o)
jnthn colomon: yes
Ven pmurias: what's the big idea with generating file names?
colomon jnthn++
14:35 BenGoldberg joined
jnthn FROGGS: No no no, all the profile visualisation stuff is written in JavaScript :) 14:36
FROGGS: We "just" need to turn the JSON blob into...something
I was pondering a HUGE table :D
'cus, well, it's a cell-based thing :)
FROGGS jnthn: well, one could read that script and port it to JS :o) 14:37
colomon jnthn: panda builds OO::Monitors for me now, \o/
jnthn colomon: phew :)
nine FROGGS: oh I meant SVG::Plot
jnthn FROGGS: ah, true :)
FROGGS jnthn: but yeah, it might be easier and faster to just write it from scratch
jnthn FROGGS: I think I want to use color of allocation hotness too :) 14:38
dalek k-simple: 3206652 | (Timo Paulssen)++ | lib/GTK/Simple.pm6:
can disconnect draw handlers
moritz nine: you have a commit bit for both svg and svg-plot now 14:39
pmurias Ven: currently ./nqp-js -e 'say("Hello World")' saves the code to tmp.js; and runs node tmp.js
nine moritz: oh, excellent. Thanks!
Ven oh!
github.com/perl6/gtk-simple/commit...56efe5R293 haha timotimo++ 14:40
FROGGS say "stop idling!"; ?
mauke use INTERCAL; say "Please stop idling"; 14:41
14:43 Sqirrel joined, anaeem1 left 14:44 bob__spoonmongle joined 14:45 bob_spoonmongler left
nine moritz: fix pushed :) 14:46
moritz nine: takk 14:49
FROGGS at all in the hall: do some "uhh"s and "ahh"s when there are nice things to see now.. 14:50
14:52 zakharyas joined
FROGGS timotimo++ \o/ 14:52
nine timotimo: epic lightning talk!
pmichaud timotimo++ 14:53
jnthn timotimo++ # awesome
14:53 laben left
colomon ack, what was it? 14:55
jnthn colomon: A game involving space, shooting, and explosions :)
mauke pew pew pew 14:56
colomon wishes he were there. though it is exceedingly beautiful here at his parents' house this morning.
colomon waits for the game to be posted online. :)
and timotimo++
14:56 esaym153 left 14:57 anaeem1_ joined
rindolf finally heard back from fglock about Perlito. 14:57
FROGGS Ven++ # well done! 14:58
14:58 laben joined, laben left 14:59 gfldex joined
nine Damn those interesting lightning talks...not much time for coding :) 15:02
jnthn :)
Ven why am I so stressed all the time :o) 15:03
timotimo++
15:04 esaym153 joined 15:05 cognome joined
timotimo \o/ 15:06
i was quite nervous %)
github.com/timo/gtk_cairo_shooter ← the real repository 15:07
15:07 bob_spoonmongler joined, cognome left
nine timotimo: didn't show :) 15:07
15:07 cognome joined
Ven agreed 15:07
timotimo \o/ 15:08
15:09 bob__spoonmongle left
timotimo developers developers developers developers 15:11
15:12 cognome left
timotimo i am loving this talk 15:13
Ven doesn't know this talk 15:14
timotimo the one we're seeing right now
i didn't know it before
but i already love it
azawawi any live feed? 15:17
timotimo no :(
15:20 Ven left 15:21 lizmat left 15:23 woolfy left, woolfy1 joined 15:25 leont_ left 15:26 mauke left 15:28 pepl left 15:29 anaeem1_ left
gtodd timotimo was pushing to the GTK::Simple during the lightning talk? ! 15:29
^repo 15:30
15:34 Brian_ joined, ghostlines joined 15:37 woolfy1 left 15:45 guru joined 15:46 guru is now known as Guest43549
azawawi pasteboard.co/RyTWNQi.png # initial implementation of the Perl 6 REPL UI in farabi6 15:47
15:48 Guest43549 is now known as ajr_ 15:49 Ven joined
Ulti does Int.roll() coerce to a single element list or something? 15:51
davido__ Discovered mention that Perl6 regexes are inspiration for C++'s Boost "xpressive". But unfortunately the link that shows how Perl6 inspired the library points somewhere that no longer exists... 15:52
www.boost.org/doc/libs/1_56_0/doc/h...ssive.html
...points to dev.perl.org/perl6/doc/design/syn/S05.html
Ulti I was kind of expecting Int.roll() to be like Int.rand() but whole numbers
davido__ Perhaps we could put page that redirects so as not to lose the positive press.
15:54 leont_ joined
dalek p-js: 76bffd1 | (Pawel Murias)++ | src/vm/js/ (5 files):
Pass test 53.

Implement more knowhow metaobject stuff, nqp::knowhowattr op.
15:55
15:56 zakharyas left
timotimo gtodd: right before and right after 15:56
pmurias if I want to move (rebase?) nqp-js to a current version of nqp what would be a good way to do this
?
jnthn: and what point to you think it would make sense to move nqp-js to the main nqp repo? 15:57
moritz pmurias: just my 2 cents: when it passes maybe 30% or more of the nqp test suite, and doesn't interfere with the rest of the bulid system 15:58
JimmyZ bootstrap? 15:59
moritz pmurias: and as branch (non-master) right now
16:01 JimmyZ left, flaviusb left
timotimo i'm sometimes confused what to put into "is native" 16:02
/usr/lib64/libgobject-2.0.so - it doesn't seem to like "gobject-2.0" :( 16:03
FROGGS timotimo: yes, the library detection isnt perfect yet, which does not make it easier
timotimo right :( 16:04
FROGGS timotimo: because of the dot, aye
more problematic is libfoo.so.6.3.0
timotimo oh? so if i "gobject-2" it could work?
FROGGS timotimo: no
timotimo "libgobject-2"?
i'm trying to help ven run my crap on his mac 16:05
FROGGS but it does not even try to add .so because you already passed it a file extension
".0"
moritz .o.o.O :-)
FROGGS so, you can make the libname conditionally depending on $*DISTRO.name or so
timotimo d'oh
FROGGS and apply that trait separately
timotimo ven can do that by himself :P 16:06
FROGGS sub foo { ... }; &foo does native($libname); or some such
Ven means I have to clone it locally...
timotimo is anything planned for tonight's dinner?
pmurias and hints how I should rebase(?) nqp-js on top of current nqp?
moritz pmurias: I'd merge; rebasing would likely be too much work 16:07
16:07 cognome joined
FROGGS here is how to apply the trait: github.com/sergot/io-socket-ssl/bl...SL.pm6#L13 16:08
timotimo: aye, the Imlauer at 7
pmurias moritz: too much work? you mean handling merge conflicts?
FROGGS that's where we were on Thursday
moritz pmurias: yes
timotimo ah, OK
16:09 cognome left
FROGGS pmurias: you can also copy your nqp-js over a nqp checkout, and look at the diff and commit piece by piece 16:09
timotimo jnthn: BTW, i was wrong about the "99.9% of time spent in postcircumfix:<( )>"
16:09 cognome joined
FROGGS like, commit the srv/vm/js first, then build stuff, and so on 16:09
pmurias: though, dunno if you like to keep your commits visible
pmurias that would destroy the commits history 16:10
moritz: nqp-js is mostly in seperate files (there are like 2-3 commits that change a shared file)
16:10 Hor|zon joined
Ven is the convention `<+alpha-digit>` or `<+alpha -digit>` or...? 16:11
timotimo jnthn: postcircumfix:<( )> seems to take 18.66% exclusive time and leads the ranking
then comes bind from m-bootstrap, line 2604 and then 1862 of m-bootstrap
FROGGS m: say "1a" ~~ /<+alpha -digit>+/
Ven FROGGS: I know it *works*
timotimo then infix:<*> and then bind_one_param
camelia rakudo-moar d32972: OUTPUT«「a」␤␤»
Ven I'm wondering how I *should* write it
FROGGS Ven: alpha-digit is a name on its own
Ven whether I should put spaces or not 16:12
FROGGS: actually, no
FROGGS you have to in this case
O.o
but it probably should
Ven +alpha-digit works
FROGGS hmmm
Ven probably, yes!
FROGGS that might not be how it is meant to be
16:12 lizmat joined
FROGGS std: say "1a" ~~ /<+alpha-digit>+/ 16:12
camelia std f214dca: OUTPUT«ok 00:01 143m␤»
FROGGS let's run it in viv 16:13
Ven m: say 'a' ~~ /<+alpha-digit>/; say '0' ~~ /<+alpha-digit>/
16:13 cognome left
camelia rakudo-moar d32972: OUTPUT«「a」␤␤Nil␤» 16:13
FROGGS │ │ │ .: &4 !!perl/hash:VAST::identifier
│ │ │ TEXT: alpha-digit
Ven: std agrees with me
nine just arrived at the preconfrestaur^H^H^H^H^H restaurant
FROGGS so it is an LTM bug in rakudo/nqp
Ven FROGGS: I'm not talking about how it *should* be ;). We agree on that one 16:14
So, <+alpha - digit> ?
FROGGS yes
nine Buergerstube
timotimo nine: there already?
is that the imlauer?
16:14 woolfy joined
FROGGS nine: is that the Imlauer Biergarden? 16:14
16:14 Hor|zon left
timotimo i'll AFK for a bit and maybe be late for the nom place 16:15
nine timotimo: yes
16:15 spider-mario left
FROGGS timotimo: me too, I need some sort of rest 16:15
16:15 anaeem1_ joined, Brian_ left
woolfy No rest for the wicked! 16:15
nine nothing else to do :) 16:16
FROGGS woolfy: so am I "verrucht"? :D
woolfy For some reason, I'm not very hungry... Cookies, bananas, cake, big lunch, juices, etc...
Ven :)
cooookies
leont_ is in favor of resting too 16:17
16:17 Brian_ joined
woolfy Perl programmers (and all other programmers) work best when they have a supply of cookies. Not just the promise of it... 16:17
FROGGS Ven: you can also show <+alpha-digit>, but then better as <+long-named-rule> 16:18
Ven mh.
well anyways..
are there tests for nativecall's "guess_library_name"? 16:19
16:19 spider-mario joined
FROGGS Ven: no 16:19
Ven maybe I should write some, then?
woolfy FROGGS: verrucht? Maybe verrückt, just a little bit, like all of us. 16:20
jnthn timotimo: Any chance you can upload the profile somewhere? :)
FROGGS Ven: that's factored out since three weeks or so... that was inlined in the Native role
Ven jnthn: after his shower, I'm sure.
FROGGS woolfy: hmmmm, okay :/
Ven FROGGS: okay, then I'll just add a test file, should be fine
erm... but it should probably have a low number – do I rename the other ones? 16:21
FROGGS Ven: how does that work cross-platform-ish?
woolfy But you must be a little bit verrucht too. I feel the dark side is growing in you!
Ven FROGGS: my $*OS = 'MSWin32'; ...
FROGGS *g*
Ven :-)
FROGGS Ven: that does not check for file existence? 16:22
Ven no
jnthn Ven: np, I'm going to dinner soon anyway :)
FROGGS fine :o)
Ven FROGGS: my issu is – how do I name the test file? Or do I just add it to other test files? Because it should probably be 02 or 03 or something - it's the basics.
dalek p: 89f9209 | (Pawel Murias)++ | Configure.pl:
Enable --no-clean option in Configure.pl.
Ven but there are already t02 and t03 16:23
FROGGS Ven: I'm not sure that ordering is that important
Ven FROGGS: well. The tests from GTK::Simple will actually fail in t02 on mac without my fix. sooo...
having tests proving stuff that's already proved (and was with a worse error message) seems suboptimal 16:24
FROGGS Ven: ask jnthn for his opinion... I don't have any :o)
Ven jnthn: opinions? I want to add tests for nativecal''s "guess_library_name", but i'm not sure which test file to add them in 16:25
FROGGS Ven: why not call it 00?
16:25 ajr_ left
Ven ha :P 16:25
FROGGS 00-libname
jnthn Ven: Sounds like maybe a separate test file?
Ven jnthn: yes. But which number?
jnthn Ven: Any reason not to put them on the end?
Ven jnthn: because it would have failed earlier with suboptimal messages already 16:26
jnthn The current ordering is "what order stuff got implemented"
Ven: But "make test" runs everything anyway...
Ven on my machine it fails in t02
jnthn And the first one will have scrolled away by then
So not sure it matters a great deal
Ven well, maybe, but in panda, it's probably better to have the correct error message
FROGGS Ven: panda does also run all tests 16:27
jnthn Oh, does it care for fist failure somehow?
FROGGS no
Ven no it doesn't. it stops after the first fail here...
jnthn oh, I should probably get ready to meet folks for dinner...
FROGGS weird
jnthn uh, *first* failure
Ven t01-sanity, and then it stops. no output from the others
FROGGS that feels suboptimal :o) 16:28
jnthn &
lizmat also &
16:29 woolfy left, kurahaupo_ left
Ven oooh, apparently it does run all tests. gtk::simple just only has one test file :o) 16:30
FROGGS *g*
16:32 woolfy joined 16:33 _slade_ joined
Ven mmh. means I need it to be an "our" sub... 16:35
nine WTF? make test works, but !make test called from vim ends in a panic: MUTEX lock in one test file
FROGGS or better 'is export' like the others
timotimo jnthn: i just ran it again with a slightly longer-running run 16:36
now the postcircumfix:<( )> time is back up to 30%
azawawi is there is an argument for perl6 to force starting the REPL instead of reading from stdin?
perl6 --repl or something 16:37
timotimo er ...
azawawi i need to read/write via Proc::Async to $*EXECUTABLE
pmurias moritz: rebase worked with one merge conflict
16:37 kaare__ joined
timotimo did i just ... upload a file with 5.7 MB/s ... through the hotel wifi? 16:38
16:38 anaeem1_ left
timotimo jnthn: t.h8.lv/cairo_shooter.html 16:38
Ven m: { temp $*VM; $*VM.config<dll> = 'foooo'; say $*VM.config<dll>; }; say $*VM.config<dll>
camelia rakudo-moar d32972: OUTPUT«Can only use 'temp' on a container␤ in sub prefix:<temp> at src/gen/m-CORE.setting:18663␤ in block <unit> at /tmp/SA_dJwwl1t:1␤␤»
16:40 yeahnoob left, kaare_ left
moritz timotimo: scp often shows way-too-high bandwith numbers at the start of a copy operation (and consequently for small files) 16:41
nine timotimo: it tells you how fast it can push data into your network stack's buffers 16:42
16:43 pecastro left
timotimo mhm mhm 16:43
i was able to immediately ctrl-d, though
Ven mmh. I need to override $*VM.config<dll> and for that I also need to remove $*VM.config<load_ext>. temporarily. Then restore these values. Is there a better solution rather than just saving the old in variables, changing 'em, then restoring em? 16:45
dalek line-Perl5: ac78b77 | nine++ | p5helper.c:
Fix segfaulting on exceptions in P5 functions.

If a P5 function or method doesn't return any values or gets interrupted by an exception, we called av_extend with a negative count. Strangely enought this doesn't bother Perl 5, except when doing this during a presentation.
The only known test case is starting a Catalyst application when the port is already taken. Failed to provoke it under any other circumstances, hence no tests for this. The failure condition occurs in many tests but never leads to an explosion.
16:48
pmurias if I push my rebase nqp-js with 'git push -f' will much bad stuff happen? 16:49
16:50 zakharyas joined
Ven nine++ 16:51
tony-o timotimo: does compiling them at different times account for a different byte count? the one compiled by panda is invariably 4 bytes longer
timotimo yes, actually
a different path
the file name is part of the serialized file
tony-o if i install with panda and then manually create the compiled module of same name, it's 4 bytes shorter 16:52
without fail
16:52 anaeem1 joined
timotimo t.h8.lv/game_jitlog.txt if anybody cares to implement moar ops that can be jitted :P 16:53
azawawi is there a perl6 command or option to invoke the REPL directly? when it is read using Proc::Async, it assumes reading from stdin and waits for EOF to parse the script and thus it does not enter the interactive REPL. 16:54
moritz it does not? 16:56
maybe it looks if STDIN is connected to a terminal? no idea 16:57
tony-o timotimo: github.com/tony-o/perl6-pandapack/...dapack.pm6 if i compile this file with panda, it doesn't function properly. if i remove the .moar file then it works fine. if i manually build the .moar then it also works fine
moritz but should be fairly easy to add
timotimo er, wat? :(
moritz I think there are known problems with precompilation
tony-o i'll put up a gist, one second
azawawi moritz: my script works if it is irb or reply but not on perl6
timotimo perhaps linenoise is looking at "is stdin a tty?" 16:58
16:58 colomon left, shoky joined 16:59 Ven left, Brian_ left, colomon joined 17:01 pecastro joined 17:03 chipotle left 17:05 guru joined, guru is now known as Guest68170 17:07 cognome joined
timotimo is going to re-profile with the changes he just put into moarvm 17:07
17:08 Ven joined 17:09 zakharyas left 17:10 anaeem1 left
timotimo yup. postcircumfix:<( )> now has a tiny bit of green 17:10
17:11 uvtc joined, cognome left
tony-o oh i see, i had the wrong compiled name. the compiled unit just doesn't work.. moritz was that problem with precompilation directed at me? 17:12
moritz tony-o: at you and timotimo, yes
timotimo oh 17:13
moritz somehow the "call graph" section in the profiler output rarely shows useful information 17:14
Ven FROGGS/moritz: can you look at my zavolaj PR? 17:15
timotimo moritz: you just have to find the stuff you're looking for. 17:16
dalek Heuristic branch merge: pushed 363 commits to nqp-js by pmurias
timotimo and click through endless layers of "sink reify gimme anon reify gimme anon reify gimme anon"
tony-o interesting ^ i'll just delete the .moarvm and forge ahead, thank you
moritz timotimo: moritz.faui2k3.org/tmp/profile-to-j...#callgraph just one under "callees"
pmurias did a git push -f so I somebody has a checkout of nqp-js it might cause a bit of annnoyance 17:17
moritz timotimo: but if you look at the Routines tab, there are lots of interesting methods that I'd like to know of where tehy are called from
uvtc Hi, #perl6. Is the GLR expected to change how lists (and related objects) are used by Perl 6 users, or is it more of an implementation detail?
yoleaux 15 Mar 2014 05:36Z <moritz> uvtc: I've disabled wiki.perl6.org
uvtc Thanks, yoleaux, I haven't been around in a while. :)
timotimo moritz: aye ; maybe at some point i'm going to build a "tree" output mode for the "call graph" section
TimToady uvtc: mostly supposed to be transparent 17:18
uvtc Ah, thanks, TimToady.
moritz Ven: why <alpha-digit>? <alpha> doesn't include digit, afaict
17:19 Mso150 joined
Ven moritz: ask timo :o) 17:19
moritz asks timotimo
17:19 BenGoldberg left
moritz Ven: can you test with with just <.alpha> ? 17:20
Ven moritz: it works.
moritz Ven: then please simplify it
Ven moritz: it's alreaady done and pushed
:-)
moritz Ven: thanks 17:21
dalek volaj: 147cdf0 | Nami-Doc++ | lib/NativeCall.pm6:
Fix library name parsing of libfoo-2.0
volaj: 97863bb | moritz++ | lib/NativeCall.pm6:
Merge pull request #48 from Nami-Doc/master

Fix library name parsing of libfoo-2.0
timotimo hum? 17:22
moritz timotimo: so it only lists callees that have just one caller?
(re profiling)
17:23 _slade_ left
timotimo er, what? 17:23
17:24 denis_boyun joined
timotimo oooh 17:24
Ven okay, I give up.
Can't fight with p6 imports and stuff. annoyin
g*. 17:25
17:25 BSc_tadzik is now known as tadzik
timotimo the call graph doesn't show you all the callees of a given frame all throughout the program 17:25
moritz timotimo: what does it show?
17:27 Brian_ joined
timotimo the callees "at that depth" only 17:28
Ven I seriously need an explanation on how the hell the module system works. Why is a "our sub is export" not available, either bare-named after USEning the module, or in a qualified names? 17:29
timotimo like if you have a sub a that calls sub a ten frames deep and then sub b
you'd have to click on the "a" in the callee list 9 times to see b show up
azawawi github.com/azawawi/farabi6/blob/91...c_async.pl # test script for various REPLs.. pry (ruby) and reply (perl) work, perl6, python do not work
uvtc In the [feature comparison](perl6.org/compilers/features), under 17:30
built-in types, what does "LoL" refer to? This can't just mean lists of lists, does it?
TimToady a special type for multi-dim subscripts
dalek p-js: ae3fcf1 | (Pawel Murias)++ | t/nqp/59-nqpop.t:
Fix test count.
17:31
p-js: eb14e33 | (Pawel Murias)++ | t/nqp/59-nqpop.t:
Add a test for nqp::unshift.
p-js: be1566a | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp:
Implement nqp::unshift.
TimToady m: my @a = [<a b c>], [<d e f>], [<g h i>]; say @a[*;1]
camelia rakudo-moar d32972: OUTPUT«b e h␤»
TimToady that *;1 is a LoL
m: say (1,2,3; 4,5,6; 7,8,9).WHAT
camelia rakudo-moar d32972: OUTPUT«(LoL)␤»
dalek kudo-star-daily: 4c447bf | coke++ | log/MoarVM-version.log:
today (automated commit)
17:32
rl6-roast-data: 8add4e2 | coke++ | / (4 files):
today (automated commit)
uvtc Thanks. How would one make an "old fashioned" list of lists? Like Python's [[1, 2, 3], [4, 5, 6]]?
TimToady that works
but you can use a LoL that way too, generally
m: say (1,2,3; 4,5,6; 7,8,9)[1]
camelia rakudo-moar d32972: OUTPUT«4 5 6␤»
TimToady it's just special so the subscript operator knows multi-dim was intended 17:33
uvtc Thank you. Will look again at the docs.
leont_ is somewhat rested and will go to food/people now
peteretep lizmat: I had not looked at S22, but I will, thanks 17:35
timotimo leont_: wait for us?
leont_ Sure, how long? 17:36
peteretep lizmat: My understanding is that that describes exclusively what an archive file containing Perl6 modules should look like is 17:37
lizmat: Where I am much more interested in the design of the "Pause" part of it 17:38
lizmat: Which will have an indexer which of course will need to make use of that info in S22
lizmat: Am I understanding right?
17:38 shoky left
timotimo leont_: about 3 minutes 17:39
timotimo runs to get socks and long pants
leont_ ok &
peteretep lizmat: One final observation here is: it's going to be very hard for me to change my MSc dissertation project, so I'm pretty much locked in to working hard on this for the next year 17:41
lizmat: The implication being that I would love to be involved in whatever you're doing :-)
lizmat: Because it would be a shame to produce anything at the end of this that didn't have any actual value
lizmat: Although something substantial will need to be produced by the end of it to get an MSc
I think what I mean is I'm free labour 17:42
17:42 Ven left 17:44 Ven joined 17:45 Ven left, leont_ left
peteretep Current status is I'm carefully reading and taking notes on the PDFs on CPAN6. After that I plan to understand properly exactly how "Ecosystem" works, before writing up (probably in a formal specification) a schema that captures what I identify as the important attributes of both 17:47
17:47 atroxaper joined 17:48 Mouq joined
atroxaper Hello, #perl6 ! 17:52
TimToady o/ 17:53
17:53 kurahaupo_ joined
atroxaper I did two pull request for Rakudo and NQP. I added --git-depth=number option. With that option we can clone a small part of repositories. Requests: github.com/rakudo/rakudo/pull/322 github.com/perl6/nqp/pull/191 17:54
TimToady: o/
I read build logs of Travis CI and seen than cloning of NQP require ~80MB each time. I think it will be good to add --depth=20 option to git clone. That is why I did so. 17:56
moritz atroxaper: there's a much better option 17:57
atroxaper: you can keep a local clone of the repositories
atroxaper: and then use git lcone --refererence path/to/local/clone 17:58
Mouq mortiz++ # I log on to see doc work! <3
atroxaper moritz: Yes, you told me that some time ago. But in context of CI it is not acceptable
moritz atroxaper: why not?
atroxaper: it's only an optimization 17:59
atroxaper: it doesn't change any commits or so
Mouq moritz: Question, though: why the focus on || in regexes.pod rather than the more idiomatic | ?
moritz Mouq: because I haven't explained LTM yet
Mouq: patches welcome :-)
Mouq moritz: Okay :)
Mouq can't right now
moritz Mouq: I might also add some more doc patches tonight 18:00
Mouq My hero :)
atroxaper moritz: I'm not sure, but I think that Travis do not allow to store some repository all time and give us reference on it.
moritz atroxaper: it probably depends on whether you control the travis instance or not 18:01
atroxaper: anyeay, I think there's room for both options
atroxaper: one thing I don't know though with --depth is how it affects git-describe, which we use to generate version numbers 18:02
atroxaper moritz: ok. I'm going to add another one then:)
moritz Mouq: though first: named captures 18:04
pmurias peteretep: the CPAN6 thing was a general storage of anything mechanism
18:04 bartolin joined
pmurias peteretep: the current plan is to store Perl 6 modules on (the existing) CPAN 18:04
moritz yes, like a p2p file system with more meta data 18:05
peteretep pmurias: Part of the MSc will be detailing what went wrong with going for a general storage of anything mechanism
atroxaper moritz: good question. I think --depth brokes a git-describe...
peteretep pmurias: What I plan to build should be able to produce a perl5 CPAN layout
pmurias what do you plan on building?
peteretep pmurias: This still needs detailing, but essentially, PAUSE 18:06
But a PAUSE capable of knowing about Perl 5 and Perl 6 modules, and producing a Perl 5 CPAN layout, as well as a layout suitable for hosting Perl6 modules 18:07
18:07 cognome joined, mauke joined
pmurias isn't the current PAUSE suitable for both Perl 5 and Perl 6 modules? 18:08
18:08 kjs_ joined
moritz FROGGS is currently patching PAUSE to deal with both; I'm sure there's room for improvement though 18:08
like, collecting more meta data for p6 modules
b2gills perteretep: It would be nice if you don't need to run some code to install modules ( Makefile.PL or Build.PL ) 18:09
peteretep b2gills: That sounds more like a packaging issue, which I'm looking to avoid
b2gills: As per lizmat's link to S22 which seems pretty definitive 18:10
rindolf TimToady: hi! Are you there?
peteretep pmurias: I don't think the current PAUSE handles Perl 6 modules at this time. Additionally, I think it would be better to sign modules by default rather than a user/pass mechanism
pmurias if you want to compare a too specific and too general approaches, I think it's best to check that the too specific one is really too specific
sign modules by default? 18:11
peteretep pmurias: The Perl 6 ecosystem currently explicitly declares itself as too simplistic
right on its github page
18:11 Hor|zon joined 18:12 cognome left, Akagi201_ left, Akagi201 joined
pmurias peteretep: yes, but there are people working on using the existing CPAN(5) 18:13
peteretep pmurias: Awesome, that'll give me a 3rd approach to evaluate too
I feel like the existance of Stratopan, Pinto, and friends suggest that an improvement could be made on the existing PAUSE system beyond simple support of another namespace for a different language 18:14
but, who knows?
18:16 Hor|zon left
peteretep FROGGS: I would love to discuss your work on PAUSE at a convenient time for you 18:16
18:17 _slade_ joined
peteretep pmurias: The last commits I can find for putting Perl 6 modules on CPAN(5) are in May - have you seen more recent commits or work? 18:23
18:25 denis_boyun left 18:26 Guest76896 left
TimToady rindolf: only sort of...the network is very flappy here 18:27
rindolf TimToady: ah. 18:28
TimToady: can I /msg you? 18:29
TimToady: do you have logs and scrollback?
TimToady likely to have scrollback, but no logs 18:30
18:31 erkan joined, erkan left, erkan joined 18:32 bowtie joined
pmurias peteretep: I haven't been following that closely, the work on that was suspended for a bit during GSoC 18:32
peteretep: you should talk with FROGGS
18:32 bowtie is now known as Guest99561 18:35 Guest68170 is now known as ajr_ 18:36 ghostlines left 18:48 Mouq left 18:49 kaare__ left 18:53 BenGoldberg joined 18:55 xfix is now known as notfix 18:57 kjs_ left, kjs_ joined 19:00 darutoko left 19:02 pepl joined
azawawi im tired after looking @ the perl6/nqp internals for the REPL :) 19:02
19:03 xenoterracide joined 19:07 cognome joined, Mso150 left 19:09 Mso150 joined, uvtc left 19:11 cognome left 19:13 Mso150 left, kjs_ left, Mso150 joined
dalek ast: d03302f | usev6++ | S03-operators/div.t:
Add test for RT #112678
19:15
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=112678
azawawi moritz: switch to EVAL(...) for the perl 6 repl... until i can figure out how to run it 19:18
moritz: s/switch/switched
19:22 Brian_ left 19:23 kjs_ joined
moritz m: 19:23
m: my regex value { \w+ }; if "a=b" ~~ /<key=value>\=<value>/ { say ~$<value> }
camelia rakudo-moar d32972: OUTPUT«a b␤»
moritz I expected that to only print b 19:24
is that a rakudobug?
if yes, known?
19:27 breinbaas joined 19:28 zakharyas joined 19:32 anaeem1 joined 19:37 kjs_ left
kurahaupo_ moritz: where's the defn for key there? 19:39
dalek p-js: fcc9837 | (Pawel Murias)++ | src/vm/js/ (2 files):
Pass test 9.

Implement nqp::who and variable with .decl eq 'static'.
p-js: 8f4269b | (Pawel Murias)++ | src/vm/js/ (3 files):
Pass test 12.

Implement nqp::defor. Stub nqp::defined.
moritz kurahaupo_: <key=value> calls the 'value' regex but captures with name 'key'
kurahaupo_ ok 19:40
mauke is <foo> sugar for <foo=foo>?
moritz mauke: that's one way of putting it
kurahaupo_ moritz: so, you match two things as value, and you think when you give a name "key" for one of then, it should not include that in the list of things for "value"; so does $<value> mean the things named value, or the things matching value? 19:42
moritz kurahaupo_: $<value> just access the capture named 'value' 19:43
oh 19:44
the specs say rakudo is correct
and I should use <key=.value> to suppress the value capture
kurahaupo_ and the argument is whether key= creates a synonym, or is the *only* name
moritz correct 19:45
19:49 denis_boyun_ joined 19:51 cognome joined 19:52 cognome left, cognome joined 19:54 xenowoolfy joined 20:08 Guest99561 left 20:10 xenowoolfy left 20:11 xenowoolfy joined 20:12 Hor|zon joined 20:13 denis_boyun_ left, atroxaper left 20:14 bowtie joined, bowtie is now known as Guest12380 20:17 Hor|zon left 20:19 xenowoolfy left
dalek c: 79b69a8 | moritz++ | lib/Language/regexes.pod:
[regexes] named captures, subrules
20:22
c: 397dc9d | moritz++ | lib/Language/regexes.pod:
Fix typo
c: 3876e7a | moritz++ | lib/Language/regexes.pod:
[regexes] write much more about adverbs
20:23 jepeway joined
dalek c: 776ac62 | moritz++ | lib/Language/regexes.pod:
Mention that quantified captures produce lists
20:26
20:30 ivanshmakov left 20:31 alcedo joined 20:32 bartolin left 20:36 azawawi left 20:38 ivanshmakov joined 20:44 alcedo left 20:46 pepl left 20:47 Ven joined
jepeway howdo, #perl6? 20:53
20:53 ajr_ left 20:57 leont_ joined
dalek k-simple: d596233 | (Timo Paulssen)++ | lib/GTK/Simple.pm6:
work towards mac support
21:01
21:02 rindolf left
timotimo moritz: you're doing stuff \o/ 21:03
i'm especially glad about doc work
21:06 kurahaupo_ left
jepeway well. 21:07
jepeway betting apw has most peeps' attention 21:09
got a q re: what I guess is context. 21:10
pretty sure this won't work, but...
m: class a { multi method b() returns Str { 's' }; multi method b() returns Int { 1 }; }; say ~a.new().b();
camelia rakudo-moar d32972: OUTPUT«Ambiguous call to 'b'; these signatures all match:␤:(a: *%_ --> Str)␤:(a: *%_ --> Int)␤ in block <unit> at /tmp/2UfhhHlOIa:1␤␤»
timotimo yeah, you can't dispatch by "expected return type" or anything like that 21:11
(of course you can get the candidate list and search for the return type you want manually and then call that candidate)
jepeway is that the "context is icky" I see sometimes? 21:12
timotimo well, we have the "thank god wantarray is gone" thing 21:13
however, look at this:
jepeway looking
timotimo m: class Surprise { method b() { (class foo { method Str { "hey" }; method Numeric { 1234 } }).new } }; say +Surprise; say ~Surprise; 21:14
camelia rakudo-moar d32972: OUTPUT«use of uninitialized value of type Surprise in numeric context in block <unit> at /tmp/Q0vex_GDRM:1␤␤0␤use of uninitialized value of type Surprise in string context in block <unit> at /tmp/Q0vex_GDRM:1␤␤␤»
timotimo oops
m: class Surprise { method b() { (class foo { method Str { "hey" }; method Numeric { 1234 } }).new } }; say +Surprise.b; say ~Surprise.b;
camelia rakudo-moar d32972: OUTPUT«1234␤hey␤»
jepeway yipes 21:15
oh. 21:16
timotimo prefix + just calls .Numeric and prefix ~ just calls .Str
21:16 zakharyas left
timotimo (or Stringy or something like that) 21:16
that stuff is completely introspectable
whereas wantarray or something similar is just "spooky action at a distance"
mauke metacpan.org/pod/Want#NAME 21:17
jepeway yeah, no need for the method in what I tried, huhn?
timotimo aye
there's an even "eviler" way to do this
since you can just plop a role onto an instance, not just a class 21:18
m: my $strange'thing = "Hello" but False but 99e4; say +$strange'thing; say ~$strange'thing; say so $strange'thing; say $strange'thing.WHAT;
21:18 Mso150 left
timotimo did i break it? :\ 21:18
camelia rakudo-moar d32972: OUTPUT«(timeout)»
timotimo m: my $strange'thing = "Hello" but False; $strange'thing does 99e4; say +$strange'thing; say ~$strange'thing; say so $strange'thing; say $strange'thing.WHAT; 21:19
camelia rakudo-moar d32972: OUTPUT«(timeout)»
timotimo m: say "i am alive!"; say "i am developer!"
jepeway heh.
timotimo is feather08 under heavy load again?
camelia rakudo-moar d32972: OUTPUT«(timeout)»
21:19 Mso150 joined 21:20 gfldex left
jepeway trying the $strange'thing locally 21:20
jepeway now trying to (blindly) fix syntax complaints re: associativity 21:22
timotimo ah; the second one doesn't associativifice 21:23
jepeway complains of 'Hello' not being a base-10 number when I break the buts into multiple lines 21:27
timotimo ooooh
aye 21:28
i know why
jepeway so...+ is trying to numberfy<?> the string instead of getting the numeric
ah...do tell :)
timotimo if you "but InstanceOfSomeClass", it will create a role for you that looks like this:
21:28 leont_ left
timotimo anon role { method SomeClass { InstanceOfSomeClass } } 21:28
jepeway (and, btw, thanks ever for this convo, timotimo++)
timotimo so in this case it was giving the "Hello" string instance a Num method because we mixed in an instance of Num (namely 99e4)
but +$strange'thing actually calls .Numeric 21:29
which is still being looked up in Str's method resolution order
you're welcome :)
are you one of the APW attendees?
jepeway wish, but nope.
timotimo ah, OK 21:30
i'm lounging next to vendethiel on the hotel bed in salzburg :)
Ven >_> pinging me 21:31
jepeway ah, nice. figured it was 'bout post-dinner time.
mauke almost midnight
21:33 leont_ joined
jepeway can i claim i was factoring in the 'closing out restaurant/bar with p6 geekery' time with straight face? 21:34
21:34 anaeem1 left
jepeway so, changing the order to "99e4 but hello but false" kinda works. + still delivers a string, though: Hello. 21:38
timotimo yes 21:39
m: say "i'm back!"
camelia rakudo-moar d32972: OUTPUT«i'm back!␤»
timotimo aha!
m: my $strange'thing = "Hello" but False; $strange'thing does role { method Numeric { 99e4 } }; say +$strange'thing; say ~$strange'thing; say so $strange'thing; say $strange'thing.WHAT;
camelia rakudo-moar d32972: OUTPUT«990000␤Hello␤False␤(Str+{<anon>}+{<anon>})␤»
timotimo there we go. 21:40
mauke m: say "Hello" but False; 21:41
camelia rakudo-moar d32972: OUTPUT«Hello␤»
mauke m: "Hello" but (False but True);
camelia ( no output )
jepeway wouldn't 99e4 do the Numeric role? (well, obviously not, just puzzled)
timotimo the last mixed-in trait should win 21:42
no, it wouldn't, for this reason:
m: say 99e4.WHAT
camelia rakudo-moar d32972: OUTPUT«(Num)␤»
timotimo m: say ("hi" but 99e4).Numeric
camelia rakudo-moar d32972: OUTPUT«Cannot convert string to number: base-10 number must begin with valid digits or '.' in '⏏hi' (indicated by ⏏)␤ in method gist at src/gen/m-CORE.setting:13616␤ in sub say at src/gen/m-CORE.setting:15782␤ in block <unit> at /tmp/MUOt9VnnlM:1␤␤»
timotimo m: say ("hi" but 99e4).Num
camelia rakudo-moar d32972: OUTPUT«990000␤»
timotimo does that make it clear?
jepeway say Num.WHAT
m: say Num.WHAT
camelia rakudo-moar d32972: OUTPUT«(Num)␤»
timotimo it uses the name of the class of the instance you mix in to figure out which method to create that will return that very instance
jepeway oh. a bit.
I got the "but" sugar (if you'll pardon a poor turn of phrase). 21:43
timotimo m: class AmazingClass { has $.name }; my $thingy = "Hello there" but AmazingClass.new(:name("ME!")); say $thingy; say $thingy.AmazingClass;
camelia rakudo-moar d32972: OUTPUT«Hello there␤AmazingClass.new(name => "ME!")␤»
jepeway oh: Numeric is a role for non-numbers to do number-like things? 21:44
timotimo that's because the name of a class as a method is supposed to be the coercer to that type
aye
m: say 99e4.^mro; # "method resolution order"
camelia rakudo-moar d32972: OUTPUT«(Num) (Cool) (Any) (Mu)␤»
timotimo m: say 99e4 ~~ Numeric
camelia rakudo-moar d32972: OUTPUT«True␤»
timotimo ("does that role")
jepeway well, urk: if a Num does Numeric, too, then why does $strange'thing need the explicitly crafted "does role Numeric?" 21:47
oh. 'cause $strange'thing doesn't do it, it won't ~~ Numeric
timotimo it only uses the name of the class on the very top of the derivation hierarchy 21:48
jepeway i (think i) see
timotimo you see how Num is derived from Cool, Any and Mu?
jepeway yes, do
timotimo it only creates a Num method, but not a Cool, Any and Mu method for the same reason it doesn't make a Numeric unit
method*
@kills>>.HP >>[=]>> 3; 21:49
just a really pretty line of code from my game %) 21:50
moritz .HP is an rw accessor? 21:52
timotimo yep
jepeway admires & boggles
timotimo it's a tiny bit sad that >>=>> doesn't work because it thinks of =>
moritz isn't that easier written as @kills>>.HP = 3 xx * ? 21:53
timotimo psst :)
*.HP = 3 for @kills?
er
moritz without the * actually
timotimo $_.HP = 3 for @kills
or without $_, yeah
moritz anyway, time to sleep here; have fun with your remainining three hit points :-)
jepeway gnight, moritz. 21:54
timotimo gnite moritz!
moritz: that's just to fix the display of the kill tally after game over ;) 21:55
otherwise all enemy ships would appear as "sticks"
whereas they regularly have a wing on both sides
(which is represented as HP being 0b11)
moritz: ven says Z= would also work, but X= is even better because then you don't need xx at all 21:56
22:00 eternaleye left 22:03 eternaleye joined
jepeway should prolly let friendly p6 folk @ apw head off to Nod. 22:06
Ven to bed? :p 22:07
22:08 leont_ left, leon__ joined
jepeway 'land of Nod' => sleep 22:09
22:13 Hor|zon joined, Ven left, Ven joined
timotimo gnite jepeway :) 22:14
jepeway gnite timotimo. 22:15
tx, again. 22:16
jepeway is off to play with new learnings
22:16 leon__ is now known as leont 22:18 Hor|zon left
timotimo have fun! 22:19
i can't stop adding fun new thingies to this game %)
22:20 baest joined 22:24 leont left
Ven timotimo-- 22:36
# prick
22:36 colomon left
Ven timotimo++ # not on irc 22:40
timotimo we don't actually know how to properly reach the hackathon value from our hotel ... 22:41
but we'll figure it out after som esleep
22:47 Ven left, spider-mario left 23:04 pmurias left 23:13 sivoais left, uvtc joined 23:14 sivoais joined
dalek kudo/nom: 79ac0c7 | (Elizabeth Mattijsen)++ | src/core/ (4 files):
Remove :exists/:delete from core settings

We don't need the overhead of :exists/:delete
23:15
kudo/nom: 390c512 | (Elizabeth Mattijsen)++ | src/core/CompUnit.pm:
A step towards reliable lazification of @*INC
kudo/nom: b6c6aef | (Elizabeth Mattijsen)++ | src/core/IO/Handle.pm:
Don't count lines if we're eager

Just set it at the end
lizmat sleep& 23:18
23:19 colomon joined
uvtc Are many of the Perl 6 illuminati currently concentrated at a conference or hackathon or something? 23:20
In the backlog I saw mention of meet-ups and talk of talks. 23:21
Curious if any talks are being recorded. 23:23
23:25 b2gills left
jepeway uvtc: many are @ act.useperl.at/apw2014 23:29
uvtc Thanks for the link, jepeway!
colomon uvtc: jnthn put his slides (and some source code) online, anyway. 23:34
uvtc colomon, thanks, I have this link: <jnthn.net/articles.shtml>. 23:35
23:36 b2gills joined
colomon uvtc: this was today's, don't see it on the page yet: jnthn.net/papers/2014-apw-objects-c...rrency.pdf 23:38
colomon wishes there was video, jnthn++ is a great presenter. 23:39
uvtc: the source code for that talk is up in the p6 ecosystem at OO::Actors and OO::Monitors 23:41
23:41 xenoterracide left
uvtc Thanks, colomon. But don't know what you mean about it being "in the p6 ecosystem". Do you mean somewhere under <github.com/perl6/ecosystem>? 23:43
colomon uvtc: I mean you can use panda to install them.
uvtc Ah, thanks.
jepeway (uvtc: yw) 23:44
colomon or you can just look at github.com/jnthn/oo-monitors and github.com/jnthn/oo-actors
uvtc gotcha
jepeway gone 'til i'm back. thanks, all. 23:45
23:45 jepeway left
uvtc Oooh. GTK::Simple! How cool is that? 23:46
colomon BTW, as I just thought to look myself -- jnthn added the new object type "monitor" to p6 in just 94 lines of code.
uvtc: I know there's a GTK::Simple talk online somewhere.
uvtc Nice. Will look around for it... 23:47
colomon jnthn.net/papers/2014-yapceu-async.pdf introduced it.
anyway, most of the gang is in Austria, and thus all asleep at the moment. 23:50
uvtc Right. Thanks for the link, colomon. Looking at it right now. 23:51
:)