»ö« 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.
Tene colomon: you should callgrind the callgrind 00:55
plobsing_ ping pmichaud, jnthn 01:22
pmichaud plobsing_: pong 01:24
(yay, I have a preliminary Rakudo subroutine counter running!)
plobsing_ I've been working on a fix for zavolaj
nopaste.snit.ch/45257
colomon \\o//
plobsing_++
plobsing_ but I can't seem to get rakudos reference wrapping/unwrapping right 01:25
colomon pmichaud: was that 262724 calls to Rakudo_binding_bind_llsig? I now have kcachegrind running on my Mac and accessing the callgrind output on my Linux box. 01:27
pmichaud colomon: something like that, yes. 01:28
plobsing_: some of those assignments might be an issue 01:29
but jnthn++ would probably have to be the one to help out from here
colomon so.... one line of the sin.t (towards the end) is 102 function calls 01:31
pmichaud could be
colomon is_approx(asin(:x(DifferentReal.new(0.707106781186548)), :base(Degrees)), 45, "asin(:x(DifferentReal), :base(Degrees)) - 45");
is the line 01:32
pmichaud I have a logging system set up locally that captures the names of the caller and called subs
colomon that's based on a profile run with it and a profile run with it commented out
pmichaud 102 function calls doesn't sound too far off the mark to me for that one
(whether it should actually be that many is a valid question :-)
plobsing_ phenny: tell jnthn I have a preliminary fix for zavolaj (nopaste.snit.ch/45257), but somewhere rakudo's reference wraping/unwrapping is tripping me up
phenny plobsing_: I'll pass that on when jnthn is around.
pmichaud just creating the 0.707106781... value is going to be a ton of calls 01:33
(because Rakudo does it at runtime)
colomon pmichaud: I'll tell you how many in about 20 minutes.
pmichaud :)
top Rakudo block calls for sin.t: gist.github.com/971584 01:38
colomon upgrade_to_num_if_needed ... ah 01:39
pmichaud last night I tried moving that to be PIR instead of Perl 6... it only made a small difference
oh, outstanding 01:41
so, since it's obvious that .item is a hot path -- we might get a huge win by moving it to PIR instead of Perl 6
especially since all it does is return 'self'
(for Mu)
we'd save a bunch of PMC creations by doing that 01:42
colomon when is .item called? 01:43
pmichaud whenever something is needed in item context -- e.g., assignment to a scalar
just looking at the code generated for Mu.item -- we create at least twelve PMCs per invocation 01:44
colomon !!! 01:45
pmichaud oh, maybe nine
still
colomon This is "method item { self; }" we're talking about here?! 01:47
pmichaud yes
colomon dang
johnjohn101 any date on release 01:51
pmichaud it's been released :)
flussence the last one was 2 weeks ago ;) 01:52
oh wait, niecza v5 was released last week too. I bet there were more compilers I'm missing too. 01:54
johnjohn101 does it do threading yet?
pmichaud no, we don't have threading yet.
flussence yes, niecza does
(iirc)
johnjohn101 ok i see rakudo star is out 01:55
pmichaud colomon: the approach I ended up taking creates a new opcode just for recording subroutine entry 01:56
johnjohn101 niecza, does it have a web site?
pmichaud that way we can put it on routine that don't use bind_llsig
*routines
e.g., cheats/ and builtins/
colomon pmichaud: does that require a parrot update, or is it npq/rakudo specific? 01:57
pmichaud it's rakudo specific
no parrot update
colomon sweet
pmichaud it would make sense to go into nqp (not -rx)
johnjohn101 ok i see niecza works with mono.. 01:58
colomon pmichaud: glancing at your output again, what catches my eye is div. I think that's only called internally from Rat (in sin.t, anyway). 02:03
pmichaud sure, we have lots of rat operations 02:04
colomon that's going to be almost all decimal constant construction, I think. 02:07
having trouble getting kcachegrind to open the third file. stupid computers... 02:09
arrrrgh. ran against the wrong sin.t file. 02:11
pmichaud there's a "div" in Real.pm 02:14
sorear good * #perl6 02:14
pmichaud (used for infix:<mod> apparently)
colomon yeah, probably not a big issue for sin.t 02:14
mishnik hi 02:15
pmichaud updated list after instrumenting the builtins: gist.github.com/971619
sorear johnjohn101: Hi! 02:16
sorear johnjohn101: is github.com/sorear/niecza enough? 02:29
johnjohn101: if not, what do you want to see on a website?
johnjohn101 sorear: that's what i found. I may have to ease into perl 6. 02:32
pmichaud gist.github.com/971866 # calling details for sin.t 02:49
afk, dinner and break
dalek kudo: e54eeca | pmichaud++ | src/ (3 files):
Initial implementation of Parrot sub logging (sublog) -- this

subroutines (for profiling and optimization).
kudo: f81d740 | pmichaud++ | tools/sublog-report.pl:
Add a simple tool to process the files produced from RAKUDO_SUBLOG.

subroutine is entered.
kudo: afd9577 | pmichaud++ | src/cheats/ (14 files):
Instrument cheat subs with x_enter_sublog opcodes upon entry.
kudo: e952e29 | pmichaud++ | src/builtins/ (35 files):
Instrument builtins/ with "x_enter_sublog".
kudo: 25fce41 | pmichaud++ | tools/sublog-report.pl:
Add some more details to tools/sublog-report.pl .
kudo: be887ad | pmichaud++ | tools/sublog-report.pl:
Update tools/sublog-report.pl with some basic documentation for
colomon pmichaud++ 02:53
May be a while before I get to playing with it, because I've got an extremely busy weekend and a wicked $work bug that needs to be done by Monday on top of it. But I really look forward to working it out. 02:55
s/working it out/playing with it extensively/
pmichaud yes, me too :) 03:12
pmichaud gist.github.com/971937 # result of rewriting Mu.item (a hotpath) into PIR 05:03
basically we save the cost of creating (and discarding) 470,000 PMCs 05:04
pmichaud runs the full suite
pmichaud gist.github.com/971944 # the full rakbench suite after rewriting Mu.item 05:31
looks like overall a 8%+ improvement, except for rx.t (it gets slower for some reason, likely solvable)
I'm in favor of applying the change, but would like opinions first 05:32
note that we even get a 10% improvement in *startup*
sorear yaya 05:36
PerlJam Is that the subid in parens? 05:39
pmichaud yes
so that we can distinguish same-named subs
PerlJam Why are some like "new (new)" ?
pmichaud those are generally written in PIR, and thus don't have a PAST-generated subid
(but the subid is in fact "new")
PerlJam I haven't looked at the diff yet, but how hard would it be to add timing info? 05:40
pmichaud I can put timestamps in, yes. I'm not sure it's useful. 05:41
there's no notion of "exiting" a sub here.
just entrance.
PerlJam Hmm.
sorear looks at tools/sublog-report.pl 05:48
sorear wonders what to think of it
pmichaud heads to bed 05:54
sorear bye 06:04
jnthn yay YAPC::Russia :) 06:58
phenny jnthn: 01:32Z <plobsing_> tell jnthn I have a preliminary fix for zavolaj (nopaste.snit.ch/45257), but somewhere rakudo's reference wraping/unwrapping is tripping me up
jnthn Will take a look later. :) 07:02
moritz good morning 07:03
sorear hi jnthn!! 07:04
jnthn privet ;) 07:07
jnthn pmichaud++ # call counts! 07:10
sorear hey mberends! 07:16
mberends hi sorear!
jnthn mberends! \o/ 07:18
mberends hi jnthn, what are you doing awake so early? ;) 07:19
moritz joins the happy familiy
different time zone? :-)
jnthn mberends: Being three timezones east of you :P
moritz confused by RAKUDO_SUBLOG 07:21
it's not easy to run a spectest run with it 07:22
maybe I need to hack the harness
moritz ah yes 07:27
TAP::Harness++ # having callbacks for the exec => param 07:30
moritz wonders if his available disc space is enough 07:34
jnthn moritz: You going to profile the whole spectests? :) 07:35
moritz jnthn: if my disc allows it, yes
jnthn ;) 07:36
moritz I just wonder what the output means
is the list of indent subs the list of callers?
jnthn moritz: e.g. in gist.github.com/971866
Yes
It's number of calls and sub
then indented below it the top call sites
And counts of those 07:37
moritz I'm a bit surprised that CREATE is leading the list by a clear margin
jnthn It's called everytime we create an object.
moritz wonders which ACCEPTS calls WHAT that often 07:38
tadzik good morning!
moritz now in S05, and 340M of logs 07:39
good morning tadzik
tadzik what's the Mu.item rewrite? 07:42
AlexKotov Hi, uKibab! 07:46
uKibab Hi Alex
AlexKotov :) YAPC::Russia - 2011 is starting now!
tadzik hello hackathoners! 07:47
AlexKotov: I saw you had some panda/windows issues. Back in the neutro days I wanted it to be windows-friendly, but there was no windows user to try it out. If you want to have a module installer on windows, that may be your day
mberends shoulda been in Moscow, but the UK post (almost) eated his passport :( 07:48
uKibab mberends: that's sad :-(
tadzik what happened!
?
AlexKotov Hi, Martin! Today is Saturday, not big chance that post will deliver it today :( 07:49
mberends Visa application posted priority 29th April, arrived at agency 10th May :P
AlexKotov tadzik: yes, some windows issues are easy to fix 07:50
AlexKotov tadzik: for example, folder that is bypassed to wget ($HOME) should be quited - that will help 07:51
tadzik did you mean: quoted? :)
sorear out 07:52
tadzik AlexKotov: want to fix that or should I? I have nowhere to test it anyway
mberends: heh, ask the Perl Foundation when did they receive my CLA :P
AlexKotov tadzik: I'm on the conference for the weekend, so better you do quotation for wget pathes 07:53
*NIX will not be broken, Windows will be fixed :)
tadzik AlexKotov: I don't see how a conference (especially YAPC) interferes, but ok :) 07:54
moritz moritz.faui2k3.org/tmp/sublog.log.gz # number of calls for the spectests upto S06-signature
tadzik there's no more than one wget call, is there?
AlexKotov I think one (didn't look inside installer actually) 07:57
tadzik I don't think sublog-report.pl likes "... and 348 more" in the input. Should it be ignored or something maybe? 07:58
moritz tadzik: the "... and 348 more" are from the *output* of sublog-report.pl
AlexKotov BTW, additional instruction for windows users - is to download wget.exe and copy it into folder available in $PATH :)
moritz tadzik: don't feed the scripts output to the script itself :-) 07:59
tadzik oh! :) 08:00
I like how the new sublogging doesn't add any overhead 08:01
moritz it does not?
tadzik panda list ran 15.86 before, and 15.88 after 08:02
nopaste.snit.ch/45298 -- logs for say "Hello, world!" 08:06
bessarabov 2 photos from the stage from yapc in moscow friendfeed.com/bessarabov/b62377d1/...ts-on-yapc 08:19
moritz those guys look vaguley familiar :-)
bessarabov =) 08:20
jnthn bessarabov: ooh, thakns for taking :) 08:21
jnthn was crazy enough to try and introduce himself in Russian :)
Dunno if anybody understood ;)
tadzik hey, I know those guys :)
bessarabov jnthn, well, you have an accent, but it is easy to understand your russian =) 08:22
jnthn bessarabov: Oh, at this point I'm happy if it's just understandable :)
I get to speak it like, once a year or so :)
tadzik: (hello world logs) so that's where we spend time at startup. Not too surprising that we create lots of stuff...but it looks like quite a bit. 08:23
Why does .Bool create though... :/ 08:27
moritz it creates a new Bool::{True,False}?
jnthn I'd...hope not.
Not 282 times 08:28
tadzik :D 08:34
is that all the PHASERS blocks we don't use?
stasy hi everybody 08:46
AlexKotov stasy: Hi
tadzik that reminds me, I still have the NLPW pictures not yet uploaded anywhere 09:50
dalek p: 372e310 | jonathan++ | src/6model/reprs/P6opaque.c:
Fix crash when we have a typed attribute but the meta-attribute doesn't expose a .box_target.
10:29
tadzik what does the » character stand for in rules? 10:30
|| .*? \n '=' 'end' \h+ $<identifier> » \N* -- from Perl6/Grammar.pm
moritz right word boundary
tadzik ok, thanks 10:30
>> too? 10:31
jnthn think that's just the texas version of it
tadzik aye
proto tokens get to have possibly different gramar definitions, but the same action method, right? 10:32
jnthn tadzik: Ech variant gets its own action meth 10:33
*Each
tadzik ok, thanks
jnthn typically the variants need different things 10:34
or that's been my experience thus far, anyways
tadzik I'm looking for something for my Blocks. Every kind of block will end up being produced exactly the same way, but they'll have different parsing rules 10:35
moritz tadzik: if you have an example of how two blocks are parsed and what they should produce, maybe we can come up with something clevery-ish 10:38
tadzik moritz: I'm now working on the grammar rules. Basically, the point is that '=begin foo\nbla bla\n=end foo' and '=for foo\nblabla\n\n 10:40
' end up being the same
moritz tadzik: if you use the same captures in each rule, it shouldn't be hard to write a routine that takes a Match and returns a Pod::Block 10:41
tadzik yeah, I suppose so 10:43
masak hi #perl6. 10:48
masak just finished writing his presentation
jnthn Finished with over an hour to spare!!
masak 168 slides \o/
jnthn O_O 10:49
masak I have no idea how long it's going to take to deliver... :)
maybe we'll be here all night.
mberends: wish you were here :/ 10:50
moritz pink floyd? 11:00
masak moritz: sorry. just another brick in the Wall. :) 11:26
masak don't need no Eddy Kayshun 11:27
masak just made a DSL for the Moscow metro 11:34
AlexKotov DSL = Domain Specific Language ? 11:36
tadzik Digital Subscriber Line? 11:37
masak moritz: there's a talk about exceptions going on here right now. event.perlrussia.org/mayperl4/talk/131 11:38
AlexKotov: yes. stay tuned for my talk this afternoon :)
(it's in the talk)
tadzik hrm
AlexKotov ye, looking forward for your talk today)) 11:39
masak \o/ 11:40
tadzik nopaste.snit.ch/45315 -- line * - 3, could anyone take a look?
masak AlexKotov: I'm looking forward to it as well, now that I've finished writing it! :P
tadzik masak: will there be any live streaming?
masak I doubt that.
arnsholt masak: OOC, how long is your talk with 168 slides? =) 11:42
masak tadzik: whoa. I'd like to help -- it looks interesting -- but it's doubtful this environment will provide the right kind of peace of mind for debugging grammars.
arnsholt: I don't know, I've never given it :)
arnsholt: I hope it's about 40 minutes :P
tadzik: hopefully moritz or someone else can help... 11:43
arnsholt Oh, right. How much time have the organisers allocated to you, then? =)
masak 40 minutes.
arnsholt Right. That's a lot of slides/minute ^_^
tadzik masak: I hope so. I'm investigating in other axis, but I'm afraid there's something about protos I don't quite understand 11:44
masak rakudo: say 40 / 169
p6eval rakudo be887a: OUTPUT«0.236686390532544␤»
masak rakudo: say 40 / 169 * 60
p6eval rakudo be887a: OUTPUT«14.2011834319527␤»
tadzik :O
blasphemy
jnthn 14 seconds a slide! :) 11:46
masak on average :)
jnthn is looking forward to this :)
arnsholt tadzik: I think the reason the rule PASSes is the * 11:47
It matches 0 <pod_block>, which is a success
tadzik oh 11:48
Right, S05 mentions Longest Token Matching for protoregexes, but we don't have that
masak corrct.
there's some LTM somewhere, but not nearly all of it. 11:49
dalek p: b12c862 | jonathan++ | src/NQP/ (2 files):
Add a way to stub in a type without doing anything with it other than new_type and with an explicitly specified meta-object type.
p: d0f50b8 | jonathan++ | src/NQP/Actions.pm:
Ensure we build proper AST node in newly added action method.
p: 3b5eec5 | jonathan++ | src/NQP/SymbolTable.pm:
Rather than dying when trying to run code we didn't compile yet, instead try to compile it on-demand and run it. Missing various environmental bits just yet, but essentially works.
masak tadzik: on that note, I wouldn't use infix:<|> in rules if I were you. it's not very future-proof.
I'd use infix:<||> across the board. 11:50
tadzik thanks
Tene masak: what's your talk on? 11:52
masak realizes that he will give a compiler talk right after jnthn gives... a compiler talk 11:53
jnthn :P
masak though it's not that bad. :) mine is less detailed and more philosophical.
Tene: event.perlrussia.org/mayperl4/talk/117
jnthn Mine has less pretty diagrams :P
Tene shame I'm missing out; that sounds like a lot of fun 11:54
masak I plan to post slides here as I give the presentation. if you just advance them each 14 seconds, you can pretend you're here... :)
s/each/every/ 11:55
AlexKotov www.picamatic.com/view/7557015_P105...halfsized/ 11:58
Pic from latest YAPC::Russia talk (about exceptions)
Tene I should find a conference to give a talk at; that would be a lot of fun. 11:59
masak Tene: YAPC::EU! :)
Tene: in beautiful Riga :)
Tene I don't think I have the money for that.
AlexKotov Tene: where are you now (geographically) ? 12:00
masak Tene: I'm speaking purely out of self-interest -- it's be nice to meet.
but I suspect I'll end up at a YAPC::NA sooner or later.
Tene AlexKotov: California, US
masak: agreed
AlexKotov Tene: yes, far way to any of Europe.... 12:01
Tene I haven't attended a YAPC::NA yet either.
Tene I really should, one of these days 12:02
bacek ~~ 12:06
jnthn, ping
AlexKotov jnthn just started his Perl6 talk right now 12:07
masak oh. it would seem my talk just got moved to first thing tomorrow. :)
oh great, several bonus hours of procrastination :P 12:08
AlexKotov www.picamatic.com/view/7557065_P105...halfsized/ 12:09
Pic of jnthn at the stage
masak AlexKotov++ jnthn++
note the camera pointing at the laptop :P 12:10
masak yegor: hi. 12:12
Tene I remember meeting jnthn at the parrot summit once 12:14
the hotetl we stayed in happens to be right next to where I live, when I moved to CA
uKibab dl.kibab.com/jonathan0.jpg 12:15
Tene like, two blocks from my first apartment here.
uKibab :-)
masak uKibab: nice one!
bacek AlexKotov, передавай ему привет после презентации :) 12:18
(Sorry for Russian guys :)
dalek p: a555ce0 | bacek++ | src/6model/reprs/P6opaque.c:
Add awful, terrible block of GC
masak phenny: "передавай ему привет после презентации"? 12:19
phenny masak: "peredavay emu hello then presentations" (bg to en, translate.google.com)
masak phenny: ru "передавай ему привет после презентации"?
phenny masak: "Give my regards to him after the presentation" (ru to en, translate.google.com)
bacek AlexKotov, and tell him to review my last commit to nqp :)
wow! phenny++
actually google.translate++ :)
masak phenny: tell jnthn <bacek> AlexKotov, передавай ему привет после презентации :) <bacek> AlexKotov, and tell him to review my last commit to nqp :) [re commit a555ce0] 12:20
phenny masak: I'll pass that on when jnthn is around.
bacek masak, meh!
masak :)
bacek aloha, msg jnthn please review my last commit to nqp
oh. This incarnation of aloha doesn't have "msg". Which is probably good anyway :) 12:21
masak aye.
bacek otoh. 12:22
aloha, seen tadzik
aloha bacek: tadzik was last seen in #perl6 31 mins 37 seconds ago saying "thanks".
tadzik bacek: I'm hier
heh, I'll upload my NLPW pics too, for the fun
bacek tadzik, I know. I'm just checking cross-channel "seen"
:)
tadzik :)
AlexKotov seen tadzik 12:23
aloha tadzik was last seen in #parrot 9 seconds ago saying "(:".
AlexKotov works!
uKibab great :-)
bacek Indeed :)
masak Moukeddar: hi! 12:24
tadzik oh, that's a hackathoney thing?
Moukeddar hello Sir
bacek So, cross-channel msg via aloha will work too. You just have to use #parrot to send message
Moukeddar how are you doing?
masak tadzik: what is?
tadzik masak: the cross-channel-seen
masak Moukeddar: I'm at YAPC::Russia :)
masak tadzik: I don't think so... 12:25
Moukeddar you made it
congrats
masak Moukeddar: yeah! thank.
s*
Moukeddar: how're you?
Moukeddar good but a bit Tired :) 12:26
bacek thinking about visiting YAPC::Russia some day
AlexKotov bacek: where are you now? (geographically) 12:28
bacek AlexKotov, Sydney
AlexKotov Yeah.... really far way to go to Moscow )
bacek Yeah :) 12:29
tadzik imgur.com/SSb6L&KR52j&w3vYW -- 3 NLPW pictures 12:32
Moukeddar nice
many heads
tadzik I think masak is on all three :) 12:33
masak huh. how'd that happen? :)
tadzik easily, my dear Watson. Your head is between the other heads
Moukeddar found him :) 12:34
he's in the last line of heads
bottom-right
tadzik depends on a picture :) 12:35
masak right. I've moved to a completely different place in the third picture :)
er. my head has, I mean. 12:36
Moukeddar i'm talking about the first one
right?
masak right.
Moukeddar that's jnthn in the second piC right?
masak aye. 12:37
Moukeddar why do you have to use a dish as a background image ?
pavlov Experiment?
masak Moukeddar: because the talk was called "Perl 6 Appetizers" :) 12:38
Moukeddar lol, and that's an appetizer?
masak right.
Moukeddar more like an insect fight club
masak I assure you it looks very tasty in the actual PDF. 12:39
Moukeddar must be the projection 12:40
masak I regret to say that I never managed to compress this particular PDF enough to be able to upload it.
Moukeddar too many pics? 12:41
masak it became huge because the same title imeages were repeated on all the subsequent slides.
very pretty, but too large. I haven't used that presentation system since.
Moukeddar oh, isn't there a way to make it as a template
so all the title images get linked to the first one 12:42
masak I didn't find one at the time.
I did look for one.
Moukeddar most of my PDFs are <15 page
masak the problem is the way I make PDFs per page, and then glue them together...
Moukeddar masak, try to make the whole document in Word 2010 for example 12:43
masak the presentation framework for Appetizers is online, though. it's written in Perl 6: github.com/masak/talks/blob/master...esentation
Moukeddar then save as PDF
masak Moukeddar: not if I can avoid it :D
Moukeddar it's FAT ;)
masak FAT16 or FAT32? 12:44
moritz tadzik: have you solved the issue in nopaste.snit.ch/45315 ?
tadzik moritz: yeah, we got to that 12:45
Moukeddar just plain FAT :)
but it depends on the C chain :)
tadzik I also solved a few new things, will probably have something to show off in a near future
moritz great, just came back from purchasing a new bicycle 12:46
tadzik sounds good
moritz will get it on Tuesday :-9
tadzik I was looking at some bicecles yesterday, but ended up getting new shoes and new haircut :)
moritz I also got a new haircut yesterday... for free. $wife++ :-) 12:47
Moukeddar for free?
moritz yes
Moukeddar sweet
moritz ok, it cost me a kiss
Moukeddar it's getting Hot in here, i need a military hair cut
moritz, that's expensive
get a refund 12:48
tadzik a kiss is not a contract :>
Moukeddar oh it will become one
soon
masak .oO( sub kiss { PRE { ... }; POST { ... } } ) 12:49
tadzik there's a trap in my gsoc proposal. Rakudo can't really parse the delimited blocks, it can ignore them :)
masak tadzik: that's correct. 12:50
uKibab unfortunately had to w leave in the middle of John's talk
:(
Moukeddar must be the kebab 12:51
uKibab nope :-P 12:52
AlexKotov uKibab will be back tomorrow :)
uKibab tadzik, are you participating in gsoc this summer?
Moukeddar they had this google/Opensource talk here at my city
i couldn't make it 12:53
AlexKotov Changes in tomorrow's timetable for YAPC::Russia: 1.) mberends's talks removed :( 2.) masak's talk moved from today
tadzik uKibab: yes 12:54
AlexKotov event.perlrussia.org/mayperl4/sched...2011-05-15
Moukeddar: where are you now (geographically)?
Moukeddar Morocco 12:55
AlexKotov Closer than Sydney or California, but still far enough...
Moukeddar yes pretty fat 12:56
far*
i think my uncle married a russian girl :)
pmichaud good morning, #perl6 12:57
masak pmichaud! \o/
pmichaud: jnthn is mid-talk: "Inside a Compiler".
uKibab also participa 12:58
tadzik good morning pmichaud 12:59
pmichaud masak: I trust the talk is going exceedingly well, as all of jnthn++'s talks do? 13:02
masak yes, it's proceeding nicely. 13:03
AlexKotov Current slide is "Current focus" (NQP)
pmichaud Today at 2100UTC is the Parrot Developer Summit (on #parrotsketch) -- anyone have any items they wish me to share at the summit?
tadzik pmichaud: could you poke cotto about the Select PMC which was contributed, but not yet reviewed enought to be accepted? 13:04
pmichaud tadzik: will try to do that, yes. 13:05
the summit often tends to focus on bigger picture items... but that probably qualifies
tadzik I see
well, that'll open us some way to async IO 13:06
pmichaud also, I know everyone is watching jnthn's talk, but I'm still wanting to hear opinions on gist.github.com/971944 (replacing Perl 6 Mu.item with a PIR one for 8% performance improvement)
tadzik: where was Select PMC contributed?
(ticket? mailing list?)
tadzik pmichaud: tewk/select branch or something 13:08
pmichaud tadzik: it might get more attention with a trac ticket for it
tadzik pmichaud: it has a trac ticket 13:08
let me find it
pmichaud if you could .... thanks
tadzik trac.parrot.org/parrot/ticket/2034 13:09
pmichaud I can only be here for about an hour -- have a meeting irl here this morning
masak pizza! &
tadzik pmichaud: re Mu.item, I thought replacing Perl 6 with PIR was less than desired 13:09
uKibab pizza arrived? 13:10
pmichaud tadzik: I've always maintained that hotpath items (such as this) should not have to be written in P6
besides, all I'm doing is replaying
*replacing
method item() { self }
with a PIR method
.sub 'item' :method; .return (self); .end
seems minor enough for an 8% overall speed improvement 13:11
we can leave the p6 version in the source, with a comment that it's actually in builtins/Mu.pir
(p6 version commented out)
moritz +1 13:14
pmichaud someday our compiler will be smart enough that it can compile the p6 version to be on par with the PIR version. Until then, I'd like to take the speed improvement.
flussence now I'm curious, what does the P6 currently compile down to? 13:17
pmichaud well, since it's a perl 6 routine, it
creates $_, $!, and $/
(this involves creating at least 6 pmcs) 13:18
creates a return exception handler
(another pmc)
(looking) 13:19
creates a lexical 'self' PMC and binds the invocant to that 13:20
so, that's another pmc
flussence ouch, that's a lot of work for nothing :) 13:20
pmichaud it creates a Hash for %_ 13:21
(another PMC)
tadzik pmichaud: makes sense
pmichaud and in the case of sin.t, this sequence was called 45K times
meaning we created ~450K PMCs that we just threw away 13:22
flussence yow!
pmichaud (that's what is meant by "hotpath" :)
tadzik (I meant the replacing)
pmichaud (tadzik: got it :)
flussence I think I've seen a few other bits of core that are just "{ self; }", would it make sense to do the same to those? 13:23
oh, they're just $var.{$var.WHAT} 13:24
moritz flussence: only if they are called that often (I doubt it) 13:25
flussence oh well, it's only a temporary fix anyway 13:26
pmichaud github.com/pmichaud/rakbench/blob/...140653.txt # latest rakbench results 13:27
github.com/pmichaud/rakbench/blob/...140651.txt # latest rakbench results, #2 13:28
pmichaud the above do not include the Mu.item hotpath patch 13:28
gtg -- bbl
tadzik pod6 showoff: nopaste.snit.ch/45436 13:31
arnsholt Cool! 13:44
Also, for all your placeholder text needs, I recommend lipsum.lipsum.com/
=)
tadzik naah ;) 13:48
masak mmm, pizza. :) 13:57
AlexKotov Yeah, pizza was tasty!
moritz tadzik++ # POD parsing 13:59
masak pmichaud++ # groups.google.com/group/parrot-dev/...62b7fc93f6 14:01
tadzik debugging grammars is a huge pain 14:09
moritz tadzik: it is, but you'll gather experience, and will need less debugging soon 14:11
tadzik probably, yes
For now I'm stuck on paragraph blocks
jnthn pmichaud: I know PIR methods are faster. They also lack signatures, and won't play well with the metamodel stuff at all, let alone v-table indexing and stuff. 14:12
phenny jnthn: 12:20Z <masak> tell jnthn <bacek> AlexKotov, передавай ему привет после презентации :) <bacek> AlexKotov, and tell him to review my last commit to nqp :) [re commit a555ce0]
masak I can't claim that it has gotten easier over time to write large grammars. I've become more careful over time though, and prefer to depend on tests for making sure I don't regress.
tadzik but maybe I'll try to (1) write a hell of tests for the delimited blocks and (2) stick it inside Rakudo and see if that works
jnthn pmichaud: It's fine for a workaround for now but it'll only cause pain. I've wasted quite enough time on the bits of NQP still written in PIR.
pmichaud: PIR inside the method is OK-er. 14:13
masak tadzik: you might want to consider evolving grammar+tests in one isolated file, and then injecting it into Rakudo when it's ready enough.
tadzik: quicker development cycle.
tadzik masak: that's what I started doing, yes
jnthn pmichaud: An optimizer is kinda high on my list post-nom.
masak tadzik++ 14:14
tadzik Rakudo's grammar will need a bit of refactoring too, it seems
alright, tests first, parablocks later 14:15
tadzik that's an entire week 2 14:16
masak ...is this week 2? 14:17
tadzik nope, it's about -2 14:18
masak \o/
tadzik I mean I wanted to do an entire week 2 before week 1, or something like this :)
masak ok, conf over for the day :) 14:25
jnthn ПИВОООООО! \o/
masak :P
tadzik phenny: "ПИВОООООО!"?
phenny tadzik: "PIVOOOOOO!" (ru to en, translate.google.com)
masak or should I say :П
tadzik :D
masak would have been really impressed if phenny'd said "BEEEEEEER!" 14:26
tadzik oh, I forgot about the missing ingredient for debugging grammars!
jnthn
masak tadzik: love? :)
jnthn tadzik: sacrifies?
masak tadzik: jelly beans? 14:27
tadzik no! ПИВОООООО!
jnthn OOOO!
tadzik that's what helped last time with Config::INI
twice
masak (Ballmer peak)++
jnthn Always practice BDD.
masak Ballmer-Driven Development?
jnthn Beer Driven Development \o/
masak oh :)
tadzik combined with Test Driven Development that gives us Best Driven Development! 14:28
masak could also have been Водка Driven Development :P
jnthn :D
tadzik I prefer Bier :) 14:28
masak I'm so glad you didn't say "Biber".
er, Bieber* 14:29
jnthn ewww!
Why'd you have to mention...
:P
masak .oO( do not imbiebe... )
jnthn :P
let's go!
masak &
tadzik heh, who was looking for the shortest code to generate a Null PMC Access? :) 14:45
rakudo: @.a
p6eval rakudo be887a: OUTPUT«Null PMC access in find_method('a')␤ in main program body at line 2:/tmp/g2_bhzNFCM␤»
tadzik how do I create an Foo::Bar::$Baz instance in runtime? 14:48
tadzik w/o eval of course 14:48
PerlJam wonders why tadzik says "of course" :) 14:49
tadzik I'm trying to cut myself off the thought that there isn't any better way:) 14:50
dalek : 223892f | jimmy++ | docs/zh-cn/syn/S02-bits.pod:
use more descriptive words
14:54
tadzik more descriptive words? These are all squares! :P 14:57
JimmyZ :) 14:58
you may want to learn chinese? 14:59
tadzik maybe one day 15:03
tadzik how do I deal with "Illegal redeclaration of symbol 'Pod6::Block'" again? 15:04
dalek : 38aa395 | jimmy++ | docs/zh-cn/syn/S02-bits.pod:
use more descriptive words again, this makes words more smooth
15:07
tadzik rakudo: my $a = Nil; say $a.perl # expected? 15:42
p6eval rakudo be887a: OUTPUT«Any␤»
tadzik rakudo: my @a = Nil; say @a.perl # expected? 15:43
p6eval rakudo be887a: OUTPUT«[]␤»
tadzik s:2nd/expected\?// 15:43
TimToady yes, see S02:2240 15:45
tadzik right. Thank you 15:46
sorear good * #perl6 17:33
dalek ok/first-example-more-robust: e9930d3 | moritz++ | src/basics.pod:
[basics] fix duplicate invocant explanation found by PerlJam++
17:38
dalek ok: 0281365 | moritz++ | src/basics.pod:
[basics] made first example more robust wrt whitespace. Text still needs updating
17:38
ok: 346ed6a | moritz++ | src/basics.pod:
[basics] start to updated description of the new first example
ok: e83af18 | moritz++ | src/basics.pod:
[basics] further wording changes after the s/split/words/ refactor
ok: e9930d3 | moritz++ | src/basics.pod:
[basics] fix duplicate invocant explanation found by PerlJam++
ok: 3d702f6 | moritz++ | src/basics.pod:
Merge branch 'first-example-more-robust'
17:39
masak lol hi! 17:50
tadzik lol hi masak! 17:51
masak lol 17:52
tadzik if you're adventure-hungry, gsocmess got some funny updates recently
masak thanks; now is a good time for me to have a peek.
tadzik cool
jnthn evenin'
sorear hi masak! 17:53
masak ooh -- "Add some meat." -- Pod with meat on it :)
tadzik evenin' jnthn'
masak evening' sorear'
jnthn masak: I think you took the hungry bit too literally :P 17:56
masak jnthn: hunger is not to be trifled with! 17:59
masak makes Pac Man motions
jnthn smiles cherrily
tadzik writes FotC inspired tests 18:01
cognominal jnthn, masak, mberends : osdc.fr is tentatively scheduled in September 2011, Thursday 22 to Saturday 24. It would be part of a larger event and hosted Avenue Georges V (difficullt to find a more classy place in Paris which will change from the seedy area around Cité des Sciences). Still free and open. 18:08
mberends \o/ 18:09
cognominal beers will be probably way more expensive in the area too :( 18:10
jnthn cognominal: OK. I'm still looking at FPW too
cognominal nice
jnthn cognominal: They'll probably still be cheaper than in Swedne :P
mberends jnthn: travel via .nl if you like :)
jnthn mberends: Canny do that on the way there - I'll be coming straight from teaching. 18:11
cognominal I remember English guys complaning about the price of beers in Paris, in yapc 2003.
jnthn But on the way back maybe ;)
mberends :)
cognominal That would help organizers if you submit your talks at journeesperl.fr/fpw2011/ 18:12
sure enough, anyone on this channel is invited to come and talk in our conferences… 18:13
mberends is preparing a submission 18:15
cognominal beer is expensive but Chartreuse is free as usual :) 18:16
moritz tadzik: I get a parse error in podclasses.pl line 14 18:17
cognominal "for the happy few" would say Stendhal en Français dans le texte.
moritz tadzik: Whitespace character is not allowed as a delimiter at line 14, near " nothing s
#= nothing special. BOARing!
tadzik moritz: yeah, apparently Rakudo does not like #= anymore
moritz: I got rid of that in the Real Code
moritz tadzik: so I should be running the t/ files instead? 18:19
tadzik moritz: ufo && make test should do
moritz tadzik++ # passing tests 18:21
Tene cognominal: any chance fpw would fund my travel to give a presentation there?
tadzik moritz: I have some local ones that don't :)
moritz failing tests are great too :-) 18:22
tadzik they're even better :)
moritz but having *some* tests pass is way better than only failing tests 18:23
tadzik yes 18:24
I just added some new, both passing and failing. 18:25
moritz: could you give me a hand with prototokens? 18:30
cognominal Tene, I am writing a mail to the fpw oganizers but it would be good that you submit your potential talks with the mention you need funding. 18:32
tadzik moritz: nvm 18:34
dalek kudo/nom: 79d1ccc | jnthn++ | src/Perl6/Metamodel/BOOTSTRAP.pm:
Update bootstrap to use stub syntax so that symbols end up installed in the serialization context properly.
18:47
kudo/nom: f0d615d | jnthn++ | src/CORE.setting/stubs.pm:
Stuff in the setting should be my-scoped.
masak sleeps &
tadzik what time is it in Russia? 18:48
jnthn tadzik: Getting towards 11pm 18:49
tadzik: And masak stayed up slide hacking last night ;)
colomon reminds himself to get his presentation for YAPC::NA done *before* leaving for the conference. 18:50
tadzik (:
colomon That way I can stay up drinking instead. ;)
colomon is also hoping there might be a chance for tunes... there's at least one world-class Irish guitarist living in Asheville. 18:52
jnthn sleep & 19:07
tadzik rakudo: say Seq.new(1, 2, 3).perl.eval.WHAT 19:20
p6eval rakudo be887a: OUTPUT«Parcel()␤»
tadzik intentional?
moritz probably not really 19:23
pmichaud rakudo: say Seq.new(1,2,3)
p6eval rakudo be887a: OUTPUT«123␤»
pmichaud rakudo: say Seq.new(1,2,3).perl
p6eval rakudo be887a: OUTPUT«(1, 2, 3)␤»
pmichaud that's likely why.
rakudo: say Seq.new(1,2,3).perl.eval.item.WHAT
p6eval rakudo be887a: OUTPUT«Seq()␤»
pmichaud that works, though :-)
tadzik I'm debugging this for like half an hour now. In .perl it looks like a Parcel, and I'm wondering why doesn't it flatten 19:25
sorear .perl is broken by design for Seq/Parcel/List/Array
one of the reasons why I'd like to get away from the notion of perl/eval dualism 19:26
who invented .perl, and were they asleep in ~1997 when the Haskell community made the same mistake?
tadzik I don't really like the dozen types of lists
colomon or we need something else which is a dual with eval? ie a pretty-printer and a serializer, and never the twain shall meet? 19:27
sorear colomon: using eval() as a deserializer is fundamentally stupid 19:28
colomon yeah, I thought that as soon as I typed it. :)
(well, as soon as I hit enter, anyway.) 19:29
moritz btw perl 5.14 release is very soon 19:30
tadzik 72 min ago Jesse Vincent Remove RC3 marker 19:31
it's now /o\
colomon sorear: so we have, what, three distinctly different concepts all trying to squeeze into the .perl / .eval box?
tadzik and we won't be using package Foo {} syntax anyway, because everyone will be obliged to keep 5.8 compatibility 19:32
sorear colomon: I'd say.
tadzik All tests successful. 19:36
I almost stopped believing this is possible :)
pmichaud I've remarked numerous times that I disagree with .perl's current definition, with little effect. 19:45
(definition as given by spec as well as implementation)
.perl lacks item/list awareness
colomon www.johndcook.com/blog/2011/05/13/t...-practice/ 19:55
moritz .perl is specced to imply .item context 20:00
pmichaud sure, but the thing it outputs might not be .item
moritz that's an implementation bug 20:01
pmichaud or, put another way, I believe the spec says that if you evaluate the result of .perl in item context, you get the same result as what you put in
that's certainly what happens in the case of .Seq
rakudo: say Seq.new(1,2,3).perl.eval.item.WHAT
p6eval rakudo be887a: OUTPUT«Seq()␤»
plobsing_ phenny: tell jnthn I have updated the zavolaj patch: nopaste.snit.ch/45500. it still doesn't like something about the references. 20:12
phenny plobsing_: I'll pass that on when jnthn is around.
pmichaud if anyone has time to quickly review my pds message for suggestions: gist.github.com/972609 20:40
I'll post it in about 5 mins
(it's a draft now)
tadzik pmichaud: garbage collection => better/faster garbage collection?
Parrot did have GC back then ) 20:41
pmichaud "improved"
well, Parrot has all of those, really, except the last 20:42
we just needed more still :)
tadzik (:
pmichaud: are you about to push your Mu.item change?
pmichaud tadzik: probably after PDS 20:43
right now my focus is there
Tene pmichaud: the phrasing about "we don't mind breakage ... to get them fixed or avoided" seems a bit off, in that if you're trying to avoid or fix breakage, then you do mind breakage? 20:44
pmichaud the fact that breakages occur is expected 20:45
that doesn't frustrate us (much) 20:46
Tene I don't have any recommendations; it just took me a few readings to understand what I think you meant there.
pmichaud if we could say "oh, this broke" and have a parrot person simply say "oops, we'll revert or otherwise help you out", that'd be great.
instead, we end up arguing for hours about why the breakage is absolutely necessary or that rakudo shouldn't be doing what it does or that rakudo shouldn't be targeting Parrot HEAD in the first place 20:47
the initial arguments rarely seem to listen to what we're saying, but instead are knee-jerk "you're wrong" sorts of responses. 20:48
I don't know how to improve that sentence to make that clearer, either.
Tene Perhaps "herculean effort to get necessary support from parrot"? 20:49
pmichaud too vague
and also not what I'm saying
Tene nods.
pmichaud it's not so much that it takes so long to get support, it's that we have to wade through a ton of anti-support first
Tene 'k, probably good enough.
pmichaud i.e., things that actively work against us
pmichaud "We don't mind the existence of breakages, we mind the 20:51
absolutely herculean efforts we have to go through with various
Parrot developers to get them to stop denying there's an issue
(or that they've already addressed it) so that a solution can be found. "
better ?
I'm going with that. 20:52
moritz news.perlfoundation.org/2011/05/perl-514.html 20:53
tadzik Quick, reddit it first! :P
flussence 5.14! :D 20:54
tadzik reddited it first
www.perl.org/get.html still lists 5.12.3 as the latest stable though 20:56
sorear good * #perl6 23:27
pmichaud: I would like to talk to you about .perl
pmichaud sorear: I'm hoping to take a break soon (been in PDS channel for 2.5 hrs) but I'll gladly take questions now :) 23:28
(or comments)
pmichaud I'd only start by saying that .perl in rakudo is its best approximation of what I think to be a spec that needs some rethink/updating 23:28
i.e., by no means will I be defining what rakudo currently does with respect to what it *ought* to do :) 23:29
s/defining/defending/ # gah, can't type! 23:30
sorear pmichaud: I don't like the spec at all; I want to know what you'd like to see 23:31
pmichaud I think it needs to be more dwimmy
in other words, when someone uses .perl, they expect to see Perl code that would reproduce the thing they're .perling
I think we should stay true to that, even down to the notion of "this is an item" versus "this is a non-item" 23:32
sorear Do you think that @array.perl should be different from $(@array).perl? 23:33
my @foo = 1,2,3; @foo.perl; # @([1, 2, 3]) ?
pmichaud I think that @foo.perl probably should be either (1,2,3) or @([1,2,3]) 23:43
mberends did we not come up with some cases a few months ago that even raised doubts about whether a .perl could ever be universal? Private object members, for example { has $!x; }
pmichaud depends on the level of fidelity we need
mberends: I'm willing to forego universal. I'd like "unsurprising" though.
right now lots of people get surprised by .perl
sorear: I can argue it either way, yes. I don't like that Array always becomes [1,2,3] though 23:44
sorear pmichaud: ignore the spec- I want to know how you think to do this right 23:45
pmichaud the more interesting case is something like: my @a = 1,2,3; (5, @a, 6).perl 23:45
sorear (5, @([1,2,3]), 6)
pmichaud right
that would be fine with me
it preserves the knowledge of the array, but also flattens
whereas: 23:46
(5, @a.item, 6).perl # (5, [1,2,3], 6)
or
my $a = [1,2,3]; (5, $a, 6).perl # (5, [1,2,3], 6) 23:47
I think that making .perl item-aware would remove a good majority of the "Huh?" moments we currently get (more) 23:48
sorear sounds easy enough to do 23:49
I'll do that
pmichaud also, I think it would help people understand the difference between item and list context
if you can *see* the difference in .perl, it makes it easier to understand what's going on
sorear +1
pmichaud (there might be cases that are more confusion as a result of the change, I admit.)
sorear @([]) is a bit ugly, is all I'll say
pmichaud it could be .list
sorear rakudo: say @([1])
p6eval rakudo be887a: OUTPUT«1␤»
pmichaud [1,2,3].list
or even list([1,2,3]) 23:50
sorear rakudo does @() now?
pmichaud I don't think it does... but it might
rakudo: say @([1,2,3]).elems
p6eval rakudo be887a: OUTPUT«3␤»
pmichaud hmmmm
rakudo: my @a = (1, @([2,3,4]), 5); say @a.elems
p6eval rakudo be887a: OUTPUT«5␤» 23:51
pmichaud looks like "yes"
oh, I think rakudo doesn't handle @$a yet
it knows the paren form, but not the non-paren prefix form
rakudo: my $a = [1,2,3]; say (1, @$a, 3).elems
p6eval rakudo be887a: OUTPUT«===SORRY!===␤Non-declarative sigil is missing its name at line 22, near "@$a, 3).el"␤»
pmichaud right, that's the one it doesn't know yet.
anyway, I think you and I are in agreement on how .perl should start to change. I'll be happy to help you make it happen :) 23:52
"Perl 6 implementors! Rise up and throw off the chains of your tormentor!" 23:53
sorear ...help?
pmichaud or something like that
sorear tehehe.
pmichaud anyway, I need a break from irc -- bbl