»ö« | perl6.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo: / pugs: / std: , or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend!
Set by diakopter on 25 January 2010.
quietfanatic rakudo: say 3 00:00
p6eval rakudo 324f56: OUTPUT«3␤»
quietfanatic huh
oh nvm 00:01
dalek kudo/master: e7a395b | jonathan++ | t/spectest.data:
Add S06-signature/tree-node-parameters.t to spectest.data.
00:02
kudo/master: 5d43a30 | jonathan++ | docs/ROADMAP:
Move unpacking arguments to completed section of ROADMAP.
00:03 aindilis left, aindilis joined
lue hello jnthn. 00:04
(a lot of things have been timing out today,weird)
jnthn hi lue
Yeah, it happens now and then.
00:05 supernovus left
lue ...oops. I missed the ping-pong ball. What's gonna happen? o.o 00:06
00:11 masak joined
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
lue Hello masak! o/
p6eval rakudo 5d43a3: OUTPUT«4..^5␤»
masak heh :)
lue: hi! :)
rakudo: say (4...^5).perl # should be 4 3 2 1 0 1 2 3 4, according to TimToady
p6eval rakudo 5d43a3: OUTPUT«Method 'perl' not found for invocant of class 'GatherIterator'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
masak ooh! 00:13
masak submits rakudobug
rakudo: my @a = (4...^5); say @a.perl # should be 4 3 2 1 0 1 2 3 4, according to TimToady
p6eval rakudo 5d43a3: OUTPUT«[4, 3, 2, 1]␤»
masak submits rakudobug
two flies with one stone! nice!
s/flies/birds/ # wrong language 00:14
diakopter birds > flies
masak diakopter: hello.
lue More like two grains of sand in one Perl :)
jnthn lolitsmasak
diakopter could not find nonexistent sub &hello
masak I'm onlt here to turn backlogs into rakudobugs. 00:15
s/t/y/
then I'm off to sleep.
diakopter yurn those bugs
oh, onlt
masak you can look forward to my '1024 Rakudobugs' talk in 2011 :) 00:16
or 2012, depends on how many bugs we turn up.
diakopter 2048, too 00:17
masak diakopter: my guess is that the second 1024 will be *much* tougher.
but yes, sure. I'll give a '2048 Rakudobugs' talk, if I ever amass that many rakudobugs.
jnthn rakudo: Rat.^add_method('lol', method ($what) { say "lol$what" }); 3/4.lol('cat') 00:18
p6eval rakudo 5d43a3: OUTPUT«lolcat␤»
diakopter by then it will be "second system syndrome done even better"
masak: I meant 2048 A.D.
jnthn \o/
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')
p6eval rakudo 5d43a3: OUTPUT«Null PMC access in find_method('lol')␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
masak submits rakudobug
jnthn fwiw, that's not supposed to work. :-)
(shouldn't npmca, though)
masak bla bla bla Null PMC access bla bla... yes
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:20 rgrau left
jnthn masak: It's just that it's a method written in PIR with no .return 00:21
masak :)
jnthn We either need (a) a blanket solution or (b) to go and find/tweak each method/sub that does that
masak reads that as "It's just that it's a [black box]"
jnthn Or ot write less in PIR :-)
*to
No, it's quite hackable on. :-) 00:22
00:22 sjohnson sets mode: +o jnthn
masak jnthn: hey, I don't tell you the specifics of bug submitting! :P 00:22
00:22 sjohnson sets mode: +o masak, sjohnson sets mode: +o TimToady
masak sjohnson: thanks. it'll wear off soon, though. :/ 00:22
sjohnson :)
jnthn masak: :-P
lue How to submit a bug:
jnthn 1) summon masak
lue 1) Find HypnoGlasses
2) Find Bug
3) Submit Bug (to your will) 00:23
masak you make it sound so sterile and clinical.
it's an Art, see.
jnthn At least you get HypnoGlasses.
jnthn ponders writing a quick blog post
00:23 Juerd joined
Juerd rehi 00:23
jnthn Juerd: ohhai 00:24
00:24 sjohnson sets mode: +o Juerd
lue it's a pun. 00:24
sjohnson so many familiar faces all at once!
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.
masak lue: I've submitted puns as rakudobugs, too :)
Juerd Sorry for the outages :)
masak rakudo: (1..2).perl
p6eval rakudo 5d43a3: ( no output )
masak rakudo: (1..^3).perl 00:25
p6eval rakudo 5d43a3: ( no output )
lue Bolton is a pun as well :D
jnthn Juerd++ # thanks for fixing!
masak rakudo: (1...2).perl
p6eval rakudo 5d43a3: OUTPUT«Method 'perl' not found for invocant of class 'GatherIterator'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
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)␤»
masak lue: maybe bolt on the hypnoglasses, that way one doesn't have to find them each time.
diakopter: that is a null regex, you know. 00:28
diakopter which one
jnthn std: //\//
masak that last one.
lue masak: oh no, no, its... a palindrome!
p6eval std 29773: OUTPUT«===SORRY!===␤Null regex not allowed at /tmp/T98DvESUDL line 1:␤------> //⏏\//␤FAILED 00:01 105m␤»
jnthn \o/ 00:29
masak lue: 'bolton' is *not* a palindrome.
jnthn notlob
lue masak: you never see the Monty Python dead parrot sketch, have you?
masak sure I did. 00:30
oh :)
lue "The palindrome of Bolton is Notlob!" said John Cleese
masak ok. fair enough.
TimToady std: say "foo" ~~ / <+<alpha> - [A..Za..z] >+ /
p6eval std 29773: OUTPUT«===SORRY!===␤Unrecognized regex assertion at /tmp/i8E3BA11Rb line 1:␤------> say "foo" ~~ / <+⏏<alpha> - [A..Za..z] >+ /␤ expecting character class element␤FAILED 00:01 107m␤»
TimToady std: say "foo" ~~ / <+alpha - [A..Za..z] >+ /
p6eval std 29773: OUTPUT«ok 00:01 106m␤»
TimToady pausenclown: ^^^
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] >+ /
p6eval rakudo 5d43a3: OUTPUT«NO WAI␤»
rakudo 5d43a3: OUTPUT«␤»
TimToady rakudo: say "f00" ~~ / <+alpha - [A..Za..z] >+ /
p6eval rakudo 5d43a3: OUTPUT«␤»
diakopter rakudo: say "___" ~~ / <+alpha - [A..Za..z] >+ /
p6eval rakudo 5d43a3: OUTPUT«___␤»
TimToady rakudo: say "föö" ~~ / <+alpha - [A..Za..z] >+ / 00:32
p6eval rakudo 5d43a3: OUTPUT«öö␤»
masak föö?
jnthn rakudo: say "fl" ~~ / <+alpha - [A..Za..z] >+ /
p6eval rakudo 5d43a3: OUTPUT«␤»
jnthn gah
masak that's like the Swedish version of 'foo'.
TimToady masak: pronounced the same as 'feh'?
jnthn rakudo: say "öl" ~~ / <+alpha - [A..Za..z] >+ /
p6eval rakudo 5d43a3: OUTPUT«ö␤»
jnthn
.oO( why yes, that is the only Swedish word I know with ö in it )
masak TimToady: no, more like 'fur', actually.
diakopter or 'pho' 00:33
lue rakudo: sub is_palindrome($s) {$s eq ($s.flip | "notlob")}; say is_palindrome('bolton') ?? "YEA" !! "NO WAI"
p6eval rakudo 5d43a3: OUTPUT«Method 'Str' not found for invocant of class 'Junction'␤current instr.: 'perl6;Mu;' pc -1 ((unknown file):-1)␤»
lue :/
masak lue: nice try.
TimToady I was thinking Deutsch, not Svensk
masak 'Svenska' for the language.
TimToady ah 00:34
diakopter rakudo: say try try try die die die
p6eval rakudo 5d43a3: OUTPUT«Null PMC access in type()␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
masak (since the full phrase is 'svenska språket')
diakopter++
masak submits rakuodbug
at this rate I'll never get back to bed.
jnthn Getting up to submit bugar? That's dedication! 00:35
masak better believe it.
('buggar')
jnthn aww
lue considers calling it rakuda-do just to bug everyone
jnthn masak: bugg singular? 00:36
masak yes.
jnthn Ah, phew. :-)
Not scary pluralization fun. :-)
masak not in this case.
jnthn parsed that as grammatical case at first 00:37
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
masak whatever that is, it sounds cute. 00:39
rakudo: try die
p6eval rakudo 5d43a3: ( no output )
masak rakudo: try try die
p6eval rakudo 5d43a3: ( no output )
masak rakudo: try try die die
p6eval rakudo 5d43a3: ( no output )
lue alpha: die
TimToady 'course, that's not to say that a rakuda doesn't have bugs...
p6eval alpha 30e0ed: OUTPUT«No applicable candidates found to dispatch to for 'die'␤in Main (file <unknown>, line <unknown>)␤»
masak rakudo: say try die
p6eval rakudo 5d43a3: OUTPUT«Null PMC access in type()␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
masak ah.
TimToady masak: Way of the Butterfly 00:40
well, actually chouchou-dou
chōchōdō 00:41
masak 蝴蝶道 in Mandarin.
TimToady yeah, but they pronounce it wrong :) 00:42
masak uhn.
rakudo: say try {} 00:43
p6eval rakudo 5d43a3: OUTPUT«Null PMC access in type()␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
jnthn We should really try to do better with that construct. :-/
masak rakudo: my $a = try {}
00:43 quietfanatic left
p6eval rakudo 5d43a3: OUTPUT«Null PMC access in can()␤current instr.: '&infix:<=>' pc 16112 (src/builtins/Junction.pir:207)␤» 00:43
TimToady 蝶蝶道 in Japanese
jnthn Yeah, it's all the same underlying bug. :-|
masak jnthn: just checking.
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)
TimToady it's flies now is it?
masak sorry, birds. 00:45
diakopter albatrosses
or macaws
TimToady you can say that again
diakopter with a lodestone, even 00:46
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)␤»
masak rakudo: Bag
p6eval rakudo 5d43a3: OUTPUT«Could not find non-existent sub &Bag␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
masak makes note 'implement Bag'
lue aɪ θeɪŋk θɪs ɪs ɑːnɔɪɪŋ 00:48
masak lue: I agree. it is.
but it's scary that I can read it. :/
lue masak: It took me forever to write that. How do you...? 00:49
diakopter rakudo: .say for $_
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)␤»
masak lue: permanent brain damage, I suppose.
diakopter std: .say for $_
p6eval std 29773: OUTPUT«ok 00:01 106m␤»
masak lue: also, I'm quite tired. that helps.
masak submits rakuodbug
diakopter: oh, for...! :)
diakopter ..how wide and how deep..
what's this new rakuodbug 00:50
masak diakopter: the one you just p6eval'd?
with '.say for $_'? 00:51
diakopter just got '<@TimToady> you can say that again'
masak oh wait. I don't need to submit that.
masak stands down
statement_mod_loop for are known to be TODO.
diakopter oh
masak and the spectests will catch them. 00:52
lue IPA is a great way to `encrypt' messages (like ROT13 back in the day).
The translator (for english) would be hell to program, though. :D
Juerd jnthn: Haven't actually done anything myself, except watch and provide coffee to the externel engineer who did fix it 00:54
masak ok, good night, people. o/ 01:07
01:07 masak left
lue good night, masak o/ 01:08
01:09 xomas left 01:10 ihrd joined, ihrd left
lichtkind good nicht 01:18
01:18 lichtkind left
jnthn -> sleep, ngiht 01:19
*night
lue g'night o/ 01:20
or is it this hand: \o
01:58 pausenclown left 02:01 lue left 02:06 jferrero left 02:07 justatheory left 02:08 alester left 02:27 rv2733 joined 02:49 ShaneC1 left 02:50 stephenlb left 02:51 mssm left
dalek kudo/master: 351d3d8 | pmichaud++ | docs/spectest-progress.csv:
spectest-progress.csv update: 172 files, 4816 (29.1% of 16525) pass, 1 fail

S29-conversions/ord_and_chr.rakudo aborted 1 test(s)
02:55
02:58 cdarroch left 03:10 ggoebel left 03:15 wknight8111 left 03:20 gabiruh_ joined 03:21 cosimo_ joined 03:22 arlinius left, cosimo left 03:26 jaldhar left, gabiruh left 03:27 jaldhar joined 03:32 maerline joined 03:33 athenot left
dalek kudo/master: 1a05eae | pmichaud++ | docs/announce/2010.02:
Add draft 2010.02 release announcement.
03:35
kudo/master: 9be7890 | pmichaud++ | docs/release_guide.pod:
Update release guide to note that we now use dots instead of hyphens
03:38 azca joined 03:42 nihiliad left 03:51 redicaps joined
azca hello 03:53
colomon hello! 04:02
azca how are you? 04:11
so is there a timeframe for when perl6 will come out?
colomon The regular monthly release is tomorrow. 04:27
There is intended to be a major release two months from now, Rakudo *.
dalek kudo/master: b4824f3 | (Solomon Foster)++ | t/spectest.data:
Turn on trig tests.
04:33
azca does major release mean the final release (i.e. not beta) 04:37
colomon no. 04:38
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?
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
colomon None of the current p6 implementations are working on p5 compatibility at all at the moment. 04:40
azca ok 04:41
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?
colomon It's planned to come along eventually, but I would suspect p5 support in p6 is a couple of years off. 04:42
Hmmm... I'm not aware of a summary page.
perl6.org has a lot of info.
perlgeek.de/en/article/5-to-6 04:43
perl6advent.wordpress.com/2009/12/0...-calendar/ gives a lot of examples of cool stuff in Perl 6.
I need to be getting to bed. Good luck! 04:44
azca cool thank you 04:45
04:45 maerline left
azca I will check those out 04:45
04:46 azca left 04:47 needlinux joined 04:54 needlinux left, kcwu joined 04:55 rv2733 left 04:56 kcwu left 04:58 kcwu joined 05:02 arlinius joined 05:03 lue joined
lue please respond if you are of existence. 05:06
Trashlord define existence 05:07
lue thank you. Anyone else?
05:09 tylerni7 left
lue I really would like to ping-timeout everyone who stays logged on w/o so much as marking themselves as away. 05:10
I'm guessing ≈90% of the logged in people (read: PEOPLE, not bots) are not here. 05:11
05:13 kcwu left 05:14 kcwu joined 05:51 lue left
TimToady my existence comes and goes randomly 05:58
s1n lue seems harsh, i frequently lurk, mainly because i don't have much to add but enjoy the conversations 06:04
bkeeler I'd forgotten about the /away command 06:14
06:18 aindilis left
vamped no, it's just that the rest of us are pondering existence 06:26
06:53 kaare joined, kaare is now known as Guest68103 06:55 [synth] joined 06:57 synth left 06:59 viklund left 07:13 uniejo joined 07:14 Su-Shee joined
Su-Shee good morning 07:14
07:21 cjk101010 joined 07:23 am0c joined 07:28 tusooa__ joined, tusooa__ left, Su-Shee left 07:30 Su-Shee joined
sjohnson hi 07:46
07:51 iblechbot joined 08:13 [particle] joined 08:14 bkeeler left
mathw Good localtime, #perl6 08:17
vamped o/ 08:20
08:24 clausi joined 08:25 wanradt_ left 08:26 [particle] left 08:50 mssm joined
moritz_ good morning 08:52
08:54 dakkar joined
mathw hai moritz_ 09:01
moritz_ wonders why the charts on rakudo.de are not updated 09:02
ah, 'git pull' was reporting that I was in the middle of a conflicting merge. Tough beans. 09:04
mathw :( 09:15
09:25 jferrero joined 09:27 vamped left 09:36 Woody2143 joined, Schwern joined 09:53 crazed left 10:05 crazed joined 10:13 payload left 10:14 johnz left, johnz joined 10:22 masak joined
masak oh hai, #perl6. 10:22
moritz_ oh hai 10:23
10:25 orafu left
masak ooh, jnthnhazblogged! 10:26
10:26 orafu joined
moritz_ urlz? 10:26
masak use.perl.org/~JonathanWorthington/journal/40190
moritz_ kthx 10:30
masak np 10:32
10:51 ruoso left
masak by some cosmic coincidence, the most vehement Perl 6 haters on Twitter often turn out to be Python people. 10:53
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. 10:55
jnthn oh hai 11:00
masak o/
jnthn++ # nice blog post
jnthn ooh...my blog post had a noticed!
moritz_ and at least two readers :-)
masak three, if you count the Python Twitterer :) 11:01
he said this: twitter.com/robotpony/status/9265036226 -- I asked this: twitter.com/carlmasak/status/9278573748 -- no reply yet. 11:02
'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
11:03 gfx joined
masak in this case, he will reply 'no, my criticism is that they rewrite all the time without shipping anything' 11:04
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.
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
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
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:09
mathw It is interesting how the culture has lined up as showing Perl and Python worlds as being very different 11:10
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
11:12 mathw sets mode: +o masak
mathw I guess from my perspective, I've watched this happen so I just know why all this was done 11:12
I have no need to even think about the reasoning
jnthn s/we/he
11:13 Schwern left
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
jnthn: why can't you just write it properly the first time? What kind of stupid amateur coder are you?
*cough* Python's OO support *cough* 11:14
hey I'm arguing with an imaginary version of myself
it must be Thursday
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
I wish we could do more of that at work.
jnthn I decided quite a while ago that a bredth-first approach was, by and large, a good way to approach Perl 6 implementation.
mathw breadth-first? I'm not sure how to envisage that on a language implementation 11:18
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"
As opposed to "focus on getting the whole of one feature done first"
mathw Ah yes, that way
It helps you make sure you have room for all the stuff you've not done yet
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.
mathw that's important too
especially when you're working on a language spec that's still in flux and untested in practical use
the same value which we got from Pugs 11:22
colomon o/
jnthn Yes, IIRC Pugs also went through a process of quite a few refactors.
mathw yes I believe it did 11:23
I always wanted to get involved, but never quite got round to it 11:24
would've been a good place to play with my Haskell knowledge though
colomon has anyone tried running spectest since I turned ontrig last night?
it made my machine crawl when I ran it last night.... 11:25
jnthn colomon: not yet
11:26 pmichaud joined
dalek kudo/master: 303323e | pmichaud++ | docs/spectest-progress.csv:
spectest-progress.csv update: 194 files, 24167 (67.6% of 35727) pass, 0 fail
11:28
jnthn 'tis early for a pmichaud! :-)
colomon I guess pmichaud has run it. :)
11:28 mberends_ joined
jnthn colomon: running it here. 11:28
moritz_ also run it 11:29
pmichaud yes, pmichaud up early today
but may head back to bed shortly
11:29 moritz_ sets mode: +oo pmichaud colomon, moritz_ sets mode: +v dalek
mathw 24,167 pass? that's not bad 11:29
jnthn Yeah :-) 11:31
Lots of trig tets
*tests
masak lunch &
11:31 masak left
jnthn pmichaud: Did you re-enable the \c[...] ones too? 11:31
moritz_ did
mathw \o/ 11:32
this is quite an exciting release coming up
moritz_ at least some of them - not sure
pmichaud jnthn: I didn't re-enable the \c[...] ones yet
moritz_ (charts on rakudo.de are updated btw)
pmichaud we can probably re-enable some of S05-mass, though.
moritz_ d5d58cc77e5ec2cd433012585f331455a4d7a6d3 enabled char-by-name.t 11:33
jnthn pmichaud: Wonder fi there's a quick fix for
rakudo: say 'foo' ~~ /o/; # works 11:34
p6eval rakudo b4824f: OUTPUT«o␤»
jnthn rakudo: say 'foo' !~~ /o/; # fails
p6eval rakudo b4824f: OUTPUT«logical_not() not implemented in class 'Capture'␤current instr.: 'perl6;Mu;REJECTS' pc 2008 (src/builtins/Mu.pir:370)␤»
pmichaud looking
jnthn pmichaud: That's what stops S05-mass/rx.t working.
Well
5 tests into it.
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.
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. :-)
So I think there's something in it. :-) 11:37
mathw just take that go_slow() function out of Parrot
mberends_ jnthn: low me as the 3rd (or is it 4th) reader of you blog post ;) nice one, btw 11:38
*log
colomon the trig tests were a lot less relatively painful when the rest of the spectest took more than a half hour. :)
pmichaud ooc, are the trig tests slow due to parsing or execution? 11:39
has anyone checked?
colomon almost certainly execution
mberends_ colomon, do the trig tests detect fails from time to time, or do they almost always pass?
pmichaud (detect fails) I suspect it's too soon to tell in ng :)
mathw jnthn: for the record, I read your blog post before it was even mentioned in here :)
colomon once working they tend to continue to work 11:40
pmichaud > say 'foo' !~~ /o/;
0
mberends_ I expected as much
jnthn Yay
colomon afk
pmichaud until/unless we can get overall speed improvements, I'm in favor of two-tier (or multi-tier) spectesting 11:41
*generally in favor
mberends_ +1
moritz_ is in favour of speed improvements 11:42
mathw buys everyone a faster computer. job done.
pmichaud well, I'm in favor of speed improvements also, but those are a bit harder :)
mathw and it's features first 11:43
I seem to recall
mberends_ shorter edit+test cycles === more productivity
mathw true
moritz_ mathw: to a certain extend, yes. But Rakudo * was supposed to be usable and useful
jnthn I reckon the !to-radians and !from-radians are probably kinda slow, fwiw.
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 :)
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
mathw True 11:45
And it would be nice if it went faster.
pmichaud I agree, slowness must be because of execution speed 11:47
(for trig.t)
we really ought to be able to improve that quickly-ish
pmichaud decides to go take a look 11:48
colomon The big LHF for that (I think) is replacing the Str $base arguments with an enum. 11:50
Right now, almost every trig test requires the construction of a Str and at least two regex matches.
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
colomon pmichaud: same here. around a gig a test file, I think....
11:52 payload joined
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'
jnthn pmichaud: I've just tried re-writing to-radians and from-radians to measure what that wins.
(will report back when I has numbers) :-) 11:53
pmichaud yes, it's almost certainly execution speed. parsing+compiling only takes a few seconds
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.
colomon arnsholt: good idea! 11:55
pmichaud oh, given/when can also be a bit slow.
colomon I've been figuring enums were going to land any day (masak++) so hadn't given much thought to working around them.
pmichaud (doesn't mean we shouldn't use it, but it does incur some exception handling overhead)
mathw :( 11:57
given/when is one of my favourite things
colomon pmichaud: given that (groan), perhaps optimizing for the radians case would make sense?
pmichaud when /:i degrees/ { self * (312689/99532)/180.0 } # Convert from degrees.
when /:i gradians/ { self * (312689/99532)/200.0 } # Convert from gradians. 11:58
when /:i radians/ { self + 0 } # Convert from radians.
when Num { self * 2.0 * (312689/99532) } # Convert from revolutions.
...any chance we could pre-fold those constant expressions?
colomon pmichaud: don't see why not.
pmichaud that would save a lot of time, since we end up computing constant Rats
colomon needs to remember that not all compilers automatically pre-fold.... ;)
pmichaud jnthn: did you do the .lc trick to avoid the regex matches? 11:59
personally, I think we don't even need the .lc :-)
jnthn pmichaud: yup 12:00
pmichaud: And stopped using given/when
colomon I really like arnsholt++'s idea of just making temporary constants for TrigBase.
pmichaud oh, also, if radians is the common case, we should test it first
colomon pmichaud: in testing, anyway, radians happens twice as often as any of the other cases.
pmichaud since radians is the default, it should be handled first
mberends_ ;-) even Bill Gates knew that programming trick ;-) 12:01
moritz_ when we use enums, we can give them the numerical values 0..$n
then use an array of numerical constants, and index them by enum value
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?
moritz_ colomon: er, right
colomon pmichaud: yes, the tests are less than efficient as well.
pmichaud I think it's worthwhile to patch in constants right away
colomon +1
pmichaud especially since "make spectest" is currently making my computer unusable. 12:03
mathw sounds like a sensible idea
but better is the one that has me going to get some lunch
&
colomon pmichaud: ah, so that wasn't just my test run last night that was like that. :(
jnthn Before: 276s 12:04
pmichaud who'll work on the constant conversions? I'm willing to do it if nobody else is eager.
jnthn After: 238s
pmichaud good improvement but not huge
jnthn Those ones simply by getting rid of given/when and using a sequence of ?? !!
colomon pmichaud: I think I can do it, and that would free you up for something else.
jnthn pmichaud: No, though add reordering + constant folding as well may together get it further down.
12:06 patspam left
colomon I 12:06
I'll bet we can get it below 200s on your system in an hour.
jnthn colomon: gist.github.com/307599 12:07
moritz_ putting a 'constant radians = 0;' on top of Any-num.pm doesn't make that available in the Perl 6 program 12:09
12:10 SmokeMachine joined
pmichaud I'm not sure 'constant' is implemented yet. 12:10
jnthn I don't think it is, no
moritz_ rakudo: constant a = 3; say a;
p6eval rakudo 303323: OUTPUT«Could not find non-existent sub &a␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
pmichaud but one can do it in PIR like was done for 'pi' and 'e'
colomon compiling that now, as a matter of fact. :) 12:11
moritz_ will have to leave soon 12:12
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
rough to the main codebase. I don't know the answer, but the trend bothers me a lot.
colomon > say Radians 12:16
0
> say Degrees
1
> say Gradians
2
> say Circles
3
pmichaud ...shouldn't those be in a namespace, ooc?
pmichaud hasn't read the latest spec 12:17
12:17 athenot joined
pmichaud guess not -- they're exported 12:17
moritz_ thought they were in an enum
colomon pmichaud: I copied and pasted your pi code.
they are in an enum by Spec
pmichaud enum TrigBase is export <Radians Degrees Gradians Circles>;
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
dalek kudo/master: fa44b5a | pmichaud++ | src/builtins/Mu.pir:
Update .REJECTS to avoid logical_not vtable.
12:19
12:20 iblechbot left
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
(but also segfaults... hmm)
colomon okay, sin.t takes 2m20 on my system before changes 12:22
12:22 athenot left
pmichaud tries sin.t for comparison 12:22
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 ....
sjohnson mine!
pmichaud or if you want it private, our @!array ...
(sin.t = 2m12 on my system) 12:25
colomon can I initialize it in the our statement?
pmichaud might want to use an INIT block to begin with
I'd try it without -- if that doesn't work then try with.
12:28 Lorn joined, Lorn left, Lorn joined
colomon wow, you know that feeling you get when you know your code is right? 12:28
12:29 Lorn left, Lorn joined
lisppaste3 colomon pasted "Current experimental versions of to-radians and from-radians" at paste.lisp.org/display/95170 12:29
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
*should
12:32 Chandu joined
colomon > say sin(180, Degrees) 12:33
1.22464679914735e-16
Chandu ls -ltr
clear
hi
pmichaud /: no such file or directory
Chandu hi
12:34 Chandu left
snarkyboojum heh 12:34
12:34 Chandu joined
mberends_ Chandu: hi, this is not Linux! 12:35
Chandu Hi
how do i get started
please help me
mberends_ ok, read a bit of perl6.org and rakudo.org first 12:36
pmichaud afk for a while
Chandu where can i get them
?
12:36 barney joined
mberends_ Chandu, see rakudo.org/how-to-get-rakudo 12:37
Chandu thank u so much
12:37 ruoso joined 12:38 Chandu left
jnthn eww 12:47
jnthn finds Nasty Bug and tries to fix it.
(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
lisppaste3 colomon annotated #95170 "Failing attempt to initialize" at paste.lisp.org/display/95170#1 12:53
12:54 araujo left
colomon wait, if my class has our @a, how do I reference it in a method? 12:54
12:54 araujo joined 12:56 redicaps left
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.
jnthn :-/ 12:57
Odd.
our @a = (); # may work, but I dunno why our @a doesn't.
colomon nope, same error. 12:59
(and I get the error when I try to use @a in a method, I should add)
13:00 gfx left 13:03 bluescreen joined
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:03
rakudo: say pi / 180.0 13:06
p6eval rakudo fa44b5: OUTPUT«0.0174532925199433␤»
colomon rakudo: say pi / 200.0
Juerd Tonight our network will be down between 3 and 4 CET. www.timeanddate.com/worldclock/fixe...&p1=16
p6eval rakudo fa44b5: OUTPUT«0.015707963267949␤»
colomon rakudo: say 2.0 * pi
p6eval rakudo fa44b5: OUTPUT«6.28318530717959␤»
13:06 bluescreen left
jnthn colomon: Hmm. Not sure what's wrong there. :-/ 13:08
rakudo: class Foo { our @a = 1,2,3; method bar() { say @a.perl } }; Foo.bar;
p6eval rakudo fa44b5: OUTPUT«Null PMC access in find_method('perl')␤current instr.: 'perl6;Foo;bar' pc 514 (EVAL_1:207)␤»
jnthn rakudo: class Foo { my @a = 1,2,3; method bar() { say @a.perl } }; Foo.bar;
p6eval rakudo fa44b5: OUTPUT«Null PMC access in find_method('perl')␤current instr.: 'perl6;Foo;bar' pc 505 (EVAL_1:203)␤»
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)␤»
jnthn wtf
That's probably fairly telling though.
13:10 masak joined
jnthn lolitsmasak 13:11
masak :)
pugs_svn r29774 | jnthn++ | [t/spec] Updates to S12-introspection/parents.t for current spec. 13:12
13:12 athenot joined
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:12
jnthn masak: Don't worry, there's The Next Release. 13:14
masak aye.
which, by the way, will be Awesome.
jnthn If we can all keep up current pace, the March release should be awesome.
masak :)
and one whole month before the April Star release :)
13:14 takadonet joined
jnthn rakudo: say ('Great minds', 'All fools').pick 13:14
p6eval rakudo fa44b5: OUTPUT«All fools␤»
jnthn damm! 13:15
takadonet hehe
masak the new rakudo is more honest than the last one :P
jnthn :-P
13:15 iblechbot joined
masak rakudo: say 'We are all ', ('expert programmers', 'incompetent hacks').pick, '!' 13:16
p6eval rakudo fa44b5: OUTPUT«We are all incompetent hacks!␤»
masak told ya. :)
.oO( new pick has a more conservative implementation... )
13:16 IllvilJa left
jnthn After spectesting, got fixes that get S12-introspection/parents.t all running and passing again. :-) 13:18
+54 more passing tests. :-)
masak \o/
jnthn Oops...need to remember to have lunch before Slovak class... 13:20
masak I always forget that myself. 13:21
13:21 bluescreen joined
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? ;-)
colomon: ah, cool
colomon 1m29 (vs 2m20 originally)
jnthn \o/
Roughly 40% shaved off.
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
though at the moment I'm using computer to play music videos for my boy. :) 13:28
masak jnthn: no, I don't. so for me the statement is vacuously true :) 13:31
13:35 IllvilJa joined
jnthn :-) 13:35
jnthn wonders if the spectests will complete before class so he can push
masak there oughta be a sort of conditional push mechanism. 'run spectests and push if they pass'. 13:37
guess that's not very hard to set up. it's basically making proper use of exit codes.
mberends_ masak: that's a very good idea, worthy of some exploration 13:38
masak mberends_: my unreleased top sekkrit version of tote does that, but on the commit level. 13:39
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.
using that metric, the system can differentiate between 'regression', 'no apparent change', and 'progress'. 13:41
13:42 coke joined
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
(... 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.
masak coke: it's not a .. range, it's a ... sequence. 13:45
masak should maybe write C<..> and C<...>.
jnthn heh, tests still going. I'll push when I get back. bbl 13:46
masak jnthn: enjoy the Slovak!
coke masak, yes, I know it's ... and not .. ; my apologies for confusing range and sequence. 13:55
masak coke: just making sure. :)
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.)
masak;... what the hell is it doing?
masak coke: :)
coke why is it going back down to 0 and then up to 5?
masak coke: ^5 counts from 0 up to 4.
it's short for 0..^5
infix:<...>, unless in special circumstances, counts from the left operand to the right operand. 13:57
and those operands may be lists, and the operator will still DTRT.
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
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
colomon that ought to be relatively easy to code, actually. Hmmmm....
masak that's how things like `0 ... 10, 20 ... 100` work
(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:02 snarkyboojum left
colomon 1m20 now, another 9 seconds shaved off. 14:06
mathw \o/ 14:10
14:13 ignacio_ left 14:15 [particle] joined 14:16 iblechbot left
coke masak - ok. that almost makes sense. 14:19
when reporting bugs, I don't know if you want to include that sort of information to educate people like me reading the list. =-)
though I'm happy to come here and bug you. =-) 14:20
masak coke: after almost 700 bugs, I'm aware my bug reporting style has become somewhat... streamlined. 14:23
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, tylerni7 joined, tylerni7 left, tylerni7 joined 14:28 cosimo_ left, cosimo joined
colomon wonders if masak will break 1000 in March... 14:29
masak no chance. :) late this year or early next year is more likely.
my average rakudobug rate is one per day. 14:30
colomon yes, but that's in the old, pre-ng days.
PerlJam colomon: you think ng has increased the number of bugs?
colomon you're in a target-rich environment now, I'm sure you can up your game.
masak colomon: that may be, but that's after a several-month slump of not many new bugs :) 14:31
colomon PerlJam: it has certainly increased the number of unimplemented or partially implemented features. 14:32
masak: sure, but you're at 700 now, right?
masak almost.
so realistically, about a year away from 1024. :)
14:35 ignacio_ left
pugs_svn r29775 | colomon++ | [t/spec] Update trig tests to use the new fake TrigBase. 14:36
pmichaud re-good morning, #perl6 14:37
colomon \o 14:38
shaved something like 45% off of sin.t on my machine so far.
pmichaud that's more reasonable
[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
colomon had a bad time trying to use "our @a" in a class definition, however.
14:40 athenot left, athenot joined
pmichaud really? "our @a" in a class definition should work. 14:40
dalek kudo/master: bf29be0 | (Solomon Foster)++ | src/core/ (5 files):
Optimize Any!to-radians and Any!from-radians, switch default base to Radians (instead of 'radians').
kudo/master: 60c14fe | (Solomon Foster)++ | src/cheats/constants.pir:
Add Radians, Degrees, Gradians, and Circles to emulate what TrigBase will look like when enums are available.
colomon If you look in the backlog, jnthn++ distilled some one-line fails based on what I was trying to do. 14:41
(I managed to erase my backlog here somehow. :( )
pmichaud yes, reading backlog now :)
oh! you might need to repeat the our inside of the INIT block 14:42
colomon irclog.perlgeek.de/perl6/2010-02-18#i_2004325
14:43 [particle] left
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
colomon adding our inside the INIT did not help. :( 14:45
pmichaud rakudo: class Foo { say 'here'; method bar() { say 'there'; } }; Foo.bar;
p6eval rakudo fa44b5: OUTPUT«here␤there␤»
pmichaud rakudo: class Foo { my @a = 1,2,3; say ~@a; method bar() { say ~@a; } };
p6eval rakudo fa44b5: OUTPUT«1 2 3␤»
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␤␤»
pmichaud hmmmmmmm
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
i.e., the Parrot sub that gets installed in the class is a clone of the other one
so it refers to the wrong lexical @a 14:48
14:48 Trashlord left 14:49 ignacio_ joined
pmichaud if that's the case, then "our @a" isn't going to work either. 14:49
colomon nod 14:50
pmichaud we could always let PIR ride to the rescue, however.
colomon ? 14:51
pmichaud pir::get_global('@a')[$base]
probably needs
pir::get_global__Ps('@a')[$base]
let me try that quickly
rakudo: say ^5; 14:54
p6eval rakudo fa44b5: OUTPUT«01234␤»
pmichaud (rebuilding rakudo to get baseline timing) 14:55
14:56 [particle] joined
mberends_ about memory consumption, this used 1253MB: my $a=0; for 1..100000 { $a += $_ }; say $a 14:56
pmichaud mberends_: sure -- for loops are eager still 14:57
so the 1..100000 gets computed eagerly and eats up lots of space
14:57 nihiliad joined
mberends_ now trying this, 2001MB and still climbing: my $a=0; my $b=0; while $b < 100000 { $a += $b }; say $a 14:57
er, $b++ 14:58
pmichaud well, that's pretty horrible
I don't know why that would be eating up so much memory.
we should definitely look into that.
sin.t currently takes 1m15 on my system
14:58 johnz left 14:59 johnz joined
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
pmichaud mberends_: that still seems high to me. does the number go up if you increase 1000000 ?
mberends_ it was climbing, will try now
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:02
15:03 ignacio_ left
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, xomas left, xomas joined
colomon pmichaud: \o/ 15:03
pmichaud only 8 second improvement there 15:04
so something else must be imposing time costs
colomon that's better than 10% off of what you had.
pmichaud true
anyway, I'll make spectest and commit.
15:05 PZt joined
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
it's a little ugly, but it works :)
we do need to figure out why lexicals in classes aren't working.
mberends_ 1691MB doing: my $a=0; my $b=0; while $b < 1000000 { $a += $b++ }; say $a
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:06
colomon yeah, it's actually a great example for optimization, isn't it? 15:07
pmichaud ooc, how about
colomon so simple...
pmichaud my $a=0; my $b=0; $a += $b++ while $b < 1000000; say $a
i.e., w/o the block
mberends_ ok, running that now 15:08
15:10 Guest68103 left
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
that tends to point more to a parrot issue
[particle] what is it with 100,000?
pmichaud I'm trying a pir-based version now
[particle] how linear is it
mberends_ will try 500000 for a 50% figure 15:13
colomon [particle]: geez, I hadn't even considered the idea we could have a greater than linear memory leak... 15:14
15:14 ignacio_ joined 15:15 jferrero left
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?
mberends_ watching top in another window, it's a bit manual and crude ;) 15:17
pmichaud okay.
colomon "ooc"?
out of curiosity?
[particle] so that won't work well for a value of 1
colomon++
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:18 uniejo left
pmichaud it's definitely some sort of leak or lack of gc in parrot 15:19
I have a pure-pir program to demonstrate 15:20
colomon pmichaud++
pmichaud let's see if it's in calling conventions or something else
masak pmichaud++
mberends_ 139MB doing: my $a=0; my $b=0; $a += $b++ while $b < 1000; say $a 15:21
jnthn is back 15:22
15:23 xomas left
mathw \o/ jnthn 15:23
there's a parade of awesomeness going on in here 15:24
masak mberends_: that's more than for 500000 o.O
pmichaud masak: 139 versus 1154 (you're dropping a 1?)
mberends_ masak, no, 139MB < 1154MB
masak oh! 15:25
pmichaud okay, this looks like a very generic gc problem
masak dons the "can't read numbers" hat
pmichaud as in "parrot isn't doing gc"
mathw that's about as generic as it gets
mberends_ parrot was always like that, with looping type programs
masak <masak> in this case, he will reply 'no, my criticism is that they rewrite all the time without shipping anything' 15:26
twitter.com/robotpony/status/9287507924
:)
jnthn pmichaud: Thing is... :-|
Even this leeks:
.sub 'main'
call:
'foo'()
goto call
.end
.sub 'foo'
.end 15:27
dalek kudo/master: 43909a0 | jonathan++ | src/ (2 files):
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.
kudo/master: fec6ec9 | jonathan++ | t/spectest.data:
Turn S12-introspection/parents.t back on.
jnthn er, leaks
pmichaud jnthn: yes, but I have a problem that does no function calls that leaks
s/problem/program/
which means the leakage is due to gc in general, not due to pcc
(i.e., anything that creates objects ends up leaking) 15:28
jnthn pmichaud: heh, me too
.sub 'main'
ohno:
$P0 = new ['Integer']
goto ohno
.end
leaks!
coke does it leak past 1MB?
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.
jnthn coke: Taht one I just pasted quickly gets to hundreds before I kill it.
coke hokay, something else, then. =-)
jnthn Not GC-ing until a full meg is allocated or so is probably a sensible approach.
pmichaud I'm running jnthn++'s version now 15:30
jnthn But yes, somehting else here.
pmichaud 309m
257m
er, 357m
424m
453m
"Houston, we have a leak."
[particle] ...maybe it was 1 gig...
pmichaud 521m
15:30 REPLeffect joined
pmichaud decides to wait to blow through the 1g barrier :) 15:31
723m
15:31 bkeeler joined
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?
masak twitter.com/carlmasak/status/9287902991
pmichaud trunk
I can try 2.1 shortly (still building it)
coke k. hopefully it's just trunk. :P
pmichaud 2.0.0 doesn't have the leak (already had that one built) 15:33
15:33 ggoebel joined
pmichaud 1.1g 15:33
1.2g 15:34
TimToady
.oO(Memory too cheap to meter.)
pmichaud 1.3g 15:35
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
pmichaud plain parrot
./parrot z.pir
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..."
dalek kudo/master: 181d5f9 | pmichaud++ | src/core/Any-num.pm:
Refactor to-radians and from-radians to use a pre-initialized array.
kudo/master: dbaa79b | pmichaud++ | (3 files):
Merge branch 'master' of [email@hidden.address]
colomon \o/
jnthn pmichaud: Is that a ~10% on the time after colomon++ got us 40% earlier? :-) 15:39
pmichaud jnthn: yes.
went from 1m15s to 1m8s
15:39 justatheory joined
jnthn \o/ 15:39
pmichaud (previously I was in the 2m30 range)
jnthn If you add -G it consumes memory and then runs out of it really, really fast.
pmichaud 2.1.0 leaks. 15:40
jnthn Which shows how much time we spend in the GC. :-|
coke (2.1.0) argh. 15:41
masak <masak> and he will say 'no, I mean a REAL release, one where you ship production-ready stuff, like Python 3000' 15:42
twitter.com/robotpony/status/9288139528
pmichaud interestingly, 2.1.0 seems to leak memory faster than trunk 15:43
maybe I'm just misjudging the rate of increase, though
moritz_ you can set a ulimit, and measure the time until it dies
jnthn masak: lol.
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
Wow.]
masak jnthn: to his credit, he's more friendly than I predicted.
pmichaud how much was python 3000 in the wild 2 years ago?
I guess I should file a trac ticket for the memory leak issue? 15:45
moritz_ yes 15:46
coke please. 15:47
15:48 jaldhar left, barney left
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
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.
mberends_ "sweep early, sweep often" should be the new GC motto
pmichaud running the trig tests this morning (pre-optimization) with TEST_JOBS=3 made my workstation basically unusable
oops, I need to re-verify the leak with current trunk. 15:51
(unless someone else has tested it with parrot head this morning)
actually, trunk just failed to build just now -- realclean and try again 15:52
15:53 |Jedai| left, colomon left 15:54 Psyche^ joined, colomon joined 15:55 Patterner left, Psyche^ is now known as Patterner
mathw I do think a lot of people get confused by the messages sent out about Rakudo 15:56
It's all very well to say there have been 25 Rakudo releases
but that's just because a release goes out every month
none of them are something you can really use
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?
mathw it's like this thing with it being 'finished', and Rakudo *
moritz_ development release?
mathw I don't think we're speaking the same language as certain groups outside the Perl 6 world
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
pmichaud TT #1465 created 15:58
(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
15:59 uniejo joined
pmichaud in other words, if a given release doesn't yet meet their needs, then to them it's the same as "not released" 15:59
coke I'm not sure how much we can do other than smile and keep making releases. 16:00
bkeeler People also read meaning into version numbers
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'
pmichaud bkeeler: and this is one reason I'm absolutely avoiding 1.x numbering schemes
mathw because it doesn't look like an ordinary producty version number
Parrot, however, is doing it wrong
bkeeler True
pmichaud my experience with 1.x numbering schemes is that they try to serve too many masters.
bkeeler The rakudo way is certainly better 16:02
16:02 payload left
jnthn OK, for today's Rakudo release...what's urgent? 16:02
.oO( oops, I said release :-) )
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
jnthn pmichaud: Tweaking the ROADMAP is the only "must do" I can immediately think of. 16:03
mathw has masak++ fixed enums yet?
masak mathw: only anon ones.
pmichaud jnthn: yeah, I didn't get around to ROADMAP work last night
mathw ah well
jnthn pmichaud: That's fine.
mathw not that I care, I use git master anyway :)
coke parrot has tried to separate "developer" releases from "supported" releases. I'm not sure that has helped us.
masak mathw: named ones coming up. in my compious free time. :)
s/mp/p/
jnthn mathw: That's more than we'd have had if masak++ hasn't worked on them. :-)
mathw oh yes definitely 16:04
some enums is better than no enums
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
mathw \o/
I should stop moaning and do some hacking
masak who will cut the release?
coke fof . o O (rawr)
pmichaud I haven't heard from Su-Shee -- is she still on for toding today's release?
mathw but right now I have a tram to catch
o/
pmichaud s/toding/doing/ # ack!
jnthn Tram! \o/ 16:05
masak Su-Shee++: where are you? are you in a release-y mood?
pmichaud I drafted a release announcement yesterday evening -- it needs some attention.
We could probably grab notes from jnthn++'s use.perl post :)
jnthn pmichaud: I read it and it looked overall good, apart from the incomplete bit. :-)
But right idea.
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. :-)
pmichaud jnthn: I saw that you did some tweaks already...?
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
jnthn pmichaud: I moved some items I was comfortable were completed to the bottom "done" section
TimToady not till someone invents an Optimizer, I guess :)
jnthn pmichaud: There's a few others that I wanted to know if you felt were done.
pmichaud jnthn: reviewing ROADMAP now
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
TimToady: It's far more optimized for type-based dispatch.
TimToady since we'll usually know which at compile time, could even inline the correct code
pmichaud yes, it could be optimized nicely 16:09
TimToady well, just thinking out loud...
pmichaud right now I'm wondering if our trig test slowness is due to the parrot gc bug
TimToady how long are the .t files?
pmichaud not very long
also, parsing+compiling doesn't seem to be the slow part
(which surprised me a bit)
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)
sin.t is 285 lines, Rakudo compiles it in ~4 sec. 16:11
(but the 285 line file has ~1700 tests -- lots of loops)
16:13 [[synth]] joined
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:13
TimToady the inside ones are in their own expression, so the outside ones don't see it 16:14
if you don't like it, use different quotes
masak not only will I not like it, but syntax highlighters won't either.
pmichaud DIHWIDT ? ;-) 16:15
jnthn masak: It's localized though :-)
masak: There's two matching sets of quotes.
TimToady syntax highlighters are in the business of cheating, and cheaters often get caught
masak jnthn: that's a fair point.
pmichaud I have a question that just occurred to me after viewing the ROADMAP 16:16
my $x; $x[0] = 'abc'; say $x.WHAT; # what happens here?
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.
moritz_ I guess .[] forces autovivification to Array
TimToady THEN CHANGE THE OUTER QUOTE!!!
sheesh 16:17
16:17 [synth] left
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.
pmichaud my $x; $x{'abc'} = 'def'; say $x.WHAT; # autovivify to Hash ?
TimToady in which case, only the human gets confused--the parser is still fine.
moritz_ pmichaud: aye
pmichaud okay, then we also have
my Any $x; say $x.WHAT; # ??? 16:18
16:18 iblechbot joined
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. :)
pmichaud because $x is initialized to the Any protoobject, yes?
moritz_ yes
pmichaud but postcircumfix curlies on protoobjects already have a different meaning.
(at least, they did at one point) 16:19
jnthn my $x; is init'd to the Mu proto-object though, no?
moritz_ oh, what do they mean?
jnthn WHENcE
er, *C
pmichaud and postcircumfix brackets on protoobjects also have a different meaning
(sorry, "type objects")
TimToady "All progress depends on at least two unreasonable men in the same room."
jnthn pmichaud: Only for role ones. :-)
Class type objects have little clue about them.
oh wait 16:20
oh yes, that's right.
pmichaud so, it appears we have a conflict, or I'm overlooking something obvious.
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
TimToady no, except when it's a part of an interpolated subexpressoin 16:21
which is a very general subexception
masak a subexpression which isn't explicitly indicated in any way.
pmichaud the dot indicates it.
TimToady rakudo: say "%*ENV{"HOME"}"
masak pmichaud: right. and lookahead.
p6eval rakudo dbaa79: OUTPUT«%*ENVHOME␤»
TimToady should work fine 16:22
masak nod.
the braces are a big tip-off, though.
jnthn pmichaud: Feels like one to me too. :-/
TimToady and the fact that the ."" form requires () inside quotes fits right in with that rule
16:23 nbrown left
pmichaud jnthn: I guess I need to formulate a pm.txt question for it. 16:23
jnthn pmichaud: I guess so.
I have no immediate thoughts on an answer.
16:23 nbrown joined
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. :)
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?
pmichaud jnthn: that doesn't bother me so much -- yes, it's a typecheck fail
16:24 clausi left
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.
pmichaud jnthn: yes, I hadn't been thinking of them as syntactic.
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
pmichaud personally I'd write it as "{$foo."bar"()}" anyway :-) 16:26
TimToady then you don't ned the ()
*need
(I think)
std: say "{$_."bar"}"
p6eval std 29775: OUTPUT«===SORRY!===␤Quoted method name requires parenthesized arguments at /tmp/r82WQSREJz line 1:␤------> say "{$_."bar"⏏}"␤FAILED 00:01 108m␤»
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
jnthn oh yes you do :-)
TimToady right
moritz_ would use printf instead - easier to parse visually
jnthn rakudo: say "{$_."bar"}"
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)␤»
pmichaud woo hoo!
jnthn Was sure I remembered copying that bit of STD recently. :-)
pmichaud rakudo++
TimToady need more coffee, or maybe just more neurons
jnthn Coffee sounds less invasive. :-) 16:28
TimToady std: $_."bar"
p6eval std 29775: OUTPUT«===SORRY!===␤Quoted method name requires parenthesized arguments at /tmp/iXMRUbGZp3 line 1:␤------> $_."bar"⏏<EOL>␤FAILED 00:01 106m␤»
TimToady yeah, general rule
I must have been a genius when I was younger.
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.
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
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
masak moritz_: .fmt is just sugared sprintf anyway :)
moritz_ masak: but yes, I prefer printf over too complicated interpolation
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?
*anyone
arnsholt masak: For interpolating complex expressions, I prefer printf too
16:30 Trashlord left
moritz_ needs to go offline in 30minutes or so, so he wouldn't be a great backup 16:30
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
and I'm okay if it occurs early tomorrow
jnthn Who's tomorrow? :-)
moritz_ if it's not done by tomorrow morning (UTC+1) I can do it 16:32
jnthn pmichaud: (ROADMAP) wfm
pmichaud as long as it's Feb 18 _somewhere_ in the world, which really gives us until about 1200 UTC on the 19th :)
arnsholt moritz_: Probably. When should it be done, and what is supposed to be done?
TimToady for interpolating really complex expressions, I prefer calling a function :)
masak arnsholt++
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
TimToady as for printf, any call that involves counting more than about 2 arguments is not human friendly
moritz_ arnsholt: and I guess pmichaud++ needs to give you commit privs first
arnsholt Not done one yet
pmichaud oh, for commit privs I probably need a CLA
moritz_ TimToady: I've long thought that we need printf with named arguments
pmichaud although I could certainly grant them provisionally or temporarily
arnsholt moritz_: Or Common Lisp's format() 16:34
I like format() ^^
pmichaud printf with named arguments sounds a lot like closure interpolation to me :-P
masak moritz_: PIR code generation has that. it's quite OK. not extremely legible, but good for half a screen of interpolated code.
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 cjk101010 left
dalek kudo/master: cb56224 | jonathan++ | docs/announce/2010.02:
Tweaks to release announcement.
16:36
pmichaud say $fmt(:bar<car>, :foo<dog>);
masak the twitter debate got a happy ending! :) twitter.com/robotpony/status/9288139528 twitter.com/carlmasak/status/9288531147 twitter.com/robotpony/status/9290510075
TimToady is now thinking about how to use a sig instead of a string for formatting...
pmichaud say "And inside of double-quoted strings: $fmt(:bar<car>, :foo<dog>)"; 16:37
moritz_ pmichaud: nice one
pmichaud I think the language designer gets credit for this one :)
moritz_ TimToady++ then :-)
TimToady probably works pretty good for internationalization too 16:38
pmichaud say "And perhaps other &plural('nouns'), too?" 16:39
er, *'noun'
(definitely need a break)
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: :-)
moritz_ mberends_: then just do what you can, and we'll let arnsholt++ do a release after he submitted a CLA 16:41
mberends_: and if you don't manage to do the release today, I'll finish it early tomorrow
(fsvo "early")
mberends_ moritz_: good plan, I'll enjoy the first-time experience :) 16:42
pmichaud excellent plan. and this also assumes Su-Shee absence 16:43
arnsholt And a CLA is? =)
pmichaud www.perlfoundation.org/contributor_..._agreement
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/
pmichaud afk for a short bit
jnthn is currently reviewing his current grant deliverables to see what's left to do :-)
ah, mostly "binding return values against a signature" 16:45
arnsholt Ah I see
jnthn creates a branch to do that in.
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?
jnthn masak: Hysterical raisons, I guess. 16:46
masak backs away from those raisins
mberends_ terminLOLogy ;)
masak oops :) 16:47
bkeeler Not nouninology?
PerlJam greets all
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.
PerlJam listens to Bill Gates' TED talk 16:49
16:49 moritz_ sets mode: +ooo PerlJam masak mberends_
PerlJam Grr. until the sound cuts out chrome-- 16:50
16:50 kthakore joined
kthakore hi 16:50
I have parrot installed from trunk
moritz_ hi there
masak kthakore: hi!
kthakore but I can't seem to get rakudo installed on that
masak: hi!
moritz_: hi 16:51
masak kthakore: should just be downloading it via git and building.
moritz_ kthakore: what errors do you get?
kthakore moritz_: well it saves my reviision is too old
masak kthakore: then you need to update Parrot.
kthakore masak: I did
masak kthakore: and do 'make install'?
kthakore but not --gen-parrot way
I have parrot instaleld seperatly 16:52
coke do you have a copy of parrot lying about in the rakudo checkout?
masak kthakore: that should work too. I don't do it the --gen-parrot way either.
coke (could be finding the old copy and then giving up.)
kthakore masak: I have the latest trunk
masak kthakore: but did you do 'make install' on it?
kthakore coke: how do I tell which is it finiding
masak: yes
coke kthakore: gotta run, masak wil lhelp you. =-)
kthakore which parrot gives /usr/local
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
kthakore cthanks
ah pah ok
sorry my ssh is laggy
moritz_ erm, perl Configure.pl ... (forgot the file extension)
dalek kudo/master: 84d6b02 | masak++ | src/Perl6/Grammar.pm:
[Grammar.pm] slight wording fix
16:54 ewilhelm joined 16:55 uniejo left
bkeeler Hullo Eric! 16:55
kthakore moritz_: that seemed to work
moritz_ kthakore: great
16:56 uniejo joined
pugs_svn r29776 | lwall++ | [S04] unmuddying requested by Richard Hainsworth++ 17:01
kthakore masak: moritz_ seen the new SDL stuff lately?
moritz_ not me 17:02
kthakore is philandering while rakudo is compiling
masak hasn't
moritz_ did you blog about it?
TimToady if git does Unicode properly in messages, that might be enough motivation for me to switch. :)
moritz_ TimToady: it has very decent UTF-8 support 17:03
TimToady: but I think svn is OK to, just the bot is a bit broken
kthakore moritz_: yes
jnthn Rakudo is so going to use pigeons carrying clay tablets.
TimToady++ 17:04
kthakore moritz_: see yapgh.blogspot.com/ especially the 2nd last lpost
17:07 Su-Shee left
colomon arnsholt: note that the address on the CLA is wrong. It should be a place in Michigan. 17:08
pmichaud the more I use git, the happier I am with it :) 17:09
kthakore moritz_: masak: gist.github.com/301949 17:10
pmichaud: \o high five
masak kthakore: oh, it's Perl 5... :) 17:11
pmichaud rakudo: say chr(171); 17:12
p6eval rakudo 84d6b0: OUTPUT«\xAB␤»
pmichaud fixes.
kthakore masak: I am sorry
masak kthakore: no worries. :) just looking forward to when people do that in Perl 6, is all.
kthakore masak: SDL for parrot is comming ... just need to build up community support for SDL in perl
masak: then I can get them to hack on parrot SDL 17:13
perl5 sdl perl is the only way to build up mindshare irightn o
masak nod.
17:15 Su-Shee joined
kthakore hi Su-Shee 17:15
masak I gotta head out for lunch 17:16
masak Su-Shee: hi! rumour has it you'll be today's release manager.
kthakore masak: I would love your toughts
masak kthakore: on the Perl 5 code? 17:17
17:17 athenot left
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?
kthakore masak: gist.github.com/30194 17:19
masak: I am preparing it for a perl mongers meeting
masak looks
kthakore goes for lunch 17:20
17:21 payload joined
masak kthakore: that URL goes to a gist of one very long line of Javascript. was it really what you meant to paste? 17:21
if it was, I'm not sure I can endorse such an API :P 17:22
kthakore oh
masak: gist.github.com/301949 17:23
oops forgot the 9
masak right. that's the Perl 5 code you showed before.
I must be missing something here.
17:23 mberends__ joined
masak kthakore: you are aware that this is #perl6, right? 17:23
kthakore oh right
masak :)
kthakore blushes 17:24
I thought I was somewhere else
oops
mberends__ testing testing 1 2 3
kthakore sorry guys
jnthn :-)
kthakore hi jnthn
jnthn hi
kthakore masak: man rakudo is still going
....
ok I gtg to lunch 17:25
caio
17:25 kthakore left
masak those trig tests really slow down the computer... :) 17:25
mberends__ (re-)reads github.com/rakudo/rakudo/blob/maste..._guide.pod
masak couldn't we pull out the trig tests into their own test suite, and only run them at festive holidays or something?
just an idea. 17:26
mberends__ masak++
pmichaud I'm still not sure why they're as slow as they are.
colomon masak: do you have the updated ones yet? we've cut the run time down by a bit more than half this morning...
pmichaud but yes, they're must faster now than they were.
*much
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.
masak colomon: yes, I think I do.
colomon mberends_: I must admit that was sort of my working plan....
masak colomon: not complaining about the run time, but about the load on the processor.
pmichaud we should keep them in for the release also, though.
masak gtg, swimming &
pmichaud masak: is it cpu bound or memory bound, ooc?
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.
pmichaud masak: are you running parallel tests?
masak yes.
pmichaud I suspect it's the latter
masak ok.
pmichaud given that Parrot seems to be not doing full gc
it could be the former as well, though. 17:29
masak aha.
masak goes swimming
17:29 masak left
colomon running multiple tests at the same time, each of which uses more than a gig of memory... 17:29
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:30
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
has a release name been chosen for #26? Copenhagen?
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.
pmichaud haven't chosen a name. I was going to let jonasbn decide which release he wants to have named Copenhagen.
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)
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++ :)
clearly something as useful as "perl6.nl" deserves a mention :) 17:38
jnthn perl6.nl++
PerlJam +1 17:39
mberends__ that's fine. I'm not a member of a Dutch pm group, but Juerd++ definitely deserves recognition
(I'm at a friend's place in London, and he's intrigued by these activities)
pmichaud London.pm also deserves a nod at some point, I think. 17:40
anyway, I suggest Amsterdam unless the release managers come up with a better one.
mberends__ picking a name is the hardest part, right? ;)
PerlJam one of these days a pm meeting and a release date are going to conincide :)
17:40 cotto_work left, [[synth]] left, nihiliad left
pmichaud I actually like it when releases are a few days before a meeting. 17:41
It's like a free meeting announcement :)
so, Minneapolis was just before Frozen Perl
and last year Oslo was just before NPW
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?
pmichaud emails.
Juerd The Dutch Perl Workshop is in Arnhem though :P
pmichaud yeah, Arnhem.pm is another candidate 17:43
Juerd There isn't actually an Arnhem.pm group afaik
If I recall correctly, it's a placeholder
pmichaud but you've been such a long-time contributor to perl 6 it's worth mentioning your .pm group if you want
Juerd Thanks :)
The group has two names :)
Amsterdam.PM and NL-PM 17:44
pmichaud you can pick either one, then :)
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.
jnthn suddenly realizes that in two weeks, he'll be in Arnhem!
mberends__ heh
pmichaud yes, in two weeks I'll be in CPH
Juerd Neither is really appropriate. Let the RNG decide :)
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
17:45 cotto_work joined
[particle] in two days i'll be at the olympics 17:45
Juerd I like the name "Amsterdam" best I think
pmichaud wfm!
Juerd Everybody knows Amsterdam
17:46 am0c left
Juerd should prepare that box for jnthn soon 17:46
mberends__ Juerd: then Amsterdam had better be grateful for this bequest ;)
arnsholt Speaking of CPH, is there anything in particular that is the goal of the hackathon? 17:47
17:47 cotto_work left
pmichaud Review where we are for Rakudo *, finalize any planning details, and get a good ways along with that. 17:47
17:47 cotto_work joined
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.
pugs_svn r29777 | colomon++ | [t/spec] Further optimizations to the trig tests. 17:48
pmichaud I just emailed jonasbn -- he may show up here with his preferences. 17:49
mberends__ arnsholt: the goal is also helping new hackers get started with Perl 6 according to conferences.yapceurope.org/hack2010dk/ 17:51
colomon Is the plan to release Rakudo * two months from today, more or less? 17:54
pmichaud NO
no
(sorry, capslocked again)
jnthn
.oO( I thought he was shouting at us :-) )
pmichaud my plan is Rakudo #28 release
Juerd Hm, not more or less... so it'll be released in *exactly* two months from today? :P
pmichaud on April 22
Rakudo * releases between April 22 and April 30 17:55
my current target is April 29
[particle] i wonder what the april 1 release will be called
pmichaud "No! You Fool!"
colomon [particle]: Rakudo 3000
Juerd [particle]: "Production ready"
pmichaud "Finished" 17:56
[particle] "Stable"
jnthn "Perfect" 17:57
PerlJam "Next!"
[particle] Rakudo [*] 17:58
17:58 synth joined
jnthn Rakudo Rocket 17:58
17:58 stephenlb joined
[particle] i guess that should really be "[*] Rakudo" 17:58
Juerd == 1? 18:02
18:04 xalbo left
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:05
pmichaud I'm not sure anything was added for 2009-12 18:06
18:06 ShaneC joined
mberends__ understandable, since ng was getting all the attention. We'll skip it then. 18:06
pmichaud could just put in an item that says "no significant changes in master, ng was getting all of the attention" :) 18:07
for when someone else notices the missing month :)
mberends__ ok. and this one is 2010.02 instead of 2010-02
pmichaud correct
rpm and other package managers don't like hyphens in release numbers, it seems. 18:08
mberends__ is there any chance of plugging the parrot memory leak before the release? 18:12
jnthn mberends__: Sadly not, since the Parrot release we're building against was on Tue. :-( 18:13
18:14 cdarroch joined, cdarroch left, cdarroch joined 18:16 athenot joined
pmichaud afk, lunch, then roadmap 18:21
dalek kudo/master: 968011b | pmichaud++ | src/cheats/setup-io.pm:
Default $*IN, $*OUT, $*ERR to utf8 encoding.
18:26
mberends__ that's either a long lag or a short lunch 18:27
18:27 Trashlord joined
colomon long lag, it seems to be about five minutes on average these days. 18:27
mberends__ yeah 18:28
TimToady good chance I'm changing 1,2,4 ... *, 256 to be 1,2,4,* ... 256 instead, see p6l email 18:29
mberends__ nice, that's more readable 18:30
TimToady or just 1,2,4 ... 256, since the * can be intuited
colomon what mberends__ said.
TimToady and makes 1,2,4 ...^ 256 work better
if we add ^ notation to ...
which will be What They Mean 18:31
PerlJam needs to read faster
TimToady++
colomon TimToady: nod.
18:31 dakkar left
TimToady does lengthen fibonacci to 1, 1, &[+] ... * though, maybe that's good documentation 18:34
18:34 h1dd3n joined
TimToady or 1, 1, *+* ... * after we break * meaning the same thing on both sides of *+* 18:34
colomon I think I'm against *+* 18:35
couldn't fib be 1, 1 ... &[+] ?
PerlJam *+* is fine ... it's *** that's annoying ;)
TimToady if we move the generator to the left side, it wouldn't have to look on the right for one 18:36
18:36 uniejo left
TimToady so the first value would always be the limit 18:36
I'm not sure it would be a good idea to keep the old generator on the right notation
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.
It's even already implemented in the arity-1 version.
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 18:39 cnhappier left
colomon hmmm... I can see arguments both ways. 18:39
TimToady that would be (1, * + rand ... *).batch(10) in the newthink
well, assuming * + rand generates a new rand each time 18:40
which it would if infix whatevers were always handles as compile-time rewrite to { $_ + rand }
*handled
which is part of the *+* --> { $^a + $^b } proposal is 18:41
basically, you'd mark those operators that you *don't* want to be autocurried, like maybe ..
and everything else would *-curry for free 18:42
including *.method
sort *.lc 18:43
instead of methods being a special case as they are now
also can autocurry metaops without having to write out bazillings of Whatever sigs
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
okay, currently * is curried by actually calling the function and discovering at run time that we match a Whatever sig 18:45
which has the disadvantage that it's hard to optimize 18:46
also, we *can't* do the * dispatch for methods because we don't know the class yet...
*.foo doesn't know what to do, other than the compiler rewriting to { $^a.foo }
so currently that's special cased 18:47
but method calls are just postfixes
if all unary and binary ops default to compile-time rewrite, *.foo falls out of it
for the other problem 18:48
arnsholt mberends__: Thanks for the info. In that case I'll sign up
TimToady if we have a hardwired prefix:<+>(Whatever $x) {...}
colomon TimToady: Aha. I think you're proposing it works the way I already thought it did. :)
TimToady we can say sort +* to get numeric
arnsholt CPH isn't that far away, and I was a bit disappointed when I couldn't attend the Oslo hackathon in may
TimToady but we can't automatically use +<< * 18:49
mberends__ arnsholt: excellent :-)
18:49 Schwern joined
TimToady to get a curried hypernumeric 18:49
PerlJam That's the biggest win IMHO
TimToady I think we can keep the current mechanism as a fallback for operators that still want to curry at run time 18:50
but most simple operator curries should probably be done at compile time with *
PerlJam (bazillion Whatever sigs)--
TimToady but that implies that we need to break the current *+* semantics that mean { $^a + $^a }
and make it mean { $^a + $^b } instead 18:51
or x and y, to be consistent
shower & 18:53
dalek kudo/master: 0fabacb | (Martin Berends)++ | docs/ChangeLog:
[docs/ChangeLog] draft of the 2010.02 entry
19:01
19:05 ive joined, lichtkind joined 19:06 cotto_w0rk joined 19:08 cotto_work left
colomon is getting distressed that his $code appears to be slower than the trig tests at the moment... 19:13
19:17 coke left 19:19 cognominal left
colomon ah, it was the classic "XP error popup doesn't show up on the mac screen" problem 19:22
19:36 Exodist_ joined 19:37 Exodist left 19:39 rgrau joined, ruoso left
jnthn Well isn't this cool... 19:45
> class TreeNode { has $.left; has $.right; }
> our sub foo() { return TreeNode.new(left => 42, right => 69) }
> my ($node (:$left, :$right)) := foo(); say "L: $left, R: $right";
L: 42, R: 69
bkeeler Nice
So := is implemented now?
jnthn bkeeler: Yes and no. 19:46
colomon jnthn: looks like magic to me.
jnthn bkeeler: Not for normal variable bindings.
bkeeler Just signatures?
jnthn colomon: Just sufficiently advanced technology.
bkeeler: Yeah
colomon jnthn: how can you tell the difference? ;)
jnthn bkeeler: Though hopefully normal variable bindings should come along in the next week.
colomon: I can implement SAT, but I can't do magic. :-)
ENOWAND 19:47
19:47 chromatic joined
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 :)
colomon errr... GC fix? (he said hopefully?)
19:50 uniejo joined
chromatic That's the one. 19:51
19:51 coke joined
coke hey, rakudo folks - when is the release? 19:51
colomon supposed to be in three or four hours, I believe.
mberends__ confirmed
chromatic If you want to grab the patch and apply to your local Parrot for testing, it's at 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.
jnthn I'm inclined to wait for that.
mberends__ we can wait, that way we test the proper build procedure as well
colomon yeah, that sounds great.
jnthn chromatic++ # thanks for the quick fix! 19:53
chromatic Thanks for reporting.
jnthn chromatic: Ah, an optimization gone awry? 19:54
chromatic Yeah, missed one case.
colomon trying to build parrot with the changeset now.
coke there will be a 2.1.1 RC branch with that applied shortly. 19:55
colomon at a first test, that looks drastically better. chromatic++ 19:56
jnthn colomon: Memory consumption wise, I guess, but faster too? 19:57
chromatic It should retain some of the speed.
colomon I don't have times for the old version (I'm rerunning mberends__++'s tests in the REPL) 19:58
19:58 mberends_ left
jnthn Ah, OK. 19:58
colomon but I haven't seen memory usage go over 75M yet
jnthn I was thinking ont he trig ones.
*on, the
colomon he was reporting 1000+M this morning.
jnthn \o/
colomon I'm try it with sin.t to see what happens once this run is done. 19:59
jnthn OK, cool.
(I've just been doing some stuff in a branch, which I'm spectesting, so can't do anything immediately.)
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
I'm even willing to wait until tomorrow.
20:03 mberends__ is now known as mberends
coke svn.parrot.org/parrot/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.
coke that has the bug fix that was applied to trunk, with a bumped version #.
tarball coming. 20:05
chromatic The tarball should let you make the release on your schedule.
coke if they're going to require it, they probably want a full release. 20:06
jnthn coke: It's no problem for us to wait for that, I don't think. :-) 20:11
20:12 alinbsp left
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
3 * nested signatures (B)
2 * captures in signatures and return values (B,H)
pmichaud jnthn: I've been sidetracked a bit -- will likely be another hour before I can look at it 20:14
(feel free to move those to "complete", though :)
jnthn pmichaud: ah, ok, I can - I didn't want to make a conflict for you, that's all.
pmichaud: I'm *very* happy to have landed this.
pmichaud: They were the last tasks for my grant, afaict. :-)
20:16 Exodist_ left, Exodist__ joined, nihiliad joined
coke running a fulltest before I do the tarball. feather is slow. 20:17
20:18 jonasbn joined
jonasbn evening all 20:19
pmichaud jonasbn! 20:20
hello!
jnthn oh hai jonasbn
pmichaud jonasbn: you get to pick which release is called "Copenhagen" :) 20:21
jonasbn I have just booked the venue for Sunday
pmichaud jonasbn++ # excellent!
20:21 Exodist__ is now known as Exodist
jonasbn we talked about monday, do you want a session to yourself for monday? 20:21
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.
jonasbn okay
pmichaud jonasbn: Feb, Mar, Apr, -- whatever month you'd like!
jonasbn I would like March then
pmichaud okay, it's yours. And I think we'll go with "Amsterdam" for today's release. 20:23
jonasbn post hackathon
thanks :)
my only goal is reached then
apropos goals we need to set some goals for the hackathon
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
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
jonasbn so Saturday will be general, and Sunday more specific
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.
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.
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.
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.
pmichaud jnthn: good point; I'll keep that in mind (and we'll work accordingly)
let me recheck the osd schedule a bit 20:27
jonasbn: I'll draft a schedule and put it on the wiki
jnthn jonasbn: Are the talks scheduled yet (e.g. what time they'll be at)?
mberends the module storage, loading and packaging interests me the most
jonasbn jnthn: I have not heard anything, but I can investigate and schedule in Act accordingly
I guess Perl hackers are living in their own little world :) 20:28
jnthn :-)
mberends: I figured, thus why I think it matters that we do it when you're around. :-)
jonasbn the people who have indicated interest are all really clever people, so we might be able to cover some ground
pmichaud if people aren't too tired, perhaps we could start discussions on modules on Saturday evening 20:29
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
the official part I mean
pmichaud newbies can come to that tutorial on saturday, and be ready to go on Sunday morning
jonasbn that would be me
pmichaud I suspect the "core group" doesn't need my tutorial, so they can rest then :)
20:31 jonasbn is now known as jonasbn00b
pmichaud jonasbn00b: :) 20:31
would 90 minutes be too long? 20:32
40 minutes is generally a little too short
jonasbn00b pmichaud: I think it should be fine
pmichaud checks act
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
pmichaud er, moritz has that
carl has "only Perl can parse Perl 6"
jonasbn00b hehehe
20:33 Su-Shee left
coke feather.perl6.nl/~coke/parrot-2.1.1.tar.gz 20:33
jonasbn00b it is all about parsing
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?
pmichaud okay, I'll draft a proposed schedule and activities tonight, post it to the wiki, and send a message to the mailing list
coke please let me know if you find any problems with the release candidate.
pmichaud from there we can likely build a more detailed schedule with feedback from masak++, moritz++, etc. 20:35
I have to go pick up kid from school -- bbi20
mberends afk & # dinner
jnthn jonasbn00b: Good food and beer! \o/
jonasbn00b :)
jnthn yay 20:37
jnthn pushes Shiny New Features.
20:37 JoWie joined 20:38 Su-Shee joined 20:39 jferrero joined
dalek kudo/master: d41ed4c | jonathan++ | src/ (5 files):
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
kudo/master: 10e5b56 | jonathan++ | src/ (3 files):
First cut of binding a signature against the return values of a function. Kinda works. :-)
kudo/master: 83542c0 | jonathan++ | src/ (2 files):
Handle sub-signatures in returns so we can do unpacking, plus other little tweaks.
kudo/master: 3ad4e2c | jonathan++ | src/ (5 files):
Merge branch 'bindrets'
jnthn Going for cheezburger, back in a bit. 20:41
20:42 dukeleto joined
dalek kudo/master: 6357018 | jonathan++ | docs/ROADMAP:
Move a couple more items on the ROADMAP to completed.
20:46
20:53 nihiliad left 20:55 sjohnson left, nihiliad joined
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:00
21:02 SmokeMachine left, Su-Shee left
colomon coke: what will the svn version for it be? 21:09
21:09 bluescreen left
colomon (and BTW, coke++, chromatic++, this is awesome support.) 21:10
coke colomon: it will not have an svn revision on trunk. 21:11
21:11 Su-Shee joined
[particle] it will still have an svn rev # 21:11
coke ... not on trunk.
[particle] right
coke which probably makes it useless to them. =-)
[particle] that's a bit problematic for rakudo, i think...
yeah
coke there will be a tag.
[particle] it *can* have a trunk revision 21:12
coke [particle]: no.
[particle] it'd be a bit of a pita to do, though
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
colomon [particle]: I'll bet it's not that bad to make it work.
frettled *reads backlog* jnthn++ - I suppose congratulations are in order! 21:14
chromatic Rakudo can jump to a trunk commit after the release, I suspect. 21:15
jnthn back
frettled: Yes, getting cheeseburger is an incredible achievement. My stomach is has a happy. 21:16
[particle] does rakudo work with parrot trunk head?
frettled jnthn: :(
jnthn: :), I mean
nasty typo there
colomon jnthn: but your stomach does happy?
frettled but at least I managed to balance the parentheses
jnthn [particle]: Not sure. 21:17
There's no particular technical reason I know of why the svn rev # and the Parrot version number have to match up fwiw. 21:18
21:18 h1dd3n left
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
otherwise it's pretty much ignored
(and then, it's only used to say "your version of Parrot isn't new enough")
[particle] right, but that's where it breaks
"not new enough" is on a branch, not trunk
a "newer" parrot may not work with rakudo 21:20
jnthn Ah...I see.
[particle] if 1) the gc patch is applied to parrot trunk, and 2) rakudo works with parrot trunk head, then you're ok
pmichaud currently we set the revision number to a parrot revision *on trunk* that is known to work with Rakudo.
Yes, it's entirely possible that there is no trunk revision that will work with Rakudo, in which case we have to patch Rakudo.
[particle] pmichaud: so are you good to keep the current parrot revision the same? 21:21
jnthn tbh
pmichaud [particle]: I'm testing parrot trunk now.
[particle] ok
mberends back, nom has been num. Ready to begin procrastinating the release until Parrot 2.1.1 is out
[particle] i,m not sure trunk has the gc patch applied
21:21 bluescreen joined
pmichaud then we'll probably end up sticking with the 2.1.0 release 21:21
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?
pmichaud I might be able to add one, but I'm not sure it's worth the trouble at this point.
chromatic Trunk has the GC patch applied.
jnthn Oh, there we are then.
pmichaud okay, then trunk is what we should be looking at :)
chromatic We cherry picked it for the 2.1.1 release.
colomon but trunk has a bunch of other stuff as well, if I understand them correctly.
jnthn Right
jnthn tries it too
PerlJam pmichaud: what if this happened around Rakudo * time? :)
chromatic Sure, trunk has lots of merges.
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
21:23 patspam joined, nbrown left, nbrown joined
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.
colomon pmichaud: but it does interfere with our policy of Rakudo releases being tied to a specific Parrot release, no?
chromatic jnthn, it hasn't landed yet. I asked Whiteknight to hold off until after the release.
jnthn chromatic++
pmichaud (until after the Rakudo release :)
colomon: as long as the rakudo release works with the 2.1.1 release, we're good. 21:25
The point is that we don't want to release a rakudo that doesn't work with a Parrot release.
(that doesn't work with _any_ Parrot release)
colomon pmichaud: ah, okay, so if we work with 2.1.1 but prefer trunk HEAD, that's okay, then. :)
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.
pmichaud the svn revision number is really only used when checking out a fresh copy of Parrot under --gen-parrot
and when verifying that a given installation of parrot is recent enough 21:26
rakudo builds against parrot head, now spectesting
(r44147 for those following along) 21:27
jnthn pmichaud: Same in process here on Win32 also. 21:28
pmichaud looks like we pass 21:29
colomon \o/ 21:30
pmichaud has anyone heard from Su-Shee today?
(I'm up through S32 already with no issues)
colomon pmichaud: she popped in for a bit earlier this afternoon.
pmichaud okay, reading backscroll 21:31
and I think we settled on Amsterdam for this release?
JoWie O.o amsterdam
21:32 awwaiid left
jnthn Confirm successful build on Win32 also. 21:32
pmichaud oh, I think I forgot to pull jnthn++ Shiny New Features before this test
either way, I think it confirms that we'll be able to use whatever svn number corresponds to the branch and/or tag 21:33
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:34
chromatic Not if we pull 2.1.0 from the site. 21:35
frettled Accidentally gone, whooops?
pmichaud rakudo itself never downloads a Parrot release.
jnthn pmichaud: I get one new failure here. 21:36
t\spec\S04-statements\terminator.rakudo ....................... Dubious, test re
turned 150 (wstat 38400, 0x9600)
Failed 10/14 subtests
pmichaud ....returned 150?!?
probably some silly Win32 thingy :)
jnthn pmichaud: Oh.
pmichaud: It runs from the shell to completion.
pmichaud not a blocker then. 21:37
jnthn pmichaud: Random segv maybe? :-/
pmichaud could be
those still show up from time to time :-|
jnthn Yes, though fixing the pool compaction thingy solved a bunch of them recently.
That aside I'm through to S32 now. 21:38
So think we're looking good.
colomon I bet fixing the GC leak probably helps as well.
dalek kudo/master: 6663abf | (Martin Berends)++ | docs/compiler_overview.pod:
[docs/compiler_overview.pod] clarified some explanations, total around 85% complete
pmichaud I'm into the OMGTHESETESTSARESOSLOW S32-trig section
jnthn Yeah :-|
21:39 Chillance joined
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:39
pmichaud we're not sure exactly why they're slow yet 21:40
I don't think it's the trig itself, although that's possible
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
colomon I suspect we could learn a lot from a good profile, even if a parrot fix is not called for.
chromatic I fixed a handful of String PMC malfeasances late Tuesday from some Rakudo profiling. 21:41
21:41 uniejo left
jnthn perl tools\benchmark.pl shows an overall slow-down in method calls and sub calls. 21:41
I know part of why that is.
(Slurpy hash creation got expensive. I can make it cheaper again though.)
colomon chromatic: how many tests would you like to get? 21:42
chromatic Two or three, if they exercise different things. 21:44
mberends colomon: you mean "how many thousand tests"?
colomon mberends: that is actually more or less what I was thinking, yes. :)
chromatic Anything that takes more than three or four wallclock seconds to run is harder to profile. Callgrind is not speedy. 21:45
21:45 alinbsp joined
colomon chromatic: okay, that will require some severe pruning, but let me see what I can do. 21:45
pmichaud with r44147
All tests successful.
colomon \o/ 21:46
jnthn Yay
pmichaud: Looks to be heading that way here too. :-)
coke if you word your announcement properly, I suppose you can just go whenever, and when 2.1.1 shows up, yay.
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...
pmichaud coke: I'm thinking we'll likely hold until much later tonight or early tomorrow 21:47
there are a few other things we'd like to get in place, and our likely release managers tend to be positive longitude
colomon has hacked-sin.t down to 177 tests, 11 wall seconds. 21:48
pmichaud colomon: I think it's more that we have an increased number of active committers now 21:49
colomon: but yes, we're performing much better than master was
colomon pmichaud: well, we're not testing a lot of stuff.
pmichaud colomon: it's also just that it's obvious that this particular section of tests are slow for some reason
colomon I admit I've gotten spoiled by quick spectests, and would love if they would continue to be quick. 21:50
21:50 pjcj left
mathw hello hello 21:50
jnthn hi mathw :-) 21:51
21:51 pjcj joined
pmichaud need reboot here -- bbiab 21:51
jnthn Tests finished and looked fine. 21:54
colomon now how to generate PIR from a .t file?
jnthn --target=pir 21:55
colomon and just pipe that to a file?
21:56 patspam left
jnthn yes 21:56
colomon chromatic: how would you like me to get this to you? 21:57
chromatic nopaste is fine, direct mail is okay (chromatic wgz org) 21:58
pmichaud back again 22:00
mathw wb pmichaud 22:03
Su-Shee mberends: thanks for jumping in, I totally forgot about it. :/ 22:05
hi all.
mberends Su-Shee: we'll catch you another time ;)
jnthn hi Su-Shee
colomon is having difficulty uploading a file. stupid computers. 22:06
[particle] nopaste 22:07
heck, parrot/tools/utils/nopaste.pl
mathw Su-Shee: next month
Su-Shee mberends: I didn't even realize that it's feb. already.
mathw: it's not booked until 2012? ;) 22:08
mathw I have no idea :) 22:09
mberends Su-Shee: smash is booked for March, pmichaud for April. That's all
Su-Shee mberends: this is the first ng-made-master release? 22:10
mberends yes :) and looking good!
pmichaud and I'm only tentative for April :-)
(only because I don't know what will happen around the Rakudo * release) 22:11
Su-Shee mberends: *pew* :)
dalek kudo/master: c69aeb9 | pmichaud++ | docs/release_guide.pod:
Update release_guide.pod with more names.
22:13
pmichaud German Perl Workshop is likely in early June, perhaps a .de person can do the May or June release :)
(and yes, I'm planning to attend :-)
mathw oooh
German Perl Workshop
Su-Shee and yapc eu is in july.
mathw wonders if he could afford that 22:14
jnthn pmichaud: Planning to attend GPW? 22:15
pmichaud yapc eu is in ... july?
jnthn: yes.
jnthn pmichaud: August.
Right at start of. 22:16
pmichaud right, august is normal for yapc::eu
mathw GPW would make sense for me because I know I can survive in Germany.
jnthn pmichaud: Pondering GPW instead of YAPC::EU?
pmichaud: Or aiming for both if pos?
pmichaud aiming for both -- depends on sponsorships
jnthn OK.
22:16 ggoebel left
Su-Shee
.oO(where the hell is "schondorf"..)
22:17
22:17 ggoebel joined
dalek kudo/master: 2663b19 | (Martin Berends)++ | docs/ (2 files):
[docs/] additions to ChangeLog and announce/2010.02
22:18
colomon chromatic: e-mail off to you, apologies for the delay -- file selection is broken in OS X chrome now or something. 22:19
mathw Su-Shee: near Stuttgart, it says 22:20
chromatic Thanks.
Su-Shee mathw: never heard of it. can't be large. ;)
22:21 ive left, snarkyboojum joined, ggoebel left 22:32 wknight8111 joined
lichtkind Su-Shee: you did parrot release? 22:34
22:36 Su-Shee left 22:38 bluescreen left, jonasbn00b left
jnthn oh lol 22:39
I've just done two silly little optimizations. 22:40
Between them they take the spectest run for me from 21 minutes to 13 and a half.
chromatic You still can't have my trophy.
pmichaud wheeee!
I can do an optimization that cuts the spectest time even lower. 1,$s/^/#/ on t/spectest.data :-P 22:41
jnthn :-P
lichtkind chromatic++
dalek kudo/master: a04aba2 | jonathan++ | src/pmc/p6opaque.pmc:
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.
kudo/master: 15ba550 | jonathan++ | src/builtins/Mu.pir:
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.
jnthn OH NOES I missed a closing paren! :-O 22:42
...in the commit message.
:)
mberends ^ extra closing paren :)
jnthn :) 22:43
oh noes, unbalanced again
lichtkind chromatic: can i asky you several questions? 22:44
chromatic Yes.
lichtkind thanks
chromatic jnthn, that first patch there in P6Opaque looks like something Parrot should be able to handle.
22:44 iblechbot left
jnthn chromatic: "able to handle"? 22:45
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.
chromatic: But the optimization was to detect and optimize for a particular hot-path. 22:47
chromatic Right, I see that.
jnthn But possibly these days we can just remove most of that and delegate up to Parrot.
chromatic I think we have a "is there a vtable override?" cache per class.
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.
jnthn OK. That was the primary reason I overrode it.
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
And then once call signatures landed and it was easy to twiddle them, I switched to that approach instead.
chromatic Is this to stuff the invocant at the start of @_?
jnthn Right.
pmichaud Perl 6 expects the invocant as the first positional argument
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.
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
Well
22:51 sjohnson joined
jnthn Less useful than I needed it to be, I should say. :-) 22:51
chromatic Yes, I remember that bug.
mberends all 4 of our talks have been confirmed at conferences.yapceurope.org/hack2010dk/talks
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
(allison and I discussed this during a conference call last november)
jnthn Current code looks as though it may do something like what Rakudo does. 22:53
though it's marked
/* Experimental code. See DEPRECATED.pod */ 22:54
chromatic Right, and the way we check for vtable overrides will change to something much cheaper.
jnthn But it does a VTABLE_unshift_pmc(interp, call_sig, SELF);
So looks like it might be right.
chromatic Agreed.
jnthn Trouble is, I dunno if that means vtable invoke has changed, or if further changes are planned.
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
*simplify
chromatic It should have the same semantics, yes. 22:56
pmichaud wants to try out jnthn++'s speedup for himself :) 22:57
jnthn pmichaud: Another little one on the way soon too.
pmichaud 13.5 minute spectest run of 24k tests is... quite reasonable
jnthn pmichaud: Well, depends what you had before.
pmichaud not great, but reasonable
jnthn pmichaud: I had 21 minutes before. 22:58
chromatic Under 10 would be nice.
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?
pmichaud coke: I'll try it shortly. and surely it's 2.1.1, right?
(since 2.2.0 hasn't come out yet...?) 23:00
coke ... yes. 23:01
ok. I'
ll hold off on a release until you give it a whirl.
pmichaud what's the url for the tarball?
chromatic ~8 minutes to run spectest for me against Parrot HEAD, running 5 parallel test jobs. 23:09
23:11 ignacio_ left
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:11
May be worth a try though. 23:12
pmichaud 12m30 for me to run against PARROT 44147, non-parallel 23:21
23:22 Juerd left, Juerd joined
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
r29778 | (any function on right side will now be a limiting conditional)
r29778 | * is no longer required to intuit series on the left, merely absence of generator before ...
r29778 | first argument on right is always a limiter argument
pmichaud colomon: that's the default used by t/harness, yes.
pugs_svn r29778 | add new ...^ form to exclude a literal limiter for convenience
23:22 athenot left
pmichaud yay! more spec changes!!! :-) 23:23
TimToady I don't expect them to get into this release. :)
but it is, in fact, a simplification
23:23 am0c joined
pmichaud well, *I* didn't promise which version of the spec we'd support in April. :-P 23:23
(yes, I'm sure it will be done in the next few days :) 23:24
23:25 Schwern left
jnthn pmichaud: That's non-parallel? Wow! 23:25
colomon how long is the released delayed for? ... ;)
pmichaud jnthn: yeah, I don't think I have TH3 installed on my notebook. 23:26
it doesn't appear to be running parallel there at the moment.
yeah, my notebook still has TH2.64 23:27
and yes, my notebook tends to be pretty speedy 23:28
jnthn Time to spectest my latest opt (make slurpy hash creation faster) 23:29
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.
chromatic Looks like there's some fat in P6Opaque's find_method() too. 23:30
Any reason Whatever can't override that itself? 23:31
jnthn chromatic: I've got plans for doing that in the future 23:32
chromatic: I want to work it into some more general "writing customer dispatcher" stuff that needs doing anyway.
But yes, I'd like that to go away too.
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.
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
23:34 payload left
chromatic Nothing in the trace really jumps out at me as an obvious win from the Parrot side. 23:34
There are a handful of 2-3% potential improvements. 23:35
pmichaud 2.1.1 tarball passes spectest against rakudo head just fine. 23:36
run spectests in 12m0s (non-parallel) 23:37
*ran
jnthn chromatic: You got the trace of Rakudo's bits of C too?
chromatic: Any info on the relative costs there?
chromatic Most of what's expensive is in Parrot, as you might expect. 23:38
find_method() is where Rakudo's C starts to get expensive.
jnthn How does stuff in bind.c figure?
OK, that's useful to know.
pmichaud afk, dinner fetch
chromatic The most expensive one is Rakudo_binding_bind_one_param() and it's pretty cheap. 23:39
jnthn OK, good.
And yes, I'd expect that to be the more costly spot.
With this patch, spectest is now down under 9 minutes for me. \o/ 23:40
chromatic I can squeeze out a little more. 23:41
mberends jnthn++
23:41 hatsefla1s is now known as hatseflats
jnthn \o/ 23:41
Pushed.
My spectest run before these patches took 1258s. My latest one took 517s.
Meaning I can now do a spectest run in 40% of the time I could earlier. 23:42
I think I can haz a beer now.
lichtkind jnthn: excellent idea 23:43
23:43 snarkyboojum left 23:45 Chillance left
dalek kudo/master: e77b754 | jonathan++ | src/ (2 files):
Optimize hash - especially slurpy hash - creation.
23:46
23:50 snarkyboojum joined
lichtkind jnthn: zravičko 23:50
jnthn: zdravičko
jnthn :-)
snarkyboojum dobar dan 23:51
jnthn snarkyboojum: dobry večer :-) 23:53
snarkyboojum :)
jnthn Slovanske jazyky FTW. :-)
23:55 johnz left 23:58 johnz joined
jnthn chromatic: Another thing I wish was faster is Rakudo startup... 23:58
Granted it's better now than it has been in the past.
chromatic No kidding.
Is that mostly PMC freeze/thaw?
jnthn Parrot got a load better there.
Not sure.
Part of it is that we do so much work at startup
Through not having persisted stuff. 23:59
23:59 snarkyboojum is now known as aeschylus, aeschylus is now known as snarkyboojum