»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend! Set by sorear on 4 February 2011. |
|||
00:05
drbean left,
cj left,
cj joined
00:07
drbean joined
00:09
mikemol left
00:30
adu joined
00:45
tyatpi joined
00:49
tokuhiro_ joined
01:00
PZt left
|
|||
lichtkind | good night | 01:07 | |
01:07
lichtkind left
01:10
preflex left
01:11
scott_ joined,
scott_ is now known as Guest24381,
quietfanatic left
01:12
preflex joined,
Guest43857 left
01:34
tyatpi left
|
|||
sorear | good * #perl6 | 01:39 | |
01:43
PZt joined
01:48
raiph left
01:58
tokuhiro_ left
02:06
tyatpi joined
02:18
shinobicl joined
02:20
mitch__ joined
02:22
shinobicl left
02:43
jaldhar joined
|
|||
dalek | ecza/non-bootstrap: 995e572 | sorear++ | lib/ (3 files): Actions pt 12 |
02:59 | |
03:07
_fall0ut_ is now known as driador,
driador left,
driador joined
03:35
tyatpi left
03:44
cog_ joined
03:46
cognominal left
03:55
edit_21 left
03:56
edit_21 joined
|
|||
dalek | ecza/non-bootstrap: c3880e1 | sorear++ | lib/ (2 files): Actions pt 13 |
04:26 | |
04:29
adu left
04:52
xinming left
04:57
xinming joined
|
|||
dalek | rl6-bench: 68bbd89 | (Geoffrey Broadwell)++ | / (2 files): Choose JSON prettification based on style setting (auto=pretty); this closes multi-format output TODO |
05:05 | |
rl6-bench: f1a090b | (Geoffrey Broadwell)++ | TODO: A few more TODO items |
|||
rl6-bench: 7e6db6c | (Geoffrey Broadwell)++ | / (2 files): Output summary to arbitrary file; guess format based on extension of outfile |
|||
moritz | \o | 05:07 | |
phenny | moritz: 17 Jun 22:41Z <japhb> tell moritz Congrats! | ||
moritz | japhb: thanks! | ||
05:09
fhelmberger joined
05:10
jerome_ joined
|
|||
tadzik | moritz: congratulations to you both! | 05:55 | |
sorear | tadzik: context? | 05:56 | |
tadzik | sorear: apparently moritz got married recently | 05:58 | |
sorear | moritz: If the rumours are true, congratulations! | 05:59 | |
moritz | sorear: thanks | 06:09 | |
sorear | I'll take that as confirmation \o/ | ||
moritz | (we were legally married for two years already, it was "just" the church ceremony on Saturday. And Ronja's baptism) | 06:10 | |
and a not-so-small party | |||
06:12
cog__ joined
06:15
cog_ left
06:18
Caldrin left
06:20
wtw joined
06:41
birdwindupbird joined
06:45
kaleem joined
07:00
thou left
07:01
brrt joined
|
|||
dalek | ecza/non-bootstrap: 4771f2b | sorear++ | lib/ (2 files): Actions pt 14 |
07:30 | |
07:30
[particle] joined
|
|||
moritz | sorear: how many parts is it going to be? | 07:31 | |
frettled | moritz: (belated) congrats! | ||
moritz | frettled: thanks :-) | 07:32 | |
mhasch , too, wishes moritz all the best | |||
moritz | thanks mhasch | ||
sorear | moritz: 3-4 more | 07:34 | |
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? | ||
or will that only be possible after porting the whole thing? | 07:36 | ||
sorear | most testing has to wait | ||
(I've been checking if it compiles continuously, which has caught quite a few mistakes) | |||
moritz | (static typing)++ | 07:37 | |
07:37
am0c left
|
|||
sorear | agreed | 07:38 | |
shachaf | moritz: Happy moritz*=2 ! | 07:43 | |
...Or however that works. | |||
moritz | thanks shachaf :-) | ||
shachaf | Everyone's getting married these days, it seems. | 07:44 | |
frettled | ackermann(moritz)? | ||
moritz | frettled: ackermann is a function of two variables :-) | ||
shachaf | moritz: It's a function of 1-3 variables depending on who's talking about it. | ||
frettled | moritz: I find you very variable! | ||
shachaf | I think the original function had three. | 07:45 | |
moritz only knows the defintion given at the top of en.wikipedia.org/wiki/Ackermann_function | |||
but yes, wiki says it was originally three-arg | 07:46 | ||
shachaf | I think A_1(n) is just A_2(n,n), or something like that. | 07:47 | |
sorear | sleep& | 07:48 | |
shachaf | sorear: Did you hear shapr got married recently too? | ||
frettled | I actually implemented Ackermann-sort. | ||
07:51
cog__ left
07:52
cognominal joined
|
|||
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:55 | |
shachaf | That seems just as ambiguous. | 07:56 | |
sisar | "unnamed functions" ? | ||
bonsaikitten | I would confuse nameless with lamdbas, is that intended? | ||
sisar | bonsaikitten: no | ||
moritz | what's the difference? | 07:57 | |
bonsaikitten | language is ugly ;) | ||
shachaf | "lambda" is an OK name for lambdas. | ||
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 | ||
sisar | the fist code block (in stackoverflow.com/a/834616), when run in perl6, prints 123 both times. What changed in perl6 from perl5 to make this happen? | 08:02 | |
moritz | sisar: are you familiar with the warning 'Variable "$x" will not stay shared' in Perl 5? | 08:04 | |
sisar | moritz: no | ||
something I need to read ? | 08:05 | ||
moritz | sisar: lemme find a good explanation | ||
sisar | ok | 08:06 | |
moritz | sisar: www.perlmonks.org/?node_id=696592 maybe | ||
sisar looks | |||
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 | |
08:07
VXZ joined
|
|||
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
|
|||
sergot | hello o/ | 08:15 | |
tadzik | o/ | ||
sisar | :) | 08:17 | |
sisar afk | |||
08:18
cog_ joined
08:20
cognominal left,
dakkar joined
08:24
cog_ left
08:26
kresike joined
|
|||
kresike | hello all you happy perl6 people | 08:26 | |
sergot | kresike: o/ | ||
kresike | sergot, \o | 08:27 | |
tadzik | hi kresike | ||
kresike | hello tadzik | 08:28 | |
08:52
daxim joined
|
|||
Woodi | relative morning #perl6 :) | 09:04 | |
moritz | absolute #perl6, Woodi :-) | 09:07 | |
09:09
brrt left
|
|||
Woodi | hmm, there is new 'ufo' implementation - maybe it is used with modules automatic tests ? | 09:12 | |
moritz | no | 09:14 | |
sisar: one possible ressource on lexpads and closures is www.perlmonks.org/?node_id=964726 | 09:15 | ||
tadzik | Woodi: emmentaler uses panda, which does not use ufo | 09:27 | |
moritz | but panda got its own set of improvements recently | 09:28 | |
sisar back | |||
moritz: thanks. I'll go through it. | |||
moritz | though I really want it to install .pod files in time for the next star release | ||
tadzik | right | 09:29 | |
when is the next star? | |||
moritz | soon after next compiler, which is on Thursday | 09:30 | |
tadzik: iirc you wrote a partial patch for that. Is that pushed somewhere? | 09:32 | ||
if not, could you please push it to a branch? | |||
tadzik | moritz: nah, it's not commited yet | 09:52 | |
or it is, but only locally, on my laptop at home | |||
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 | 09:53 | ||
moritz | ok, thanks | 10:01 | |
crashes are easier to debug than silent and wrong behavior, at least in foreign code | 10:02 | ||
at least I'll know from the start where it went wrong | |||
10:04
Guest24381 left
10:13
am0c joined
10:14
tyatpi joined
|
|||
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:15 | |
moritz | but Pod::To::Html also has a lib/Pod/ dir | 10:17 | |
tadzik | yeah, but I didn't test it on that one. I may not remember correctly what the error was exactly about | 10:19 | |
I think it was something related to Pod directory, but I could be that I just broke everything but tests ;) | |||
moritz | ah well, I might have tuits to look at it tonight | ||
tadzik | there's a reason this patch is unpushed | ||
10:22
pupoque_gnexus joined
|
|||
moritz | n: no strict; | 10:23 | |
p6eval | niecza v18-7-ga660099: ( no output ) | ||
moritz | n: no strict; $a; say OUR::.keys | ||
p6eval | niecza v18-7-ga660099: OUTPUT«0» | ||
moritz | n: no strict; $a; say MY::.keys | 10:24 | |
p6eval | niecza v18-7-ga660099: OUTPUT«0» | ||
moritz | n: my $a; say MY::.keys | ||
p6eval | niecza v18-7-ga660099: OUTPUT«Potential difficulties: $a is declared but not used at /tmp/uoom5Qhy4u line 1:------> my ⏏$a; say MY::.keys0» | ||
10:24
pupoque_gnexus left
|
|||
moritz | sorear: can .keys on pseudo package stashes return something else than 0 in niecza? if yes, how? | 10:25 | |
n: our $X = 5; say OUR::.keys | |||
p6eval | niecza v18-7-ga660099: OUTPUT«0» | ||
moritz | n: no strict; eval '$x = 5'; say $x | 10:31 | |
p6eval | niecza v18-7-ga660099: OUTPUT«5» | ||
10:42
tyatpi_ joined
10:46
JimmyZ joined
10:50
sisar left
10:53
sisar joined
11:01
edit_21 left,
edit_21 joined
11:15
cognominal joined
11:16
sunflower joined
|
|||
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:28 | |
11:28
cognominal left
11:29
cognominal joined
|
|||
flussence | (hm, it might be make -j2 causing it) | 11:32 | |
moritz | flussence: some parrot installs still floating around somewhere? | 11:37 | |
flussence: I think grondilu reported a similar problem | |||
flussence | nope, I'm pretty certain it's all contained in that rakudo dir... | 11:40 | |
11:40
mtk0 left,
mtk0 joined
11:43
skids left
11:47
DarthGandalf left
|
|||
flussence | hm, make -j1 didn't fix it either :/ | 11:47 | |
11:49
DarthGandalf joined
11:50
GlitchMr joined
11:53
jaldhar left,
jaldhar joined
12:00
slinkylinda joined
|
|||
slinkylinda | hi | 12:01 | |
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. | |||
am from nigeria 23 years old girl | 12:02 | ||
hey pals | |||
[email@hidden.address] that's my yahoo massenger id | 12:05 | ||
ur alow to add me | |||
12:05
brrt joined
12:06
slinkylinda left
12:10
mtk0 left,
erkan left
12:11
mtk joined
|
|||
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
|
|||
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:14 | |
12:17
libertyprime left
12:18
libertyprime joined
12:25
tokuhiro_ joined
12:29
snearch joined
12:32
BaggioKwok joined
12:40
BaggioKwok left
12:56
PerlJam joined
13:00
am0c left
13:01
jimmy1980 joined,
jaldhar left
13:08
mtk left
13:09
mtk joined
13:10
Psyche^ joined
13:11
UncleFester6 joined,
mitch__ left
13:12
mitch__ joined
13:13
Patterner left,
Psyche^ is now known as Patterner
13:16
sergot left
13:17
sergot joined
13:24
UncleFester6 left
13:25
vmspb joined
|
|||
PerlJam | Ah ... it's release week! | 13:28 | |
13:30
jerome_ left
13:36
sergot left
13:43
jerome_ joined
13:44
skids joined
13:56
kaleem left
13:58
Mhen joined,
drbean left,
Mhen left
14:01
drbean joined
14:10
fgomez left
14:11
drbean left
14:19
JimmyZ left,
kaare_ joined
14:28
sunflower left
14:30
sunflower joined
14:34
sisar left
14:35
sisar joined
14:39
uvtc joined
|
|||
uvtc | Anyone know if Pm's first talk on lists/arrays was recorded? I was hoping to see it show up at www.youtube.com/playlist?list=PLE3F888A650339DDF it hasn't appeared there. | 14:39 | |
14:40
vmspb left
|
|||
uvtc | Whoops. pmichaud ^^ | 14:40 | |
I saw (yesterday) the link to the slides: pmichaud.com/2012/pres/ (yapcna-lists-1) | 14:41 | ||
14:42
jaldhar joined
|
|||
gfldex | uvtc: irclog.perlgeek.de/perl6/2012-06-17#i_5735526 | 14:47 | |
uvtc | gfldex, Yes, saw that. Thanks. Do you happen to know if it made it to youtube? | 14:48 | |
Haven't been able to find it, and was wondering if anyone could confirm whether or not it was recorded. | 14:49 | ||
Also, in the irc comment from pmichaud, what was the "lightning talk" about? (Separate from the lists/arrays 1 talk, I presume?) | 14:50 | ||
14:51
mikemol joined,
jaldhar left
14:52
wtw left
14:54
jaldhar joined
14:57
thou joined
15:04
alvis joined,
MayDaniel joined
15:07
tokuhiro_ left
|
|||
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 | |
15:10
atrodo joined
|
|||
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. | ||
uvtc | I don't see a link anywhere on perl6.org regarding archived videos of talks. Is www.presentingperl.org/ galactic central hq for these? | 15:12 | |
TimToady | beats me | ||
harmil1 | hmmm… why am I harmil1 now? didn't I do all the auth magic? | ||
15:12
harmil1 is now known as harmil
|
|||
TimToady | harmil: sure, but pmichaud++ was just pointing out how far rakudo has come thus far | 15:13 | |
harmil | there we go | ||
TimToady | you can't say everything in a lightning talk... | ||
harmil | TimToady: it really has. I was just being a wet towel of realism ;) | ||
TimToady | he was mostly trying to counter the argument that p5 starts up so much faster than p6 | 15:14 | |
and his benchmark for the other part was just a small loop | |||
I suspect the scaling problem will improve as we move toward more compact struct reprs | |||
kresike | bye all | 15:16 | |
15:16
jimmy1980 left,
kresike left
|
|||
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:17 | |
I guess there's still much to be gained on that level alone | 15:18 | ||
15:23
spider-mario joined
15:24
jimmy1980 joined
|
|||
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:37 | |
My output: Expression in input: 1: 0.28 | 15:38 | ||
Expression in input: 10: 0.30 | |||
Expression in input: 100: 0.60 | |||
Expression in input: 1000: 3.40 | |||
Expression in input: 10000: 39.48 | |||
The good news is that that growth appears to be linear with the number of expressions (for simple expressions) | |||
the bad news is that that's a pretty huge constant increase. | 15:39 | ||
15:41
jimmy1980 left
|
|||
pmichaud | good mprning, #perl6 | 15:44 | |
harmil | howdy pmichaud | ||
15:44
kurahaupo left
|
|||
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:45 | |
pmichaud | uvtc: no, I don't know what the status of any recordings are. | 15:46 | |
uvtc | pmichaud, thanks. | ||
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. | ||
uvtc | pmichaud, seems like it would be very useful to have a video of that talk, given your comments on the slides ( pmichaud.com/2012/pres/yapcna-lists...g.html#end ). | 15:47 | |
pmichaud | uvtc: sure, I agree. I'm eagerly awaiting the talk videos myself. | ||
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:48 | ||
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. | ||
uvtc | Heh. "Hey, could you please keep an eye on this camcorder while I give the next talk? Thanks!" | ||
Hm. I suppose getting good audio could be difficult. | 15:50 | ||
pmichaud | yes, but I even bought a small microphone to help with that. | 15:51 | |
the tricky part is setup+takedown in the time between talks | |||
uvtc | Not sure what you mean... could you have a buddy or spouse just make the recording for you? | 15:52 | |
pmichaud | uvtc: sure, could probably delegate it. | 15:53 | |
...but it's still something I wish could be handled at a conference level instead of a per-speaker level | |||
15:56
jaldhar left
|
|||
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 | |
Interestingly, if I remove exactly one of the +1's it works | |||
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. | ||
harmil | *s/p5/p6/ | ||
15:58
jaldhar joined,
kurahaupo joined
15:59
jaldhar left,
uvtc left
|
|||
moritz | harmil: don't worry, p6eval has a CPU time limit | 16:00 | |
r: 1 while 1; say 'alive' | |||
p6eval | rakudo a2bacb: OUTPUT«(timeout)» | 16:01 | |
16:01
jaldhar joined
|
|||
pmichaud | uvtc: I agree, it would be unfortunate. Sadly, that's not something I control. | 16:01 | |
harmil: howdy # just now catching up with stuff :) | 16:02 | ||
harmil: I think your expression example above may be reflecting parse time more than anything else. | 16:03 | ||
16:03
brrt left
|
|||
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. | ||
moritz: I meant the "Expression in input" example before that. | |||
moritz | ok | ||
with the full thing, it hasn't finished after two minutes | |||
pmichaud | harmil: gist.github.com/2949136 # I get different results... what did I do wrong? | 16:07 | |
harmil | pmichaud, not sure. here's my superset-test: | 16:10 | |
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:11 | ||
BTW: all of this is rakudo-star-2012.05 | 16:12 | ||
pmichaud | Here's what I get for rakudo-2012.05: gist.github.com/2949162 | 16:14 | |
16:15
jaldhar left
|
|||
pmichaud | I suspect my shell isn't producing the same output as yours | 16:15 | |
harmil | wow, very different | ||
I get about the same and then it hangs at 1000 | |||
pmichaud | yeah, $code always ends up being "+1" for me | ||
harmil | oh, interesting. I'm using bash | 16:16 | |
pmichaud | so am I. | ||
harmil | hurm… let me make that more generic then | ||
pmichaud | oh, maybe not. | ||
if I use bash, I get an error. | |||
harmil | heh, I'll just use some perl5 so we have consistency | ||
pmichaud | I think I get what you're doing now -- you're just concatenating a bunch of +1's together? | 16:17 | |
you can use perl6 for consistency too :_) | |||
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/rakudo-star-2012.05/rakudo-2012.05:$PATH time --format=%e -- perl6 -e "my \$x = 1$code;" || break; done | 16:18 | |
it's true, but my brain has some very low-level "perl -le 'print …'" firmware in place at this point | |||
16:19
MayDaniel left
|
|||
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 | ||
so, it's definitely a parsing issue somewhere | |||
harmil | interesting. | ||
oh, wait, 1000 hangs or 10_000 hangs? | 16:20 | ||
pmichaud | well, 1000 takes a really long time thus far | ||
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 | |
16:21
cognominal left,
cognominal joined
|
|||
harmil | It went from 0.7 seconds to hang from 139 to 140 | 16:21 | |
pmichaud | mine is hanging at 139 | 16:22 | |
harmil | pmichaud: given pmichaud.com/2012/pres/yapcna-lists...g.html#end would it make sense to just delete the existing synopses and replace them with a placeholder? | 16:23 | |
pmichaud | harmil: +1, yes. | ||
I'll do that today if nobody beats me to them. | 16:24 | ||
gist.github.com/2949227 # hangs at 138 for me | |||
that's just.... weird | |||
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 | ||
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
snearch left
|
|||
pmichaud | I switched it to do 1+2+3+...+$size instead and get gist.github.com/2949241 | 16:27 | |
where it hangs at 139 | |||
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:28 | |
pmichaud | oooh, that makes a lot of sense. | 16:29 | |
yes, Parrot has a recursion limit. | |||
harmil | the 13x thing is awfully suspiciously constantish. | ||
pmichaud | normally the recursion limit triggers an exception, though -- it'd mean that something is catching the exception. | ||
harmil | yeah | ||
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. | ||
aha!!! | |||
check this out -- running on 2012.01 | |||
16:31
mikemol left
|
|||
harmil | The real-world expectation that this would ever happen is kind of thin... | 16:31 | |
but not 0 | |||
pmichaud | gist.github.com/2949262 | ||
harmil++ # excellent catch | |||
harmil | There you go! | ||
pmichaud | something post 2012.01 is catching the exception | 16:32 | |
harmil | aye | ||
pmichaud | where's masakbot when you need him? ;-) | ||
tadzik | I think he's still backlogging :) | 16:33 | |
pmichaud | tadzik! o/ | 16:34 | |
just one of the people I wanted to talk to! | |||
tadzik: ping !!! | |||
tadzik | pmichaud: pong!!! | ||
pmichaud | tadzik: I have a question about .WHY and pod | ||
tadzik | go ahead | ||
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 | ||
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? | ||
e.g., an external file | |||
? | |||
tadzik | hm | 16:36 | |
pmichaud | here's my usecase | ||
currently, we have CORE.setting | |||
tadzik | should be doable, with more or less magic | ||
16:36
vmspb joined
|
|||
pmichaud | we're also creating p6doc, with the documentation for the builtins | 16:36 | |
tadzik | yes | ||
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 | ||
but I'd still like the builtins to be able to respond smartly to .WHY | 16:37 | ||
tadzik | yeah, that's reasonable | ||
I've discussed that with moritz as well, I think | |||
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 | ||
tadzik | right | ||
pmichaud | anyway, think about it a bit and let me know if you come up with any ideas :) | 16:38 | |
tadzik | I have some | ||
here's the thing: github.com/rakudo/rakudo/blob/nom/...Pod.pm#L20 | |||
Pod::Block::Declarator is what generally gets attached to objects | |||
.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 | ||
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 | |||
or tries | |||
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 | ||
I don't think there's a way | |||
(inlining) | 16:41 | ||
pmichaud | maybe we should (get Damian to) add one :) | ||
tadzik | why would you want that? | ||
pmichaud | well, the use case I've just given would be one reason | ||
tadzik | so that inlining would work lazily? | ||
pmichaud | so that text becomes more reusable | ||
tadzik | mhm | ||
pmichaud | the specific case I'm thinking of would be something like this | ||
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 | ||
pmichaud | I need to see an example of .WHY again -- I've forgotten the syntax :-( | ||
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) | ||
tadzik | r: say "" | ||
p6eval | rakudo a2bacb: OUTPUT«» | ||
tadzik | p6eval: thanks for the newline | ||
r: #= this sorts some zebrassub sort-zebras { }; say &sort-zebras.WHY | |||
p6eval | rakudo a2bacb: OUTPUT«Block::Declarator.new(WHEREFORE => sub+{<anon>} sort-zebras() { ... }, config => ().hash, content => Array.new("this sorts some zebras"))» | ||
tadzik | pmichaud: ^ | ||
pmichaud | tadzik: perfect.... writing... | 16:44 | |
tadzik | r: #= this sorts some zebrassub sort-zebras { }; say &sort-zebras.WHY.Stringy | ||
p6eval | rakudo a2bacb: OUTPUT«this sorts some zebras» | ||
tadzik | mayhaps we want that to be .gist too, or so | ||
pmichaud | yes, I was just about to say that. +1 | ||
tadzik | I need to reunderstand this print/say oddness | 16:45 | |
pmichaud | say uses the .gist form of things | ||
tadzik | and gist is rather non-technical | 16:46 | |
pmichaud | tadzik: maybe something like 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. | ||
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 | ||
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 | ||
but it may be just me being lazy | |||
pmichaud | yes, we can do that also, but we pay a storage cost for that. | ||
16:48
sergot joined
|
|||
tadzik | hm | 16:49 | |
or maybe we put the rakudo-specific parts in the setting, and the general ones outside | |||
so .WHY merges those | |||
pmichaud | right, that's what I'm advocating | ||
tadzik | hm | ||
pmichaud | so our CORE.setting contains a bunch of #= include<...> tags | 16:50 | |
tadzik | oh, I thought of it differently | ||
pmichaud | which pulls in the text when .WHY is requested | ||
tadzik | hmm | ||
what I thought is... let me write this down | |||
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:51 | |
kind of an AUTOLOAD for .WHY :-) | 16:52 | ||
tadzik | gist.github.com/2949346#comments | ||
16:52
UncleFester6 joined
|
|||
tadzik | heh, markdown turned a comment into a HEADLINE | 16:52 | |
yes, that makes sense | 16:53 | ||
(what you say) | |||
sergot | Who is going to go to the YAPC::EU? :) | ||
tadzik | me | ||
pmichaud | I was thinking more of "process-inlines-in(@.content)". | ||
tadzik | that makes sense as well | ||
UncleFester6 | r: my @a = (10, 20 ,30 ,40); my @l := gather { for @a {say "hi"; take $_ } }; say ~@l | ||
p6eval | rakudo a2bacb: OUTPUT«hihihihi10 20 30 40» | ||
tadzik | oh-oh! | ||
We can have a custom Formatting Code for that | 16:54 | ||
16:54
sunflower left
|
|||
pmichaud | tadzik: yes | 16:54 | |
that's why I made it look like include<...> :-) | |||
tadzik | :) | ||
UncleFester6 | r: my @a = (10, 20 ,30 ,40); my @l := gather { for @a {say "hi"; take $_ } }; .say for @l | ||
p6eval | rakudo a2bacb: OUTPUT«hihihihi10203040» | ||
tadzik | and it won't even leak out | ||
okay, so that we can do | |||
oh wait | 16:55 | ||
we have that already | |||
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. | |||
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 | ||
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. | ||
. o O ( there's a spec for that ) | |||
pmichaud: so we have everything we need in the spec, I think | |||
pmichaud | tadzik: awesome! That's what I wanted to know :-) | 16:56 | |
tadzik | I didn't remember about that one | ||
pmichaud | I thought it might be in the spec already | ||
tadzik | pmichaud: see perlcabal.org/syn/S26.html#Placement+links | ||
the formatting is a bit broken here though | |||
[Coke] yawns. | |||
pmichaud | I'm also fine if WHY.content returns the raw string, and WHY.contest.gist does the inlining | ||
tadzik | it should be put into a code block | ||
pmichaud | *WHY.content.gist | 16:57 | |
tadzik | yeah, that ought to be fine | ||
pmichaud | something like that | ||
tadzik | so Rakudo needn't do anything | ||
since we'll use Pod formatters for everything anyway; | |||
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
dakkar left
|
|||
UncleFester6 | Anyone into being lazy that can help? | 16:59 | |
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«hihihihi10203040» | ||
tadzik | r: my @a = (10, 20 ,30 ,40); my @l := gather { for @a {say "hi"; take $_ } }; say "alalala"; .say for @l.list | ||
p6eval | rakudo a2bacb: OUTPUT«alalalahihihihi10203040» | 17:01 | |
pmichaud | I think 'for' is still over-eager in Rakudo. | ||
that's on my to-do list for today | |||
17:03
UncleFester6 left
|
|||
[Coke] | aha. | 17:07 | |
.u 302 | |||
phenny | [Coke]: Sorry, no results for '302'. | ||
[Coke] | .u 0302 | ||
phenny | U+0302 COMBINING CIRCUMFLEX ACCENT (◌̂) | ||
[Coke] | .u 0240 | ||
phenny | U+0240 LATIN SMALL LETTER Z WITH SWASH TAIL (ɀ) | ||
[Coke] | if my p6 program consists entirely of: (hd fail.t) : | 17:08 | |
00000000 23 c2 a0 0a |#...| | |||
00000004 | |||
then I get the pugs decodeUTF8 error. | |||
17:09
UncleFester6 joined
|
|||
[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 | |
17:09
att joined
|
|||
[Coke] | e.g. in "Perl<not an ascii space>5" | 17:09 | |
.u .c2 | 17:11 | ||
phenny | U+34C2 CJK UNIFIED IDEOGRAPH-34C2 (㓂) | ||
U+35C2 CJK UNIFIED IDEOGRAPH-35C2 (㗂) | |||
U+36C2 CJK UNIFIED IDEOGRAPH-36C2 (㛂) [...] | |||
[Coke] | .u 00c2 | ||
phenny | U+00C2 LATIN CAPITAL LETTER A WITH CIRCUMFLEX (Â) | ||
[Coke] | .u 00a0 | ||
phenny | U+00A0 NO-BREAK SPACE ( ) | ||
dalek | ast: 12a36cc | pmichaud++ | S02-lists/tree.t: Fudge a failing tree.t test. |
17:12 | |
17:22
Vlavv` left
|
|||
sergot | .u 0488 | 17:25 | |
phenny | U+0488 COMBINING CYRILLIC HUNDRED THOUSANDS SIGN (҈) | ||
sorear | good * #perl6 | 17:26 | |
shachaf: No. | |||
moritz: No. | |||
[Coke] | pugs: » | 17:27 | |
p6eval | pugs: OUTPUT«***  Unexpected "\187" expecting program at /tmp/5eCxT62mkD line 1, column 1» | ||
[Coke] | locally that also complains about decodeUTF8' | ||
flussence | I think the build failure I was getting earlier could be a 32/64 bit thing. About to double-check that... | ||
pmichaud | afk # lunch and kid pickup | 17:28 | |
17:28
daxim left
17:32
birdwindupbird left
17:34
Vlavv` joined
17:40
cog_ joined
|
|||
flussence | well there goes that theory, I just built the same source tree fine in 64 then 32 bit... | 17:41 | |
17:43
cognominal left
17:46
tyatpi_ left,
tyatpi left
17:48
tyatpi_ joined,
tyatpi joined
17:51
sunflower joined
17:55
stepnem left
17:58
vmspb left
18:10
fhelmberger left
18:15
sirrobert left
18:22
brrt joined
18:25
stepnem joined
18:27
jaldhar joined
18:30
jevin joined
|
|||
dalek | kudo/nom: d223755 | moritz++ | src/core/Exception.pm: fix types in error messages Patch courtesy of Nick Glencross |
18:31 | |
kudo/no-strict: cb28ebf | moritz++ | src/core/Exception.pm: fix types in error messages Patch courtesy of Nick Glencross |
18:33 | ||
kudo/no-strict: bfcce00 | moritz++ | src/Perl6/ (2 files): first step towards "no strict;" No way to test it yet, because $*STRICT is never set to a false valu |
|||
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
|
|||
moritz | sisar: it was a typo :/ | 18:42 | |
tadzik | now do a push --focre :P | ||
18:45
mikemol joined
|
|||
sorear | o/ mikemol !!! | 18:46 | |
mikemol | lo | ||
mikemol is sad, tired and frustrated. | |||
Best not to get any on you. | |||
tadzik | hugme: hug mikemol | 18:47 | |
hugme hugs mikemol | |||
sorear hugs mikemol personally. | |||
18:51
tokuhiro_ joined
19:01
harmil left
19:03
MayDaniel joined
19:07
mikemol left
19:20
thou left
19:22
mitch__ left
19:23
jaldhar left
19:27
shinobicl joined
19:28
thou joined
|
|||
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:28 | |
19:35
birdwindupbird joined
|
|||
moritz | phenny: tell masak use.perl.org seems to be dead, the two links on rakudo.org/how-to-help/ to your journal are dead | 19:41 | |
phenny | moritz: I'll pass that on when masak is around. | ||
dalek | kudo/nom: 94a8bbe | tadzik++ | src/core/Pod.pm: Make Pod::Block::Declarator stringification more friendly |
||
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 | ||
phenny | moritz: I'll pass that on when masak is around. | ||
moritz | oh, it seems that the posts are already on strangelyconsistent.org/ I just don't have the mapping | 19:43 | |
sorear | phenny: seen masak | 19:50 | |
seen masak | |||
aloha | masak was last seen in #perl6 4 days 12 hours ago saying "flight &". | ||
19:50
stephenlb joined
|
|||
tadzik | I hope he landed safely | 19:50 | |
sorear | I didn't realize Malmö to London was *that* long of a flight | ||
pmichaud | I suppose it depends on masak++'s wingspan | 19:52 | |
sisar | seen jnthn | 19:55 | |
aloha | jnthn was last seen in #perl6 4 days 19 hours ago saying "phenny stuff that matters :)". | ||
moritz | phenny: tell masak never mind, I've updated the links | ||
phenny | moritz: I'll pass that on when masak is around. | ||
19:58
kurahaupo left
|
|||
sisar | has clang been tried for rakudo development ? | 20:00 | |
moritz | I'm pretty sure that some folks have compiled parrot and rakudo with it | 20:01 | |
recently | |||
20:02
kurahaupo joined,
tokuhiro4 joined
20:04
FireFly joined
20:06
brrt left
20:10
GlitchMr left
|
|||
dalek | kudo/nom: e80b1b1 | pmichaud++ | src/core/Parcel.pm: Parcel.elems should flatten (per TimToady++ at yapc::na 2012). |
20:11 | |
pmichaud | I'm getting a spectest failure in t/spec/S32-documentation/why.t | 20:12 | |
tests 2, 14 | |||
20:12
tokuhiro_ left
|
|||
[Coke] | WHY! | 20:12 | |
tadzik | noes, WHY? :( | ||
pmichaud | oh, I see the problem. | 20:13 | |
tadzik | I probably screwed that recently | ||
20:13
tokuhirom joined
|
|||
pmichaud | looks like you eliminated Stringy when adding .gist | 20:13 | |
we need both, I suspect. | |||
tadzik | oh | ||
20:13
mcglk left,
mcglk joined
|
|||
tadzik | no, I think the tests have worked accidentally | 20:13 | |
pmichaud looks at tests | 20:14 | ||
well, clearly test #2 is likely due to a lack of .Stringy | 20:15 | ||
tadzik | true | ||
pmichaud | and #14 also | 20:16 | |
since comparison will compare the stringy forms | |||
tadzik | although it may be that I've just invented this rule | ||
I don't think it's specced | |||
#14 should probably use .WHY.content | 20:17 | ||
everything else does | |||
pmichaud | hmmm | ||
I suspect that .WHY should stringify naturally into its content | |||
tadzik | but #2 clearly expects Stringy, and I don't see why it shouldn't | ||
20:17
tokuhirom left
|
|||
tadzik | it used to | 20:17 | |
pmichaud | right... but .Stringy disappeared :) | ||
I'll fix it. | |||
tadzik | I can do that | ||
pmichaud | okay, I'll let you do it. :) | 20:18 | |
tadzik | so .gist can just call .Stringy | 20:19 | |
pmichaud | correct. | ||
tadzik | is that a common pattern in the setting? | ||
pmichaud | yes. | ||
it's not uncommon. | 20:20 | ||
moritz | where did stringy disappear from? | ||
tadzik | sounds like "oh, say() now behaves differently than print(), let's fix it :)" | ||
Pod::Block::Declarator | |||
funny, I thought "bah, no way there are tests relying on this" | |||
moritz | oh | ||
for a moment I hoped it was gone from the specs | 20:21 | ||
20:21
sergot left
|
|||
pmichaud | tadzik: perhaps it should be Str instead of Stringy, though. | 20:21 | |
src/core/Version.pm:13: multi method gist(Version:D:) { self.Str } | |||
src/core/Numeric.pm:22: multi method gist(Numeric:D:) { self.Str } | |||
src/core/List.pm:319: multi method gist(List:D:) { self.Str } | |||
etc. | |||
moritz | now that we have .gist, do we really need .Stringy to print junctions? | ||
tadzik | hehe, google images for "Jim Keenan" yields surprising results | 20:22 | |
pmichaud | istr that .Stringy was about more than just printing junctions. | ||
tadzik | apparently there's also some bare-chested metalhead with that name | ||
pmichaud | in particular, .Stringy is allowed to return lazy strings | ||
moritz | yes, it was also a premature generailzation of coercion to more string types | ||
[Coke] | etoomanyways to stringify. | 20:23 | |
moritz | agreed | ||
tadzik | agreed | ||
pmichaud | meh, we have lots of ways to numify; seems like multiple ways to stringify also makes sense. | 20:24 | |
tadzik | (: | ||
moritz | and if we default to .Stringy-fication, we need *another* layer of indirection | ||
[Coke] | pmichaud: I'm pretty much going to use print "$foo\n" instead of say $foo to avoid "weird" stringification. | ||
20:25
Breekie joined
|
|||
tadzik | so .Stringy calls .Str by default | 20:25 | |
why do we need .Stringy anyway? | |||
moritz | currently for infix:<~>(Cool, Cool) (or Any, Any; not sure) we do nqp::concat($a.Str, $b.Str) | ||
erm | |||
pmichaud | tadzik: I wouldn't worry about it at the moment. Just implement Str for P::B::D | ||
tadzik | yeah, it's compiling | 20:26 | |
moritz | nqp::concat(nqp::unbox_s($a.Str), nqp::unbox_s($b.Str)) | ||
if we need .Stringy instead of .Str, we need *another* dispatch on the result | |||
pmichaud | not necessarily for Cool types | ||
for Any, yeah. | |||
moritz | because we might not be able to unbox the return value | 20:27 | |
pmichaud: why not for Cool? | |||
pmichaud: there can be user-defined Cool types | |||
pmichaud | we could declare that Cool types always have .Stringy --> .Str | ||
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:29 | ||
moritz | in my head I've pushed non-Str Stringy to post-6.0 already | 20:30 | |
pmichaud | wfm | 20:31 | |
dalek | kudo/nom: c203977 | tadzik++ | src/core/Pod.pm: Fix Pod::Block::Declarator stringification, tadzik-- |
20:33 | |
20:33
cognominal joined
20:34
spaceships joined
20:36
cog_ left
20:37
sergot joined
|
|||
sorear | o/ sergot, cognominal | 20:38 | |
cognominal | \o to the usual suspects | 20:39 | |
20:41
harmil joined
|
|||
sorear | o/ harmil | 20:42 | |
harmil | hey | ||
sisar | 'master' is the, umm, master branch for the nqp repo ? | ||
pmichaud | sisar: yes. | 20:43 | |
20:44
birdwindupbird left
|
|||
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 | ||
sisar | sorry, s/nom/nqp | ||
moritz | sisar: what does git log origin/master say? | 20:46 | |
pmichaud | ...the last commit was on June 11. :-) | ||
tadzik | :P | ||
moritz | oh :-) | ||
pmichaud | github.com/perl6/nqp | ||
sisar | oh ! duh ! i got confused between nqp and nom ! | ||
pmichaud | shows commit b1226f by jnthn++ on June 11. | ||
sisar | oops... | ||
sorear | sisar: you haven't committed anything recently, that's what's wrong! :D | 20:47 | |
sisar: alternatively: "YAPC::NA" | |||
sisar | sorear: :-) | ||
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
|
|||
pmichaud | looks like rakudo doesn't know 'no' yet. | 20:48 | |
moritz | aye | 20:49 | |
ok, stupid question, why does Perl6::Grammar use <sym> (instead of <.sym>) so often? | |||
sisar | ain't rakudo supposed to warn on NYI features ? | ||
moritz | I mean, it's a constant. Not much sense in capturing it | ||
sisar: yes, I'll add that in my branch | 20:50 | ||
pmichaud | moritz: sometimes <sym> is used in Actions.pm | ||
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
|
|||
sisar | moritz++ | 20:50 | |
moritz | pmichaud: any objections to changing that where it doesn't break things? | ||
pmichaud | moritz: no objections here; it lookslike the common uses of <sym> are in statements (for, given) and binding/assignment | 20:51 | |
also 'while' | 20:52 | ||
looks like it gets used in most expressions, too | 20:53 | ||
moritz | there's not a single <.sym> in Grammar.pm | ||
pmichaud | are there many in STD.pm, ooc? | 20:54 | |
20:54
sergot left,
skids left
|
|||
moritz | none either | 20:54 | |
pmichaud | looks like none in STD.pm, too. | ||
sorear | yes, <sym> is uesed *everytwhere* in STD | ||
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' ? | ||
harmil | Does it make sense to do that for everything that doesn't need to be captured? | ||
pmichaud | harmil: only if we know that it doesn't need capturing. | ||
moritz | but if we do, yes | ||
saves memory | |||
pmichaud | I think you have to keep <sym> for all of statement_control: | 20:56 | |
maybe <.sym> will work for statement_prefix | 20:57 | ||
definitely need <.sym> for statement_mod_cond and statement_mod_loop | |||
er, definitely need <sym> for ... | |||
moritz | r: True-bla | 20:58 | |
p6eval | rakudo 94a8bb: OUTPUT«===SORRY!===CHECK FAILED:Undefined routine '&bla' called (line 1)» | ||
moritz | bug! | ||
tadzik | sisar: out of curiosity | ||
harmil | Wait… does it save memory? | 20:59 | |
sisar | tadzik: ah. thanks. | ||
moritz | should parse True-bla as an identifier, and complain that the whole thing is not defined | ||
harmil: the more you capture, the more memory it takes | |||
harmil | wouldn't those <sym> captures be freed up once the caller returns? | ||
moritz | harmil: so replacing <sym> by <.sym> saves memory | ||
pmichaud | can probably switch special_variable <sym> to <.sym>... but probably won't save much memory | ||
moritz | harmil: not necessarily; there might references to those Match objects somewhere | 21:00 | |
harmil | true | ||
pmichaud | switching the twigil <sym> to <.sym> probably saves a bit | ||
not sure about package_declarator | 21:01 | ||
or multi declarator | |||
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 | ||
pmichaud | and it's probably only worth switching ones that occur frequently, like in terms or expressions | ||
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 | ||
pmichaud | i.e., there's no 'sym' method for Cursor defined. | ||
<sym> is currently very macro-ish. | 21:04 | ||
moritz | r: grammar A { proto token TOP {*}; token TOP:sym<a> { <.sym> } }; say A.parse('a') | ||
p6eval | rakudo 94a8bb: OUTPUT«q[a] => q[a]» | ||
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]» | ||
pmichaud | yeah, looks like it still captured even with the dot, but to the wrong slot. | ||
moritz | r: grammar A { proto token TOP {*}; token TOP:sym<a> { <.sym> } }; say A.parse('a').keys | 21:06 | |
p6eval | rakudo 94a8bb: OUTPUT«» | ||
moritz | r: grammar A { proto token TOP {*}; token TOP:sym<a> { <.sym> } }; say A.parse('a').values | ||
21:06
Entonian joined
|
|||
p6eval | rakudo 94a8bb: OUTPUT«a» | 21:06 | |
moritz | another bug | ||
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» | ||
moritz | r: grammar A { proto token TOP {*}; token TOP:sym<a> { <.sym> } }; say A.parse('a').keys.perl | ||
p6eval | rakudo 94a8bb: OUTPUT«("",).list» | ||
pmichaud | yeah, since <sym> isn't a standard subrule call it doesn't quite know how to modify it | ||
I think that the compiler translates <sym> into something like $<sym>=['foo'] | 21:08 | ||
i.e., it's a literal match that is captured. | |||
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:11 | ||
21:12
att left,
cggoebel left,
cggoebel joined
21:14
kaare_ left
|
|||
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:14 | |
moritz | pmichaud: through which routines does it loop? | 21:15 | |
21:15
sunflower left
|
|||
pmichaud | I didn't check to find out | 21:15 | |
when I ran with -ll-exception, it threw the "recursion limit" exception right away. | |||
but without --ll-exception, it just hangs. | 21:16 | ||
moritz | will try to look into it tomorrow | ||
pmichaud | okay | 21:17 | |
moritz | assertion:sym<name> creates a literal | 21:18 | |
but assertion:sym<method> (which parses <.sym>) sets the rxtype to method | |||
pmichaud | no, it sets the subtype to 'method' | 21:19 | |
the rxtype remains <subcapture> | 21:20 | ||
moritz | erm right, subtype | ||
pmichaud | I wonder if it makes sense to grab assertion:sym<sym> and assertion:sym<.sym> specially | 21:21 | |
moritz -> sleep | |||
21:25
integral left
21:30
kurahaupo left,
Entonian left
21:32
kurahaupo joined
21:33
integral joined,
integral left,
integral joined
|
|||
pmichaud | phenny: tell harmil see 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. | ||
pmichaud | looks to me like the optimizer is saving all of the intermediate constants and perhaps shouldn't. | ||
harmil | day again? | ||
phenny | harmil: 21:34Z <pmichaud> tell harmil see 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). | ||
harmil | *sat | ||
*say … bah :) | |||
interesting | 21:35 | ||
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 | ||
pmichaud | anyway, it's an excellent test case. harmil++ | ||
I'm spectesting with the bumped-up-recursion-limit now, will commit shortly. | |||
harmil | how do you set the recursion limit? | 21:37 | |
pmichaud | it's a property on the parrot interpreter | ||
harmil | And is there a way to set those from nqp? | ||
pmichaud | pir::getinterp__P().recursion_limit(100000); | ||
harmil | Ah, nice | 21:38 | |
pmichaud | can do it from within rakudo, actually. | ||
parrot's default recursion limit is 1000 | |||
harmil | Well, the lines kind of blur, but I was toying with it in Actions.pm | ||
dalek | kudo/nom: ddfb9ff | pmichaud++ | src/main.nqp: Bump up Parrot's recursion limit when we start (from default 1000 to 100000). |
21:39 | |
21:39
aindilis joined
|
|||
harmil | I was toying with the idea that recursion limit should be dynamic, based on what kind of structure you're parsing. | 21:40 | |
21:52
MayDaniel left
21:56
tadzik is now known as zamaskowany-tadz,
zamaskowany-tadz is now known as tadzik
22:05
PacoAir left
|
|||
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. | ||
perlcabal.org/syn/S09.html#Compact_structs | 22:08 | ||
sisar looks | |||
what does "compact" refer to in "compact struct" ? | 22:12 | ||
pmichaud | that the attributes are contiguous in memory, I suspect. | ||
i.e., they act as if they had been written in a c-style struct | |||
i.e., writing | 22:13 | ||
class XYZ { has int $x; has num @foo; } | |||
is similar to doing | |||
struct XYZ { int x; float foo[]; } # in C | 22:14 | ||
(probably need an index on @foo there.) | |||
22:15
masak_plane joined
22:16
spider-mario left
|
|||
pmichaud | it's masak_plane! | 22:16 | |
\o/ | |||
tadzik | it's a plane! | ||
it's a bird! | |||
sisar | this compactness indirectly implies that we can only have low-level types in this class ? | ||
masak_plane | Oh hai from a freakin' airplane! | ||
tadzik | how is it even possible | ||
pmichaud | sisar: yes, that's what the first sentence says, I think. | ||
masak_plane | This is awesome! | ||
sisar | masak_plane: how does the plane have internet ? | 22:17 | |
masak_plane | I'm flying... AND I'm on IRC. | ||
pmichaud | if you have a class with only low-level types, it behaves like a struct | ||
tadzik | the carry the wire | ||
I think we've already discussed that here | |||
eh, the english bad | |||
masak_plane | Won't last long though. We're going in for landing soon. | ||
pmichaud | masak_plane: all of my planes to and from yapc::na had internet available on them. Inexpensive, too, $5 for the full trip. | ||
(I didn't purchase wifi, though, because the flights were very short.) | |||
masak_plane | sisar: what tadzik said. | ||
sisar | right | 22:18 | |
tadzik: "carry the wire" ? | |||
pmichaud | masak_plane: landing is.... where? (ooc) | ||
masak_plane | pmichaud: free internets here. | ||
pmichaud | ooooh, free internets | ||
masak_plane | Norwegian++ | ||
tadzik | free as in freedom! | ||
masak_plane | sisar: we're joking you a tiddle bittle. | 22:19 | |
pmichaud: CPH | |||
sisar | masak_plane: :-) | ||
masak_plane | Ok, going offline. Nice to meet y'all. | ||
pmichaud | right, it's not wires -- it's carrier pigeons. | ||
22:19
masak_plane left
|
|||
pmichaud | the pigeons catch up to the plane and have their packets decoded. | 22:19 | |
tools.ietf.org/html/rfc1149 | 22:20 | ||
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. | ||
sisar | pmichaud: nice. | 22:23 | |
sisar likes compact structs | |||
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 | ||
but, I don't have an eta for when they might appear in rakudo. | 22:24 | ||
afk for a while | 22:25 | ||
sisar | pmichaud: i can wait :-) | ||
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. | ||
sorear | FFF | ||
well, at least I can stop worrying whether masak is alive now. | |||
sisar | sorear: "FFF" ? | ||
flussence | we never found out what his wingspan was :( | ||
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
|
|||
sisar | flussence: large enough to catch internet signals from ground ;-) | 22:29 | |
sorear | sisar: a noise of great frustration | ||
sisar | sorear: en.wiktionary.org/wiki/fff, right ? | 22:32 | |
sorear | no. | ||
sisar | oh | 22:33 | |
22:38
thou left
22:52
harmil left,
Patterner left,
LoRe left,
Exodist left,
takesako_ left,
cosimo left,
japhb left,
mathw left,
pnu left,
estrai left,
renormalist left,
Maddingue left,
estrai joined,
mathw joined,
renormalist joined,
Exodist joined,
literal joined,
LoRe joined,
Maddingue joined,
pnu joined,
Psyche^ joined,
Psyche^ is now known as Patterner,
cosimo joined,
harmil joined,
takesako_ joined,
japhb joined
22:54
shinobicl left
22:55
harmil left,
harmil joined
22:56
skids joined
22:57
whiteknight joined
22:58
whiteknight is now known as Guest35265,
fgomez joined,
harmil left
23:03
fgomez left,
fgomez joined
23:04
fgomez left,
fgomez joined,
att joined
23:19
Chillance joined
|
|||
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 | ||
pmichaud: i'm kinda missing your first talk... did it even get recorded? :/ | |||
23:32
Entonian joined
23:33
masak joined
|
|||
masak home | 23:33 | ||
phenny | masak: 19:41Z <moritz> tell masak use.perl.org seems to be dead, the two links on rakudo.org/how-to-help/ to your journal are dead | ||
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 | |||
masak: 19:55Z <moritz> tell masak never mind, I've updated the links | |||
masak | all my posts are mirrored. | 23:34 | |
see strangelyconsistent.org/blog/dog-fo...rl6-flavor | |||
hm, and strangelyconsistent.org/blog/its-ju...tree-silly | |||
felher | o/ masak :) | 23:35 | |
masak: if i might ask: how's your qast/macro work going? :) | 23:36 | ||
masak | status still as per last blog post. | ||
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. | ||
my batteries are *charged*, baby. | |||
tonight on the way to Gatwick airport I started storyboarding the re-make of my macros talk. looks very promising. | 23:39 | ||
23:39
Entonian left
|
|||
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. | ||
felher | masak: hui. Where will you give the new macro talk? :) | ||
masak | FPW. | ||
be there or be a French square. | 23:40 | ||
(a French square is probably a rhombus or something) | |||
felher | Awesome, only about ten days. (/me is going to be a french square, i guess) | 23:41 | |
Do you know if there will be live streaming and/or recordings? | 23:42 | ||
masak | dunno. ask eiro. | ||
or cognominal. | |||
oh my, it's in ten days! :) | 23:43 | ||
felher | eiro: cognominal: any idea if there will be a live stream/recordings? (FPW 2012) :) | 23:44 | |
23:44
colomon left
|
|||
felher | good night, #perl6 | 23:47 | |
masak | 'night, #perl6 | 23:48 | |
23:49
LaG|RickJames joined
|
|||
cognominal | felher, ask eiro, he is the organizer. | 23:51 | |
23:51
LaG|RickJames left
|
|||
cognominal | I think there will be some recording, I don't if it will be live streamed. | 23:52 | |
*don't know | |||
feller, do you have an url for TimToady's talk? | 23:53 | ||
felher | cognominal: thanks, i'll ask eiro. | 23:55 | |
cognominal: yes, i do. one moment. | |||
cognominal: www.youtube.com/watch?v=mCKU0Z-Qbkk...ure=relmfu | 23:56 | ||
eiro: any idea if there will be a live stream/recordings? (FPW 2012) :) eiro++ # for organizing such an event :) | 23:57 | ||
felher -> bed (really) | |||
cognominal | he must be sleeping by now as I should do instead of fighting js/jquery/coffeescript/ST2 | 23:58 |