Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2010-02-18

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:00 quietfanatic rakudo: say 3
00:00 p6eval rakudo 324f56: OUTPUT«3␤»
00:00 quietfanatic huh
00:01 quietfanatic oh nvm
00:02 dalek rakudo/master: e7a395b | jonathan++ | t/spectest.data:
00:02 dalek rakudo/master: Add S06-signature/tree-node-parameters.t to spectest.data.
00:02 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/e​7a395b163f1182c0eba8055edf4e55d85343a05
00:02 dalek rakudo/master: 5d43a30 | jonathan++ | docs/ROADMAP:
00:02 dalek rakudo/master: Move unpacking arguments to completed section of ROADMAP.
00:02 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/5​d43a30b9b57638902fcc1a9eff8ac66fb467da2
00:03 aindilis joined #perl6
00:04 lue hello jnthn.
00:04 lue (a lot of things have been timing out today,weird)
00:04 jnthn hi lue
00:04 jnthn Yeah, it happens now and then.
00:06 lue ...oops. I missed the ping-pong ball. What's gonna happen? o.o
00:11 masak joined #perl6
00:12 masak rakudo: say (4..^5).perl # should be 4 3 2 1 0 1 2 3 4, according to TimToady
00:12 phenny masak: 17 Feb 22:04Z <TimToady> tell masak r29770 answers your take question; resumably exceptions don't trigger LEAVE blocks
00:12 lue Hello masak! o/
00:12 p6eval rakudo 5d43a3: OUTPUT«4..^5␤»
00:12 masak heh :)
00:12 masak lue: hi! :)
00:12 masak rakudo: say (4...^5).perl # should be 4 3 2 1 0 1 2 3 4, according to TimToady
00:12 p6eval rakudo 5d43a3: OUTPUT«Method 'perl' not found for invocant of class 'GatherIterator'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
00:13 masak ooh!
00:13 * masak submits rakudobug
00:13 masak rakudo: my @a = (4...^5); say @a.perl # should be 4 3 2 1 0 1 2 3 4, according to TimToady
00:13 p6eval rakudo 5d43a3: OUTPUT«[4, 3, 2, 1]␤»
00:13 * masak submits rakudobug
00:13 masak two flies with one stone! nice!
00:14 masak s/flies/birds/ # wrong language
00:14 diakopter birds > flies
00:14 masak diakopter: hello.
00:14 lue More like two grains of sand in one Perl :)
00:14 jnthn lolitsmasak
00:14 diakopter could not find nonexistent sub &hello
00:15 masak I'm onlt here to turn backlogs into rakudobugs.
00:15 masak s/t/y/
00:15 masak then I'm off to sleep.
00:15 diakopter yurn those bugs
00:15 diakopter oh, onlt
00:16 masak you can look forward to my '1024 Rakudobugs' talk in 2011 :)
00:16 masak or 2012, depends on how many bugs we turn up.
00:17 diakopter 2048, too
00:17 masak diakopter: my guess is that the second 1024 will be *much* tougher.
00:17 masak but yes, sure. I'll give a '2048 Rakudobugs' talk, if I ever amass that many rakudobugs.
00:18 jnthn rakudo: Rat.^add_method('lol', method ($what) { say "lol$what" }); 3/4.lol('cat')
00:18 p6eval rakudo 5d43a3: OUTPUT«lolcat␤»
00:18 diakopter by then it will be "second system syndrome done even better"
00:18 diakopter masak: I meant 2048 A.D.
00:18 jnthn \o/
00:19 masak diakopter: that was less than clear. even knowing you did, I have trouble mapping your ', too' to something.
00:19 diakopter rakudo: Rat.^add_method('lol', method ($what) { say "lol$what" }).lol('cat')
00:19 p6eval rakudo 5d43a3: OUTPUT«Null PMC access in find_method('lol')␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
00:19 * masak submits rakudobug
00:19 jnthn fwiw, that's not supposed to work. :-)
00:19 jnthn (shouldn't npmca, though)
00:19 masak bla bla bla Null PMC access bla bla... yes
00:20 masak rakudo: Rat.^add_method('x', method () {}).x
00:20 p6eval rakudo 5d43a3: OUTPUT«Null PMC access in find_method('x')␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
00:21 jnthn masak: It's just that it's a method written in PIR with no .return
00:21 masak :)
00:21 jnthn We either need (a) a blanket solution or (b) to go and find/tweak each method/sub that does that
00:21 * masak reads that as "It's just that it's a [black box]"
00:21 jnthn Or ot write less in PIR :-)
00:21 jnthn *to
00:22 jnthn No, it's quite hackable on. :-)
00:22 masak jnthn: hey, I don't tell you the specifics of bug submitting! :P
00:22 masak sjohnson: thanks. it'll wear off soon, though. :/
00:22 sjohnson :)
00:22 jnthn masak: :-P
00:22 lue How to submit a bug:
00:22 jnthn 1) summon masak
00:22 lue 1) Find HypnoGlasses
00:22 lue 2) Find Bug
00:23 lue 3) Submit Bug (to your will)
00:23 masak you make it sound so sterile and clinical.
00:23 masak it's an Art, see.
00:23 jnthn At least you get HypnoGlasses.
00:23 * jnthn ponders writing a quick blog post
00:23 Juerd joined #perl6
00:23 Juerd rehi
00:24 jnthn Juerd: ohhai
00:24 lue it's a pun.
00:24 sjohnson so many familiar faces all at once!
00:24 Juerd We had lots of packetloss earlier today. Replacing the fiber patch didn't help, replacing the SFP didn't help, replacing the switch did help.
00:24 masak lue: I've submitted puns as rakudobugs, too :)
00:24 Juerd Sorry for the outages :)
00:24 masak rakudo: (1..2).perl
00:24 p6eval rakudo 5d43a3:  ( no output )
00:25 masak rakudo: (1..^3).perl
00:25 p6eval rakudo 5d43a3:  ( no output )
00:25 lue Bolton is a pun as well :D
00:25 jnthn Juerd++ # thanks for fixing!
00:25 masak rakudo: (1...2).perl
00:25 p6eval rakudo 5d43a3: OUTPUT«Method 'perl' not found for invocant of class 'GatherIterator'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
00:27 diakopter rakudo: //\//
00:27 p6eval rakudo 5d43a3: OUTPUT«Null regex not allowed at line 11, near "\\//"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
00:27 masak lue: maybe bolt on the hypnoglasses, that way one doesn't have to find them each time.
00:28 masak diakopter: that is a null regex, you know.
00:28 diakopter which one
00:28 jnthn std: //\//
00:28 masak that last one.
00:28 lue masak: oh no, no, its... a palindrome!
00:28 p6eval std 29773: OUTPUT«[31m===[0mSORRY![31m===[0m␤Null regex not allowed at /tmp/T98DvESUDL line 1:␤------> [32m//[33m⏏[31m\//[0m␤FAILED 00:01 105m␤»
00:29 jnthn \o/
00:29 masak lue: 'bolton' is *not* a palindrome.
00:29 jnthn notlob
00:29 lue masak: you never see the Monty Python dead parrot sketch, have you?
00:30 masak sure I did.
00:30 masak oh :)
00:30 lue "The palindrome of Bolton is Notlob!" said John Cleese
00:30 masak ok. fair enough.
00:30 TimToady std: say "foo" ~~ / <+<alpha> - [A..Za..z] >+ /
00:30 p6eval std 29773: OUTPUT«[31m===[0mSORRY![31m===[0m␤Unrecognized regex assertion at /tmp/i8E3BA11Rb line 1:␤------> [32msay "foo" ~~ / <+[33m⏏[31m<alpha> - [A..Za..z] >+ /[0m␤    expecting character class element␤FAILED 00:01 107m␤»
00:30 TimToady std: say "foo" ~~ / <+alpha - [A..Za..z] >+ /
00:30 p6eval std 29773: OUTPUT«ok 00:01 106m␤»
00:30 TimToady pausenclown: ^^^
00:31 masak rakudo: sub is_palindrome($s) { $s eq $s.flip }; say is_palindrome('bolton') ?? "YEA" !! "NO WAI"
00:31 TimToady rakudo: say "foo" ~~ / <+alpha - [A..Za..z] >+ /
00:31 p6eval rakudo 5d43a3: OUTPUT«NO WAI␤»
00:31 p6eval rakudo 5d43a3: OUTPUT«␤»
00:31 TimToady rakudo: say "f00" ~~ / <+alpha - [A..Za..z] >+ /
00:31 p6eval rakudo 5d43a3: OUTPUT«␤»
00:31 diakopter rakudo: say "___" ~~ / <+alpha - [A..Za..z] >+ /
00:31 p6eval rakudo 5d43a3: OUTPUT«___␤»
00:32 TimToady rakudo: say "föö" ~~ / <+alpha - [A..Za..z] >+ /
00:32 p6eval rakudo 5d43a3: OUTPUT«öö␤»
00:32 masak föö?
00:32 jnthn rakudo: say "fl" ~~ / <+alpha - [A..Za..z] >+ /
00:32 p6eval rakudo 5d43a3: OUTPUT«␤»
00:32 jnthn gah
00:32 masak that's like the Swedish version of 'foo'.
00:32 TimToady masak: pronounced the same as 'feh'?
00:32 jnthn rakudo: say "öl" ~~ / <+alpha - [A..Za..z] >+ /
00:32 p6eval rakudo 5d43a3: OUTPUT«ö␤»
00:32 jnthn .oO( why yes, that is the only Swedish word I know with ö in it )
00:32 masak TimToady: no, more like 'fur', actually.
00:33 diakopter or 'pho'
00:33 lue rakudo: sub is_palindrome($s) {$s eq ($s.flip | "notlob")}; say is_palindrome('bolton') ?? "YEA" !! "NO WAI"
00:33 p6eval rakudo 5d43a3: OUTPUT«Method 'Str' not found for invocant of class 'Junction'␤current instr.: 'perl6;Mu;' pc -1 ((unknown file):-1)␤»
00:33 lue :/
00:33 masak lue: nice try.
00:33 TimToady I was thinking Deutsch, not Svensk
00:33 masak 'Svenska' for the language.
00:34 TimToady ah
00:34 diakopter rakudo: say try try try die die die
00:34 p6eval rakudo 5d43a3: OUTPUT«Null PMC access in type()␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
00:34 masak (since the full phrase is 'svenska språket')
00:34 masak diakopter++
00:34 * masak submits rakuodbug
00:34 masak at this rate I'll never get back to bed.
00:35 jnthn Getting up to submit bugar? That's dedication!
00:35 masak better believe it.
00:35 masak ('buggar')
00:35 jnthn aww
00:36 * lue considers calling it rakuda-do just to bug everyone
00:36 jnthn masak: bugg singular?
00:36 masak yes.
00:36 jnthn Ah, phew. :-)
00:36 jnthn Not scary pluralization fun. :-)
00:36 masak not in this case.
00:38 * jnthn parsed that as grammatical case at first
00:38 masak maybe that's what I meant... :P
00:38 TimToady if you want to bug us you'd have to call it chouchou-do
00:39 masak whatever that is, it sounds cute.
00:39 masak rakudo: try die
00:39 p6eval rakudo 5d43a3:  ( no output )
00:39 masak rakudo: try try die
00:39 p6eval rakudo 5d43a3:  ( no output )
00:39 masak rakudo: try try die die
00:39 p6eval rakudo 5d43a3:  ( no output )
00:39 lue alpha: die
00:39 TimToady 'course, that's not to say that a rakuda doesn't have bugs...
00:39 p6eval alpha 30e0ed: OUTPUT«No applicable candidates found to dispatch to for 'die'␤in Main (file <unknown>, line <unknown>)␤»
00:39 masak rakudo: say try die
00:39 p6eval rakudo 5d43a3: OUTPUT«Null PMC access in type()␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
00:39 masak ah.
00:40 TimToady masak: Way of the Butterfly
00:40 TimToady well, actually chouchou-dou
00:41 TimToady chōchōdō
00:41 masak 蝴蝶道 in Mandarin.
00:42 TimToady yeah, but they pronounce it wrong  :)
00:42 masak uhn.
00:43 masak rakudo: say try {}
00:43 p6eval rakudo 5d43a3: OUTPUT«Null PMC access in type()␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
00:43 jnthn We should really try to do better with that construct. :-/
00:43 masak rakudo: my $a = try {}
00:43 p6eval rakudo 5d43a3: OUTPUT«Null PMC access in can()␤current instr.: '&infix:<=>' pc 16112 (src/builtins/Junction.pir:207)␤»
00:43 TimToady 蝶蝶道 in Japanese
00:43 jnthn Yeah, it's all the same underlying bug. :-|
00:43 masak jnthn: just checking.
00:44 TimToady also just 蝶道
00:44 masak (and had I not realized it's all the same underlying bug, you'd have seen more '* masak submits rakudobug' fly by)
00:44 TimToady it's flies now is it?
00:45 masak sorry, birds.
00:45 diakopter albatrosses
00:45 diakopter or macaws
00:45 TimToady you can say that again
00:46 diakopter with a lodestone, even
00:47 masak rakudo: say 'albatrosses. or macaws.'.comb.Bag<a>
00:47 p6eval rakudo 5d43a3: OUTPUT«Method 'Bag' not found for invocant of class 'GatherIterator'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
00:47 masak rakudo: Bag
00:47 p6eval rakudo 5d43a3: OUTPUT«Could not find non-existent sub &Bag␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
00:47 * masak makes note 'implement Bag'
00:48 lue aɪ θeɪŋk θɪs ɪs ɑːnɔɪɪŋ
00:48 masak lue: I agree. it is.
00:48 masak but it's scary that I can read it. :/
00:49 lue masak: It took me forever to write that. How do you...?
00:49 diakopter rakudo: .say for $_
00:49 p6eval rakudo 5d43a3: OUTPUT«Missing block at line 11, near ""␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
00:49 masak lue: permanent brain damage, I suppose.
00:49 diakopter std: .say for $_
00:49 p6eval std 29773: OUTPUT«ok 00:01 106m␤»
00:49 masak lue: also, I'm quite tired. that helps.
00:49 * masak submits rakuodbug
00:49 masak diakopter: oh, for...! :)
00:49 diakopter ..how wide and how deep..
00:50 diakopter what's this new rakuodbug
00:50 masak diakopter: the one you just p6eval'd?
00:51 masak with '.say for $_'?
00:51 * diakopter just got '<@TimToady> you can say that again'
00:51 masak oh wait. I don't need to submit that.
00:51 * masak stands down
00:51 masak statement_mod_loop for are known to be TODO.
00:51 diakopter oh
00:52 masak and the spectests will catch them.
00:52 lue IPA is a great way to `encrypt' messages (like ROT13 back in the day).
00:52 lue The translator (for english) would be hell to program, though. :D
00:54 Juerd jnthn: Haven't actually done anything myself, except watch and provide coffee to the externel engineer who did fix it
01:07 masak ok, good night, people. o/
01:08 lue good night, masak o/
01:10 ihrd joined #perl6
01:10 ihrd left #perl6
01:18 lichtkind good nicht
01:19 * jnthn -> sleep, ngiht
01:19 jnthn *night
01:20 lue g'night o/
01:20 lue or is it this hand: \o
02:27 rv2733 joined #perl6
02:55 dalek rakudo/master: 351d3d8 | pmichaud++ | docs/spectest-progress.csv:
02:55 dalek rakudo/master: spectest-progress.csv update: 172 files, 4816 (29.1% of 16525) pass, 1 fail
02:55 dalek rakudo/master: Failure summary:
02:55 dalek rakudo/master: S29-conversions/ord_and_chr.rakudo aborted 1 test(s)
02:55 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/3​51d3d8e8f195dd3eebe15375f25efff56192a3d
03:20 gabiruh_ joined #perl6
03:21 cosimo_ joined #perl6
03:27 jaldhar joined #perl6
03:32 maerline joined #perl6
03:35 dalek rakudo/master: 1a05eae | pmichaud++ | docs/announce/2010.02:
03:35 dalek rakudo/master: Add draft 2010.02 release announcement.
03:35 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/1​a05eae9da341e54e4b4f45ccdbd7d9dbe728bbd
03:35 dalek rakudo/master: 9be7890 | pmichaud++ | docs/release_guide.pod:
03:35 dalek rakudo/master: Update release guide to note that we now use dots instead of hyphens
03:35 dalek rakudo/master: for release identifiers.
03:35 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/9​be7890bcfdf885f4b9e0849eadaf26de1fd80d6
03:38 azca joined #perl6
03:51 redicaps joined #perl6
03:53 azca hello
04:02 colomon hello!
04:11 azca how are you?
04:11 azca so is there a timeframe for when perl6 will come out?
04:27 colomon The regular monthly release is tomorrow.
04:27 colomon There is intended to be a major release two months from now, Rakudo *.
04:33 dalek rakudo/master: b4824f3 | (Solomon Foster)++ | t/spectest.data:
04:33 dalek rakudo/master: Turn on trig tests.
04:33 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/b​4824f3a4cca738dec16a5fea467e1a1471c88be
04:37 azca does major release mean the final release (i.e. not beta)
04:38 colomon no.
04:39 colomon We haven't really been thinking in alpha/beta terms, but this release is intended to be more of a stepping stone.
04:39 azca will perl6 interpreter be compatible at all with perl5 code?
04:39 colomon a point where people will be able to jump on and do useful things with it, but by no means "done".
04:40 Trashlord joined #perl6
04:40 colomon None of the current p6 implementations are working on p5 compatibility at all at the moment.
04:41 azca ok
04:41 azca is there a link to some info on difference (or new features) of perl6 versus perl5? or is it still very early in development phase?
04:42 colomon It's planned to come along eventually, but I would suspect p5 support in p6 is a couple of years off.
04:42 colomon Hmmm... I'm not aware of a summary page.
04:42 colomon http://perl6.org has a lot of info.
04:43 colomon http://perlgeek.de/en/article/5-to-6
04:43 colomon http://perl6advent.wordpress.com/2​009/12/01/perl-6-advent-calendar/ gives a lot of examples of cool stuff in Perl 6.
04:44 colomon I need to be getting to bed.  Good luck!
04:45 azca cool thank you
04:45 azca I will check those out
04:47 needlinux joined #perl6
04:54 kcwu joined #perl6
04:58 kcwu joined #perl6
05:02 arlinius joined #perl6
05:03 lue joined #perl6
05:06 lue please respond if you are of existence.
05:07 Trashlord define existence
05:07 lue thank you. Anyone else?
05:10 lue I really would like to ping-timeout everyone who stays logged on w/o so much as marking themselves as away.
05:11 lue I'm guessing ≈90% of the logged in people (read: PEOPLE, not bots) are not here.
05:14 kcwu joined #perl6
05:51 lue left #perl6
05:58 TimToady my existence comes and goes randomly
06:04 s1n lue seems harsh, i frequently lurk, mainly because i don't have much to add but enjoy the conversations
06:14 bkeeler I'd forgotten about the /away command
06:26 vamped no, it's just that the rest of us are pondering existence
06:53 kaare joined #perl6
06:55 [synth] joined #perl6
07:13 uniejo joined #perl6
07:14 Su-Shee joined #perl6
07:14 Su-Shee good morning
07:21 cjk101010 joined #perl6
07:23 am0c joined #perl6
07:28 tusooa__ joined #perl6
07:28 tusooa__ left #perl6
07:30 Su-Shee joined #perl6
07:46 sjohnson hi
07:51 iblechbot joined #perl6
08:13 [particle] joined #perl6
08:17 mathw Good localtime, #perl6
08:20 vamped o/
08:24 clausi joined #perl6
08:50 mssm joined #perl6
08:52 moritz_ good morning
08:54 dakkar joined #perl6
09:01 mathw hai moritz_
09:02 * moritz_ wonders why the charts on rakudo.de are not updated
09:04 moritz_ ah, 'git pull' was reporting that I was in the middle of a conflicting merge. Tough beans.
09:15 mathw :(
09:25 jferrero joined #perl6
09:36 Woody2143 joined #perl6
09:36 Schwern joined #perl6
10:05 crazed joined #perl6
10:14 johnz joined #perl6
10:22 masak joined #perl6
10:22 masak oh hai, #perl6.
10:23 moritz_ oh hai
10:26 masak ooh, jnthnhazblogged!
10:26 orafu joined #perl6
10:26 moritz_ urlz?
10:26 masak http://use.perl.org/~Jonath​anWorthington/journal/40190
10:30 moritz_ kthx
10:32 masak np
10:53 masak by some cosmic coincidence, the most vehement Perl 6 haters on Twitter often turn out to be Python people.
10:55 masak by another cosmic coincidence, those who dislike Camelia at first sight are invariably men, and those who like Camelia at first sight are very often women.
11:00 jnthn oh hai
11:00 masak o/
11:00 masak jnthn++ # nice blog post
11:00 jnthn ooh...my blog post had a noticed!
11:00 moritz_ and at least two readers :-)
11:01 masak three, if you count the Python Twitterer :)
11:02 masak he said this: http://twitter.com/robotpony/status/9265036226 -- I asked this: http://twitter.com/carlmasak/status/9278573748 -- no reply yet.
11:03 masak 'debates' over Twitter, or any situation where two people differ in opinion, don't have a high chance in changing anyone's mind. but it's still an interesting exercise to try to be coherent in 140 chars.
11:03 gfx joined #perl6
11:04 masak in this case, he will reply 'no, my criticism is that they rewrite all the time without shipping anything'
11:05 masak and I will say 'Rakudo has had 25 releases, and will have its 26th release today'
11:05 jnthn I love how people with no experience working on a Perl 6 compiler seem to think they have something wrothwhile to say about how to go about developing one.
11:05 masak and he will say 'no, I mean a REAL release, one where you ship production-ready stuff, like Python 3000'
11:05 xalbo joined #perl6
11:06 masak jnthn: perhaps the general rule is that the farther away you're standing from a given effort, the easier and more obvious it seems.
11:06 jnthn :-)
11:07 meppl joined #perl6
11:09 masak that would explain the vehemence of the Python people, too. whereas regular people are just an indeterminate distance from Perl and Perl 6, Python people are in a culture where being far away from Perl is culturally rewarded.
11:10 mathw It is interesting how the culture has lined up as showing Perl and Python worlds as being very different
11:12 jnthn It's convenient how we chose to ignore the point in my post that all of the changes were in order to do things on the roadmap to a release.
11:12 mathw I guess from my perspective, I've watched this happen so I just know why all this was done
11:12 mathw I have no need to even think about the reasoning
11:12 jnthn s/we/he
11:13 masak jnthn: yeah, why you have to rewrite all the time so you can reach the promised deliverables? it makes no sense! :P
11:13 mathw Of course on the other side of things, when you're watching the camel train from the top of a nearby mountain through a dirty telescope, you're going to miss things
11:13 mathw jnthn: why can't you just write it properly the first time? What kind of stupid amateur coder are you?
11:14 mathw *cough* Python's OO support *cough*
11:14 mathw hey I'm arguing with an imaginary version of myself
11:14 mathw it must be Thursday
11:17 mathw What's best is knowing that Rakudo is moving in the right direction, and that you're not afraid to take a regression in order to get the core set up to move on.
11:17 mathw I wish we could do more of that at work.
11:17 jnthn I decided quite a while ago that a bredth-first approach was, by and large, a good way to approach Perl 6 implementation.
11:18 mathw breadth-first? I'm not sure how to envisage that on a language implementation
11:20 moritz_ many features first
11:20 jnthn mathw: Kinda like, "Get a first cut of many language features, then incrementally improve them/fill them out/make them more complete"
11:20 jnthn As opposed to "focus on getting the whole of one feature done first"
11:20 mathw Ah yes, that way
11:20 mathw It helps you make sure you have room for all the stuff you've not done yet
11:21 mathw Without having to spend a year or two designing the system on paper
11:21 jnthn Well, more important to me was that it meant it was a shorter time before we had something people could actually start to use.
11:21 mathw that's important too
11:21 mathw especially when you're working on a language spec that's still in flux and untested in practical use
11:22 mathw the same value which we got from Pugs
11:22 colomon o/
11:22 jnthn Yes, IIRC Pugs also went through a process of quite a few refactors.
11:23 mathw yes I believe it did
11:24 mathw I always wanted to get involved, but never quite got round to it
11:24 mathw would've been a good place to play with my Haskell knowledge though
11:24 colomon has anyone tried running spectest since I turned ontrig last night?
11:25 colomon it made my machine crawl when I ran it last night....
11:25 jnthn colomon: not yet
11:26 pmichaud joined #perl6
11:28 dalek rakudo/master: 303323e | pmichaud++ | docs/spectest-progress.csv:
11:28 dalek rakudo/master: spectest-progress.csv update: 194 files, 24167 (67.6% of 35727) pass, 0 fail
11:28 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/3​03323eabd65b9ebb9bab82caaf459aac979294a
11:28 jnthn 'tis early for a pmichaud! :-)
11:28 colomon I guess pmichaud has run it.  :)
11:28 mberends_ joined #perl6
11:28 jnthn colomon: running it here.
11:29 * moritz_ also run it
11:29 pmichaud yes, pmichaud up early today
11:29 pmichaud but may head back to bed shortly
11:29 mathw 24,167 pass? that's not bad
11:31 jnthn Yeah :-)
11:31 jnthn Lots of trig tets
11:31 jnthn *tests
11:31 masak lunch &
11:31 jnthn pmichaud: Did you re-enable the \c[...] ones too?
11:31 * moritz_ did
11:32 mathw \o/
11:32 mathw this is quite an exciting release coming up
11:32 moritz_ at least some of them - not sure
11:32 pmichaud jnthn: I didn't re-enable the \c[...] ones yet
11:32 moritz_ (charts on rakudo.de are updated btw)
11:32 pmichaud we can probably re-enable some of S05-mass, though.
11:33 moritz_ d5d58cc77e5ec2cd433012585f331455a4d7a6d3 enabled char-by-name.t
11:34 jnthn pmichaud: Wonder fi there's a quick fix for
11:34 jnthn rakudo: say 'foo' ~~ /o/; # works
11:34 p6eval rakudo b4824f: OUTPUT«o␤»
11:34 jnthn rakudo: say 'foo' !~~ /o/; # fails
11:34 p6eval rakudo b4824f: OUTPUT«logical_not() not implemented in class 'Capture'␤current instr.: 'perl6;Mu;REJECTS' pc 2008 (src/builtins/Mu.pir:370)␤»
11:34 pmichaud looking
11:34 jnthn pmichaud: That's what stops S05-mass/rx.t working.
11:34 jnthn Well
11:34 jnthn 5 tests into it.
11:35 jnthn I already re-fudged it to remove compile fails.
11:35 mberends_ was there a popular suggestion for doing a deep test only sometimes, and keeping the spectest short (without lots of trig)? I can afford only so much testing time, and making long spectest runs results in me not running them as often, which is a loss. The trig usually seems to pass anyway, so re-testing seems to waste a lot of time.
11:36 moritz_ S05-mass/named-chars.t fails with regex assertion not terminated by angle bracket at line 31, near "]>/, 'Char"
11:36 jnthn mberends_: Yes, that topic seems to be coming up quite a bit of late. :-)
11:37 jnthn So I think there's something in it. :-)
11:37 mathw just take that go_slow() function out of Parrot
11:38 mberends_ jnthn:  low me as the 3rd (or is it 4th) reader of you blog post ;) nice one, btw
11:38 mberends_ *log
11:38 colomon the trig tests were a lot less relatively painful when the rest of the spectest took more than a half hour.  :)
11:39 pmichaud ooc, are the trig tests slow due to parsing or execution?
11:39 pmichaud has anyone checked?
11:39 colomon almost certainly execution
11:39 mberends_ colomon, do the trig tests detect fails from time to time, or do they almost always pass?
11:39 pmichaud (detect fails)  I suspect it's too soon to tell in ng :)
11:39 mathw jnthn: for the record, I read your blog post before it was even mentioned in here :)
11:40 colomon once working they tend to continue to work
11:40 pmichaud > say 'foo' !~~ /o/;
11:40 pmichaud 0
11:40 mberends_ I expected as much
11:40 jnthn Yay
11:40 colomon afk
11:41 pmichaud until/unless we can get overall speed improvements, I'm in favor of two-tier (or multi-tier) spectesting
11:41 pmichaud *generally in favor
11:41 mberends_ +1
11:42 * moritz_ is in favour of speed improvements
11:42 * mathw buys everyone a faster computer. job done.
11:42 pmichaud well, I'm in favor of speed improvements also, but those are a bit harder :)
11:43 mathw and it's features first
11:43 mathw I seem to recall
11:43 mberends_ shorter edit+test cycles === more productivity
11:43 mathw true
11:43 moritz_ mathw: to a certain extend, yes. But Rakudo * was supposed to be usable and useful
11:43 jnthn I reckon the !to-radians and !from-radians are probably kinda slow, fwiw.
11:43 pmichaud well, even now -- I just did a 1-line change to fix the bug jnthn++ just mentioned, but we'll have to wait 30 minutes for me to commit+push :)
11:44 mathw moritz_: true, but I'm not sure I ever believed it would run fast
11:44 moritz_ mathw: yes, but now you're not talking about goals anymore, but about believe
11:45 mathw True
11:45 mathw And it would be nice if it went faster.
11:47 pmichaud I agree, slowness must be because of execution speed
11:47 pmichaud (for trig.t)
11:47 pmichaud we really ought to be able to improve that quickly-ish
11:48 * pmichaud decides to go take a look
11:50 colomon The big LHF for that (I think) is replacing the Str $base arguments with an enum.
11:50 colomon Right now, almost every trig test requires the construction of a Str and at least two regex matches.
11:51 colomon seems like that must be a lot slower than just passing around enums would be.
11:51 pmichaud well, on my system it also appears to be eating up a fair bit of memory
11:51 colomon pmichaud: same here.  around a gig a test file, I think....
11:52 payload joined #perl6
11:52 arnsholt While waiting for enums you could fudge it by passing around numeric constants, like C tends to do, perhaps?
11:52 pmichaud we can certainly define the constants in the same way we do 'pi' and 'e'
11:52 jnthn pmichaud: I've just tried re-writing to-radians and from-radians to measure what that wins.
11:53 jnthn (will report back when I has numbers) :-)
11:53 pmichaud yes, it's almost certainly execution speed.  parsing+compiling only takes a few seconds
11:54 jnthn cos.t here has passed the 600mb point. :-/
11:54 mberends_ the memory consumption is usually Parrot avoiding garbage collection delays, by just growing the heap instead of recycling released objects, I think.
11:55 colomon arnsholt: good idea!
11:55 pmichaud oh, given/when can also be a bit slow.
11:55 colomon I've been figuring enums were going to land any day (masak++) so hadn't given much thought to working around them.
11:55 pmichaud (doesn't mean we shouldn't use it, but it does incur some exception handling overhead)
11:57 mathw :(
11:57 mathw given/when is one of my favourite things
11:57 colomon pmichaud: given that (groan), perhaps optimizing for the radians case would make sense?
11:57 pmichaud when /:i degrees/  { self * (312689/99532)/180.0 }    # Convert from degrees.
11:58 pmichaud when /:i gradians/ { self * (312689/99532)/200.0 }    # Convert from gradians.
11:58 pmichaud when /:i radians/  { self + 0 }                       # Convert from radians.
11:58 pmichaud when Num           { self * 2.0 * (312689/99532) }    # Convert from revolutions.
11:58 pmichaud ...any chance we could pre-fold those constant expressions?
11:58 colomon pmichaud: don't see why not.
11:58 pmichaud that would save a lot of time, since we end up computing constant Rats
11:58 * colomon needs to remember that not all compilers automatically pre-fold....  ;)
11:59 pmichaud jnthn: did you do the .lc trick to avoid the regex matches?
11:59 pmichaud personally, I think we don't even need the .lc :-)
12:00 jnthn pmichaud: yup
12:00 jnthn pmichaud: And stopped using given/when
12:00 colomon I really like arnsholt++'s idea of just making temporary constants for TrigBase.
12:00 pmichaud oh, also, if radians is the common case, we should test it first
12:00 colomon pmichaud: in testing, anyway, radians happens twice as often as any of the other cases.
12:00 pmichaud since radians is the default, it should be handled first
12:01 mberends_ ;-) even Bill Gates knew that programming trick ;-)
12:01 moritz_ when we use enums, we can give them the numerical values 0..$n
12:01 moritz_ then use an array of numerical constants, and index them by enum value
12:02 pmichaud also, I wonder how much slowness is being introduced by the test itself
12:02 colomon moritz_: er, if we patched in constants now, we could do that today, no?
12:02 moritz_ colomon: er, right
12:02 colomon pmichaud: yes, the tests are less than efficient as well.
12:02 pmichaud I think it's worthwhile to patch in constants right away
12:02 colomon +1
12:03 pmichaud especially since "make spectest" is currently making my computer unusable.
12:03 mathw sounds like a sensible idea
12:03 mathw but better is the one that has me going to get some lunch
12:03 mathw &
12:03 colomon pmichaud: ah, so that wasn't just my test run last night that was like that.  :(
12:04 jnthn Before: 276s
12:04 pmichaud who'll work on the constant conversions?  I'm willing to do it if nobody else is eager.
12:04 jnthn After:  238s
12:04 pmichaud good improvement but not huge
12:04 jnthn Those ones simply by getting rid of given/when and using a sequence of ?? !!
12:04 colomon pmichaud: I think I can do it, and that would free you up for something else.
12:04 jnthn pmichaud: No, though add reordering + constant folding as well may together get it further down.
12:06 colomon I
12:06 colomon I'll bet we can get it below 200s on your system in an hour.
12:07 jnthn colomon: http://gist.github.com/307599
12:09 moritz_ putting a 'constant radians = 0;' on top of Any-num.pm doesn't make that available in the Perl 6 program
12:10 SmokeMachine joined #perl6
12:10 pmichaud I'm not sure 'constant' is implemented yet.
12:10 jnthn I don't think it is, no
12:10 moritz_ rakudo: constant a = 3; say a;
12:10 p6eval rakudo 303323: OUTPUT«Could not find non-existent sub &a␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
12:10 pmichaud but one can do it in PIR like was done for 'pi' and 'e'
12:11 colomon compiling that now, as a matter of fact.  :)
12:12 * moritz_ will have to leave soon
12:13 mberends_ Generally, testing time should be of the same order of magnitude as editing and compiling (within a factor of 2 or so) to not become the dominant bottleneck. If the trend of escalating test times continues, we should consider alternative development and testing workflows. For example, a subset of spectests could be the requirement before Rakudo commits. Or otherwise, our commits go to a staging system that thoroughly tests each commit before passing it th
12:13 mberends_ rough to the main codebase. I don't know the answer, but the trend bothers me a lot.
12:16 colomon > say Radians
12:16 colomon 0
12:16 colomon > say Degrees
12:16 colomon 1
12:16 colomon > say Gradians
12:16 colomon 2
12:16 colomon > say Circles
12:16 colomon 3
12:16 pmichaud ...shouldn't those be in a namespace, ooc?
12:17 * pmichaud hasn't read the latest spec
12:17 athenot joined #perl6
12:17 * moritz_ thought they were in an enum
12:17 pmichaud guess not -- they're exported
12:17 colomon pmichaud: I copied and pasted your pi code.
12:17 colomon they are in an enum by Spec
12:17 pmichaud enum TrigBase is export <Radians Degrees Gradians Circles>;
12:18 pmichaud I was just wondering if "Radians" as a bareword would be recognized in any scope.  Looks like "yes".
12:18 moritz_ so if you have a name clash, you can refer to them as TrigBase::Radians
12:19 dalek rakudo/master: fa44b5a | pmichaud++ | src/builtins/Mu.pir:
12:19 dalek rakudo/master: Update .REJECTS to avoid logical_not vtable.
12:19 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/f​a44b5a79deaffb3030ea00d25ca07b1792e22c9
12:21 pmichaud just to give a lower-bound -- after short-circuiting the cos() and acos() functions to basically be no-ops, cos.t runs on my system in 55 seconds
12:21 pmichaud (but also segfaults... hmm)
12:22 colomon okay, sin.t takes 2m20 on my system before changes
12:22 * pmichaud tries sin.t for comparison
12:24 colomon what's the cleanest way to make an array once for both to-radians and from-radians to use?
12:24 pmichaud our @array ....
12:24 sjohnson mine!
12:24 pmichaud or if you want it private,   our @!array ...
12:25 pmichaud (sin.t = 2m12 on my system)
12:25 colomon can I initialize it in the our statement?
12:25 pmichaud might want to use an INIT block to begin with
12:25 pmichaud I'd try it without -- if that doesn't work then try with.
12:28 Lorn joined #perl6
12:28 Lorn joined #perl6
12:28 colomon wow, you know that feeling you get when you know your code is right?
12:29 Lorn joined #perl6
12:29 lisppaste3 colomon pasted "Current experimental versions of to-radians and from-radians" at http://paste.lisp.org/display/95170
12:30 colomon Of course, that doesn't work currently.... ;)
12:30 pmichaud well, that shold end up being a lot faster if only because the values are all Num instead of Rat
12:30 pmichaud *should
12:32 Chandu joined #perl6
12:33 colomon > say sin(180, Degrees)
12:33 colomon 1.22464679914735e-16
12:33 Chandu ls -ltr
12:33 Chandu clear
12:33 Chandu hi
12:33 pmichaud /: no such file or directory
12:33 Chandu hi
12:34 Chandu left #perl6
12:34 snarkyboojum heh
12:34 Chandu joined #perl6
12:35 mberends_ Chandu: hi, this is not Linux!
12:35 Chandu Hi
12:35 Chandu how do i get started
12:35 Chandu please help me
12:36 mberends_ ok, read a bit of perl6.org and rakudo.org first
12:36 pmichaud afk for a while
12:36 Chandu where can i get them
12:36 Chandu ?
12:36 barney joined #perl6
12:37 mberends_ Chandu, see http://rakudo.org/how-to-get-rakudo
12:37 Chandu thank u so much
12:37 ruoso joined #perl6
12:47 jnthn eww
12:47 * jnthn finds Nasty Bug and tries to fix it.
12:47 jnthn (can't store List and Array proto-objects in a list or array or it tries to flatten them and then NPMCAs.)
12:52 alinbsp joined #perl6
12:53 lisppaste3 colomon annotated #95170 "Failing attempt to initialize" at http://paste.lisp.org/display/95170#1
12:54 colomon wait, if my class has our @a, how do I reference it in a method?
12:54 araujo joined #perl6
12:56 jnthn Just as @a should work.
12:56 colomon okay, in that case how do I initialize @a just once?  the paste has my current attempt, but that gets me Null PMC access in getprop() when I try to use it.
12:57 jnthn :-/
12:57 jnthn Odd.
12:57 jnthn our @a = (); # may work, but I dunno why our @a doesn't.
12:59 colomon nope, same error.
12:59 colomon (and I get the error when I try to use @a in a method, I should add)
13:03 bluescreen joined #perl6
13:03 colomon seems like our @a just doesn't work -- I just tried using it but initializing it in the methods, and it still gives that error.
13:06 colomon rakudo: say pi / 180.0
13:06 p6eval rakudo fa44b5: OUTPUT«0.0174532925199433␤»
13:06 colomon rakudo: say pi / 200.0
13:06 Juerd Tonight our network will be down between 3 and 4 CET. http://www.timeanddate.com/worldclock/fixedtime.ht​ml?day=19&amp;hour=3&amp;min=0&amp;sec=0&amp;p1=16
13:06 p6eval rakudo fa44b5: OUTPUT«0.015707963267949␤»
13:06 colomon rakudo: say 2.0 * pi
13:06 p6eval rakudo fa44b5: OUTPUT«6.28318530717959␤»
13:08 jnthn colomon: Hmm. Not sure what's wrong there. :-/
13:08 jnthn rakudo: class Foo { our @a = 1,2,3; method bar() { say @a.perl } }; Foo.bar;
13:08 p6eval rakudo fa44b5: OUTPUT«Null PMC access in find_method('perl')␤current instr.: 'perl6;Foo;bar' pc 514 (EVAL_1:207)␤»
13:08 jnthn rakudo: class Foo { my @a = 1,2,3; method bar() { say @a.perl } }; Foo.bar;
13:08 p6eval rakudo fa44b5: OUTPUT«Null PMC access in find_method('perl')␤current instr.: 'perl6;Foo;bar' pc 505 (EVAL_1:203)␤»
13:09 jnthn rakudo: my @a = 1,2,3; class Foo { method bar() { say @a.perl } }; Foo.bar;
13:09 p6eval rakudo fa44b5: OUTPUT«Lexical '@a' not found␤current instr.: 'perl6;Foo;bar' pc 505 (EVAL_1:205)␤»
13:09 jnthn wtf
13:09 jnthn That's probably fairly telling though.
13:10 masak joined #perl6
13:11 jnthn lolitsmasak
13:11 masak :)
13:12 pugs_svn r29774 | jnthn++ | [t/spec] Updates to S12-introspection/parents.t for current spec.
13:12 athenot joined #perl6
13:12 masak had I not had $WORK, I'd probably have sat down with named enums today. as it stands, I'll have to save it for tonight. so I'll probably miss the release. :/
13:14 jnthn masak: Don't worry, there's The Next Release.
13:14 masak aye.
13:14 masak which, by the way, will be Awesome.
13:14 jnthn If we can all keep up current pace, the March release should be awesome.
13:14 masak :)
13:14 masak and one whole month before the April Star release :)
13:14 takadonet joined #perl6
13:14 jnthn rakudo: say ('Great minds', 'All fools').pick
13:14 p6eval rakudo fa44b5: OUTPUT«All fools␤»
13:15 jnthn damm!
13:15 takadonet hehe
13:15 masak the new rakudo is more honest than the last one :P
13:15 jnthn :-P
13:15 iblechbot joined #perl6
13:16 masak rakudo: say 'We are all ', ('expert programmers', 'incompetent hacks').pick, '!'
13:16 p6eval rakudo fa44b5: OUTPUT«We are all incompetent hacks!␤»
13:16 masak told ya. :)
13:16 masak .oO( new pick has a more conservative implementation... )
13:18 jnthn After spectesting, got fixes that get S12-introspection/parents.t all running and passing again. :-)
13:18 jnthn +54 more passing tests. :-)
13:18 masak \o/
13:20 jnthn Oops...need to remember to have lunch before Slovak class...
13:21 masak I always forget that myself.
13:21 bluescreen joined #perl6
13:24 colomon jnthn: I went back to your code, upgrading it with our fake-enum rather than strings and making radians the first casew
13:24 jnthn You have Slovak class too? ;-)
13:24 jnthn colomon: ah, cool
13:24 colomon 1m29 (vs 2m20 originally)
13:24 jnthn \o/
13:24 jnthn Roughly 40% shaved off.
13:25 jnthn I'll take that.
13:25 colomon and I'm pretty sure I can do better than that by doing sim opts for the test code
13:28 colomon though at the moment I'm using computer to play music videos for my boy. :)
13:31 masak jnthn: no, I don't. so for me the statement is vacuously true :)
13:35 IllvilJa joined #perl6
13:35 jnthn :-)
13:35 * jnthn wonders if the spectests will complete before class so he can push
13:37 masak there oughta be a sort of conditional push mechanism. 'run spectests and push if they pass'.
13:37 masak guess that's not very hard to set up. it's basically making proper use of exit codes.
13:38 mberends_ masak: that's a very good idea, worthy of some exploration
13:39 masak mberends_: my unreleased top sekkrit version of tote does that, but on the commit level.
13:40 mberends_ nice.
13:40 masak though it doesn't do it through exit codes, it does it whenever the length of the unbroken chain of passing tests from the start of the test file onwards increases.
13:41 masak using that metric, the system can differentiate between 'regression', 'no apparent change', and 'progress'.
13:42 coke joined #perl6
13:43 coke I'm looking at RT# 72914 and the synopses, trying to figure out /why/ that should work that way. Anyone have any pointers to docs that would help explain it?
13:43 coke (... operator by itself seems to make sense, though it talks about using a function on the RHS. ^ in a range makes sense. putting them together and getting that list makes my head explode.
13:45 masak coke: it's not a .. range, it's a ... sequence.
13:45 * masak should maybe write C<..> and C<...>.
13:46 jnthn heh, tests still going. I'll push when I get back. bbl
13:46 masak jnthn: enjoy the Slovak!
13:55 coke masak, yes, I know it's ... and not .. ; my apologies for confusing range and sequence.
13:55 masak coke: just making sure. :)
13:56 masak coke: what exactly is your concern?
13:56 coke (except of course that seems like an easy mistake for someone who doesn't understand how larry's brain works to make.)
13:56 coke masak;... what the hell is it doing?
13:56 masak coke: :)
13:56 coke why is it going back down to 0 and then up to 5?
13:56 masak coke: ^5 counts from 0 up to 4.
13:56 masak it's short for 0..^5
13:57 masak infix:<...>, unless in special circumstances, counts from the left operand to the right operand.
13:57 masak and those operands may be lists, and the operator will still DTRT.
13:58 colomon at least, in some happy far off future day when the operator is sufficiently smart.
13:58 masak so `4 ... ^5` expands to `4 ... 0..^5`, which becomes `4, 3, 2, 1,    0, 1, 2, 3, 4`
13:58 ignacio_ joined #perl6
14:01 colomon Does that mean if there's list on the RHS, you do ... on the first element and just pass the rest of the list along?
14:01 * masak thinks so, yes
14:01 colomon that ought to be relatively easy to code, actually.  Hmmmm....
14:01 masak that's how things like `0 ... 10, 20 ... 100` work
14:02 masak (which yields `0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100`)
14:02 * colomon notes that sin.t runs really fast when the first test crashes....
14:06 colomon 1m20 now, another 9 seconds shaved off.
14:10 mathw \o/
14:15 [particle] joined #perl6
14:19 coke masak - ok. that almost makes sense.
14:19 coke when reporting bugs, I don't know if you want to include that sort of information to educate people like me reading the list. =-)
14:20 coke though I'm happy to come here and bug you. =-)
14:23 masak coke: after almost 700 bugs, I'm aware my bug reporting style has become somewhat... streamlined.
14:23 masak coke: I'm happy to include information about expected semantics, and often do. in thise case, I limited myself to what TimToady had said about it, and didn't delve into excessive details.
14:26 ignacio_ joined #perl6
14:26 tylerni7 joined #perl6
14:26 tylerni7 joined #perl6
14:28 cosimo joined #perl6
14:29 * colomon wonders if masak will break 1000 in March...
14:29 masak no chance. :) late this year or early next year is more likely.
14:30 masak my average rakudobug rate is one per day.
14:30 colomon yes, but that's in the old, pre-ng days.
14:30 PerlJam colomon: you think ng has increased the number of bugs?
14:30 colomon you're in a target-rich environment now, I'm sure you can up your game.
14:31 masak colomon: that may be, but that's after a several-month slump of not many new bugs :)
14:32 colomon PerlJam: it has certainly increased the number of unimplemented or partially implemented features.
14:32 colomon masak: sure, but you're at 700 now, right?
14:32 masak almost.
14:32 masak so realistically, about a year away from 1024. :)
14:36 pugs_svn r29775 | colomon++ | [t/spec] Update trig tests to use the new fake TrigBase.
14:37 pmichaud re-good morning, #perl6
14:38 colomon \o
14:38 colomon shaved something like 45% off of sin.t on my machine so far.
14:38 pmichaud that's more reasonable
14:39 [particle] i still have to find that presentation, paper, or the source for that test reduction technique
14:39 pmichaud I still wonder what is (was?) causing it to eat so much ram
14:40 colomon had a bad time trying to use "our @a"  in a class definition, however.
14:40 athenot joined #perl6
14:40 pmichaud really?  "our @a" in a class definition should work.
14:40 dalek rakudo/master: bf29be0 | (Solomon Foster)++ | src/core/ (5 files):
14:40 dalek rakudo/master: Optimize Any!to-radians and Any!from-radians, switch default base to Radians (instead of 'radians').
14:40 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/b​f29be00b05b837267c5261c92a1f9490fa5fa1e
14:40 dalek rakudo/master: 60c14fe | (Solomon Foster)++ | src/cheats/constants.pir:
14:40 dalek rakudo/master: Add Radians, Degrees, Gradians, and Circles to emulate what TrigBase will look like when enums are available.
14:40 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/6​0c14fed7ce1aaa61c25fadc12b9666bdf5cd96c
14:41 colomon If you look in the backlog, jnthn++ distilled some one-line fails based on what I was trying to do.
14:41 colomon (I managed to erase my backlog here somehow.  :(  )
14:41 pmichaud yes, reading backlog now :)
14:42 pmichaud oh!  you might need to repeat the our inside of the INIT block
14:42 colomon http://irclog.perlgeek.de/​perl6/2010-02-18#i_2004325
14:44 colomon pmichaud: am I correct in thinking that the our declaration means there is one copy of the array shared by every instance of the class?
14:44 pmichaud yes
14:45 colomon adding our inside the INIT did not help.  :(
14:45 pmichaud rakudo:  class Foo { say 'here';  method bar() { say 'there'; } };  Foo.bar;
14:45 p6eval rakudo fa44b5: OUTPUT«here␤there␤»
14:45 pmichaud rakudo:  class Foo { my @a = 1,2,3;  say ~@a;  method bar() { say ~@a; } };
14:45 p6eval rakudo fa44b5: OUTPUT«1 2 3␤»
14:46 pmichaud rakudo:  class Foo { my @a = 1,2,3;  say ~@a;  method bar() { say ~@a; } };  Foo.bar;
14:46 p6eval rakudo fa44b5: OUTPUT«1 2 3␤␤»
14:46 pmichaud hmmmmmmm
14:47 pmichaud I bet the problem is that whatever Parrot sub gets installed in class isn't the one that gets the capture_lex performed on it
14:47 pmichaud i.e., the Parrot sub that gets installed in the class is a clone of the other one
14:48 pmichaud so it refers to the wrong lexical @a
14:49 ignacio_ joined #perl6
14:49 pmichaud if that's the case, then "our @a" isn't going to work either.
14:50 colomon nod
14:50 pmichaud we could always let PIR ride to the rescue, however.
14:51 colomon ?
14:51 pmichaud pir::get_global('@a')[$base]
14:51 pmichaud probably needs
14:51 pmichaud pir::get_global__Ps('@a')[$base]
14:51 pmichaud let me try that quickly
14:54 pmichaud rakudo:  say ^5;
14:54 p6eval rakudo fa44b5: OUTPUT«01234␤»
14:55 pmichaud (rebuilding rakudo to get baseline timing)
14:56 [particle] joined #perl6
14:56 mberends_ about memory consumption, this used 1253MB: my $a=0; for 1..100000 { $a += $_ }; say $a
14:57 pmichaud mberends_: sure -- for loops are eager still
14:57 pmichaud so the 1..100000 gets computed eagerly and eats up lots of space
14:57 nihiliad joined #perl6
14:57 mberends_ now trying this, 2001MB and still climbing: my $a=0; my $b=0; while $b < 100000 { $a += $b }; say $a
14:58 mberends_ er, $b++
14:58 pmichaud well, that's pretty horrible
14:58 pmichaud I don't know why that would be eating up so much memory.
14:58 pmichaud we should definitely look into that.
14:58 pmichaud sin.t currently takes 1m15 on my system
14:59 johnz joined #perl6
15:01 colomon btw, I'm starting to wonder if given / when isn't really so inefficient.
15:01 mberends_ correction, 522MB doing: my $a=0; my $b=0; while $b < 100000 { $a += $b++ }; say $a
15:01 pmichaud mberends_: that still seems high to me.  does the number go up if you increase 1000000 ?
15:01 mberends_ it was climbing, will try now
15:02 colomon I just removed a bunch of them by using a nested ?? !! structure, and it didn't make any appreciable difference to the timing of the test run...
15:03 colomon oh, wait, I don't think I actually tested that!
15:03 pmichaud after switching to use a conversion array,  1m7s
15:03 xomas joined #perl6
15:03 xomas joined #perl6
15:03 colomon pmichaud: \o/
15:04 pmichaud only 8 second improvement there
15:04 pmichaud so something else must be imposing time costs
15:04 colomon that's better than 10% off of what you had.
15:04 pmichaud true
15:04 pmichaud anyway, I'll make spectest and commit.
15:05 PZt joined #perl6
15:05 colomon and if you can make it work in to-radians, then I can make the same method work in the tests for another improvment, perhaps not quite as big...
15:05 pmichaud yes, it's working in to-radians
15:05 pmichaud it's a little ugly, but it works :)
15:05 pmichaud we do need to figure out why lexicals in classes aren't working.
15:05 mberends_ 1691MB doing: my $a=0; my $b=0; while $b < 1000000 { $a += $b++ }; say $a
15:06 pmichaud mberends_: sounds to me like parrot isn't gc'ing properly.  either that or somehow we're leaving pointers to a bunch of things... but its hard to see that from this simple example
15:07 colomon yeah, it's actually a great example for optimization, isn't it?
15:07 pmichaud ooc, how about
15:07 colomon so simple...
15:07 pmichaud my $a=0;  my $b=0;  $a += $b++ while $b < 1000000;  say $a
15:07 pmichaud i.e., w/o the block
15:08 mberends_ ok, running that now
15:12 mberends_ 1690MB doing: my $a=0;  my $b=0;  $a += $b++ while $b < 1000000;  say $a
15:12 pmichaud okay, so it's not the block itself that is doing it
15:12 pmichaud that tends to point more to a parrot issue
15:12 [particle] what is it with 100,000?
15:12 pmichaud I'm trying a pir-based version now
15:12 [particle] how linear is it
15:13 mberends_ will try 500000 for a 50% figure
15:14 colomon [particle]: geez, I hadn't even considered the idea we could have a greater than linear memory leak...
15:14 ignacio_ joined #perl6
15:16 mberends_ 1154MB doing: my $a=0;  my $b=0;  $a += $b++ while $b < 500000;  say $a
15:16 pmichaud mberends_: how are you finding the memory used, ooc?
15:17 mberends_ watching top in another window, it's a bit manual and crude ;)
15:17 pmichaud okay.
15:17 colomon "ooc"?
15:17 colomon out of curiosity?
15:17 [particle] so that won't work well for a value of 1
15:17 [particle] colomon++
15:18 * colomon is used to ooc being "out of character"...
15:18 masak I like that example. in theory, a whazzy enough code optimizer could roll that into a constant :)
15:19 pmichaud it's definitely some sort of leak or lack of gc in parrot
15:20 pmichaud I have a pure-pir program to demonstrate
15:20 colomon pmichaud++
15:20 pmichaud let's see if it's in calling conventions or something else
15:20 masak pmichaud++
15:21 mberends_ 139MB doing: my $a=0;  my $b=0;  $a += $b++ while $b < 1000;  say $a
15:22 * jnthn is back
15:23 mathw \o/ jnthn
15:24 mathw there's a parade of awesomeness going on in here
15:24 masak mberends_: that's more than for 500000 o.O
15:24 pmichaud masak:  139 versus 1154  (you're dropping a 1?)
15:24 mberends_ masak, no, 139MB < 1154MB
15:25 masak oh!
15:25 pmichaud okay, this looks like a very generic gc problem
15:25 * masak dons the "can't read numbers" hat
15:25 pmichaud as in "parrot isn't doing gc"
15:25 mathw that's about as generic as it gets
15:25 mberends_ parrot was always like that, with looping type programs
15:26 masak <masak> in this case, he will reply 'no, my criticism is that they rewrite all the time without shipping anything'
15:26 masak http://twitter.com/robotpony/status/9287507924
15:26 masak :)
15:26 jnthn pmichaud: Thing is... :-|
15:26 jnthn Even this leeks:
15:26 jnthn .sub 'main'
15:26 jnthn call:
15:26 jnthn 'foo'()
15:26 jnthn goto call
15:26 jnthn .end
15:26 jnthn .sub 'foo'
15:27 jnthn .end
15:27 dalek rakudo/master: 43909a0 | jonathan++ | src/ (2 files):
15:27 dalek rakudo/master: Fixes that get .^parent working. Also .WHAT always now gives back things wrapped in a scalar container. Why? So Iterable proto-objects don't go trying to flatten, and subsequently go KABOOM.
15:27 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/4​3909a0321bea0f86cef90f979cf652a1e200f12
15:27 dalek rakudo/master: fec6ec9 | jonathan++ | t/spectest.data:
15:27 dalek rakudo/master: Turn S12-introspection/parents.t back on.
15:27 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/f​ec6ec9fa036ee3c200e5ee5bd9f7380c32ccb78
15:27 jnthn er, leaks
15:27 pmichaud jnthn: yes, but I have a problem that does no function calls that leaks
15:27 pmichaud s/problem/program/
15:27 pmichaud which means the leakage is due to gc in general, not due to pcc
15:28 pmichaud (i.e., anything that creates objects ends up leaking)
15:28 jnthn pmichaud: heh, me too
15:28 jnthn .sub 'main'
15:28 jnthn ohno:
15:28 jnthn $P0 = new ['Integer']
15:28 jnthn goto ohno
15:28 jnthn .end
15:28 jnthn leaks!
15:28 coke does it leak past 1MB?
15:29 pmichaud all of the programs we're trying seem to leak w/o bound
15:29 coke ISTR a recent change that didn't bother to run the GC until we allocated a full meg.
15:29 jnthn coke: Taht one I just pasted quickly gets to hundreds before I kill it.
15:29 coke hokay, something else, then. =-)
15:29 jnthn Not GC-ing until a full meg is allocated or so is probably a sensible approach.
15:30 pmichaud I'm running jnthn++'s version now
15:30 jnthn But yes, somehting else here.
15:30 pmichaud 309m
15:30 pmichaud 257m
15:30 pmichaud er, 357m
15:30 pmichaud 424m
15:30 pmichaud 453m
15:30 pmichaud "Houston, we have a leak."
15:30 [particle] ...maybe it was 1 gig...
15:30 pmichaud 521m
15:30 REPLeffect joined #perl6
15:31 * pmichaud decides to wait to blow through the 1g barrier :)
15:31 pmichaud 723m
15:31 bkeeler joined #perl6
15:32 masak <masak> and I will say 'Rakudo has had 25 releases, and will have its 26th release today'
15:32 coke also, is this trunk or 2.1?
15:32 masak http://twitter.com/carlmasak/status/9287902991
15:32 pmichaud trunk
15:32 pmichaud I can try 2.1 shortly (still building it)
15:32 coke k. hopefully it's just trunk. :P
15:33 pmichaud 2.0.0 doesn't have the leak  (already had that one built)
15:33 ggoebel joined #perl6
15:33 pmichaud 1.1g
15:34 pmichaud 1.2g
15:34 TimToady .oO(Memory too cheap to meter.)
15:35 pmichaud 1.3g
15:37 coke and, first level tech support question: you're not running with parrot -G, right?
15:37 jnthn parrot_install\bin\parrot.exe bug.pir
15:37 pmichaud plain parrot
15:37 pmichaud ./parrot z.pir
15:38 jnthn Though running with -G is insightful.
15:38 TimToady "We didn't tell you we flipped the meaning of -G last release?  You have to add -G now to get GC..."
15:38 dalek rakudo/master: 181d5f9 | pmichaud++ | src/core/Any-num.pm:
15:38 dalek rakudo/master: Refactor to-radians and from-radians to use a pre-initialized array.
15:38 dalek rakudo/master: Gives us a ~10% speedup in the sin.t test.
15:38 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/1​81d5f96b77b84a1673c8c2fe0a661a0f7221704
15:38 dalek rakudo/master: dbaa79b | pmichaud++ |  (3 files):
15:38 dalek rakudo/master: Merge branch 'master' of git@github.com:rakudo/rakudo
15:38 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/d​baa79b742d312e5db1f0fbcd61b0c9a1d15b0c0
15:38 colomon \o/
15:39 jnthn pmichaud: Is that a ~10% on the time after colomon++ got us 40% earlier? :-)
15:39 pmichaud jnthn: yes.
15:39 pmichaud went from 1m15s  to 1m8s
15:39 justatheory joined #perl6
15:39 jnthn \o/
15:39 pmichaud (previously I was in the 2m30 range)
15:39 jnthn If you add -G it consumes memory and then runs out of it really, really fast.
15:40 pmichaud 2.1.0 leaks.
15:40 jnthn Which shows how much time we spend in the GC. :-|
15:41 coke (2.1.0) argh.
15:42 masak <masak> and he will say 'no, I mean a REAL release, one where you ship production-ready stuff, like Python 3000'
15:42 masak http://twitter.com/robotpony/status/9288139528
15:43 pmichaud interestingly, 2.1.0 seems to leak memory faster than trunk
15:43 pmichaud maybe I'm just misjudging the rate of increase, though
15:43 moritz_ you can set a ulimit, and measure the time until it dies
15:43 jnthn masak: lol.
15:44 jnthn masak: So we're meant to be production ready in the wild, whatever that means, but we're not supposed to do the refactors needed to get us to that point?
15:44 jnthn Wow.]
15:44 masak jnthn: to his credit, he's more friendly than I predicted.
15:44 pmichaud how much was python 3000 in the wild 2 years ago?
15:45 pmichaud I guess I should file a trac ticket for the memory leak issue?
15:46 moritz_ yes
15:47 coke please.
15:49 jnthn I guess part of our performance issue is, GC doesn't sweep a bunch of stuff, so working set size increases, meaning the next GC run has more stuff to look over and fail to sweep....repeat quite a few times...and you're starting to run quite slowly.
15:49 pmichaud correct
15:50 pmichaud or, at least on my machine, once we reach a certain threshold of memory consumption my entire machine becomes unusable
15:50 jnthn Yes, same.
15:50 mberends_ "sweep early, sweep often" should be the new GC motto
15:50 pmichaud running the trig tests this morning (pre-optimization) with TEST_JOBS=3 made my workstation basically unusable
15:51 pmichaud oops, I need to re-verify the leak with current trunk.
15:51 pmichaud (unless someone else has tested it with parrot head this morning)
15:52 pmichaud actually, trunk just failed to build just now -- realclean and try again
15:54 Psyche^ joined #perl6
15:54 colomon joined #perl6
15:56 mathw I do think a lot of people get confused by the messages sent out about Rakudo
15:56 mathw It's all very well to say there have been 25 Rakudo releases
15:56 mathw but that's just because a release goes out every month
15:56 mathw none of them are something you can really use
15:57 mathw but some people will see 'release' and think we mean it's production-ready
15:57 jnthn What are we meant to call them, then?
15:57 mathw it's like this thing with it being 'finished', and Rakudo *
15:57 moritz_ development release?
15:57 mathw I don't think we're speaking the same language as certain groups outside the Perl 6 world
15:57 mathw I'm not saying there's a better way to do it, I'm just saying I think that's why we get so much misunderstanding
15:58 pmichaud TT #1465 created
15:59 pmichaud (not speaking same language)  Part of the problem is that people say "no progress" when what they really mean is "not yet ready for my needs".
15:59 uniejo joined #perl6
15:59 pmichaud in other words, if a given release doesn't yet meet their needs, then to them it's the same as "not released"
16:00 bkeeler People also read meaning into version numbers
16:00 coke I'm not sure how much we can do other than smile and keep making releases.
16:01 bkeeler They see something like 1.6 and think, hey 1.0 was probably the first stable release, so it's probably a mature product
16:01 mathw bkeeler: In that case, I think Rakudo's doing it right, just saying 'Rakudo release 26'
16:01 pmichaud bkeeler: and this is one reason I'm absolutely avoiding 1.x numbering schemes
16:01 mathw because it doesn't look like an ordinary producty version number
16:01 mathw Parrot, however, is doing it wrong
16:01 bkeeler True
16:01 pmichaud my experience with 1.x numbering schemes is that they try to serve too many masters.
16:02 bkeeler The rakudo way is certainly better
16:02 jnthn OK, for today's Rakudo release...what's urgent?
16:02 jnthn .oO( oops, I said release :-) )
16:02 bkeeler Still, I think people try it, find out it's not ready for prime time then resent it for wasting their time and become biased against it
16:03 jnthn pmichaud: Tweaking the ROADMAP is the only "must do" I can immediately think of.
16:03 mathw has masak++ fixed enums yet?
16:03 masak mathw: only anon ones.
16:03 pmichaud jnthn: yeah, I didn't get around to ROADMAP work last night
16:03 mathw ah well
16:03 jnthn pmichaud: That's fine.
16:03 mathw not that I care, I use git master anyway :)
16:03 coke parrot has tried to separate "developer" releases from "supported" releases. I'm not sure that has helped us.
16:03 masak mathw: named ones coming up. in my compious free time. :)
16:03 masak s/mp/p/
16:03 jnthn mathw: That's more than we'd have had if masak++ hasn't worked on them. :-)
16:04 mathw oh yes definitely
16:04 mathw some enums is better than no enums
16:04 pmichaud on the good side, I'm feeling much better this morning, so I'm hoping my productivity/energy will re-approach normal levels again today
16:04 mathw \o/
16:04 mathw I should stop moaning and do some hacking
16:04 masak who will cut the release?
16:04 coke fof . o O (rawr)
16:04 pmichaud I haven't heard from Su-Shee -- is she still on for toding today's release?
16:04 mathw but right now I have a tram to catch
16:04 mathw o/
16:04 pmichaud s/toding/doing/ # ack!
16:05 jnthn Tram! \o/
16:05 masak Su-Shee++: where are you? are you in a release-y mood?
16:05 pmichaud I drafted a release announcement yesterday evening -- it needs some attention.
16:05 pmichaud We could probably grab notes from jnthn++'s use.perl post :)
16:05 jnthn pmichaud: I read it and it looked overall good, apart from the incomplete bit. :-)
16:05 jnthn But right idea.
16:06 pmichaud contributions to the release announcement welcomed :)
16:06 jnthn pmichaud: I don't mind doing the roadmap tweaks, if we can agree what we want to do. :-)
16:06 pmichaud jnthn: I saw that you did some tweaks already...?
16:07 TimToady I wonder if multi-dispatch is up to doing the switching on radians, degrees, etc. in the signature as constants
16:07 pmichaud TimToady: I thought about that -- I think it would work, but probably wouldn't be a significant improvement for us
16:07 jnthn pmichaud: I moved some items I was comfortable were completed to the bottom "done" section
16:07 TimToady not till someone invents an Optimizer, I guess :)
16:07 jnthn pmichaud: There's a few others that I wanted to know if you felt were done.
16:07 pmichaud jnthn: reviewing ROADMAP now
16:08 jnthn TimToady: I suspect Rakudo's multi-dispatcher can handle them just fine, but it's not one of the cases that it is really well optimized for yet.
16:08 jnthn TimToady: It's far more optimized for type-based dispatch.
16:08 TimToady since we'll usually know which at compile time, could even inline the correct code
16:09 pmichaud yes, it could be optimized nicely
16:09 TimToady well, just thinking out loud...
16:09 pmichaud right now I'm wondering if our trig test slowness is due to the parrot gc bug
16:09 TimToady how long are the .t files?
16:09 pmichaud not very long
16:09 pmichaud also, parsing+compiling doesn't seem to be the slow part
16:09 pmichaud (which surprised me a bit)
16:10 TimToady maybe we should do our own GC on top of parrot, just copy over the whole interpreter and then delete the old one periodically.  :)
16:10 pmichaud (ouch, hurts when I lol)
16:11 pmichaud sin.t is 285 lines, Rakudo compiles it in ~4 sec.
16:11 pmichaud (but the 285 line file has ~1700 tests -- lots of loops)
16:13 [[synth]] joined #perl6
16:13 masak TimToady: a topic from yesterday: if different things should look different, why do the quotes in "$foo."$bar"()" look so similar, even leading to possible runaway quote problems with their corresponding fixes?
16:14 TimToady the inside ones are in their own expression, so the outside ones don't see it
16:14 TimToady if you don't like it, use different quotes
16:14 masak not only will I not like it, but syntax highlighters won't either.
16:15 pmichaud DIHWIDT ?  ;-)
16:15 jnthn masak: It's localized though :-)
16:15 jnthn masak: There's two matching sets of quotes.
16:15 TimToady syntax highlighters are in the business of cheating, and cheaters often get caught
16:15 masak jnthn: that's a fair point.
16:16 pmichaud I have a question that just occurred to me after viewing the ROADMAP
16:16 pmichaud my $x;   $x[0] = 'abc';   say $x.WHAT;    #   what happens here?
16:16 masak TimToady: least surprise. my eye scans the string and finds a closing quote mark after the dot. it doesn't see the threshold between ordinary-string and expression you mention.
16:16 moritz_ I guess .[] forces autovivification to Array
16:16 TimToady THEN CHANGE THE OUTER QUOTE!!!
16:17 TimToady sheesh
16:17 pmichaud moritz_: that's my guess.  Now consider...
16:17 masak TimToady: sorry to upset you. there might be other good reasons for using double quotes there.
16:17 pmichaud my $x;   $x{'abc'} = 'def';  say $x.WHAT;   # autovivify to Hash ?
16:17 TimToady in which case, only the human gets confused--the parser is still fine.
16:17 moritz_ pmichaud: aye
16:17 pmichaud okay, then we also have
16:18 pmichaud my Any $x;   say $x.WHAT;   #  ???
16:18 iblechbot joined #perl6
16:18 moritz_ Any()
16:18 masak I'm 100% fine with laying this issue to rest, and never complaining again. just thought I'd get it all out at once first. :)
16:18 pmichaud because $x is initialized to the Any protoobject, yes?
16:18 moritz_ yes
16:18 pmichaud but postcircumfix curlies on protoobjects already have a different meaning.
16:19 pmichaud (at least, they did at one point)
16:19 moritz_ oh, what do they mean?
16:19 jnthn my $x; is init'd to the Mu proto-object though, no?
16:19 jnthn WHENcE
16:19 jnthn er, *C
16:19 pmichaud and postcircumfix brackets on protoobjects also have a different meaning
16:19 pmichaud (sorry, "type objects")
16:19 TimToady "All progress depends on at least two unreasonable men in the same room."
16:19 jnthn pmichaud: Only for role ones. :-)
16:20 jnthn Class type objects have little clue about them.
16:20 jnthn oh wait
16:20 jnthn oh yes, that's right.
16:20 pmichaud so, it appears we have a conflict, or I'm overlooking something obvious.
16:20 masak Perl 6 is about eliminating lists of strange exceptions that the user has to memorize. in this case, quotes of the same kind within a string must be backwhacked... *except* when it's a double quote and you want to double-quote-interpolate a method name... o.O
16:21 TimToady no, except when it's a part of an interpolated subexpressoin
16:21 TimToady which is a very general subexception
16:21 masak a subexpression which isn't explicitly indicated in any way.
16:21 pmichaud the dot indicates it.
16:21 TimToady rakudo: say "%*ENV{"HOME"}"
16:21 masak pmichaud: right. and lookahead.
16:21 p6eval rakudo dbaa79: OUTPUT«%*ENVHOME␤»
16:22 TimToady should work fine
16:22 masak nod.
16:22 masak the braces are a big tip-off, though.
16:22 jnthn pmichaud: Feels like one to me too. :-/
16:22 TimToady and the fact that the ."" form requires () inside quotes fits right in with that rule
16:23 pmichaud jnthn: I guess I need to formulate a pm.txt question for it.
16:23 jnthn pmichaud: I guess so.
16:23 nbrown joined #perl6
16:23 jnthn I have no immediate thoughts on an answer.
16:23 jnthn pmichaud: My other problem is
16:23 masak TimToady: ok. I'm out of arguments. I'll just create a module where double-quotes in double-quoted strings are forbidden. :)
16:24 TimToady generally the user will see enough context around an interpolated expression to know whether a " is ending or not, especially if the user has a decent whitespace policy
16:24 jnthn my Int $x; $x<foo> = 42; # if this does somehow end up meaning auto-viv, surely type check fail?
16:24 pmichaud jnthn: that doesn't bother me so much -- yes, it's a typecheck fail
16:24 clausi left #perl6
16:25 pmichaud jnthn: that one is fairly easy to handle :)
16:25 jnthn pmichaud: The only other possibility is that TypeObject{ ... } and TypeObject[...] could be syntactic, but I don't like that and it _will_ break assumptions we already make in the codebase.
16:25 pmichaud jnthn: yes, I hadn't been thinking of them as syntactic.
16:25 TimToady and chances are, if you need the indirection of ."$foo"(), you're probably wanting to pass more arguments in the () too, further insulating the inner "" from the outer visually
16:25 Trashlord joined #perl6
16:26 pmichaud personally I'd write it as  "{$foo."bar"()}"   anyway :-)
16:26 TimToady then you don't ned the ()
16:26 TimToady *need
16:26 TimToady (I think)
16:26 TimToady std: say "{$_."bar"}"
16:26 p6eval std 29775: OUTPUT«[31m===[0mSORRY![31m===[0m␤Quoted method name requires parenthesized arguments at /tmp/r82WQSREJz line 1:␤------> [32msay "{$_."bar"[33m⏏[31m}"[0m␤FAILED 00:01 108m␤»
16:27 pmichaud I couldn't remember.  My point is more that complex interpolations read better in curlies anyway :)
16:27 TimToady oh, maybe we made that a general rule
16:27 jnthn oh yes you do :-)
16:27 TimToady right
16:27 * moritz_ would use printf instead - easier to parse visually
16:27 jnthn rakudo: say "{$_."bar"}"
16:27 p6eval rakudo dbaa79: OUTPUT«Quoted method name requires parenthesized arguments at line 11, near "}\""␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
16:27 pmichaud woo hoo!
16:27 jnthn Was sure I remembered copying that bit of STD recently. :-)
16:27 pmichaud rakudo++
16:27 TimToady need more coffee, or maybe just more neurons
16:28 jnthn Coffee sounds less invasive. :-)
16:28 TimToady std: $_."bar"
16:28 p6eval std 29775: OUTPUT«[31m===[0mSORRY![31m===[0m␤Quoted method name requires parenthesized arguments at /tmp/iXMRUbGZp3 line 1:␤------> [32m$_."bar"[33m⏏[31m<EOL>[0m␤FAILED 00:01 106m␤»
16:28 TimToady yeah, general rule
16:28 TimToady I must have been a genius when I was younger.
16:28 masak moritz_: chromatic once claimed in a Tweet that printf is for C-entrenched programmers. I'm glad someone besides me uses it in Perl. :) to me, it's just the next step above double-quoted strings.
16:28 pmichaud jnthn: (ROADMAP review)   I just looked it over, I think I can make some reasonable changes to the ROADMAP but need a short rest break first
16:29 moritz_ masak: the Perl6ish way would be to use .fmt, maybe :-)
16:29 pmichaud I may just do lunch real quick, then come back and do ROADMAP refactor
16:29 masak moritz_: .fmt is just sugared sprintf anyway :)
16:29 moritz_ masak: but yes, I prefer printf over too complicated interpolation
16:30 masak moritz_: if Form.pm were more evolved, I'd probably use that sometimes too.
16:30 pmichaud anyway interested in serving as Su-Shee's backup in case things fall through there?
16:30 pmichaud *anyone
16:30 arnsholt masak: For interpolating complex expressions, I prefer printf too
16:30 * moritz_ needs to go offline in 30minutes or so, so he wouldn't be a great backup
16:31 moritz_ arnsholt: do you have time, by chance?
16:31 pmichaud well, it doesn't have to happen soonish -- we still have a fair bit of time remaining today
16:31 pmichaud and I'm okay if it occurs early tomorrow
16:31 jnthn Who's tomorrow? :-)
16:32 moritz_ if it's not done by tomorrow morning (UTC+1) I can do it
16:32 jnthn pmichaud: (ROADMAP) wfm
16:32 pmichaud as long as it's Feb 18 _somewhere_ in the world, which really gives us until about 1200 UTC on the 19th :)
16:32 arnsholt moritz_: Probably. When should it be done, and what is supposed to be done?
16:32 TimToady for interpolating really complex expressions, I prefer calling a function :)
16:32 masak arnsholt++
16:33 moritz_ arnsholt: today or early tomorrow. What needs to be done is documented in docs/release_guide.pod
16:33 pmichaud arnsholt: have you done a release before?  it's not at all hard and... what moritz_++ said
16:33 TimToady as for printf, any call that involves counting more than about 2 arguments is not human friendly
16:33 moritz_ arnsholt: and I guess pmichaud++ needs to give you commit privs first
16:33 arnsholt Not done one yet
16:33 moritz_ TimToady: I've long thought that we need printf with named arguments
16:33 pmichaud oh, for commit privs I probably need a CLA
16:33 pmichaud although I could certainly grant them provisionally or temporarily
16:34 arnsholt moritz_: Or Common Lisp's format()
16:34 arnsholt I like format() ^^
16:34 pmichaud printf with named arguments sounds a lot like closure interpolation to me :-P
16:34 masak moritz_: PIR code generation has that. it's quite OK. not extremely legible, but good for half a screen of interpolated code.
16:35 masak moritz_: see PGE's Exp.pir (or GGE's equivalent) for lots of examples. :)
16:35 pmichaud my $fmt = -> $foo, $bar { "The $bar ran over the $foo." };     say $fmt('dog', 'car');
16:36 dalek rakudo/master: cb56224 | jonathan++ | docs/announce/2010.02:
16:36 dalek rakudo/master: Tweaks to release announcement.
16:36 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/c​b56224b3f54545850e7fbee9762172ead368cf7
16:36 pmichaud say $fmt(:bar<car>, :foo<dog>);
16:36 masak the twitter debate got a happy ending! :) http://twitter.com/robotpony/status/9288139528 http://twitter.com/carlmasak/status/9288531147 http://twitter.com/robotpony/status/9290510075
16:36 * TimToady is now thinking about how to use a sig instead of a string for formatting...
16:37 pmichaud say "And inside of double-quoted strings: $fmt(:bar<car>, :foo<dog>)";
16:37 moritz_ pmichaud: nice one
16:37 pmichaud I think the language designer gets credit for this one :)
16:37 moritz_ TimToady++ then :-)
16:38 TimToady probably works pretty good for internationalization too
16:39 pmichaud say "And perhaps other &plural('nouns'), too?"
16:39 pmichaud er, *'noun'
16:39 pmichaud (definitely need a break)
16:40 mberends_ arnsholt, moritz_: I didn't leap forward as backup release manager because I'm doing a Linux install and cannot guarantee continuous connectivity, but I can do a release and can do commit. Whatever you prefer.
16:40 jnthn masak:  :-)
16:41 moritz_ mberends_: then just do what you can, and we'll let arnsholt++ do a release after he submitted a CLA
16:41 moritz_ mberends_: and if you don't manage to do the release today, I'll finish it early tomorrow
16:41 moritz_ (fsvo "early")
16:42 mberends_ moritz_: good plan, I'll enjoy the first-time experience :)
16:43 pmichaud excellent plan.  and this also assumes Su-Shee absence
16:43 arnsholt And a CLA is? =)
16:43 pmichaud http://www.perlfoundation.org/​contributor_license_agreement
16:44 bkeeler It's where you sign over your first-born to be sold into slavery to fund jnthn's next grant ;)
16:44 jnthn \o/
16:44 pmichaud afk for a short bit
16:44 * jnthn is currently reviewing his current grant deliverables to see what's left to do :-)
16:45 jnthn ah, mostly "binding return values against a signature"
16:45 arnsholt Ah I see
16:45 * jnthn creates a branch to do that in.
16:45 masak pmichaud: in src/Perl6/Grammar.pm, there's a heading comment '## Nouns', followed by a large number of... terms. is there a reason behind that discrepancy in terminlology?
16:46 jnthn masak: Hysterical raisons, I guess.
16:46 * masak backs away from those raisins
16:46 mberends_ terminLOLogy ;)
16:47 masak oops :)
16:47 bkeeler Not nouninology?
16:47 PerlJam greets all
16:48 jnthn masak: Feel free to change it. :-)
16:48 masak jnthn: goodie. I'll do that, and the plural->singular change in the glue/ dir.
16:49 * PerlJam listens to Bill Gates' TED talk
16:50 PerlJam Grr. until the sound cuts out  chrome--
16:50 kthakore joined #perl6
16:50 kthakore hi
16:50 moritz_ hi there
16:50 kthakore I have parrot installed from trunk
16:50 masak kthakore: hi!
16:50 kthakore but I can't seem to get rakudo installed on that
16:50 kthakore masak: hi!
16:51 kthakore moritz_: hi
16:51 moritz_ kthakore: what errors do you get?
16:51 masak kthakore: should just be downloading it via git and building.
16:51 kthakore moritz_: well it saves my reviision is too old
16:51 masak kthakore: then you need to update Parrot.
16:51 kthakore masak: I did
16:51 masak kthakore: and do 'make install'?
16:51 kthakore but not --gen-parrot way
16:52 kthakore I have parrot instaleld seperatly
16:52 coke do you have a copy of parrot lying about in the rakudo checkout?
16:52 masak kthakore: that should work too. I don't do it the --gen-parrot way either.
16:52 coke (could be finding the old copy and then giving up.)
16:52 kthakore masak: I have the latest trunk
16:52 masak kthakore: but did you do 'make install' on it?
16:52 kthakore coke: how do I tell which is it finiding
16:52 kthakore masak: yes
16:52 coke kthakore: gotta run, masak wil lhelp you. =-)
16:52 kthakore which parrot gives /usr/local
16:53 masak kthakore: then I'm officially confused. what Parrot does Rakudo find for you?
16:53 moritz_ kthakore: the you need to configure with perl Configure --parrot-config=/usr/local/bin/parrot_config
16:53 kthakore cthanks
16:53 kthakore ah pah ok
16:53 kthakore sorry my ssh is laggy
16:53 moritz_ erm, perl Configure.pl ... (forgot the file extension)
16:53 dalek rakudo/master: 84d6b02 | masak++ | src/Perl6/Grammar.pm:
16:53 dalek rakudo/master: [Grammar.pm] slight wording fix
16:53 dalek rakudo/master: The current terminlology doesn't include 'nouns' anymore :)
16:53 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/8​4d6b0292b3776ae460ab4d7030cd8a52ac854a4
16:54 ewilhelm joined #perl6
16:55 bkeeler Hullo Eric!
16:55 kthakore moritz_: that seemed to work
16:55 moritz_ kthakore: great
16:56 uniejo joined #perl6
17:01 pugs_svn r29776 | lwall++ | [S04] unmuddying requested by Richard Hainsworth++
17:01 kthakore masak: moritz_ seen the new SDL stuff lately?
17:02 moritz_ not me
17:02 * kthakore is philandering while rakudo is compiling
17:02 * masak hasn't
17:02 moritz_ did you blog about it?
17:02 TimToady if git does Unicode properly in messages, that might be enough motivation for me to switch.  :)
17:03 moritz_ TimToady: it has very decent UTF-8 support
17:03 moritz_ TimToady: but I think svn is OK to, just the bot is a bit broken
17:03 kthakore moritz_: yes
17:03 jnthn Rakudo is so going to use pigeons carrying clay tablets.
17:04 jnthn TimToady++
17:04 kthakore moritz_: see http://yapgh.blogspot.com/ especially the 2nd last lpost
17:08 colomon arnsholt: note that the address on the CLA is wrong.  It should be a place in Michigan.
17:09 pmichaud the more I use git, the happier I am with it :)
17:10 kthakore moritz_: masak: http://gist.github.com/301949
17:10 kthakore pmichaud: \o high five
17:11 masak kthakore: oh, it's Perl 5... :)
17:12 pmichaud rakudo:  say chr(171);
17:12 p6eval rakudo 84d6b0: OUTPUT«\xAB␤»
17:12 * pmichaud fixes.
17:12 kthakore masak: I am sorry
17:12 masak kthakore: no worries. :) just looking forward to when people do that in Perl 6, is all.
17:12 kthakore masak: SDL for parrot is comming ... just need to build up community support for SDL in perl
17:13 kthakore masak: then I can get them to hack on parrot SDL
17:13 kthakore perl5 sdl perl is the only way to build up mindshare irightn o
17:13 masak nod.
17:15 Su-Shee joined #perl6
17:15 kthakore hi Su-Shee
17:16 kthakore masak I gotta head out for lunch
17:16 masak Su-Shee: hi! rumour has it you'll be today's release manager.
17:16 kthakore masak: I would love your toughts
17:17 masak kthakore: on the Perl 5 code?
17:18 kthakore masak: on the easy to use and read commendted intro to new SDL API
17:18 masak kthakore: I must have missed that one. URL?
17:19 kthakore masak: http://gist.github.com/30194
17:19 kthakore masak: I am preparing it for a perl mongers meeting
17:19 * masak looks
17:20 * kthakore goes for lunch
17:21 payload joined #perl6
17:21 masak kthakore: that URL goes to a gist of one very long line of Javascript. was it really what you meant to paste?
17:22 masak if it was, I'm not sure I can endorse such an API :P
17:22 kthakore oh
17:23 kthakore masak: http://gist.github.com/301949
17:23 kthakore oops forgot the 9
17:23 masak right. that's the Perl 5 code you showed before.
17:23 masak I must be missing something here.
17:23 mberends__ joined #perl6
17:23 masak kthakore: you are aware that this is #perl6, right?
17:23 kthakore oh right
17:23 masak :)
17:24 * kthakore blushes
17:24 kthakore I thought I was somewhere else
17:24 kthakore oops
17:24 mberends__ testing testing 1 2 3
17:24 kthakore sorry guys
17:24 jnthn :-)
17:24 kthakore hi jnthn
17:24 jnthn hi
17:24 kthakore masak: man rakudo is still going
17:24 kthakore ....
17:25 kthakore ok I gtg to lunch
17:25 kthakore caio
17:25 kthakore left #perl6
17:25 masak those trig tests really slow down the computer... :)
17:25 * mberends__ (re-)reads http://github.com/rakudo/rakudo/b​lob/master/docs/release_guide.pod
17:25 masak couldn't we pull out the trig tests into their own test suite, and only run them at festive holidays or something?
17:26 masak just an idea.
17:26 mberends__ masak++
17:26 pmichaud I'm still not sure why they're as slow as they are.
17:26 colomon masak: do you have the updated ones yet?  we've cut the run time down by a bit more than half this morning...
17:26 pmichaud but yes, they're must faster now than they were.
17:26 pmichaud *much
17:27 mberends__ we'll put them in for the release statistics and then take 'em out again
17:27 pmichaud I already did release statistics this morning -- we could use those for the release.
17:27 masak colomon: yes, I think I do.
17:27 colomon mberends_: I must admit that was sort of my working plan....
17:27 masak colomon: not complaining about the run time, but about the load on the processor.
17:27 pmichaud we should keep them in for the release also, though.
17:27 masak gtg, swimming &
17:27 pmichaud masak: is it cpu bound or memory bound, ooc?
17:28 masak pmichaud: I have 4GB of RAM, so I suppose it's the former. but I haven't checked.
17:28 colomon masak: my experience is that the current version puts significantly less stress on my system.
17:28 pmichaud masak: are you running parallel tests?
17:28 masak yes.
17:28 pmichaud I suspect it's the latter
17:28 masak ok.
17:28 pmichaud given that Parrot seems to be not doing full gc
17:29 pmichaud it could be the former as well, though.
17:29 masak aha.
17:29 * masak goes swimming
17:29 colomon running multiple tests at the same time, each of which uses more than a gig of memory...
17:30 mberends__ colomon: could you envisage of a kind of brief trig "canary" test that we always do as a general health check, and then a "make trigtest" for the detailed verification of all functions?
17:32 colomon mberends__: honestly, I had just been picturing turning them back off again manually (at least locally) once the release was done.
17:32 mberends__ colomon: ok
17:32 mberends__ has a release name been chosen for #26? Copenhagen?
17:33 * jnthn pondered that could be an ideal one
17:33 colomon It would certainly be fairly easy to set up a sort of random sampling of the trig tests for a quick version.
17:33 pmichaud haven't chosen a name.  I was going to let jonasbn decide which release he wants to have named Copenhagen.
17:36 pmichaud I'd be fine with naming it for a group with the nlpw, though.
17:36 mberends__ colomon: random sampleing is a great idea. for repeatability of pseudo random numbers, I've had good results seeding with the date (and not the time)
17:37 colomon mberends__: actually, I was thinking just doing the random sampling once and creating a new test file from it -- so perfectly repeatable.  :)
17:37 pmichaud we could name this release  "Amsterdam"  in honor of dutch perl workshop and Juerd++  :)
17:38 pmichaud clearly something as useful as "perl6.nl" deserves a mention :)
17:38 jnthn perl6.nl++
17:39 PerlJam +1
17:39 mberends__ that's fine. I'm not a member of a Dutch pm group, but Juerd++ definitely deserves recognition
17:39 mberends__ (I'm at a friend's place in London, and he's intrigued by these activities)
17:40 pmichaud London.pm also deserves a nod at some point, I think.
17:40 pmichaud anyway, I suggest Amsterdam unless the release managers come up with a better one.
17:40 mberends__ picking a name is the hardest part, right? ;)
17:40 PerlJam one of these days a pm meeting and a release date are going to conincide :)
17:41 pmichaud I actually like it when releases are a few days before a meeting.
17:41 pmichaud It's like a free meeting announcement :)
17:41 pmichaud so, Minneapolis was just before Frozen Perl
17:41 pmichaud and last year Oslo was just before NPW
17:42 mberends__ that's why I thought Copenhagen, they're very good to us. Where is jonasbn when you need him?
17:42 pmichaud maybe email him?
17:42 * pmichaud emails.
17:42 Juerd The Dutch Perl Workshop is in Arnhem though :P
17:43 pmichaud yeah, Arnhem.pm is another candidate
17:43 Juerd There isn't actually an Arnhem.pm group afaik
17:43 Juerd If I recall correctly, it's a placeholder
17:43 pmichaud but you've been such a long-time contributor to perl 6 it's worth mentioning your .pm group if you want
17:43 Juerd Thanks :)
17:43 Juerd The group has two names :)
17:44 Juerd Amsterdam.PM and NL-PM
17:44 pmichaud you can pick either one, then :)
17:44 pmichaud you can even draft what you'd like said about it.  If it's not this release, I'm sure it will be used soon.
17:44 * jnthn suddenly realizes that in two weeks, he'll be in Arnhem!
17:44 mberends__ heh
17:44 pmichaud yes, in two weeks I'll be in CPH
17:44 Juerd Neither is really appropriate. Let the RNG decide :)
17:45 Juerd The meetings are not in Amsterdam, they're in Diemen, and it's also no longer all Dutch Perl mongers since there's now also Groningen.PM :)
17:45 cotto_work joined #perl6
17:45 [particle] in two days i'll be at the olympics
17:45 Juerd I like the name "Amsterdam" best I think
17:45 pmichaud wfm!
17:45 Juerd Everybody knows Amsterdam
17:46 * Juerd should prepare that box for jnthn soon
17:46 mberends__ Juerd: then Amsterdam had better be grateful for this bequest ;)
17:47 arnsholt Speaking of CPH, is there anything in particular that is the goal of the hackathon?
17:47 pmichaud Review where we are for Rakudo *, finalize any planning details, and get a good ways along with that.
17:47 cotto_work joined #perl6
17:47 Juerd arnsholt: Releasing both the first and the second ever production releases of Perl 6, of course :)
17:47 pmichaud I suspect we'll want to nail down an approach for module management.
17:48 pugs_svn r29777 | colomon++ | [t/spec] Further optimizations to the trig tests.
17:49 pmichaud I just emailed jonasbn -- he may show up here with his preferences.
17:51 mberends__ arnsholt: the goal is also helping new hackers get started with Perl 6 according to http://conferences.yapceurope.org/hack2010dk/
17:54 colomon Is the plan to release Rakudo * two months from today, more or less?
17:54 pmichaud NO
17:54 pmichaud no
17:54 pmichaud (sorry, capslocked again)
17:54 jnthn .oO( I thought he was shouting at us :-) )
17:54 pmichaud my plan is Rakudo #28 release
17:54 Juerd Hm, not more or less... so it'll be released in *exactly* two months from today? :P
17:54 pmichaud on April 22
17:55 pmichaud Rakudo * releases between April 22 and April 30
17:55 pmichaud my current target is April 29
17:55 [particle] i wonder what the april 1 release will be called
17:55 pmichaud "No!  You Fool!"
17:55 colomon [particle]: Rakudo 3000
17:55 Juerd [particle]: "Production ready"
17:56 pmichaud "Finished"
17:56 [particle] "Stable"
17:57 jnthn "Perfect"
17:57 PerlJam "Next!"
17:58 [particle] Rakudo [*]
17:58 synth joined #perl6
17:58 jnthn Rakudo Rocket
17:58 stephenlb joined #perl6
17:58 [particle] i guess that should really be "[*] Rakudo"
18:02 Juerd == 1?
18:04 xalbo left #perl6
18:05 mberends__ Writing the rakudo/docs/ChangeLog for #26, I see the 2009-12 release has no mention at all. Can anyone find the missing paragraphs?
18:06 pmichaud I'm not sure anything was added for 2009-12
18:06 ShaneC joined #perl6
18:06 mberends__ understandable, since ng was getting all the attention. We'll skip it then.
18:07 pmichaud could just put in an item that says "no significant changes in master, ng was getting all of the attention"  :)
18:07 pmichaud for when someone else notices the missing month :)
18:07 mberends__ ok. and this one is 2010.02 instead of 2010-02
18:07 pmichaud correct
18:08 pmichaud rpm and other package managers don't like hyphens in release numbers, it seems.
18:12 mberends__ is there any chance of plugging the parrot memory leak before the release?
18:13 jnthn mberends__: Sadly not, since the Parrot release we're building against was on Tue. :-(
18:14 cdarroch joined #perl6
18:14 cdarroch joined #perl6
18:16 athenot joined #perl6
18:21 pmichaud afk, lunch, then roadmap
18:26 dalek rakudo/master: 968011b | pmichaud++ | src/cheats/setup-io.pm:
18:26 dalek rakudo/master: Default $*IN, $*OUT, $*ERR to utf8 encoding.
18:26 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/9​68011bae8827b063b4776fd87a0a0aec5bde971
18:27 mberends__ that's either a long lag or a short lunch
18:27 Trashlord joined #perl6
18:27 colomon long lag, it seems to be about five minutes on average these days.
18:28 mberends__ yeah
18:29 TimToady good chance I'm changing 1,2,4 ... *, 256 to be 1,2,4,* ... 256 instead, see p6l email
18:30 mberends__ nice, that's more readable
18:30 TimToady or just 1,2,4 ... 256, since the * can be intuited
18:30 colomon what mberends__ said.
18:30 TimToady and makes 1,2,4 ...^ 256 work better
18:30 TimToady if we add ^ notation to ...
18:31 TimToady which will be What They Mean
18:31 * PerlJam needs to read faster
18:31 PerlJam TimToady++
18:31 colomon TimToady: nod.
18:34 TimToady does lengthen fibonacci to 1, 1, &[+] ... * though, maybe that's good documentation
18:34 h1dd3n joined #perl6
18:34 TimToady or 1, 1, *+* ... * after we break * meaning the same thing on both sides of *+*
18:35 colomon I think I'm against *+*
18:35 colomon couldn't fib be 1, 1 ... &[+]    ?
18:35 PerlJam *+* is fine ... it's *** that's annoying  ;)
18:36 TimToady if we move the generator to the left side, it wouldn't have to look on the right for one
18:36 TimToady so the first value would always be the limit
18:36 TimToady I'm not sure it would be a good idea to keep the old generator on the right notation
18:37 PerlJam I'm sure it would not be a good idea
18:37 colomon on the other hand, looking for a code or whatever generator there is pretty trivial, unless there's some additional complication I'm missing.
18:37 colomon It's even already implemented in the arity-1 version.
18:38 colomon rakudo: (1 ... { $_ + rand }).batch(10).perl.say
18:38 p6eval rakudo 968011: OUTPUT«(1, 1.66239000074299, 1.9783948093078, 2.25003949271973, 3.04569168167439, 3.88831642489605, 4.3093383773266, 4.79331349399676, 4.85023542473887, 5.28266882999033)␤»
18:38 cnhappier joined #perl6
18:39 colomon hmmm... I can see arguments both ways.
18:39 TimToady that would be (1, * + rand ... *).batch(10) in the newthink
18:40 TimToady well, assuming * + rand generates a new rand each time
18:40 TimToady which it would if infix whatevers were always handles as compile-time rewrite to { $_ + rand }
18:40 TimToady *handled
18:41 TimToady which is part of the *+* --> { $^a + $^b } proposal is
18:41 TimToady basically, you'd mark those operators that you *don't* want to be autocurried, like maybe ..
18:42 TimToady and everything else would *-curry for free
18:42 TimToady including *.method
18:43 TimToady sort *.lc
18:43 TimToady instead of methods being a special case as they are now
18:43 TimToady also can autocurry metaops without having to write out bazillings of Whatever sigs
18:44 colomon I have to admit those last five comments have completely lost me.  Could you give a couple of examples of how it is now and how you envision it?
18:44 TimToady so I think it's an allaround win
18:45 TimToady okay, currently * is curried by actually calling the function and discovering at run time that we match a Whatever sig
18:46 TimToady which has the disadvantage that it's hard to optimize
18:46 TimToady also, we *can't* do the * dispatch for methods because we don't know the class yet...
18:46 TimToady *.foo doesn't know what to do, other than the compiler rewriting to { $^a.foo }
18:47 TimToady so currently that's special cased
18:47 TimToady but method calls are just postfixes
18:47 TimToady if all unary and binary ops default to compile-time rewrite, *.foo falls out of it
18:48 TimToady for the other problem
18:48 arnsholt mberends__: Thanks for the info. In that case I'll sign up
18:48 TimToady if we have a hardwired prefix:<+>(Whatever $x) {...}
18:48 colomon TimToady: Aha.  I think you're proposing it works the way I already thought it did.  :)
18:48 TimToady we can say sort +* to get numeric
18:48 arnsholt CPH isn't that far away, and I was a bit disappointed when I couldn't attend the Oslo hackathon in may
18:49 TimToady but we can't automatically use +<< *
18:49 mberends__ arnsholt: excellent :-)
18:49 Schwern joined #perl6
18:49 TimToady to get a curried hypernumeric
18:49 PerlJam That's the biggest win IMHO
18:50 TimToady I think we can keep the current mechanism as a fallback for operators that still want to curry at run time
18:50 TimToady but most simple operator curries should probably be done at compile time with *
18:50 PerlJam (bazillion Whatever sigs)--
18:50 TimToady but that implies that we need to break the current *+* semantics that mean { $^a + $^a }
18:51 TimToady and make it mean { $^a + $^b } instead
18:51 TimToady or x and y, to be consistent
18:53 TimToady shower &
19:01 dalek rakudo/master: 0fabacb | (Martin Berends)++ | docs/ChangeLog:
19:01 dalek rakudo/master: [docs/ChangeLog] draft of the 2010.02 entry
19:01 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/0​fabacb626289411a45d28133423c35bcbb62353
19:05 ive joined #perl6
19:05 lichtkind joined #perl6
19:06 cotto_w0rk joined #perl6
19:13 * colomon is getting distressed that his $code appears to be slower than the trig tests at the moment...
19:22 colomon ah, it was the classic "XP error popup doesn't show up on the mac screen" problem
19:36 Exodist_ joined #perl6
19:39 rgrau joined #perl6
19:45 jnthn Well isn't this cool...
19:45 jnthn > class TreeNode { has $.left; has $.right; }
19:45 jnthn > our sub foo() { return TreeNode.new(left => 42, right => 69) }
19:45 jnthn > my ($node (:$left, :$right)) := foo(); say "L: $left, R: $right";
19:45 jnthn L: 42, R: 69
19:45 bkeeler Nice
19:45 bkeeler So := is implemented now?
19:46 jnthn bkeeler: Yes and no.
19:46 colomon jnthn: looks like magic to me.
19:46 jnthn bkeeler: Not for normal variable bindings.
19:46 bkeeler Just signatures?
19:46 jnthn colomon: Just sufficiently advanced technology.
19:46 jnthn bkeeler: Yeah
19:46 colomon jnthn: how can you tell the difference?  ;)
19:46 jnthn bkeeler: Though hopefully normal variable bindings should come along in the next week.
19:46 jnthn colomon: I can implement SAT, but I can't do magic. :-)
19:47 jnthn ENOWAND
19:47 chromatic joined #perl6
19:50 chromatic We're going to cherry-pick Parrot r44142 to create a Parrot 2.1.1.
19:50 mberends__ a fully up to date #26 trial release tarball builds fine locally and passes 24653 tests and shows no failures :)
19:50 colomon errr... GC fix?  (he said hopefully?)
19:50 uniejo joined #perl6
19:51 chromatic That's the one.
19:51 coke joined #perl6
19:51 coke hey, rakudo folks - when is the release?
19:51 colomon supposed to be in three or four hours, I believe.
19:52 mberends__ confirmed
19:52 chromatic If you want to grab the patch and apply to your local Parrot for testing, it's at https://trac.parrot.org/parrot/changeset/44142
19:52 coke if you can wait a bit, we can get you a parrot 2.1.1 that kills that leak.
19:52 jnthn I'm inclined to wait for that.
19:52 mberends__ we can wait, that way we test the proper build procedure as well
19:52 colomon yeah, that sounds great.
19:53 jnthn chromatic++ # thanks for the quick fix!
19:53 chromatic Thanks for reporting.
19:54 jnthn chromatic: Ah, an optimization gone awry?
19:54 chromatic Yeah, missed one case.
19:54 colomon trying to build parrot with the changeset now.
19:55 coke there will be a 2.1.1 RC branch with that applied shortly.
19:56 colomon at a first test, that looks drastically better.  chromatic++
19:57 jnthn colomon: Memory consumption wise, I guess, but faster too?
19:57 chromatic It should retain some of the speed.
19:58 colomon I don't have times for the old version (I'm rerunning mberends__++'s tests in the REPL)
19:58 jnthn Ah, OK.
19:58 colomon but I haven't seen memory usage go over 75M yet
19:58 jnthn I was thinking ont he trig ones.
19:58 jnthn *on, the
19:58 colomon he was reporting 1000+M this morning.
19:58 jnthn \o/
19:59 colomon I'm try it with sin.t to see what happens once this run is done.
19:59 jnthn OK, cool.
19:59 jnthn (I've just been doing some stuff in a branch, which I'm spectesting, so can't do anything immediately.)
20:03 pmichaud I recommend we hold the Rakudo release for 2.1.1, if 2.1.1 will be released in the next few hours.
20:03 pmichaud I'm even willing to wait until tomorrow.
20:03 coke https://svn.parrot.org/parro​t/branches/release_2_1_1_RC
20:03 colomon okay, for sin.t, the timing isn't appreciably better -- might even be a touch worse -- but it max'd out at less than 200M memory used, which is vastly better than before.
20:03 coke that has the bug fix that was applied to trunk, with a bumped version #.
20:05 coke tarball coming.
20:05 chromatic The tarball should let you make the release on your schedule.
20:06 coke if they're going to require it, they probably want a full release.
20:11 jnthn coke: It's no problem for us to wait for that, I don't think. :-)
20:13 jnthn pmichaud: If you're doing ROADMAP updates, I've got a push coming in a moment that will also let us move these ones to "complete":
20:13 jnthn 3  * nested signatures (B)
20:13 jnthn 2  * captures in signatures and return values (B,H)
20:14 pmichaud jnthn: I've been sidetracked a bit -- will likely be another hour before I can look at it
20:14 pmichaud (feel free to move those to "complete", though :)
20:14 jnthn pmichaud: ah, ok, I can - I didn't want to make a conflict for you, that's all.
20:14 jnthn pmichaud: I'm *very* happy to have landed this.
20:14 jnthn pmichaud: They were the last tasks for my grant, afaict. :-)
20:16 Exodist__ joined #perl6
20:16 nihiliad joined #perl6
20:17 coke running a fulltest before I do the tarball. feather is slow.
20:18 jonasbn joined #perl6
20:19 jonasbn evening all
20:20 pmichaud jonasbn!
20:20 pmichaud hello!
20:20 jnthn oh hai jonasbn
20:21 pmichaud jonasbn: you get to pick which release is called "Copenhagen"  :)
20:21 jonasbn I have just booked the venue for Sunday
20:21 pmichaud jonasbn++  # excellent!
20:21 jonasbn we talked about monday, do you want a session to yourself for monday?
20:22 jonasbn pmichaud: what are my options?
20:22 pmichaud I expect many of us will be having a variety of discussions on saturday and sunday.  I'd like to devote Monday to Rakudo * release planning.
20:22 jonasbn okay
20:22 pmichaud jonasbn: Feb, Mar, Apr, -- whatever month you'd like!
20:22 jonasbn I would like March then
20:23 pmichaud okay, it's yours.  And I think we'll go with "Amsterdam" for today's release.
20:23 jonasbn post hackathon
20:23 jonasbn thanks :)
20:23 jonasbn my only goal is reached then
20:23 jonasbn apropos goals we need to set some goals for the hackathon
20:24 pmichaud well, on Saturday I'm guessing there are presentations and hallway discussions
20:24 jonasbn moritz_: had some ideas, but I need something to sell the hackathon
20:24 pmichaud Sunday I'm thinking we devote to people who want to hack on or with Rakudo, and orientation about the current state of things
20:24 jonasbn so Saturday will be general, and Sunday more specific
20:24 pmichaud so, early part of Sunday (or some dedicated portion of Saturday)  we bring along newbies into Rakudo building and kind of "where things are".  We can usually get people hacking on specific problems within just an hour or so.
20:25 jonasbn sounds great, since the OSD is ongoing Saturday
20:25 pmichaud Monday is a continuation of that, although I expect the "core hackers" will be discussing and prioritizing issues for Rakudo *.  All others are welcome to join that as well.
20:25 pmichaud We might have some of that discussion on Sunday afternoon/evening, if there are people who want to participate in it but can't be there Monday.
20:26 pmichaud Sunday and early Monday may also be ticket triage
20:26 jnthn pmichaud: mberends++ will be around on Sunday but not Monday - we should consider the discussion of installation standards etc for Sunday I guess.
20:26 pmichaud jnthn: good point; I'll keep that in mind (and we'll work accordingly)
20:27 pmichaud let me recheck the osd schedule a bit
20:27 pmichaud jonasbn: I'll draft a schedule and put it on the wiki
20:27 jnthn jonasbn: Are the talks scheduled yet (e.g. what time they'll be at)?
20:27 mberends the module storage, loading and packaging interests me the most
20:27 jonasbn jnthn: I have not heard anything, but I can investigate and schedule in Act accordingly
20:28 jonasbn I guess Perl hackers are living in their own little world :)
20:28 jnthn :-)
20:28 jnthn mberends: I figured, thus why I think it matters that we do it when you're around. :-)
20:28 jonasbn the people who have indicated interest are all really clever people, so we might be able to cover some ground
20:29 pmichaud if people aren't too tired, perhaps we could start discussions on modules on Saturday evening
20:30 pmichaud hmmm, perhaps in addition to my Rakudo talk I should give a "building compilers with nqp" tutorial on saturday
20:30 jonasbn the venue for Sunday is close to a really nice cafe with good food and beer, I guess we can wrap up the hackathon there Sunday evening
20:30 jonasbn the official part I mean
20:30 pmichaud newbies can come to that tutorial on saturday, and be ready to go on Sunday morning
20:30 jonasbn that would be me
20:30 pmichaud I suspect the "core group" doesn't need my tutorial, so they can rest then :)
20:31 pmichaud jonasbn00b: :)
20:32 pmichaud would 90 minutes be too long?
20:32 pmichaud 40 minutes is generally a little too short
20:32 jonasbn00b pmichaud: I think it should be fine
20:32 * pmichaud checks act
20:33 pmichaud oh, wait, carl already has a "parsing with perl 6" talk
20:33 jonasbn00b pmichaud: put the schedule up and I will take it with the OSD people
20:33 pmichaud er, moritz has that
20:33 pmichaud carl has "only Perl can parse Perl 6"
20:33 jonasbn00b hehehe
20:33 coke http://feather.perl6.nl/~coke/parrot-2.1.1.tar.gz
20:33 jonasbn00b it is all about parsing
20:34 pmichaud so I don't need to do the parsing part so much as the compiler/backend stuff
20:34 jonasbn00b I wonder, would you like to have some parrot presence at the hackathon?
20:34 pmichaud okay, I'll draft a proposed schedule and activities tonight, post it to the wiki, and send a message to the mailing list
20:34 coke please let me know if you find any problems with the release candidate.
20:35 pmichaud from there we can likely build a more detailed schedule with feedback from masak++, moritz++, etc.
20:35 pmichaud I have to go pick up kid from school -- bbi20
20:35 mberends afk & # dinner
20:35 jnthn jonasbn00b: Good food and beer! \o/
20:35 jonasbn00b :)
20:37 jnthn yay
20:37 * jnthn pushes Shiny New Features.
20:37 JoWie joined #perl6
20:38 Su-Shee joined #perl6
20:39 jferrero joined #perl6
20:40 dalek rakudo/master: d41ed4c | jonathan++ | src/ (5 files):
20:40 dalek rakudo/master: Start to recognize my (...) := foo(); as a special form that needs to promote the signature in the reducecheck for := and operate on that; add in infix:<:=> with an error for the non-Signature case and stub in Signature!BIND.
20:40 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/d​41ed4c2330630dbf05ff1f65761547c628862e1
20:40 dalek rakudo/master: 10e5b56 | jonathan++ | src/ (3 files):
20:40 dalek rakudo/master: First cut of binding a signature against the return values of a function. Kinda works. :-)
20:40 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/1​0e5b5698f8c4c1f8323ee15dd632326d88f664a
20:40 dalek rakudo/master: 83542c0 | jonathan++ | src/ (2 files):
20:40 dalek rakudo/master: Handle sub-signatures in returns so we can do unpacking, plus other little tweaks.
20:40 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/8​3542c05ff3762b72d88cce708145951276e3353
20:40 dalek rakudo/master: 3ad4e2c | jonathan++ | src/ (5 files):
20:40 dalek rakudo/master: Merge branch 'bindrets'
20:40 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/3​ad4e2cea54ffe06995d76212b7075990d47de18
20:41 jnthn Going for cheezburger, back in a bit.
20:42 dukeleto joined #perl6
20:46 dalek rakudo/master: 6357018 | jonathan++ | docs/ROADMAP:
20:46 dalek rakudo/master: Move a couple more items on the ROADMAP to completed.
20:46 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/6​357018a8fc722b978161c626111735f8a0e1898
20:55 nihiliad joined #perl6
21:00 coke the parrot 2.1.1 tarball seems ok to me. Expect a release by ... 7pm or so EST. Complain before then if necessary. (I'll check back here before doing the actual announcement.)
21:09 colomon coke: what will the svn version for it be?
21:10 colomon (and BTW, coke++, chromatic++, this is awesome support.)
21:11 coke colomon: it will not have an svn revision on trunk.
21:11 Su-Shee joined #perl6
21:11 [particle] it will still have an svn rev #
21:11 coke ... not on trunk.
21:11 [particle] right
21:11 coke which probably makes it useless to them. =-)
21:11 [particle] that's a bit problematic for rakudo, i think...
21:11 [particle] yeah
21:11 coke there will be a tag.
21:12 [particle] it *can* have a trunk revision
21:12 coke [particle]: no.
21:12 [particle] it'd be a bit of a pita to do, though
21:13 coke there's been a TON of stuff merged back to trunk since 2.1.0; not gonna happen.
21:13 [particle] yeah, sigh, there's a first time for everything
21:13 colomon [particle]: I'll bet it's not that bad to make it work.
21:14 frettled *reads backlog* jnthn++ - I suppose congratulations are in order!
21:15 chromatic Rakudo can jump to a trunk commit after the release, I suspect.
21:15 * jnthn back
21:16 jnthn frettled: Yes, getting cheeseburger is an incredible achievement. My stomach is has a happy.
21:16 [particle] does rakudo work with parrot trunk head?
21:16 frettled jnthn: :(
21:16 frettled jnthn: :), I mean
21:16 frettled nasty typo there
21:16 colomon jnthn: but your stomach does happy?
21:16 frettled but at least I managed to balance the parentheses
21:17 jnthn [particle]: Not sure.
21:18 jnthn There's no particular technical reason I know of why the svn rev # and the Parrot version number have to match up fwiw.
21:19 pmichaud in PARROT_REVISION, the Parrot version number is used when the parrot_config binary is unable to report a svn revision number
21:19 pmichaud otherwise it's pretty much ignored
21:19 pmichaud (and then, it's only used to say "your version of Parrot isn't new enough")
21:19 [particle] right, but that's where it breaks
21:19 [particle] "not new enough" is on a branch, not trunk
21:20 [particle] a "newer" parrot may not work with rakudo
21:20 jnthn Ah...I see.
21:20 [particle] if 1) the gc patch is applied to parrot trunk, and 2) rakudo works with parrot trunk head, then you're ok
21:20 pmichaud currently we set the revision number to a parrot revision *on trunk* that is known to work with Rakudo.
21:20 pmichaud Yes, it's entirely possible that there is no trunk revision that will work with Rakudo, in which case we have to patch Rakudo.
21:21 [particle] pmichaud: so are you good to keep the current parrot revision the same?
21:21 jnthn tbh
21:21 pmichaud [particle]: I'm testing parrot trunk now.
21:21 [particle] ok
21:21 mberends back, nom has been num. Ready to begin procrastinating the release until Parrot 2.1.1 is out
21:21 [particle] i,m not sure trunk has the gc patch applied
21:21 bluescreen joined #perl6
21:21 pmichaud then we'll probably end up sticking with the 2.1.0 release
21:22 pmichaud we don't have a way to target releases that are outside of trunk, at least not for the --gen-parrot option.
21:22 jnthn Is there any reason why the GC patch can't go into trunk?
21:22 pmichaud I might be able to add one, but I'm not sure it's worth the trouble at this point.
21:22 chromatic Trunk has the GC patch applied.
21:22 jnthn Oh, there we are then.
21:22 pmichaud okay, then trunk is what we should be looking at :)
21:22 chromatic We cherry picked it for the 2.1.1 release.
21:22 colomon but trunk has a bunch of other stuff as well, if I understand them correctly.
21:22 jnthn Right
21:22 * jnthn tries it too
21:22 PerlJam pmichaud: what if this happened around Rakudo * time?  :)
21:22 chromatic Sure, trunk has lots of merges.
21:23 pmichaud colomon: sure -- we need to see if rakudo will build against current trunk.  We'd have to do that anyway sometime in the next week or so, that's nothing new.
21:23 patspam joined #perl6
21:23 nbrown joined #perl6
21:24 jnthn chromatic: Did that s/pmc_new/Parrot_pmc_new/ branch land yet?
21:24 pmichaud PerlJam: We should have a week between the Parrot release and the Rakudo * release to resolve any issues.
21:24 colomon pmichaud: but it does interfere with our policy of Rakudo releases being tied to a specific Parrot release, no?
21:24 chromatic jnthn, it hasn't landed yet.  I asked Whiteknight to hold off until after the release.
21:24 jnthn chromatic++
21:24 pmichaud (until after the Rakudo release :)
21:25 pmichaud colomon: as long as the rakudo release works with the 2.1.1 release, we're good.
21:25 pmichaud The point is that we don't want to release a rakudo that doesn't work with a Parrot release.
21:25 pmichaud (that doesn't work with _any_ Parrot release)
21:25 colomon pmichaud: ah, okay, so if we work with 2.1.1 but prefer trunk HEAD, that's okay, then.  :)
21:25 jnthn Yeah, that's our only issue. If we have to patch up for trunk in a way that somehow broke things in 2.1.1.
21:25 pmichaud the svn revision number is really only used when checking out a fresh copy of Parrot under --gen-parrot
21:26 pmichaud and when verifying that a given installation of parrot is recent enough
21:26 pmichaud rakudo builds against parrot head, now spectesting
21:27 pmichaud (r44147 for those following along)
21:28 jnthn pmichaud: Same in process here on Win32 also.
21:29 pmichaud looks like we pass
21:30 colomon \o/
21:30 pmichaud has anyone heard from Su-Shee today?
21:30 pmichaud (I'm up through S32 already with no issues)
21:30 colomon pmichaud: she popped in for a bit earlier this afternoon.
21:31 pmichaud okay, reading backscroll
21:31 pmichaud and I think we settled on Amsterdam for this release?
21:31 JoWie O.o amsterdam
21:32 jnthn Confirm successful build on Win32 also.
21:32 pmichaud oh, I think I forgot to pull jnthn++ Shiny New Features before this test
21:33 pmichaud either way, I think it confirms that we'll be able to use whatever svn number corresponds to the branch and/or tag
21:34 pmichaud and, we _could_ still mark the release as being tied to 2.1.0, but recommend that people use 2.1.1 or later.  :)
21:35 chromatic Not if we pull 2.1.0 from the site.
21:35 frettled Accidentally gone, whooops?
21:35 pmichaud rakudo itself never downloads a Parrot release.
21:36 jnthn pmichaud: I get one new failure here.
21:36 jnthn t\spec\S04-statements\terminator.rakudo ....................... Dubious, test re
21:36 jnthn turned 150 (wstat 38400, 0x9600)
21:36 jnthn Failed 10/14 subtests
21:36 pmichaud ....returned 150?!?
21:36 pmichaud probably some silly Win32 thingy :)
21:36 jnthn pmichaud: Oh.
21:36 jnthn pmichaud: It runs from the shell to completion.
21:37 pmichaud not a blocker then.
21:37 jnthn pmichaud: Random segv maybe? :-/
21:37 pmichaud could be
21:37 pmichaud those still show up from time to time :-|
21:37 jnthn Yes, though fixing the pool compaction thingy solved a bunch of them recently.
21:38 jnthn That aside I'm through to S32 now.
21:38 jnthn So think we're looking good.
21:38 colomon I bet fixing the GC leak probably helps as well.
21:38 dalek rakudo/master: 6663abf | (Martin Berends)++ | docs/compiler_overview.pod:
21:38 dalek rakudo/master: [docs/compiler_overview.pod] clarified some explanations, total around 85% complete
21:38 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/6​663abf809eecc708037c0dae69fd44237bb8c05
21:38 pmichaud I'm into the OMGTHESETESTSARESOSLOW S32-trig section
21:38 jnthn Yeah :-|
21:39 Chillance joined #perl6
21:39 chromatic If someone extracted some trig tests into standalone PIR files (ah, how I dream!), I'd happily profile and optimize Parrot where possible.
21:40 pmichaud we're not sure exactly why they're slow yet
21:40 pmichaud I don't think it's the trig itself, although that's possible
21:40 pmichaud My guess is it's either the test harness itself doing things in a slow way, or something about how we have to set up for trig operations
21:40 colomon I suspect we could learn a lot from a good profile, even if a parrot fix is not called for.
21:41 chromatic I fixed a handful of String PMC malfeasances late Tuesday from some Rakudo profiling.
21:41 jnthn perl tools\benchmark.pl shows an overall slow-down in method calls and sub calls.
21:41 jnthn I know part of why that is.
21:41 jnthn (Slurpy hash creation got expensive. I can make it cheaper again though.)
21:42 colomon chromatic: how many tests would you like to get?
21:44 chromatic Two or three, if they exercise different things.
21:44 mberends colomon: you mean "how many thousand tests"?
21:44 colomon mberends: that is actually more or less what I was thinking, yes.  :)
21:45 chromatic Anything that takes more than three or four wallclock seconds to run is harder to profile.  Callgrind is not speedy.
21:45 alinbsp joined #perl6
21:45 colomon chromatic: okay, that will require some severe pruning, but let me see what I can do.
21:45 pmichaud with r44147
21:45 pmichaud All tests successful.
21:46 colomon \o/
21:46 jnthn Yay
21:46 jnthn pmichaud: Looks to be heading that way here too. :-)
21:46 coke if you word your announcement properly, I suppose you can just go whenever, and when 2.1.1 shows up, yay.
21:46 * colomon does think it's a little odd that everyone is getting excited about test speed now, when the spectest runs routinely took an hour on master...
21:47 pmichaud coke: I'm thinking we'll likely hold until much later tonight or early tomorrow
21:47 pmichaud there are a few other things we'd like to get in place, and our likely release managers tend to be positive longitude
21:48 * colomon has hacked-sin.t down to 177 tests, 11 wall seconds.
21:49 pmichaud colomon: I think it's more that we have an increased number of active committers now
21:49 pmichaud colomon: but yes, we're performing much better than master was
21:49 colomon pmichaud: well, we're not testing a lot of stuff.
21:49 pmichaud colomon:  it's also just that it's obvious that this particular section of tests are slow for some reason
21:50 colomon I admit I've gotten spoiled  by quick spectests, and would love if they would continue to be quick.
21:50 mathw hello hello
21:51 jnthn hi mathw  :-)
21:51 pjcj joined #perl6
21:51 pmichaud need reboot here -- bbiab
21:54 jnthn Tests finished and looked fine.
21:54 colomon now how to generate PIR from a .t file?
21:55 jnthn --target=pir
21:55 colomon and just pipe that to a file?
21:56 jnthn yes
21:57 colomon chromatic: how would you like me to get this to you?
21:58 chromatic nopaste is fine, direct mail is okay (chromatic wgz org)
22:00 pmichaud back again
22:03 mathw wb pmichaud
22:05 Su-Shee mberends: thanks for jumping in, I totally forgot about it. :/
22:05 Su-Shee hi all.
22:05 mberends Su-Shee: we'll catch you another time ;)
22:05 jnthn hi Su-Shee
22:06 * colomon is having difficulty uploading a file.  stupid computers.
22:07 [particle] nopaste
22:07 [particle] heck, parrot/tools/utils/nopaste.pl
22:07 mathw Su-Shee: next month
22:07 Su-Shee mberends: I didn't even realize that it's feb. already.
22:08 Su-Shee mathw: it's not booked until 2012? ;)
22:09 mathw I have no idea :)
22:09 mberends Su-Shee: smash is booked for March, pmichaud for April. That's all
22:10 Su-Shee mberends: this is the first ng-made-master release?
22:10 mberends yes :) and looking good!
22:10 pmichaud and I'm only tentative for April :-)
22:11 pmichaud (only because I don't know what will happen around the Rakudo * release)
22:11 Su-Shee mberends: *pew* :)
22:13 dalek rakudo/master: c69aeb9 | pmichaud++ | docs/release_guide.pod:
22:13 dalek rakudo/master: Update release_guide.pod with more names.
22:13 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/c​69aeb9f9ffb3f1e7e3dc84db6faa36bcd09c665
22:13 pmichaud German Perl Workshop is likely in early June, perhaps a .de person can do the May or June release :)
22:13 pmichaud (and yes, I'm planning to attend :-)
22:13 mathw oooh
22:13 mathw German Perl Workshop
22:13 Su-Shee and yapc eu is in july.
22:14 * mathw wonders if he could afford that
22:15 jnthn pmichaud: Planning to attend GPW?
22:15 pmichaud yapc eu is in ... july?
22:15 pmichaud jnthn: yes.
22:16 jnthn pmichaud: August.
22:16 jnthn Right at start of.
22:16 pmichaud right, august is normal for yapc::eu
22:16 mathw GPW would make sense for me because I know I can survive in Germany.
22:16 jnthn pmichaud: Pondering GPW instead of YAPC::EU?
22:16 jnthn pmichaud: Or aiming for both if pos?
22:16 pmichaud aiming for both -- depends on sponsorships
22:16 jnthn OK.
22:17 Su-Shee .oO(where the hell is "schondorf"..)
22:17 ggoebel joined #perl6
22:18 dalek rakudo/master: 2663b19 | (Martin Berends)++ | docs/ (2 files):
22:18 dalek rakudo/master: [docs/] additions to ChangeLog and announce/2010.02
22:18 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/2​663b191e40001e088c7010962eb20758844ecc1
22:19 colomon chromatic: e-mail off to you, apologies for the delay -- file selection is broken in OS X chrome now or something.
22:20 mathw Su-Shee: near Stuttgart, it says
22:20 chromatic Thanks.
22:20 Su-Shee mathw: never heard of it. can't be large. ;)
22:21 snarkyboojum joined #perl6
22:32 wknight8111 joined #perl6
22:34 lichtkind Su-Shee: you did parrot release?
22:39 jnthn oh lol
22:40 jnthn I've just done two silly little optimizations.
22:40 jnthn Between them they take the spectest run for me from 21 minutes to 13 and a half.
22:40 chromatic You still can't have my trophy.
22:40 pmichaud wheeee!
22:41 pmichaud I can do an optimization that cuts the spectest time even lower.   1,$s/^/#/   on t/spectest.data  :-P
22:41 jnthn :-P
22:41 lichtkind chromatic++
22:41 dalek rakudo/master: a04aba2 | jonathan++ | src/pmc/p6opaque.pmc:
22:41 dalek rakudo/master: Since we wrapped out Parrot routines in our own wrappers, we added an extra PIR invocation as a re-direct every time. Optimizing that path to save the extra invocation seems to save us > 30% in some benchmarks.
22:41 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/a​04aba2165dcb0c5228391fde5d9a33c512823a3
22:41 dalek rakudo/master: 15ba550 | jonathan++ | src/builtins/Mu.pir:
22:41 dalek rakudo/master: Since we've no custom metaclasses yet, we can cheat in the default BUILD a bit (when we do have them, we can probably move this BUILD into the meta-class and continue to cheat, albeit at tail-call cost or so.
22:41 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/1​5ba55062e33a811a62c9771f561ca539cf9ef53
22:42 jnthn OH NOES I missed a closing paren! :-O
22:42 jnthn ...in the commit message.
22:42 jnthn :)
22:42 mberends ^ extra closing paren :)
22:43 jnthn :)
22:43 jnthn oh noes, unbalanced again
22:44 lichtkind chromatic: can i asky you several questions?
22:44 chromatic Yes.
22:44 lichtkind thanks
22:44 chromatic jnthn, that first patch there in P6Opaque looks like something Parrot should be able to handle.
22:45 jnthn chromatic: "able to handle"?
22:46 chromatic You're basically looking for an overridden invoke somewhere in MRO, right?
22:46 jnthn chromatic: I overrode that because I didn't like Parrot's vtable-invoke behavior at the time, but that may have changed.
22:47 jnthn chromatic: But the optimization was to detect and optimize for a particular hot-path.
22:47 chromatic Right, I see that.
22:47 jnthn But possibly these days we can just remove most of that and delegate up to Parrot.
22:47 chromatic I think we have a "is there a vtable override?" cache per class.
22:48 jnthn Does Parrot's vtable invoke unshift the PMC that was invoked onto the start of the call signature?
22:48 chromatic That I don't know without reading the code.
22:48 jnthn OK. That was the primary reason I overrode it.
22:49 jnthn Well, we used to do it differently than that, actually...my original override set it as a property on the sub, back before the PCC refactor.
22:49 jnthn And then once call signatures landed and it was easy to twiddle them, I switched to that approach instead.
22:49 chromatic Is this to stuff the invocant at the start of @_?
22:49 jnthn Right.
22:49 pmichaud Perl 6 expects the invocant as the first positional argument
22:50 jnthn Well, the problem is specific to vtable invoke.
22:50 chromatic In that you need access to the invocant in the vtable at the PIR level.
22:51 jnthn I don't know if Parrot changed, but a while back vtable invoke in PIR was useless because you didn't have a way of knowing what the $P0 that had been invokved in $P0(a,b,c) was.
22:51 jnthn Well
22:51 sjohnson joined #perl6
22:51 jnthn Less useful than I needed it to be, I should say. :-)
22:51 chromatic Yes, I remember that bug.
22:51 mberends all 4 of our talks have been confirmed at http://conferences.yapceurope.org/hack2010dk/talks
22:52 chromatic Okay.  I won't promise that the code in P6Opaque can go away now, but I think there's a good chance it can disappear in the near future.
22:52 pmichaud the design of vtable invoke is slated to change, but I don't know if that's happened yet
22:52 pmichaud (allison and I discussed this during a conference call last november)
22:53 jnthn Current code looks as though it may do something like what Rakudo does.
22:53 jnthn though it's marked
22:54 jnthn /* Experimental code. See DEPRECATED.pod */
22:54 chromatic Right, and the way we check for vtable overrides will change to something much cheaper.
22:54 jnthn But it does a VTABLE_unshift_pmc(interp, call_sig, SELF);
22:54 jnthn So looks like it might be right.
22:54 chromatic Agreed.
22:54 jnthn Trouble is, I dunno if that means vtable invoke has changed, or if further changes are planned.
22:55 pmichaud istr there was a trac ticket for it.  I'm certain I can get the relevant irc log, though.
22:55 jnthn But if it's going to have the same semantics as there, then yes, I can simply P6opaque.pmc
22:55 jnthn *simplify
22:56 chromatic It should have the same semantics, yes.
22:57 * pmichaud wants to try out jnthn++'s speedup for himself :)
22:57 jnthn pmichaud: Another little one on the way soon too.
22:57 pmichaud 13.5 minute spectest run of 24k tests is... quite reasonable
22:57 jnthn pmichaud: Well, depends what you had before.
22:57 pmichaud not great, but reasonable
22:58 jnthn pmichaud: I had 21 minutes before.
22:58 chromatic Under 10 would be nice.
22:59 pmichaud the 44174 test I did a while ago was just under 20 minutes
22:59 coke ok. anyone try the 2.2.1 tarball?
22:59 pmichaud coke: I'll try it shortly.  and surely it's 2.1.1, right?
23:00 pmichaud (since 2.2.0 hasn't come out yet...?)
23:01 coke ... yes.
23:01 coke ok. I'
23:01 coke ll hold off on a release until you give it a whirl.
23:01 pmichaud what's the url for the tarball?
23:09 chromatic ~8 minutes to run spectest for me against Parrot HEAD, running 5 parallel test jobs.
23:11 * jnthn has only 4 cores so isn't sure bumping beyond 3 parallel test jobs will be a huge win, given we seem to be fairly CPU-bound in the tests.
23:12 jnthn May be worth a try though.
23:21 pmichaud 12m30 for me to run against PARROT 44147, non-parallel
23:22 Juerd joined #perl6
23:22 colomon btw, I get the impression (from top) that 3 parallel test jobs is the default, even for dual core systems?
23:22 pugs_svn r29778 | lwall++ | [Spec] simplify series operator by moving generator function to the left side
23:22 pugs_svn r29778 | (any function on right side will now be a limiting conditional)
23:22 pugs_svn r29778 | * is no longer required to intuit series on the left, merely absence of generator before ...
23:22 pugs_svn r29778 | first argument on right is always a limiter argument
23:22 pmichaud colomon: that's the default used by t/harness, yes.
23:22 pugs_svn r29778 | add new ...^ form to exclude a literal limiter for convenience
23:23 pmichaud yay!  more spec changes!!!  :-)
23:23 TimToady I don't expect them to get into this release.  :)
23:23 TimToady but it is, in fact, a simplification
23:23 am0c joined #perl6
23:23 pmichaud well, *I* didn't promise which version of the spec we'd support in April.  :-P
23:24 pmichaud (yes, I'm sure it will be done in the next few days :)
23:25 jnthn pmichaud: That's non-parallel? Wow!
23:25 colomon how long is the released delayed for?  ...  ;)
23:26 pmichaud jnthn: yeah, I don't think I have TH3 installed on my notebook.
23:26 pmichaud it doesn't appear to be running parallel there at the moment.
23:27 pmichaud yeah, my notebook still has TH2.64
23:28 pmichaud and yes, my notebook tends to be pretty speedy
23:29 jnthn Time to spectest my latest opt (make slurpy hash creation faster)
23:29 jnthn Between this opt I'm now spectesting and the previous two I pushed an hour or so ago, 10,000 method dispatches benchmark now takes approx a *third* of the time I did before.
23:30 chromatic Looks like there's some fat in P6Opaque's find_method() too.
23:31 chromatic Any reason Whatever can't override that itself?
23:32 jnthn chromatic: I've got plans for doing that in the future
23:32 jnthn chromatic: I want to work it into some more general "writing customer dispatcher" stuff that needs doing anyway.
23:32 jnthn But yes, I'd like that to go away too.
23:32 chromatic The other thing I notice there is that building and caching a hash of "Methods this shouldn't be!" would be cheaper than those string comparisons.
23:34 jnthn chromatic: Yeah, it probably would. That special list has kinda grown organically...I still sorta half feel they're a design smell as well as a performance issue.
23:34 chromatic Nothing in the trace really jumps out at me as an obvious win from the Parrot side.
23:35 chromatic There are a handful of 2-3% potential improvements.
23:36 pmichaud 2.1.1 tarball passes spectest against rakudo head just fine.
23:37 pmichaud run spectests in 12m0s  (non-parallel)
23:37 pmichaud *ran
23:37 jnthn chromatic: You got the trace of Rakudo's bits of C too?
23:37 jnthn chromatic: Any info on the relative costs there?
23:38 chromatic Most of what's expensive is in Parrot, as you might expect.
23:38 chromatic find_method() is where Rakudo's C starts to get expensive.
23:38 jnthn How does stuff in bind.c figure?
23:38 jnthn OK, that's useful to know.
23:38 pmichaud afk, dinner fetch
23:39 chromatic The most expensive one is Rakudo_binding_bind_one_param() and it's pretty cheap.
23:39 jnthn OK, good.
23:39 jnthn And yes, I'd expect that to be the more costly spot.
23:40 jnthn With this patch, spectest is now down under 9 minutes for me. \o/
23:41 chromatic I can squeeze out a little more.
23:41 mberends jnthn++
23:41 jnthn \o/
23:41 jnthn Pushed.
23:41 jnthn My spectest run before these patches took 1258s. My latest one took 517s.
23:42 jnthn Meaning I can now do a spectest run in 40% of the time I could earlier.
23:42 jnthn I think I can haz a beer now.
23:43 lichtkind jnthn: excellent idea
23:46 dalek rakudo/master: e77b754 | jonathan++ | src/ (2 files):
23:46 dalek rakudo/master: Optimize hash - especially slurpy hash - creation.
23:46 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/e​77b754a69dcd5aa2912b63cd7dcff0fbc3cd64b
23:50 lichtkind jnthn: zravičko
23:50 snarkyboojum joined #perl6
23:50 lichtkind jnthn: zdravičko
23:50 jnthn :-)
23:51 snarkyboojum dobar dan
23:53 jnthn snarkyboojum: dobry večer :-)
23:53 snarkyboojum :)
23:53 jnthn Slovanske jazyky FTW. :-)
23:58 johnz joined #perl6
23:58 jnthn chromatic: Another thing I wish was faster is Rakudo startup...
23:58 jnthn Granted it's better now than it has been in the past.
23:58 chromatic No kidding.
23:58 chromatic Is that mostly PMC freeze/thaw?
23:58 jnthn Parrot got a load better there.
23:58 jnthn Not sure.
23:58 jnthn Part of it is that we do so much work at startup
23:59 jnthn Through not having persisted stuff.

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

Perl 6 | Reference Documentation | Rakudo