Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2012-06-18

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:05 cj joined #perl6
00:07 drbean joined #perl6
00:30 adu joined #perl6
00:45 tyatpi joined #perl6
00:49 tokuhiro_ joined #perl6
01:07 lichtkind good night
01:11 scott_ joined #perl6
01:12 preflex joined #perl6
01:39 sorear good * #perl6
01:43 PZt joined #perl6
02:06 tyatpi joined #perl6
02:18 shinobicl joined #perl6
02:20 mitch__ joined #perl6
02:43 jaldhar joined #perl6
02:59 dalek niecza/non-bootstrap: 995e572 | sorear++ | lib/ (3 files):
02:59 dalek niecza/non-bootstrap: Actions pt 12
02:59 dalek niecza/non-bootstrap: review: https://github.com/sorear/niecza/commit/995e572f83
03:07 driador joined #perl6
03:44 cog_ joined #perl6
03:56 edit_21 joined #perl6
04:26 dalek niecza/non-bootstrap: c3880e1 | sorear++ | lib/ (2 files):
04:26 dalek niecza/non-bootstrap: Actions pt 13
04:26 dalek niecza/non-bootstrap: review: https://github.com/sorear/niecza/commit/c3880e15cd
04:57 xinming joined #perl6
05:05 dalek perl6-bench: 68bbd89 | (Geoffrey Broadwell)++ | / (2 files):
05:05 dalek perl6-bench: Choose JSON prettification based on style setting (auto=pretty); this closes multi-format output TODO
05:05 dalek perl6-bench: review: https://github.com/japhb/pe​rl6-bench/commit/68bbd8919d
05:05 dalek perl6-bench: f1a090b | (Geoffrey Broadwell)++ | TODO:
05:05 dalek perl6-bench: A few more TODO items
05:05 dalek perl6-bench: review: https://github.com/japhb/pe​rl6-bench/commit/f1a090b53c
05:05 dalek perl6-bench: 7e6db6c | (Geoffrey Broadwell)++ | / (2 files):
05:05 dalek perl6-bench: Output summary to arbitrary file; guess format based on extension of outfile
05:05 dalek perl6-bench: review: https://github.com/japhb/pe​rl6-bench/commit/7e6db6cc2d
05:07 moritz \o
05:07 phenny moritz: 17 Jun 22:41Z <japhb> tell moritz Congrats!
05:07 moritz japhb: thanks!
05:09 fhelmberger joined #perl6
05:10 jerome_ joined #perl6
05:55 tadzik moritz: congratulations to you both!
05:56 sorear tadzik: context?
05:58 tadzik sorear: apparently moritz got married recently
05:59 sorear moritz: If the rumours are true, congratulations!
06:09 moritz sorear: thanks
06:09 sorear I'll take that as confirmation \o/
06:10 moritz (we were legally married for two years already, it was "just" the church ceremony on Saturday. And Ronja's baptism)
06:10 moritz and a not-so-small party
06:12 cog__ joined #perl6
06:20 wtw joined #perl6
06:41 birdwindupbird joined #perl6
06:45 kaleem joined #perl6
07:01 brrt joined #perl6
07:30 dalek niecza/non-bootstrap: 4771f2b | sorear++ | lib/ (2 files):
07:30 dalek niecza/non-bootstrap: Actions pt 14
07:30 dalek niecza/non-bootstrap: review: https://github.com/sorear/niecza/commit/4771f2b4e6
07:30 [particle] joined #perl6
07:31 moritz sorear: how many parts is it going to be?
07:31 frettled moritz: (belated) congrats!
07:32 moritz frettled: thanks :-)
07:32 * mhasch , too, wishes moritz all the best
07:32 moritz thanks mhasch
07:34 sorear moritz: 3-4 more
07:35 sorear it's a 4200 line file and I'm trying to keep commits to 300ish lines
07:35 moritz sorear: can you already test the things you're porting now?
07:36 moritz or will that only be possible after porting the whole thing?
07:36 sorear most testing has to wait
07:36 sorear (I've been checking if it compiles continuously, which has caught quite a few mistakes)
07:37 moritz (static typing)++
07:38 sorear agreed
07:43 shachaf moritz: Happy moritz*=2 !
07:43 shachaf ...Or however that works.
07:43 moritz thanks shachaf :-)
07:44 shachaf Everyone's getting married these days, it seems.
07:44 frettled ackermann(moritz)?
07:44 moritz frettled: ackermann is a function of two variables :-)
07:44 shachaf moritz: It's a function of 1-3 variables depending on who's talking about it.
07:44 frettled moritz: I find you very variable!
07:45 shachaf I think the original function had three.
07:45 * moritz only knows the defintion given at the top of https://en.wikipedia.org/wiki/Ackermann_function
07:46 moritz but yes, wiki says it was originally three-arg
07:47 shachaf I think A_1(n) is just A_2(n,n), or something like that.
07:48 sorear sleep&
07:48 shachaf sorear: Did you hear shapr got married recently too?
07:48 frettled I actually implemented Ackermann-sort.
07:52 cognominal joined #perl6
07:55 sisar the word "anonymous" is overloaded, methinks. It can refer to both: "things which are unnamend" or "things which have a name but right now we don't know its name". (when I was contemplating the reason why 'anonymous functions' are named so?). I'd rather call them 'nameless functions', instead.
07:56 shachaf That seems just as ambiguous.
07:56 sisar "unnamed functions" ?
07:56 bonsaikitten I would confuse nameless with lamdbas, is that intended?
07:56 sisar bonsaikitten: no
07:57 moritz what's the difference?
07:57 bonsaikitten language is ugly ;)
07:57 shachaf "lambda" is an OK name for lambdas.
07:58 shachaf I don't see why a name is that important in most cases.
07:58 moritz in Perl 6 we have functions that know their own name, and functions we can access by name, and the two are mostly orthogonal
08:02 sisar the fist code block (in http://stackoverflow.com/a/834616), when run in perl6, prints 123 both times. What changed in perl6 from perl5 to make this happen?
08:04 moritz sisar: are you familiar with the warning 'Variable "$x" will not stay shared' in Perl 5?
08:04 sisar moritz: no
08:05 sisar something I need to read ?
08:05 moritz sisar: lemme find a good explanation
08:06 sisar ok
08:06 moritz sisar: http://www.perlmonks.org/?node_id=696592 maybe
08:06 * sisar looks
08:07 moritz (short version: nested named subs don't work properly in perl 5, because the inner function can be run before the outer one was run, and there aren't static lexpads in the same sense as Perl 6 has them)
08:07 VXZ joined #perl6
08:13 sisar moritz: where can I read about lexpads? what are they, what are static ( and dynamic) lexpads, etc ?
08:13 moritz sisar: lemme dig up another link :-)
08:15 sergot joined #perl6
08:15 sergot hello o/
08:15 tadzik o/
08:17 sisar :)
08:17 * sisar afk
08:18 cog_ joined #perl6
08:20 dakkar joined #perl6
08:26 kresike joined #perl6
08:26 kresike hello all you happy perl6 people
08:26 sergot kresike: o/
08:27 kresike sergot, \o
08:27 tadzik hi kresike
08:28 kresike hello tadzik
08:52 daxim joined #perl6
09:04 Woodi relative morning #perl6 :)
09:07 moritz absolute #perl6, Woodi :-)
09:09 brrt left #perl6
09:12 Woodi hmm, there is new 'ufo' implementation - maybe it is used with modules automatic tests ?
09:14 moritz no
09:15 moritz sisar: one possible ressource on lexpads and closures is http://www.perlmonks.org/?node_id=964726
09:27 tadzik Woodi: emmentaler uses panda, which does not use ufo
09:28 moritz but panda got its own set of improvements recently
09:28 * sisar back
09:28 sisar moritz: thanks. I'll go through it.
09:28 moritz though I really want it to install .pod files in time for the next star release
09:29 tadzik right
09:29 tadzik when is the next star?
09:30 moritz soon after next compiler, which is on Thursday
09:32 moritz tadzik: iirc you wrote a partial patch for that. Is that pushed somewhere?
09:32 moritz if not, could you please push it to a branch?
09:52 tadzik moritz: nah, it's not commited yet
09:52 tadzik or it is, but only locally, on my laptop at home
09:53 tadzik I'll push it when I get back home. It passed the tests I've written for it, but it crashed for some reason on p6doc
10:01 moritz ok, thanks
10:02 moritz crashes are easier to debug than silent and wrong behavior, at least in foreign code
10:02 moritz at least I'll know from the start where it went wrong
10:13 am0c joined #perl6
10:14 tyatpi joined #perl6
10:15 tadzik istr it was something like "omg, Pod is a directory, what now?" So mayhaps I told File::Find to look for files only where I shouldn't have
10:17 moritz but Pod::To::Html also has a lib/Pod/ dir
10:19 tadzik yeah, but I didn't test it on that one. I may not remember correctly what the error was exactly about
10:19 tadzik I think it was something related to Pod directory, but I could be that I just broke everything but tests ;)
10:19 moritz ah well, I might have tuits to look at it tonight
10:19 tadzik there's a reason this patch is unpushed
10:22 pupoque_gnexus joined #perl6
10:23 moritz n: no strict;
10:23 p6eval niecza v18-7-ga660099:  ( no output )
10:23 moritz n: no strict; $a; say OUR::.keys
10:23 p6eval niecza v18-7-ga660099: OUTPUT«0␤»
10:24 moritz n: no strict; $a; say MY::.keys
10:24 p6eval niecza v18-7-ga660099: OUTPUT«0␤»
10:24 moritz n: my $a; say MY::.keys
10:24 p6eval niecza v18-7-ga660099: OUTPUT«Potential difficulties:â�¤  $a is declared but not used at /tmp/uoom5Qhy4u line 1:â�¤------> [32mmy [33mâ��[31m$a; say MY::.keys[0mâ�¤â�¤0â�¤Â»
10:25 moritz sorear: can .keys on pseudo package stashes return something else than 0 in niecza? if yes, how?
10:25 moritz n: our $X = 5; say OUR::.keys
10:25 p6eval niecza v18-7-ga660099: OUTPUT«0␤»
10:31 moritz n: no strict; eval '$x = 5'; say $x
10:31 p6eval niecza v18-7-ga660099: OUTPUT«5␤»
10:42 tyatpi_ joined #perl6
10:46 JimmyZ joined #perl6
10:53 sisar joined #perl6
11:01 edit_21 joined #perl6
11:15 cognominal joined #perl6
11:16 sunflower joined #perl6
11:28 flussence my rakudo build attempts keep dying with "invoke() not implemented in class 't'"... I'm pretty sure I fixed this one before but can't remember how. I've already cleaned out ./parrot/ and ./nqp/ too...
11:29 cognominal joined #perl6
11:32 flussence (hm, it might be make -j2 causing it)
11:37 moritz flussence: some parrot installs still floating around somewhere?
11:37 moritz flussence: I think grondilu reported a similar problem
11:40 flussence nope, I'm pretty certain it's all contained in that rakudo dir...
11:40 mtk0 joined #perl6
11:47 flussence hm, make -j1 didn't fix it either :/
11:49 DarthGandalf joined #perl6
11:50 GlitchMr joined #perl6
11:53 jaldhar joined #perl6
12:00 slinkylinda joined #perl6
12:01 slinkylinda hi
12:01 slinkylinda A PRAYER FOR TODAYFather in heaven, I receive Your truth today. I receive Your promises. I ask that You ignite my heart with Your holy fire so that I can pursue Your perfect plan for my life. Make my thoughts and words agreeable to Your will in Jesus’ name. Amen.
12:02 slinkylinda am from nigeria 23 years old girl
12:02 slinkylinda hey pals
12:05 slinkylinda slinkylinda@yahoo.com that's my yahoo massenger id
12:05 slinkylinda ur alow to add me
12:05 brrt joined #perl6
12:11 mtk joined #perl6
12:12 tadzik didn't we use to ban the entire chatmosphere subnet?
12:12 flussence they used to identify it in the hostname...
12:13 PacoAir joined #perl6
12:14 flussence I'm still of the opinion freenode itself should do something, they have the resources to do a more thorough job of banning/quarantining them.
12:18 libertyprime joined #perl6
12:25 tokuhiro_ joined #perl6
12:29 snearch joined #perl6
12:32 BaggioKwok joined #perl6
12:56 PerlJam joined #perl6
13:01 jimmy1980 joined #perl6
13:09 mtk joined #perl6
13:10 Psyche^ joined #perl6
13:11 UncleFester6 joined #perl6
13:12 mitch__ joined #perl6
13:17 sergot joined #perl6
13:24 UncleFester6 left #perl6
13:25 vmspb joined #perl6
13:28 PerlJam Ah ... it's release week!
13:43 jerome_ joined #perl6
13:44 skids joined #perl6
13:58 Mhen joined #perl6
14:01 drbean joined #perl6
14:19 kaare_ joined #perl6
14:30 sunflower joined #perl6
14:35 sisar joined #perl6
14:39 uvtc joined #perl6
14:39 uvtc Anyone know if Pm's first talk on lists/arrays was recorded? I was hoping to see it show up at http://www.youtube.com/playl​ist?list=PLE3F888A650339DDF it hasn't appeared there.
14:40 uvtc Whoops. pmichaud ^^
14:41 uvtc I saw (yesterday) the link to the slides: http://pmichaud.com/2012/pres/  (yapcna-lists-1)
14:42 jaldhar joined #perl6
14:47 gfldex uvtc: http://irclog.perlgeek.de/​perl6/2012-06-17#i_5735526
14:48 uvtc gfldex, Yes, saw that. Thanks. Do you happen to know if it made it to youtube?
14:49 uvtc Haven't been able to find it, and was wondering if anyone could confirm whether or not it was recorded.
14:50 uvtc Also, in the irc comment from pmichaud, what was the "lightning talk" about? (Separate from the lists/arrays 1 talk, I presume?)
14:51 mikemol joined #perl6
14:54 jaldhar joined #perl6
14:57 thou joined #perl6
15:04 alvis joined #perl6
15:04 MayDaniel joined #perl6
15:10 TimToady the lightning talk was about how much rakudo performance was better, and about how rakudo starts up faster than perl5 if you include Moose and friends to implement a modern type system like Perl 6 gives you by default
15:10 atrodo joined #perl6
15:11 uvtc TimToady, Ah, saw the slides for that. Thanks.
15:11 harmil1 TimToady: that may be, but in my recent experience, Rakudo scales much more poorly with the size of the project than Perl 5. I'm sure that's fixable, but it's a pretty big concern for me right now.
15:12 uvtc I don't see a link anywhere on perl6.org regarding archived videos of talks. Is http://www.presentingperl.org/ galactic central hq for these?
15:12 TimToady beats me
15:12 harmil1 hmmm… why am I harmil1 now? didn't I do all the auth magic?
15:13 TimToady harmil: sure, but pmichaud++ was just pointing out how far rakudo has come thus far
15:13 harmil there we go
15:13 TimToady you can't say everything in a lightning talk...
15:13 harmil TimToady: it really has. I was just being a wet towel of realism ;)
15:14 TimToady he was mostly trying to counter the argument that p5 starts up so much faster than p6
15:14 TimToady and his benchmark for the other part was just a small loop
15:14 TimToady I suspect the scaling problem will improve as we move toward more compact struct reprs
15:16 kresike bye all
15:17 moritz note that much of the rakudo setting (with the exception of very hot pathes like list iteration) was written without good knowledge about what operations are fast or slow
15:18 moritz I guess there's still much to be gained on that level alone
15:23 spider-mario joined #perl6
15:24 jimmy1980 joined #perl6
15:37 harmil So, for an example of what I was talking about (and I want to stress that this is only to shine a flashlight, not to belittle the massive progress thus far), try this shell script: $ for size in 1 10 100 1000 10000; do code=$(for n in $(eval "echo {1..$size}"); do echo -n "1;"; done); echo -n "Expressions in input: $size: " ; time --format=%e -- perl6 -e "$code" || break; done
15:38 harmil My output: Expression in input: 1: 0.28
15:38 harmil Expression in input: 10: 0.30
15:38 harmil Expression in input: 100: 0.60
15:38 harmil Expression in input: 1000: 3.40
15:38 harmil Expression in input: 10000: 39.48
15:38 harmil The good news is that that growth appears to be linear with the number of expressions (for simple expressions)
15:39 harmil the bad news is that that's a pretty huge constant increase.
15:44 pmichaud good mprning, #perl6
15:44 harmil howdy pmichaud
15:45 uvtc pmichaud, I was asking earlier about if your first talk on lists/arrays/parcels was recorded. Do you happen to know if it was?
15:46 pmichaud uvtc: no, I don't know what the status of any recordings are.
15:46 uvtc pmichaud, thanks.
15:46 pmichaud Yes, there was a camera in the room; I presume it was streamed live, but as to whether it was recorded anywhere or whether the video will see the light of day... that's pretty much up to the yapc::na 2012 folks, I suspect.
15:47 uvtc pmichaud, seems like it would be very useful to have a video of that talk, given your comments on the slides ( http://pmichaud.com/2012/pres/yapc​na-lists-1/slides/slide5g.html#end ).
15:47 pmichaud uvtc: sure, I agree.  I'm eagerly awaiting the talk videos myself.
15:48 pmichaud and I'm really hopeful they show up.  Over the years I've had tons of my talks recorded in the room, but then the videos never actually make it online.  :-/
15:49 uvtc Do folks ever bring their own recording devices? (If I ever give a talk, I'm guessing I'd record it myself just so I'd have my own copy, even if only for posterity. :) )
15:49 pmichaud I tried doing that a couple of times but it didn't really work out.
15:49 uvtc Heh. "Hey, could you please keep an eye on this camcorder while I give the next talk? Thanks!"
15:50 uvtc Hm. I suppose getting good audio could be difficult.
15:51 pmichaud yes, but I even bought a small microphone to help with that.
15:51 pmichaud the tricky part is setup+takedown in the time between talks
15:52 uvtc Not sure what you mean... could you have a buddy or spouse just make the recording for you?
15:53 pmichaud uvtc: sure, could probably delegate it.
15:53 pmichaud ...but it's still something I wish could be handled at a conference level instead of a per-speaker level
15:56 harmil Hmm… DO NOT execute this on the p5eval bot… this seems to hang the parser: my $x = 1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1​+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+​1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1​+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+​1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1​+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1;
15:56 harmil Interestingly, if I remove exactly one of the +1's it works
15:56 uvtc pmichaud, we talked about this on irc a few weeks (?) ago. I'd probably be interested in transcribing the meat of the talk into docs on the wiki. It would be unfortunate if the recording doesn't make it online.
15:56 harmil *s/p5/p6/
15:58 jaldhar joined #perl6
15:58 kurahaupo joined #perl6
15:59 uvtc left #perl6
16:00 moritz harmil: don't worry, p6eval has a CPU time limit
16:00 moritz r: 1 while 1; say 'alive'
16:01 p6eval rakudo a2bacb: OUTPUT«(timeout)»
16:01 jaldhar joined #perl6
16:01 pmichaud uvtc:  I agree, it would be unfortunate.  Sadly, that's not something I control.
16:02 pmichaud harmil: howdy  # just now catching up with stuff :)
16:03 pmichaud harmil: I think your expression example above may be reflecting parse time more than anything else.
16:03 brrt left #perl6
16:04 moritz removing one +1 results in a parse time of ~2s
16:04 pmichaud as soon as I get an up-to-date perl6 executable, I'll test.
16:04 pmichaud moritz: I meant the "Expression in input" example before that.
16:04 moritz ok
16:04 moritz with the full thing, it hasn't finished after two minutes
16:07 pmichaud harmil: https://gist.github.com/2949136 # I get different results... what did I do wrong?
16:10 harmil pmichaud, not sure. here's my superset-test:
16:11 harmil for size in 1 10 100 1000 10000; do code=$(for n in $(eval "echo {1..$size}"); do echo -n "+1"; done); echo -n "Expressions in input: $size: " ; time --format=%e -- perl6 -e "my \$x = 1$code;" || break; done
16:12 harmil BTW: all of this is rakudo-star-2012.05
16:14 pmichaud Here's what I get for rakudo-2012.05: https://gist.github.com/2949162
16:15 pmichaud I suspect my shell isn't producing the same output as yours
16:15 harmil wow, very different
16:15 harmil I get about the same and then it hangs at 1000
16:15 pmichaud yeah, $code always ends up being "+1" for me
16:16 harmil oh, interesting. I'm using bash
16:16 pmichaud so am I.
16:16 harmil hurm… let me make that more generic then
16:16 pmichaud oh, maybe not.
16:16 pmichaud if I use bash, I get an error.
16:16 harmil heh, I'll just use some perl5 so we have consistency
16:17 pmichaud I think I get what you're doing now -- you're just concatenating a bunch of +1's together?
16:17 pmichaud you can use perl6 for consistency too :_)
16:18 harmil for size in 1 10 100 1000 10000; do code=$(perl -le 'print "+1" x shift(@ARGV)' $size); echo -n "Expressions in input: $size: " ; PATH=~/local-work/self/rakudo-star/rak​udo-star-2012.05/rakudo-2012.05:$PATH time --format=%e -- perl6 -e "my \$x = 1$code;" || break; done
16:18 harmil it's true, but my brain has some very low-level "perl -le 'print …'" firmware in place at this point
16:19 harmil I don't think I could even get my fingers to type "perl -e 'say …'" on newer perls, much less run perl6
16:19 pmichaud I get good results up to $size == 1000, at which point it's hanging for me too
16:19 pmichaud so, it's definitely a parsing issue somewhere
16:19 harmil interesting.
16:20 harmil oh, wait, 1000 hangs or 10_000 hangs?
16:20 pmichaud well, 1000 takes a really long time thus far
16:21 harmil ok, yeah, I see it just spin, taking up very, very slightly more memory over time. 140 expressions was the cuttoff for me, when I did the binary search
16:21 cognominal joined #perl6
16:21 harmil It went from 0.7 seconds to hang from 139 to 140
16:22 pmichaud mine is hanging at 139
16:23 harmil pmichaud: given http://pmichaud.com/2012/pres/yapc​na-lists-1/slides/slide5g.html#end would it make sense to just delete the existing synopses and replace them with a placeholder?
16:23 pmichaud harmil: +1, yes.
16:24 pmichaud I'll do that today if nobody beats me to them.
16:24 pmichaud https://gist.github.com/2949227   # hangs at 138 for me
16:24 pmichaud that's just.... weird
16:25 pmichaud my gut tells me this might be a parrot string bug
16:25 harmil hmmm.. is perl5 putting spaces in the result of x? That might make a difference
16:26 harmil e.g. 1 +1 +1 +1 vs 1+1+1+1
16:26 pmichaud okay, I think it's not string length related
16:27 pmichaud I switched it to do 1+2+3+...+$size instead and get https://gist.github.com/2949241
16:27 pmichaud where it hangs at 139
16:28 harmil I wonder… is there some kind of recursion limit detection that's being triggered, and then rakudo is treating that as a failed match?
16:29 pmichaud oooh, that makes a lot of sense.
16:29 pmichaud yes, Parrot has a recursion limit.
16:29 harmil the 13x thing is awfully suspiciously constantish.
16:29 pmichaud normally the recursion limit triggers an exception, though -- it'd mean that something is catching the exception.
16:29 harmil yeah
16:30 harmil Maybe rakudo needs a way to turn off parrot's recursion detection temporarily and take it over itself during expression parsing
16:30 pmichaud well, we can certainly up the limit.
16:30 pmichaud aha!!!
16:30 pmichaud check this out -- running on 2012.01
16:31 harmil The real-world expectation that this would ever happen is kind of thin...
16:31 harmil but not 0
16:31 pmichaud https://gist.github.com/2949262
16:31 pmichaud harmil++  # excellent catch
16:31 harmil There you go!
16:32 pmichaud something post 2012.01 is catching the exception
16:32 harmil aye
16:32 pmichaud where's masakbot when you need him?  ;-)
16:33 tadzik I think he's still backlogging :)
16:34 pmichaud tadzik!  o/
16:34 pmichaud just one of the people I wanted to talk to!
16:34 pmichaud tadzik: ping !!!
16:34 tadzik pmichaud: pong!!!
16:34 pmichaud tadzik: I have a question about .WHY and pod
16:34 tadzik go ahead
16:35 harmil Ugh… I just came across some code in Actions.pm: '&' ~ ~$<identifier> … my eyes really want to read that as "~~"!
16:35 tadzik I'm not surprised
16:35 pmichaud are you aware of anything in the pod spec that would enable me to attach something to a function so that it collects the text from another location?
16:35 pmichaud e.g., an external file
16:35 pmichaud ?
16:36 tadzik hm
16:36 pmichaud here's my usecase
16:36 pmichaud currently, we have CORE.setting
16:36 tadzik should be doable, with more or less magic
16:36 vmspb joined #perl6
16:36 pmichaud we're also creating p6doc, with the documentation for the builtins
16:36 tadzik yes
16:36 pmichaud because the builtin documentation is common to multiple implementations, I don't want each implementation to have to copy the text into its CORE.setting equivalent
16:37 pmichaud but I'd still like the builtins to be able to respond smartly to .WHY
16:37 tadzik yeah, that's reasonable
16:37 tadzik I've discussed that with moritz as well, I think
16:37 pmichaud what's more, I want it to be lazy, so that the documentation is only loaded when someone requests .WHY, as opposed to being stored directly in the .pbc/binary itself
16:37 tadzik right
16:38 pmichaud anyway, think about it a bit and let me know if you come up with any ideas :)
16:38 tadzik I have some
16:38 tadzik here's the thing: https://github.com/rakudo/rakud​o/blob/nom/src/core/Pod.pm#L20
16:38 tadzik Pod::Block::Declarator is what generally gets attached to objects
16:39 tadzik .WHEREFORE is the object, so you can go both ways, from object to docs and the other way around, but that does not matter
16:39 tadzik so the simpliest (simplest?) thing that we can do, is so that P::B::Declarator checks for any content it may have, and if it doesn't have any it fetches it from a file we choose
16:39 tadzik or tries
16:40 pmichaud I was wondering if there's an equivalent of a '#include' possibility in pod, such that text from another location is inlined within the current pod.
16:40 tadzik which sounds easy enough to do, we may even subclass P::B::Declarator for our own purposes here
16:40 tadzik I don't think there's a way
16:41 tadzik (inlining)
16:41 pmichaud maybe we should (get Damian to) add one :)
16:41 tadzik why would you want that?
16:41 pmichaud well, the use case I've just given would be one reason
16:41 tadzik so that inlining would work lazily?
16:41 pmichaud so that text becomes more reusable
16:41 tadzik mhm
16:41 pmichaud the specific case I'm thinking of would be something like this
16:42 pmichaud let's suppose we have a method in CORE.setting, where we want to pull in the standard documentation but also need to add some rakudo-specific text
16:42 tadzik mhm
16:42 pmichaud I need to see an example of .WHY again -- I've forgotten the syntax :-(
16:43 tadzik so how would you see that syntactically? =include some_file.pod?
16:43 pmichaud (or, more accurately, I don't remember the current syntax)
16:43 tadzik r: say ""
16:43 p6eval rakudo a2bacb: OUTPUT«␤»
16:43 tadzik p6eval: thanks for the newline
16:43 tadzik r: #= this sorts some zebras␤sub sort-zebras { }; say &sort-zebras.WHY
16:43 p6eval rakudo a2bacb: OUTPUT«Block::Declarator.new(WHEREFORE => sub+{<anon>} sort-zebras() { ... }, config => ().hash, content => Array.new("this sorts some zebras"))␤»
16:43 tadzik pmichaud: ^
16:44 pmichaud tadzik: perfect.... writing...
16:44 tadzik r: #= this sorts some zebras␤sub sort-zebras { }; say &sort-zebras.WHY.Stringy
16:44 p6eval rakudo a2bacb: OUTPUT«this sorts some zebras␤»
16:44 tadzik mayhaps we want that to be .gist too, or so
16:44 pmichaud yes, I was just about to say that.  +1
16:45 tadzik I need to reunderstand this print/say oddness
16:45 pmichaud say uses the .gist form of things
16:46 tadzik and gist is rather non-technical
16:46 pmichaud tadzik: maybe something like https://gist.github.com/2949346 , where I've made up the include<...> directive to denote the inlined text.  It's just a placeholder; we should definitely come up with a better syntax.
16:47 pmichaud the idea being we can grab a section of text (similar to what p6doc will ultimately want to do) and pull it inline into the .WHY
16:47 tadzik right
16:48 tadzik we could also keep CORE.pod and CORE.pod.rakudo and merge them during build like we do with src/core/files and gen/CORE.setting :)
16:48 tadzik but it may be just me being lazy
16:48 pmichaud yes, we can do that also, but we pay a storage cost for that.
16:48 sergot joined #perl6
16:49 tadzik hm
16:49 tadzik or maybe we put the rakudo-specific parts in the setting, and the general ones outside
16:49 tadzik so .WHY merges those
16:49 pmichaud right, that's what I'm advocating
16:49 tadzik hm
16:49 pmichaud so our CORE.setting contains a bunch of  #= include<...>  tags
16:50 tadzik oh, I thought of it differently
16:50 pmichaud which pulls in the text when .WHY is requested
16:50 tadzik hmm
16:50 tadzik what I thought is... let me write this down
16:51 pmichaud anyway, I'm just planting the idea seed for now.  I really like the idea that CORE.setting gets its .WHY values "on demand" from a documentation source that can be shared among implementations.
16:52 pmichaud kind of an AUTOLOAD for .WHY  :-)
16:52 tadzik https://gist.github.com/2949346#comments
16:52 UncleFester6 joined #perl6
16:52 tadzik heh, markdown turned a comment into a HEADLINE
16:52 tadzik yes, that makes sense
16:53 tadzik (what you say)
16:53 sergot Who is going to go to the YAPC::EU? :)
16:53 tadzik me
16:53 pmichaud I was thinking more of  "process-inlines-in(@.content)".
16:53 tadzik that makes sense as well
16:53 UncleFester6 r: my @a = (10, 20 ,30 ,40); my @l := gather { for @a {say "hi"; take $_ } }; say ~@l
16:53 p6eval rakudo a2bacb: OUTPUT«hi␤hi␤hi␤hi␤10 20 30 40␤»
16:53 tadzik oh-oh!
16:54 tadzik We can have a custom Formatting Code for that
16:54 pmichaud tadzik: yes
16:54 pmichaud that's why I made it look like include<...>  :-)
16:54 tadzik :)
16:54 UncleFester6 r: my @a = (10, 20 ,30 ,40); my @l := gather { for @a {say "hi"; take $_ } }; .say for @l
16:54 p6eval rakudo a2bacb: OUTPUT«hi␤hi␤hi␤hi␤10␤20␤30␤40␤»
16:54 tadzik and it won't even leak out
16:54 tadzik okay, so that we can do
16:55 tadzik oh wait
16:55 tadzik we have that already
16:55 tadzik A second kind of link—the P<> or placement link—works in the opposite direction. Instead of directing focus out to another document, it allows you to assimilate the contents of another document into your own.
16:55 UncleFester6 I am having trouble understanding gather/take/lazy eval.  How do I loop through @l and get hi 10 hi 20 hi 30 hi 40
16:55 tadzik In other words, the P<> formatting code takes a URI and (where possible) inserts the contents of the corresponding document inline in place of the code itself.
16:55 tadzik . o O ( there's a spec for that )
16:55 tadzik pmichaud: so we have everything we need in the spec, I think
16:56 pmichaud tadzik: awesome!  That's what I wanted to know :-)
16:56 tadzik I didn't remember about that one
16:56 pmichaud I thought it might be in the spec already
16:56 tadzik pmichaud: see http://perlcabal.org/syn/S26.html#Placement+links
16:56 tadzik the formatting is a bit broken here though
16:56 * [Coke] yawns.
16:56 pmichaud I'm also fine if WHY.content returns the raw string, and WHY.contest.gist does the inlining
16:56 tadzik it should be put into a code block
16:57 pmichaud *WHY.content.gist
16:57 tadzik yeah, that ought to be fine
16:57 pmichaud something like that
16:57 tadzik so Rakudo needn't do anything
16:57 tadzik since we'll use Pod formatters for everything anyway;
16:58 UncleFester6 r: my @a = (10, 20 ,30 ,40); my @l := gather { for @a {say "hi"; take $_ } }; .say <== @l
16:58 p6eval rakudo a2bacb: OUTPUT«===SORRY!===␤Sorry, do not know how to handle this case of a feed operator yet. at line 2, near " @l"␤»
16:58 UncleFester6 Anyone into being lazy that can help?
17:00 tadzik r: my @a = (10, 20 ,30 ,40); my @l := gather { for @a {say "hi"; take $_ } }; .say for @l.list
17:00 p6eval rakudo a2bacb: OUTPUT«hi␤hi␤hi␤hi␤10␤20␤30␤40␤»
17:00 tadzik r: my @a = (10, 20 ,30 ,40); my @l := gather { for @a {say "hi"; take $_ } }; say "alalala"; .say for @l.list
17:01 p6eval rakudo a2bacb: OUTPUT«alalala␤hi␤hi␤hi␤hi␤10␤20␤30␤40␤»
17:01 pmichaud I think 'for' is still over-eager in Rakudo.
17:01 pmichaud that's on my to-do list for today
17:07 [Coke] aha.
17:07 [Coke] .u 302
17:07 phenny [Coke]: Sorry, no results for '302'.
17:07 [Coke] .u 0302
17:07 phenny U+0302 COMBINING CIRCUMFLEX ACCENT (◌̂)
17:07 [Coke] .u 0240
17:07 phenny U+0240 LATIN SMALL LETTER Z WITH SWASH TAIL (ɀ)
17:08 [Coke] if my p6 program consists entirely of: (hd fail.t) :
17:08 [Coke] 00000000  23 c2 a0 0a                                       |#...|
17:08 [Coke] 00000004
17:08 [Coke] then I get the pugs decodeUTF8 error.
17:09 UncleFester6 joined #perl6
17:09 [Coke] looks like a unicode whitespace character (seen in a lot of the L<> links in the spectest suite back to the spec.
17:09 att joined #perl6
17:09 [Coke] e.g. in "Perl<not an ascii space>5"
17:11 [Coke] .u .c2
17:11 phenny U+34C2 CJK UNIFIED IDEOGRAPH-34C2 (㓂)
17:11 phenny U+35C2 CJK UNIFIED IDEOGRAPH-35C2 (㗂)
17:11 phenny U+36C2 CJK UNIFIED IDEOGRAPH-36C2 (㛂) [...]
17:11 [Coke] .u 00c2
17:11 phenny U+00C2 LATIN CAPITAL LETTER A WITH CIRCUMFLEX (Â)
17:11 [Coke] .u 00a0
17:11 phenny U+00A0 NO-BREAK SPACE ( )
17:12 dalek roast: 12a36cc | pmichaud++ | S02-lists/tree.t:
17:12 dalek roast: Fudge a failing tree.t test.
17:12 dalek roast: review: https://github.com/perl6/roast/commit/12a36cce42
17:25 sergot .u 0488
17:25 phenny U+0488 COMBINING CYRILLIC HUNDRED THOUSANDS SIGN (҈)
17:26 sorear good * #perl6
17:26 sorear shachaf: No.
17:26 sorear moritz: No.
17:27 [Coke] pugs: »
17:27 p6eval pugs: OUTPUT«*** ␤    Unexpected "\187"␤    expecting program␤    at /tmp/5eCxT62mkD line 1, column 1␤»
17:27 [Coke] locally that also complains about decodeUTF8'
17:27 flussence I think the build failure I was getting earlier could be a 32/64 bit thing. About to double-check that...
17:28 pmichaud afk # lunch and kid pickup
17:34 Vlavv` joined #perl6
17:40 cog_ joined #perl6
17:41 flussence well there goes that theory, I just built the same source tree fine in 64 then 32 bit...
17:47 tyatpi_ joined #perl6
17:48 tyatpi joined #perl6
17:51 sunflower joined #perl6
18:22 brrt joined #perl6
18:25 stepnem joined #perl6
18:27 jaldhar joined #perl6
18:30 jevin joined #perl6
18:31 dalek rakudo/nom: d223755 | moritz++ | src/core/Exception.pm:
18:31 dalek rakudo/nom: fix types in error messages
18:31 dalek rakudo/nom:
18:31 dalek rakudo/nom: Patch courtesy of Nick Glencross
18:31 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/d223755476
18:33 dalek rakudo/no-strict: cb28ebf | moritz++ | src/core/Exception.pm:
18:33 dalek rakudo/no-strict: fix types in error messages
18:33 dalek rakudo/no-strict:
18:33 dalek rakudo/no-strict: Patch courtesy of Nick Glencross
18:33 dalek rakudo/no-strict: review: https://github.com/rakudo/rakudo/commit/cb28ebf7d9
18:33 dalek rakudo/no-strict: bfcce00 | moritz++ | src/Perl6/ (2 files):
18:33 dalek rakudo/no-strict: first step towards "no strict;"
18:33 dalek rakudo/no-strict:
18:33 dalek rakudo/no-strict: No way to test it yet, because $*STRICT is never set to a false valu
18:33 dalek rakudo/no-strict: review: https://github.com/rakudo/rakudo/commit/bfcce00f81
18:39 sisar moritz: "fix types in error messages" <--- did you just make a typo when typing "typo"?! or was it intentional ? :)
18:39 tadzik :)
18:39 UncleFester6 left #perl6
18:42 moritz sisar: it was a typo :/
18:42 tadzik now do a push --focre :P
18:45 mikemol joined #perl6
18:46 sorear o/ mikemol !!!
18:46 mikemol lo
18:46 * mikemol is sad, tired and frustrated.
18:46 mikemol Best not to get any on you.
18:47 tadzik hugme: hug mikemol
18:47 * hugme hugs mikemol
18:47 * sorear hugs mikemol personally.
18:51 tokuhiro_ joined #perl6
19:01 harmil left #perl6
19:03 MayDaniel joined #perl6
19:27 shinobicl joined #perl6
19:28 thou joined #perl6
19:28 flussence I've reproduced RT#113660 completely on my netbook but doing so doesn't give me any ideas. It worked on my desktop's 32-bit chroot though which is pretty out of date system-wise, maybe it's a gcc 4.6-related bug? :/
19:35 birdwindupbird joined #perl6
19:41 moritz phenny: tell masak use.perl.org seems to be dead, the two links on http://rakudo.org/how-to-help/ to your journal are dead
19:41 phenny moritz: I'll pass that on when masak is around.
19:41 dalek rakudo/nom: 94a8bbe | tadzik++ | src/core/Pod.pm:
19:41 dalek rakudo/nom: Make Pod::Block::Declarator stringification more friendly
19:41 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/94a8bbe759
19:41 moritz phenny: ask masak do you plan to mirror the posts somewhere? I think I have an HTML dump of all of your journal entries
19:41 phenny moritz: I'll pass that on when masak is around.
19:43 moritz oh, it seems that the posts are already on http://strangelyconsistent.org/ I just don't have the mapping
19:50 sorear phenny: seen masak
19:50 sorear seen masak
19:50 aloha masak was last seen in #perl6 4 days 12 hours ago saying "flight &".
19:50 stephenlb joined #perl6
19:50 tadzik I hope he landed safely
19:50 sorear I didn't realize Malmö to London was *that* long of a flight
19:52 pmichaud I suppose it depends on masak++'s wingspan
19:55 sisar seen jnthn
19:55 aloha jnthn was last seen in #perl6 4 days 19 hours ago saying "phenny stuff that matters :)".
19:55 moritz phenny: tell masak never mind, I've updated the links
19:55 phenny moritz: I'll pass that on when masak is around.
20:00 sisar has clang been tried for rakudo development ?
20:01 moritz I'm pretty sure that some folks have compiled parrot and rakudo with it
20:01 moritz recently
20:02 kurahaupo joined #perl6
20:02 tokuhiro4 joined #perl6
20:04 FireFly joined #perl6
20:06 brrt left #perl6
20:11 dalek rakudo/nom: e80b1b1 | pmichaud++ | src/core/Parcel.pm:
20:11 dalek rakudo/nom: Parcel.elems should flatten (per TimToady++ at yapc::na 2012).
20:11 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e80b1b1240
20:11 pmichaud I'm getting a spectest failure in t/spec/S32-documentation/why.t
20:12 pmichaud tests 2, 14
20:12 [Coke] WHY!
20:12 tadzik noes, WHY? :(
20:13 pmichaud oh, I see the problem.
20:13 tadzik I probably screwed that recently
20:13 tokuhirom joined #perl6
20:13 pmichaud looks like you eliminated Stringy when adding .gist
20:13 pmichaud we need both, I suspect.
20:13 tadzik oh
20:13 mcglk joined #perl6
20:13 tadzik no, I think the tests have worked accidentally
20:14 * pmichaud looks at tests
20:15 pmichaud well, clearly test #2 is likely due to a lack of .Stringy
20:15 tadzik true
20:16 pmichaud and #14 also
20:16 pmichaud since comparison will compare the stringy forms
20:16 tadzik although it may be that I've just invented this rule
20:16 tadzik I don't think it's specced
20:17 tadzik #14 should probably use .WHY.content
20:17 tadzik everything else does
20:17 pmichaud hmmm
20:17 pmichaud I suspect that .WHY should stringify naturally into its content
20:17 tadzik but #2 clearly expects Stringy, and I don't see why it shouldn't
20:17 tadzik it used to
20:17 pmichaud right... but .Stringy disappeared :)
20:17 pmichaud I'll fix it.
20:17 tadzik I can do that
20:18 pmichaud okay, I'll let you do it.  :)
20:19 tadzik so .gist can just call .Stringy
20:19 pmichaud correct.
20:19 tadzik is that a common pattern in the setting?
20:19 pmichaud yes.
20:20 pmichaud it's not uncommon.
20:20 moritz where did stringy disappear from?
20:20 tadzik sounds like "oh, say() now behaves differently than print(), let's fix it :)"
20:20 tadzik Pod::Block::Declarator
20:20 tadzik funny, I thought "bah, no way there are tests relying on this"
20:20 moritz oh
20:21 moritz for a moment I hoped it was gone from the specs
20:21 pmichaud tadzik: perhaps it should be Str instead of Stringy, though.
20:21 pmichaud src/core/Version.pm:13:    multi method gist(Version:D:) { self.Str }
20:21 pmichaud src/core/Numeric.pm:22:    multi method gist(Numeric:D:) { self.Str }
20:21 pmichaud src/core/List.pm:319:    multi method gist(List:D:) { self.Str }
20:21 pmichaud etc.
20:21 moritz now that we have .gist, do we really need .Stringy to print junctions?
20:22 tadzik hehe, google images for "Jim Keenan" yields surprising results
20:22 pmichaud istr that .Stringy was about more than just printing junctions.
20:22 tadzik apparently there's also some bare-chested metalhead with that name
20:22 pmichaud in particular, .Stringy is allowed to return lazy strings
20:22 moritz yes, it was also a premature generailzation of coercion to more string types
20:23 [Coke] etoomanyways to stringify.
20:23 moritz agreed
20:23 tadzik agreed
20:24 pmichaud meh, we have lots of ways to numify; seems like multiple ways to stringify also makes sense.
20:24 tadzik (:
20:24 moritz and if we default to .Stringy-fication, we need *another* layer of indirection
20:24 [Coke] pmichaud: I'm pretty much going to use print "$foo\n" instead of say $foo to avoid "weird" stringification.
20:25 Breekie joined #perl6
20:25 tadzik so .Stringy calls .Str by default
20:25 tadzik why do we need .Stringy anyway?
20:25 moritz currently for infix:<~>(Cool, Cool) (or Any, Any; not sure) we do  nqp::concat($a.Str, $b.Str)
20:25 moritz erm
20:25 pmichaud tadzik: I wouldn't worry about it at the moment.  Just implement Str for P::B::D
20:26 tadzik yeah, it's compiling
20:26 moritz nqp::concat(nqp::unbox_s($a.Str), nqp::unbox_s($b.Str))
20:26 moritz if we need .Stringy instead of .Str, we need *another* dispatch on the result
20:26 pmichaud not necessarily for Cool types
20:26 pmichaud for Any, yeah.
20:27 moritz because we might not be able to unbox the return value
20:27 moritz pmichaud: why not for Cool?
20:27 moritz pmichaud: there can be user-defined Cool types
20:27 pmichaud we could declare that Cool types always have .Stringy --> .Str
20:29 pmichaud anyway, I doubt we'll resolve much w/o TimToady present.  Perhaps we need to develop a position and corner him at yapc::eu or something :)
20:30 moritz in my head I've pushed non-Str Stringy to post-6.0 already
20:31 pmichaud wfm
20:33 dalek rakudo/nom: c203977 | tadzik++ | src/core/Pod.pm:
20:33 dalek rakudo/nom: Fix Pod::Block::Declarator stringification, tadzik--
20:33 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c2039772f3
20:33 cognominal joined #perl6
20:34 spaceships joined #perl6
20:37 sergot joined #perl6
20:38 sorear o/ sergot, cognominal
20:39 cognominal \o to the usual suspects
20:41 harmil joined #perl6
20:42 sorear o/ harmil
20:42 harmil hey
20:42 sisar 'master' is the, umm, master branch for the nqp repo ?
20:43 pmichaud sisar: yes.
20:45 sisar in the nom folder, `git checkout master` , `git pull`, `git log` shows that the last commit was on June 11. Whats wrong ?
20:45 tadzik nom folder is for rakudo, not nqp
20:45 sisar sorry, s/nom/nqp
20:46 moritz sisar: what does   git log origin/master   say?
20:46 pmichaud ...the last commit was on June 11.  :-)
20:46 tadzik :P
20:46 moritz oh :-)
20:46 pmichaud https://github.com/perl6/nqp
20:46 sisar oh ! duh ! i got confused between nqp and nom !
20:46 pmichaud shows commit b1226f by jnthn++ on June 11.
20:46 sisar oops...
20:47 sorear sisar: you haven't committed anything recently, that's what's wrong! :D
20:47 sorear sisar: alternatively: "YAPC::NA"
20:47 sisar sorear: :-)
20:48 moritz r: no strict;
20:48 p6eval rakudo 94a8bb: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&strict' called (line 1)␤Undefined routine '&no' called (line 1)␤»
20:48 Breekie left #perl6
20:48 pmichaud looks like rakudo doesn't know 'no' yet.
20:49 moritz aye
20:49 moritz ok, stupid question, why does Perl6::Grammar use <sym> (instead of <.sym>) so often?
20:49 sisar ain't rakudo supposed to warn on NYI features ?
20:49 moritz I mean, it's a constant. Not much sense in capturing it
20:50 moritz sisar: yes, I'll add that in my branch
20:50 pmichaud moritz: sometimes <sym> is used in Actions.pm
20:50 pmichaud at least, it was used once -- e.g., when several statements had the same code generation that differed by only the keyword being used
20:50 vlixes joined #perl6
20:50 sisar moritz++
20:50 moritz pmichaud: any objections to changing that where it doesn't break things?
20:51 pmichaud moritz: no objections here; it lookslike the common uses of <sym> are in statements (for, given)  and binding/assignment
20:52 pmichaud also 'while'
20:53 pmichaud looks like it gets used in most expressions, too
20:53 moritz there's not a single <.sym> in Grammar.pm
20:54 pmichaud are there many in STD.pm, ooc?
20:54 moritz none either
20:54 pmichaud looks like none in STD.pm, too.
20:54 sorear yes, <sym> is uesed *everytwhere* in STD
20:55 pmichaud anyway, I'm not sure there will be a lot of places that we can safely replace <sym> with <.sym>, but you're welcome to try :-)
20:55 sisar 'ooc' ~~ 'out of context' ?
20:55 harmil Does it make sense to do that for everything that doesn't need to be captured?
20:55 pmichaud harmil: only if we know that it doesn't need capturing.
20:55 moritz but if we do, yes
20:55 moritz saves memory
20:56 pmichaud I think you have to keep <sym> for all of statement_control:
20:57 pmichaud maybe <.sym> will work for statement_prefix
20:57 pmichaud definitely need <.sym> for statement_mod_cond and statement_mod_loop
20:57 pmichaud er, definitely need <sym> for ...
20:58 moritz r: True-bla
20:58 p6eval rakudo 94a8bb: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&bla' called (line 1)␤»
20:58 moritz bug!
20:58 tadzik sisar: out of curiosity
20:59 harmil Wait… does it save memory?
20:59 sisar tadzik: ah. thanks.
20:59 moritz should parse True-bla as an identifier, and complain that the whole thing is not defined
20:59 moritz harmil: the more you capture, the more memory it takes
20:59 harmil wouldn't those <sym> captures be freed up once the caller returns?
20:59 moritz harmil: so replacing <sym> by <.sym> saves memory
20:59 pmichaud can probably switch special_variable <sym> to <.sym>... but probably won't save much memory
21:00 moritz harmil: not necessarily; there might references to those Match objects somewhere
21:00 harmil true
21:00 pmichaud switching the twigil <sym> to <.sym> probably saves a bit
21:01 pmichaud not sure about package_declarator
21:01 pmichaud or multi declarator
21:02 pmichaud anyway.... there'd need to be a lot of checking on many of them before switching, since <sym> is used fairly frequently in the compiler
21:02 moritz I think the package_declarator keeps track of the package type in $*PKGDECL
21:02 pmichaud and it's probably only worth switching ones that occur frequently, like in terms or expressions
21:03 pmichaud and the regex compiler may need to be told how to handle <.sym> specially, since it's not a standard subrule call.
21:03 moritz oh
21:03 pmichaud i.e., there's no 'sym' method for Cursor defined.
21:04 pmichaud <sym> is currently very macro-ish.
21:04 moritz r: grammar A { proto token TOP {*}; token TOP:sym<a> { <.sym> } }; say A.parse('a')
21:04 p6eval rakudo 94a8bb: OUTPUT«q[a]␤  => q[a]␤␤»
21:05 moritz r: grammar A { proto token TOP {*}; token TOP:sym<a> { <sym> } }; say A.parse('a')
21:05 p6eval rakudo 94a8bb: OUTPUT«q[a]␤ sym => q[a]␤␤»
21:05 pmichaud yeah, looks like it still captured even with the dot, but to the wrong slot.
21:06 moritz r: grammar A { proto token TOP {*}; token TOP:sym<a> { <.sym> } }; say A.parse('a').keys
21:06 p6eval rakudo 94a8bb: OUTPUT«␤»
21:06 moritz r: grammar A { proto token TOP {*}; token TOP:sym<a> { <.sym> } }; say A.parse('a').values
21:06 Entonian joined #perl6
21:06 p6eval rakudo 94a8bb: OUTPUT«a␤»
21:06 moritz another bug
21:07 pmichaud r: grammar A { proto token TOP {*}; token TOP:sym<a> { <.sym> } };  say A.parse('a').keys.elems
21:07 p6eval rakudo 94a8bb: OUTPUT«1␤»
21:07 moritz r: grammar A { proto token TOP {*}; token TOP:sym<a> { <.sym> } }; say A.parse('a').keys.perl
21:07 p6eval rakudo 94a8bb: OUTPUT«("",).list␤»
21:07 pmichaud yeah, since <sym> isn't a standard subrule call it doesn't quite know how to modify it
21:08 pmichaud I think that the compiler translates  <sym> into something like    $<sym>=['foo']
21:08 pmichaud i.e., it's a literal match that is captured.
21:11 pmichaud of course, if you want to avoid the capture, it's always possible to switch    token term:sym<xyz> { <sym> ... }   to be   token term:sym<xyz> { 'xyz' ... }
21:12 cggoebel joined #perl6
21:14 pmichaud moritz: did you see the outcome of the 1+1+1+1+... bug earlier?  We're hitting the recursion limit, and the exception handlers go into an infinite loop.  Is there some way we can avoid the infinite exception handling loop?
21:15 moritz pmichaud: through which routines does it loop?
21:15 pmichaud I didn't check to find out
21:15 pmichaud when I ran with -ll-exception, it threw the "recursion limit" exception right away.
21:16 pmichaud but without --ll-exception, it just hangs.
21:16 moritz will try to look into it tomorrow
21:17 pmichaud okay
21:18 moritz assertion:sym<name> creates a literal
21:18 moritz but assertion:sym<method> (which parses <.sym>) sets the rxtype to method
21:19 pmichaud no, it sets the subtype to 'method'
21:20 pmichaud the rxtype remains <subcapture>
21:20 moritz erm right, subtype
21:21 pmichaud I wonder if it makes sense to grab   assertion:sym<sym>   and assertion:sym<.sym>   specially
21:21 * moritz -> sleep
21:32 kurahaupo joined #perl6
21:33 integral joined #perl6
21:33 integral joined #perl6
21:34 pmichaud phenny: tell harmil see https://gist.github.com/2950855 for the results of 1+1+1+1+... after bumping up Parrot's recursion limit.  It looks like the optimizer goes quadratic with long expressions, and that's what eats up all of the time.  Execution itself isn't bad (I suspect it's just a constant at the end).
21:34 phenny pmichaud: I'll pass that on when harmil is around.
21:34 pmichaud looks to me like the optimizer is saving all of the intermediate constants and perhaps shouldn't.
21:34 harmil day again?
21:34 phenny harmil: 21:34Z <pmichaud> tell harmil see https://gist.github.com/2950855 for the results of 1+1+1+1+... after bumping up Parrot's recursion limit.  It looks like the optimizer goes quadratic with long expressions, and that's what eats up all of the time.  Execution itself isn't bad (I suspect it's just a constant at the end).
21:34 harmil *sat
21:34 harmil *say … bah :)
21:35 harmil interesting
21:36 pmichaud so yeah, the basic parse of 1+1+1+1+...+1   (10000) takes 20 seconds to parse and generate the ast.... and that's probably too slow.  But the optimizer then is decidely... unoptimal.  :-)
21:36 harmil heh
21:36 pmichaud anyway, it's an excellent test case.  harmil++
21:36 pmichaud I'm spectesting with the bumped-up-recursion-limit now, will commit shortly.
21:37 harmil how do you set the recursion limit?
21:37 pmichaud it's a property on the parrot interpreter
21:37 harmil And is there a way to set those from nqp?
21:37 pmichaud pir::getinterp__P().recursion_limit(100000);
21:37 harmil Ah, nice
21:38 pmichaud can do it from within rakudo, actually.
21:38 pmichaud parrot's default recursion limit is 1000
21:38 harmil Well, the lines kind of blur, but I was toying with it in Actions.pm
21:39 dalek rakudo/nom: ddfb9ff | pmichaud++ | src/main.nqp:
21:39 dalek rakudo/nom: Bump up Parrot's recursion limit when we start (from default 1000 to 100000).
21:39 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/ddfb9fff56
21:39 aindilis joined #perl6
21:40 harmil I was toying with the idea that recursion limit should be dynamic, based on what kind of structure you're parsing.
22:07 sisar what is perl6's equivalent of C's "struct" ? (I'm reluctant to make a class and then instantiate it just to store a collection of related (typed) variables.)
22:07 pmichaud sisar: it's nyi, but perl6's equivalent of a C struct will be a class.
22:08 pmichaud http://perlcabal.org/syn/S09.html#Compact_structs
22:08 * sisar looks
22:12 sisar what does "compact" refer to in "compact struct" ?
22:12 pmichaud that the attributes are contiguous in memory, I suspect.
22:12 pmichaud i.e., they act as if they had been written in a c-style struct
22:13 pmichaud i.e., writing
22:13 pmichaud class XYZ { has int $x;  has num @foo; }
22:13 pmichaud is similar to doing
22:14 pmichaud struct XYZ { int x; float foo[]; }   # in C
22:14 pmichaud (probably need an index on @foo there.)
22:15 masak_plane joined #perl6
22:16 pmichaud it's masak_plane!
22:16 pmichaud \o/
22:16 tadzik it's a plane!
22:16 tadzik it's a bird!
22:16 sisar this compactness indirectly implies that we can only have low-level types in this class ?
22:16 masak_plane Oh hai from a freakin' airplane!
22:16 tadzik how is it even possible
22:16 pmichaud sisar: yes, that's what the first sentence says, I think.
22:16 masak_plane This is awesome!
22:17 sisar masak_plane: how does the plane have internet ?
22:17 masak_plane I'm flying... AND I'm on IRC.
22:17 pmichaud if you have a class with only low-level types, it behaves like a struct
22:17 tadzik the carry the wire
22:17 tadzik I think we've already discussed that here
22:17 tadzik eh, the english bad
22:17 masak_plane Won't last long though. We're going in for landing soon.
22:17 pmichaud masak_plane: all of my planes to and from yapc::na had internet available on them.  Inexpensive, too,  $5 for the full trip.
22:17 pmichaud (I didn't purchase wifi, though, because the flights were very short.)
22:17 masak_plane sisar: what tadzik said.
22:17 sisar right
22:18 sisar tadzik: "carry the wire" ?
22:18 pmichaud masak_plane: landing is.... where?  (ooc)
22:18 masak_plane pmichaud: free internets here.
22:18 pmichaud ooooh, free internets
22:18 masak_plane Norwegian++
22:18 tadzik free as in freedom!
22:19 masak_plane sisar: we're joking you a tiddle bittle.
22:19 masak_plane pmichaud: CPH
22:19 sisar masak_plane: :-)
22:19 masak_plane Ok, going offline. Nice to meet y'all.
22:19 pmichaud right, it's not wires -- it's carrier pigeons.
22:19 pmichaud the pigeons catch up to the plane and have their packets decoded.
22:20 pmichaud http://tools.ietf.org/html/rfc1149
22:22 sisar pmichaud: and this class can have both private and public variables ? (provided both are low-level types of course)
22:22 pmichaud sisar: I suspect that's possible, yes.
22:23 sisar pmichaud: nice.
22:23 * sisar likes compact structs
22:23 pmichaud I know that jnthn++ has already considered the needs of compact structs in implementing 6model (the underlying object metamodel for nqp and rakudo), so there's at least some foundation for them
22:24 pmichaud but, I don't have an eta for when they might appear in rakudo.
22:25 pmichaud afk for a while
22:25 sisar pmichaud: i can wait :-)
22:28 sisar phenny: ask pmichaud, the lazy vs. eager model you have for lists and arrays right now, have you thought about if it will work for n-dimentional arrays/lists too? (ooc)
22:28 phenny sisar: I'll pass that on when pmichaud is around.
22:28 sorear FFF
22:28 sorear well, at least I can stop worrying whether masak is alive now.
22:28 sisar sorear: "FFF" ?
22:28 flussence we never found out what his wingspan was :(
22:29 pmichaud "FFF" = 4095
22:29 phenny pmichaud: 22:28Z <sisar> ask pmichaud the lazy vs. eager model you have for lists and arrays right now, have you thought about if it will work for n-dimentional arrays/lists too? (ooc)
22:29 snarkyboojum joined #perl6
22:29 sisar flussence: large enough to catch internet signals from ground ;-)
22:29 sorear sisar: a noise of great frustration
22:32 sisar sorear: http://en.wiktionary.org/wiki/fff, right ?
22:32 sorear no.
22:33 sisar oh
22:52 estrai joined #perl6
22:52 mathw joined #perl6
22:52 renormalist joined #perl6
22:52 literal joined #perl6
22:52 Exodist joined #perl6
22:52 LoRe joined #perl6
22:52 Maddingue joined #perl6
22:52 pnu joined #perl6
22:52 Psyche^ joined #perl6
22:52 cosimo joined #perl6
22:52 harmil joined #perl6
22:52 takesako_ joined #perl6
22:52 japhb joined #perl6
22:55 harmil left #perl6
22:55 harmil joined #perl6
22:56 skids joined #perl6
22:57 whiteknight joined #perl6
22:58 fgomez joined #perl6
22:58 harmil left #perl6
23:03 fgomez joined #perl6
23:04 fgomez joined #perl6
23:04 att joined #perl6
23:19 Chillance joined #perl6
23:26 * felher just noticed that TimToady++ did a quite funny Q&A at the yapc:na :) $guy: "I'm kinda new to programming. Why should i learn Perl?". Larry Wall: "Uh... beats me... " :)
23:26 felher pmichaud: i'm kinda missing your first talk... did it even get recorded? :/
23:32 Entonian joined #perl6
23:33 masak joined #perl6
23:33 * masak home
23:33 phenny masak: 19:41Z <moritz> tell masak use.perl.org seems to be dead, the two links on http://rakudo.org/how-to-help/ to your journal are dead
23:33 phenny masak: 19:41Z <moritz> ask masak do you plan to mirror the posts somewhere? I think I have an HTML dump of all of your journal entries
23:33 phenny masak: 19:55Z <moritz> tell masak never mind, I've updated the links
23:34 masak all my posts are mirrored.
23:34 masak see http://strangelyconsistent.org/blog/d​og-food-with-a-distinct-perl6-flavor
23:34 masak hm, and http://strangelyconsistent.or​g/blog/its-just-a-tree-silly
23:35 felher o/ masak :)
23:36 felher masak: if i might ask: how's your qast/macro work going? :)
23:36 masak status still as per last blog post.
23:37 * felher started to learn lisp to play a bit with macros and it didn't make him less excited ... :)
23:37 masak I've been on a two-week leave from everything and everyone, and this weekend I've been in London with friends. think of it as an early summer vacation.
23:37 masak my batteries are *charged*, baby.
23:39 masak tonight on the way to Gatwick airport I started storyboarding the re-make of my macros talk. looks very promising.
23:39 felher masak: ah, yeah. I noticed that i have been seeing you less lateley, but since i normaly don't backlog, i thought it to be pure coincidence :)
23:39 masak and the road forward with QAST is pretty straight. won't land in this month's release, but very probably in the next.
23:39 felher masak: hui. Where will you give the new macro talk? :)
23:39 masak FPW.
23:40 masak be there or be a French square.
23:40 masak (a French square is probably a rhombus or something)
23:41 felher Awesome, only about ten days. (/me is going to be a french square, i guess)
23:42 felher Do you know if there will be live streaming and/or recordings?
23:42 masak dunno. ask eiro.
23:42 masak or cognominal.
23:43 masak oh my, it's in ten days! :)
23:44 felher eiro: cognominal: any idea if there will be a live stream/recordings? (FPW 2012) :)
23:47 felher good night, #perl6
23:48 masak 'night, #perl6
23:49 LaG|RickJames joined #perl6
23:51 cognominal felher, ask eiro, he is the organizer.
23:51 LaG|RickJames left #perl6
23:52 cognominal I think there will be some recording, I don't if it will be live streamed.
23:52 cognominal *don't know
23:53 cognominal feller, do you have an url for TimToady's talk?
23:55 felher cognominal: thanks, i'll ask eiro.
23:55 felher cognominal: yes, i do. one moment.
23:56 felher cognominal: http://www.youtube.com/watch?v=​mCKU0Z-Qbkk&amp;feature=relmfu
23:57 felher eiro: any idea if there will be a live stream/recordings? (FPW 2012) :) eiro++ # for organizing such an event :)
23:57 * felher -> bed (really)
23:58 cognominal he must be sleeping by now as I should do instead of fighting js/jquery/coffeescript/ST2

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo