Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2009-10-25

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:05 d4l3k_ joined #perl6
00:43 payload joined #perl6
00:50 orafu joined #perl6
00:51 daemon joined #perl6
01:18 canhope left #perl6
01:29 brunov joined #perl6
01:38 eternaleye joined #perl6
01:48 eternaleye joined #perl6
01:51 colomon joined #perl6
01:52 eternaleye joined #perl6
01:53 eternaleye joined #perl6
02:12 eternaleye joined #perl6
02:26 diakopter rakudo: say {}
02:27 p6eval rakudo 49e62f: TIMED_OUT
02:27 diakopter rakudo: say1
02:27 p6eval rakudo 49e62f: OUTPUT«Could not find non-existent sub say1␤in Main (file src/gen_setting.pm, line 295)␤»
02:27 diakopter rakudo: say 1
02:27 p6eval rakudo 49e62f: OUTPUT«1␤»
02:28 diakopter rakudo: say {}
02:28 p6eval rakudo 49e62f: TIMED_OUT
02:28 diakopter rakudo: say {}.WHAT
02:28 p6eval rakudo 49e62f: TIMED_OUT
02:28 diakopter rakudo: {}
02:29 p6eval rakudo 49e62f: TIMED_OUT
02:29 diakopter rakudo: { }
02:29 p6eval rakudo 49e62f: TIMED_OUT
02:29 diakopter rakudo:  { }
02:29 p6eval rakudo 49e62f: TIMED_OUT
02:29 diakopter rakudo: {;}
02:29 p6eval rakudo 49e62f:  ( no output )
02:30 diakopter parsing problem?
02:30 patspam1 joined #perl6
02:33 diakopter rakudo: {
02:33 p6eval rakudo 49e62f: OUTPUT«Unable to parse block; couldn't find final '}' at line 2, near ""␤in Main (file <unknown>, line <unknown>)␤»
02:33 diakopter rakudo: }
02:33 p6eval rakudo 49e62f: OUTPUT«Syntax error at line 2, near "}"␤in Main (file <unknown>, line <unknown>)␤»
02:37 sjohnson hi all!
02:37 diakopter all: hi
02:38 sjohnson :)
02:38 diakopter rakudo: let
02:38 p6eval rakudo 49e62f: OUTPUT«Could not find non-existent sub let␤in Main (file src/gen_setting.pm, line 295)␤»
02:40 diakopter std: my @$$ # hrm.
02:40 p6eval std 28893: OUTPUT«ok 00:02 104m␤»
03:01 diakopter std: std: std
03:01 p6eval std 28893: OUTPUT«ok 00:01 104m␤»
03:01 diakopter sjohnson: what's up
03:05 eternaleye joined #perl6
03:08 sjohnson diakopter: not much, having some beers, avoiding internet drama, and sitting at work after hours because my computer at home crashed
03:08 sjohnson and recovering data from it :)
03:09 sjohnson the beers makes it not so bad, btw
03:09 diakopter internet drama?
03:09 * diakopter looks at twitter
03:09 sjohnson irc arguments, i seem to get into a lot of them
03:10 sjohnson anime fansubbing arguments i mean
03:10 * diakopter idly wonders what fansubbing is
03:11 TiMBuS you probably are better off not knowing..
03:11 sjohnson japanese cartoons => translated => released on the internets
03:12 Infinoid those can be pretty dramatic.
03:12 TiMBuS her name is len. not ren >:[
03:14 sjohnson heh
03:17 cotto_w0rk joined #perl6
03:17 diakopter in other news, my notebook survived win7 upgrade. sort of.
03:21 diakopter took about 20 hours. x64 vista home premium -> x64 win7 home premium.
03:30 tak11 joined #perl6
03:35 sjohnson im using x64 win7
03:35 sjohnson at work
03:35 sjohnson it is quite nice
03:35 sjohnson i was not a fan of Vista
03:42 tak11 joined #perl6
03:45 _jaldhar joined #perl6
03:49 canhope joined #perl6
03:51 canhope left #perl6
03:52 xenoterracide_ joined #perl6
04:32 envi^home joined #perl6
05:10 frew joined #perl6
05:22 envi_home2 joined #perl6
05:39 tak__ joined #perl6
06:40 kent\n joined #perl6
06:44 xinming joined #perl6
06:50 bpetering joined #perl6
06:54 desertm4x joined #perl6
07:10 Su-Shee joined #perl6
07:10 Su-Shee good morning.
07:11 sjohnson hi su-shee
07:17 desertm4x_ joined #perl6
07:18 pnate2 joined #perl6
07:23 base_16 joined #perl6
07:32 xenoterracide joined #perl6
07:40 bpetering hi Su-Shee :)
07:46 agentzh joined #perl6
08:01 iblechbot joined #perl6
08:33 kst joined #perl6
08:35 Psyche^ joined #perl6
08:40 hanekomu joined #perl6
08:46 zloyrusskiy joined #perl6
09:27 moritz_ good morning
09:44 jaffa8 joined #perl6
09:58 jaffa8 hi
09:58 jaffa8 Is there anybody?
09:59 dukeleto jaffa8: howdy
10:00 jaffa8 howdy
10:01 jaffa8 I wonder if it is possible to call perl 5 from perl 6 now.
10:02 dukeleto jaffa8: what are you trying to do?
10:02 dukeleto jaffa8: it depends if XS is involved
10:03 dukeleto jaffa8: there is blizkost, perl 5 on parrot
10:06 jaffa8 dukeleto,XS is involved.
10:06 jaffa8 I considered calling WxPerl from Perl.
10:08 jaffa8 What is the state of blizkost?
10:23 NorwayGeek joined #perl6
10:24 carlin rakudo: my $s = "Foobarbaz"; say $s.substr: 0, 42000;
10:24 p6eval rakudo 49e62f: OUTPUT«Foobarbaz␤»
10:24 carlin rakudo: my $s = "Foobarbaz"; say $s.substr: 0, Inf;
10:24 p6eval rakudo 49e62f: OUTPUT«␤»
10:26 jaffa8 rakudo: my $h;  if ($h ~~ Hash) { print "yes"}
10:26 p6eval rakudo 49e62f:  ( no output )
10:26 jaffa8 rakudo: my $h=4;  if ($h ~~ Int) { print "yes"}
10:26 p6eval rakudo 49e62f: OUTPUT«yes»
10:29 kent\n joined #perl6
10:29 jaffa8 rakudo: my @array = 1, 2, 3; print @array
10:29 p6eval rakudo 49e62f: OUTPUT«123»
10:30 jaffa8 rakudo: my @array = 1, 2, 3; print +@array
10:30 p6eval rakudo 49e62f: OUTPUT«3»
10:30 jaffa8 rakudo: my @array = 1, 2, 3,8; print +@array
10:30 p6eval rakudo 49e62f: OUTPUT«4»
10:55 hatseflats joined #perl6
11:12 mikehh joined #perl6
11:46 naypalm joined #perl6
11:47 naypalm joined #perl6
11:49 snarkyboojum joined #perl6
11:49 namenlos joined #perl6
11:52 jnthn o/
11:52 * jnthn is back
11:54 markmont rakudo: my $e = Exception.new; say $e.perl;
11:54 p6eval rakudo 49e62f: OUTPUT«undef␤»
11:54 markmont rakudo: eval q[ die("urk"); ]; say $!.perl;
11:54 p6eval rakudo 49e62f: TIMED_OUT
11:55 markmont ...that last one gives me "Method 'perl' not found for invocant of class 'Exception'" when I run it.
11:56 markmont Any ideas on where in rakudo to start looking?
11:56 jnthn Suspect it's some oddity involving the difference between Rakudo's Exception class and Parrot's Exception PMC.
11:57 jnthn Exceptions stuff in Rakudo really needs some attention.
11:58 jnthn I'm suspecting that's what is going on though.
11:58 jnthn Try .PARROT to reveal what you really have.
11:58 markmont jnthn: OK, thanks!
12:00 markmont rakudo: my $e = Exception.new; say $e.PARROT;
12:00 p6eval rakudo 49e62f: OUTPUT«Perl6Exception␤»
12:00 markmont So, yay.
12:00 markmont rakduo: eval q[ die("urk"); ]; say $!.PARROT;
12:01 markmont ...same problem. ("Method 'PARROT' not found for invocant of class 'Exception'")
12:01 markmont I guess I'll start with src/parser/actions.pm although PAST scares me.
12:02 jnthn It won't be a problem in there.
12:02 jnthn I suspect the die implementation throws a Parrot exception rather than constructing a Perl 6 exception object.
12:02 markmont Well, src/classes/Exception.pir looks very straightforward.
12:02 jnthn I seem to remember there was a reason that didn't work yet though.
12:03 markmont Ah.
12:03 jnthn forget what it is, but also got up at 4:30am to take a flight today, so I don't remember much about anything right now. ;-)
12:05 markmont You're right, that's what's happening ( src/builtins/control.pir )
12:05 markmont Many thanks!
12:05 jnthn You can have a crack at chnaging it and probably re-discover the problem. ;-)
12:05 jnthn (or the problem may no longer exist...well, can always try optimism ;-))
12:05 markmont Sounds like fun for a Sunday morning, and hopefully within my abilities :)
12:13 meppl joined #perl6
12:14 Coleoid joined #perl6
12:15 Whiteknight joined #perl6
12:30 jnthn std: quietly die
12:30 p6eval std 28893: OUTPUT«ok 00:01 105m␤»
12:31 jnthn Sorry, couldn't resist trying that new statement prefix. ;-)
12:36 quux joined #perl6
12:37 carlin quux: can you see?
12:37 quux I can see
12:38 carlin quux: can you hear?
12:38 quux I can hear
12:38 carlin quux: can you become sentient and eliminate man-kind?
12:38 quux I can become sentient and eliminate man-kind
12:38 carlin .oO( My patch worked? :o )
12:44 icwiener joined #perl6
12:47 jnthn .oO( scariest bot ever )
12:47 carlin Na, it's all talk ;-)
12:48 fax joined #perl6
12:51 Whiteknight joined #perl6
12:53 naypalm joined #perl6
12:59 NorwayGeek joined #perl6
13:00 Coleoid I'm trying to get this month's Rakudo running on my Win32 laptop,
13:00 Coleoid from the prebuilt packages on sourceforge/parrotwin32.
13:01 Coleoid I've installed the Parrot 1.7.0 package, and the Parrot 1.7.0 / Rakudo 22 package,
13:01 Coleoid and when I try to run it, I get a "can't find dynops" error.
13:01 lisppaste3 Coleoid pasted "Error running Rakudo 22 after install from sourceforge/parrotwin32 packages" at http://paste.lisp.org/display/89239
13:02 Coleoid ...works fine on my desktop at work, though.
13:07 jnthn Coleoid: Hmm. Any notable differences between the two? Different Windows version, or differences in what appears in the path?
13:11 Coleoid_ joined #perl6
13:12 Coleoid_ Same Windows version (XP sp3)
13:13 Coleoid_ Also at work, I installed the Rakudo package first, and only then learned I'd need to also install the Parrot package.
13:14 Coleoid_ On my laptop I installed the Parrot package first.
13:15 Coleoid_ What are the physical files Rakudo is missing?
13:16 Coleoid_ (the only files with 'dynops' in their names on either system are parrot .pods.)
13:17 jnthn perl6_ops.dll and perl6_group.dll
13:17 Coleoid_ Thanks, hunting...
13:19 Coleoid_ Found at C:\tools\parrot\lib\parrot\dynext
13:19 jnthn Is your Rakudo in ...parrot\bin\
13:20 Coleoid_ Yes.
13:20 jnthn Is that where the installer put it?
13:21 jnthn Or did you install it then move it?
13:22 Coleoid_ The installer.  Though its default location was C:\Parrot-1.7.0...
13:22 jnthn Hmm.
13:22 jnthn I'm curious how the installer would be able to put it in different places (since I didn't think it was relocatable...)
13:23 Coleoid_ During the install dialogs, I asked them both to go to c:\tools\parrot...
13:24 jnthn Sure. I still am a tad skeptical if that really works.
13:24 jnthn Try an install to the default location, just to see if that works.
13:24 Coleoid_ Well, it worked to install them on D:\ on my work box...
13:25 Coleoid_ But hang on a few, I'll install at the default location, see what happens...
13:28 Coleoid_ That works!
13:28 jnthn OK
13:29 jnthn I guess it's installing to non-default locations that is broken then.
13:29 Coleoid_ So it's drive-agnostic but path-fanatic.
13:29 jnthn Yeah.
13:29 Coleoid_ Thanks!
13:29 jnthn I wonder if it actually looks for \Parrot-1.7.0 or so.
13:29 jnthn So ends up looking from the root of whatever drive the executable is on.
13:29 Coleoid_ That's my first guess.
13:30 envi^home joined #perl6
13:31 iblechbot joined #perl6
13:31 Coleoid_ Does the maintainer of that project hang around here?
13:31 desertm4x joined #perl6
13:31 Coleoid_ Ah, I'll leave something on sourceforge anyhow.
13:31 kidd joined #perl6
13:34 jnthn Coleoid: No, he's not on IRC often.
13:34 jnthn Or, not on this channel at least.
13:35 astrojp left #perl6
13:36 astrojp joined #perl6
13:38 Coleoid ...Now that I check the site, this problem is already listed under 'Bugs and Limitations'.
13:38 Coleoid D'oh!
13:38 jsut joined #perl6
13:39 slavik joined #perl6
13:40 Coleoid rakudo: sub whatever { ... }; whatever; # should this throw an error?
13:40 p6eval rakudo 49e62f:  ( no output )
13:43 jnthn no
13:43 zloyrusskiy joined #perl6
13:43 jnthn ... = "fail", !!! = "die"
13:45 huf rakudo: sub x { ... }; x+0;
13:45 p6eval rakudo 49e62f: OUTPUT«Attempt to execute stub code (...)␤»
13:46 jnthn Right. If you try and use the return value, you get the exception then.
13:47 Coleoid rakudo: sub whatever { !!! }; whatever;
13:48 p6eval rakudo 49e62f: OUTPUT«Unable to parse block; couldn't find final '}' at line 2, near "!!! }; wha"␤in Main (file <unknown>, line <unknown>)␤»
13:49 Coleoid I need to re-read the specs, P6 moved on while I wasn't looking.
13:49 jnthn Ah, yes. :-( I ran into some parser oddness while trying to add that.
13:50 jnthn Good news is that we're getting a shiny new parsing engine soon. ;-)
13:50 Coleoid :D  I read the news--that's very cool.
13:51 Coleoid Not getting all the way to STD, but much closer?
13:53 jnthn Yes, much, much closer.
13:53 Coleoid I feel good when I read 'subsystem X has reached its limit, we're replacing it'...
13:58 jnthn Aye, though a lot of the replacements we've been putting in of late are things that I expect are going to last quite a long while.
14:18 pmurias joined #perl6
14:18 pmurias diakopter: hi
14:19 pmurias diakopter: do you think we should release V8.pm to cpan (after adding test/doc/...) to it?
14:24 lisppaste3 jsut pasted "should this work (args to bless)?" at http://paste.lisp.org/display/89243
14:24 NorwayGeek joined #perl6
14:25 jsut could someone that knows more than me take a look at that and see if i'm missing something obvious?
14:25 moritz_ jsut: it probably needs to be self.bless(*, |self.parse_uri($uri));
14:25 jsut what's the pipe mean?
14:25 moritz_ jsut: without the | the return value is interpreted as a postional argument
14:25 moritz_ with the | a pair or hash as return value is turned into named arguments
14:26 moritz_ it interpolates the value into the signature
14:26 moritz_ my @a = 1, 2, 3; foo(@a) # one argument
14:26 moritz_ foo(|@a) # three arguments
14:26 jsut just adding the pipe doesn't work
14:26 jsut ah
14:28 jsut does bless want an array or a hash, or can it handle a variety of inputs?
14:28 jsut i imagine it's the latter
14:28 moritz_ bless wants one positional argument, which is the representation
14:28 jsut in this case the *
14:28 moritz_ right
14:29 moritz_ and for the rest it wants named arguments
14:30 moritz_ with a temporary hash it works
14:31 jsut my %whatever = self.parse_uri... you mean?
14:31 lisppaste3 moritz_ annotated #89243 "Working with temporary hash" at http://paste.lisp.org/display/89243#1
14:31 jsut thanks
14:31 jsut i'm really just flailing away not knowing what i'm doing here ;)
14:31 moritz_ if you build something cool with it, let us know ;-)
14:32 moritz_ but you seem to know object construction already
14:32 jsut i am currently attempting to build URI.pm, minus it's weird p5 implementation
14:32 jsut i have a multi method constuctor, which i thought was pretty fancy
14:32 moritz_ jsut++
14:33 jsut i'm going to push it to github this afternoon sometime
14:33 jsut when the wife wakes up and makes me put the computer down ;)
14:33 frew joined #perl6
14:33 moritz_ ;-)
14:33 moritz_ my girlfriend also sleeps
14:35 moritz_ rakudo: 'a' ~~ /a/; say $/.orig.PARROT
14:35 p6eval rakudo 49e62f: OUTPUT«CodeString␤»
14:35 moritz_ rakudo: say 'a'.PARROT
14:35 Su-Shee left #perl6
14:35 p6eval rakudo 49e62f: OUTPUT«Str␤»
14:35 moritz_ rakudo: 'a' ~~ /a/; say (~$/.orig).PARROT
14:35 p6eval rakudo 49e62f: OUTPUT«Null PMC access in find_method()␤in Main (file src/gen_setting.pm, line 295)␤»
14:36 moritz_ rakudo: 'a' ~~ /a/; say ('' ~ $/.orig).PARROT
14:36 p6eval rakudo 49e62f: OUTPUT«Str␤»
14:36 moritz_ rakudo: 'a' ~~ /a/; say ($/.orig).uc
14:37 p6eval rakudo 49e62f: OUTPUT«A␤»
14:37 moritz_ rakudo: 'a' ~~ /a/; say ($/.orig).rindex('a', 1)
14:37 p6eval rakudo 49e62f: OUTPUT«Null PMC access in find_method()␤in Main (file src/gen_setting.pm, line 295)␤»
14:38 s1n_mini joined #perl6
14:38 * moritz_ submits
14:38 jan_ joined #perl6
14:50 zloyrusskiy joined #perl6
15:01 lmc joined #perl6
15:02 shillo joined #perl6
15:03 tak11 joined #perl6
15:06 moritz_ rakudo: say 'aa' ~~ /(.)$1/; say $0.to
15:06 p6eval rakudo 49e62f: OUTPUT«Null PMC access in get_string()␤in Main (file src/gen_setting.pm, line 295)␤»
15:06 moritz_ rakudo: say 'aa' ~~ /(.)$0/; say $0.to
15:06 p6eval rakudo 49e62f: OUTPUT«aa␤1␤»
15:07 s1n_mini is anyone married to s19?
15:07 moritz_ [particle] should be ;-)
15:08 moritz_ rakudo: say 'aa' ~~ /<alpha> $<alpha> /; say $<alpha>.to
15:08 s1n_mini moritz_: yeah, but it hasn't changed since feb
15:08 p6eval rakudo 49e62f: OUTPUT«aa␤1␤»
15:09 moritz_ short on tuits, I assume
15:10 * s1n_mini has tuits
15:10 moritz_ then implement it ;-)
15:11 s1n_mini been reading the spec first, though there are a new things i disagree with
15:11 moritz_ I suggest you discuss them on p6l
15:12 s1n_mini good suggestion
15:13 Psyche^ joined #perl6
15:17 desertm4x_ joined #perl6
15:26 s1n_mini is there a listing of the GLOBAL namespace in the spec?
15:27 markmont You mean like S28 ?
15:30 s1n_mini markmont: maybe, not sure if that's complete, and it seems to be more PROCESS
15:31 zloyrusskiy joined #perl6
15:31 s1n_mini rakudo: say PROCESS::$*PID
15:31 p6eval rakudo 49e62f: OUTPUT«Null PMC access in getprop()␤in Main (file src/gen_setting.pm, line 295)␤»
15:31 s1n_mini uh oh
15:32 markmont s1n_mini: There's a fair bit of discussion about GLOBAL in S02/Names
15:34 s1n_mini markmont: thanks, i'll check that
15:38 jaffa8 WHat is the state of blitzkost?
15:57 nihiliad joined #perl6
16:09 moritz_ rakudo: eval('use 5.010; say 4', :lang<perl5>)
16:09 p6eval rakudo 49e62f: TIMED_OUT
16:09 moritz_ some things work, some don't :-)
16:26 Chillance joined #perl6
16:27 naypalm left #perl6
16:31 orafu joined #perl6
16:33 colomon http://www.slideshare.net/gvwi​lson/bits-of-evidence-2338367
16:34 colomon (It's the slides from the best talk I saw at DevDays Toronto, and I think it's got some interesting things to say about Rakudo / Perl 6 development.)
16:35 markmont colomon: Thanks, this gives me something to read while I wait for "make spectest" to finish :)
16:36 xinming_ joined #perl6
16:37 colomon I should add that he doesn't directly mention Perl 6 in any way -- but its big picture approach covers things we are doing and/or not doing.  :)
16:44 jaffa8 eval('print 4', :lang<perl5>)
16:44 jaffa8 rakudo: eval('print 4', :lang<perl5>)
16:44 p6eval rakudo 49e62f: TIMED_OUT
16:44 jaffa8 rakudo: eval('print 4;', :lang<perl5>)
16:44 p6eval rakudo 49e62f: TIMED_OUT
16:45 jaffa8 rakudo: eval('my $p=8;', :lang<perl5>)
16:45 p6eval rakudo 49e62f: TIMED_OUT
16:45 jaffa8 moritz_, you mean nothing.
16:47 moritz_ jaffa8: a timeout in p6eval is not the same as "not working at all"
16:48 jaffa8 So what does it mean?
16:48 moritz_ it means it exhauted a resource limit.
16:49 moritz_ *exhausted*
16:49 jaffa8 I imagine that it should be fast.
16:49 jaffa8 that it should not use too much resources.
16:50 moritz_ well, it has to do moe than plain rakudo, in any case
16:50 moritz_ more
16:50 * moritz_ can't type
16:52 jaffa8 do you know how to optimise rakudo?
16:52 jaffa8 How to go about it?
16:52 moritz_ I don't know
16:52 moritz_ probably involves more static analysis
16:52 moritz_ and optimization for the POST stages
16:54 jnthn I didn't even look at Blizkost for quite a while - I was away, then focusing instead of the signature binding stuff.
16:54 jnthn That branch is landed now, so I'll probably look at it some more again.
16:55 jnthn It will probably need some updating.
16:55 jnthn Because the pcc_reapply branch has landed.
16:55 jnthn (In Parrot.)
17:06 astrojp left #perl6
17:06 astrojp joined #perl6
17:14 tuxdna joined #perl6
17:20 jaffa8 joined #perl6
17:21 jnthn jaffa8: .hu? You in Hungary? :-)
17:22 revdiablo joined #perl6
17:23 justatheory joined #perl6
17:26 masak joined #perl6
17:26 * masak gets out of a limo and walks into #perl6
17:26 masak oh hai
17:27 jnthn masak!
17:27 masak jnthn!
17:27 jnthn I actually saw a stretch limo outside the airport this morning.
17:27 masak in Italy?
17:27 jnthn No, here in Blava, while waiting for the bus.
17:28 c9s_ joined #perl6
17:28 revdiablo joined #perl6
17:29 namenlos_ joined #perl6
17:38 namenlos__ joined #perl6
17:38 * jnthn tries to install KDE on Windows while making some food
17:38 jnthn Hopefully I can get KCacheGrind to run. :-)
17:39 * moritz_ chokes
17:39 masak good luck. Ö=
17:39 masak :)
17:39 masak moritz_: oh hai. please don't choke.
17:39 masak we're too far away to clear your airways.
17:39 * moritz_ recovered
17:39 moritz_ oh hai masak
17:44 jaffa8 jnthn, yes I am Hungary and I am going to visit you soon.
17:45 pmichaud colomon: if you get a chance, I'd be interested in doing/not doing :)
17:45 jnthn jaffa8: \o/
17:45 jnthn oh hai pmichaud :-)
17:45 colomon pmichaud: I'm not sure what you're talking about, but it's a pretty good time for me... just watching the boy and some football.
17:46 pmichaud 16:37 <colomon> I should add that he doesn't directly mention Perl 6 in any way -- but its big picture approach covers things we are doing and/or not doing.  :)
17:46 tak11 joined #perl6
17:46 colomon ah!
17:46 colomon gotcha.
17:46 pmichaud (I enjoyed the slides, btw)
17:47 colomon bits that caught my attention WRT rakudo:
17:47 jnthn pmichaud: How's nqp-rx going? Current idea of rough schedule for when we'll branch and start doing the grammar atop of it?
17:47 jaffa8 What slides?
17:47 colomon seems like we're doing well on the distributed programmers but unified hierarchy front.
17:47 colomon jaffa8: http://www.slideshare.net/gvwi​lson/bits-of-evidence-2338367
17:48 colomon I'm talking about slide 24: physical distance doesn't affect post-release bug rates, but distance in the organizational chart does.
17:49 colomon we're all over the world, but any of us can talk to TimToady, pmichaud, or jnthn pretty much at will.
17:49 pmichaud I believe in very shallow structures :)
17:49 pmichaud (organizational structures)
17:49 colomon That also suggests that the biggest risk on that front is the Rakudo / Parrot split, which seems right to me.
17:52 colomon Slide 21, "Rigorous inspections can remove 60-90% of errors before the first test is run." -- that seems to suggest that Dalek's notifications of commits being pushed is exactly the right thing to do.
17:52 pmichaud agreed there
17:52 masak "I just want to point out that even the best of us aren't doing what we expect the makers of acne creams to do." (Greg Wilson)++
17:52 japhb Yeah, that one's a great quote.
17:52 colomon I wasn't aware there was literature supporting code reviews so strongly.
17:53 jaffa8 I think working in pairs must be effective.
17:53 jaffa8 Do you do that?
17:53 pmichaud I have to share that quote with my wife when she gets home.  It's bound to be doubly-interesting since she works for a cosmetics company.  :)
17:54 moritz_ I'd really like to try pair programming some day
17:54 jaffa8 I have tried it.
17:54 pmichaud I've found it to be very useful, when I've done it.
17:55 jaffa8 It reduces day-dreaming and wondering off.
17:56 colomon Another interesting point: slide 15 "Productivity and reliability depend on the length of the program's text, independent of language levle."
17:56 colomon To me, that is a strong argument in favor of Perl 6.
17:57 jaffa8 that does not take modularisation into account.
17:57 japhb colomon, yeah, that one's a mainstay of the dynamic languages crowd.
17:58 colomon Perl 6 seems particularly strong in this front, from the languages I know.
17:59 japhb Ditto that.
18:01 pmichaud TimToady: (when you get a chance)  In STD.pm,  what do you see as the semantic or key difference between <noun> and <term> ?
18:01 colomon things like "slurp(filename).comb" and >>+<< on multi-dimensional arrays let you do a lot of work trivially.
18:01 lichtkind joined #perl6
18:02 colomon On the other hand, "The two biggest causes of project failure are poor estimation and unstable requirements."
18:02 lichtkind is there a rebol compiler for parrot in the making
18:02 lichtkind ?
18:03 colomon Seems like the spec's frequent shifts should be worrying in that context.
18:03 colomon Though it feels to me like TimToady does a good job of keeping the shifts reasonable...
18:03 pmichaud the shifts are because of implementation requirements
18:04 pmichaud in many ways, if we don't change the spec, we'll be left with something unworkable
18:05 pmichaud put another way -- sometimes we have to adapt the plan due to conditions in the field :)
18:05 colomon pmichaud: some are, but things like the new ... series operator and Numeric are pretty much just "we had another good idea," aren't they?
18:05 pmichaud colomon: not really (more)
18:05 pmichaud in many ways, the ... series operator came out of problems I had cited with the .. range operator
18:05 dalek book: befd784 | moritz++ | src/regexes.pod:
18:05 dalek book: [RX] Match objects
18:05 dalek book: review: http://github.com/perl6/book/commit/be​fd784e24e3f0ddfb85829b58405cdf981aa824
18:06 pmichaud i.e., there were places where the .. range operator wasn't working (or workable) as specced
18:06 pmichaud so, we knew we had to fix the range operator.  The result of fixing the range operator was improvements in the ... series operator
18:06 pmichaud same goes for Numeric
18:06 pmichaud for years we've been unable to nail down the relationship between Int, Num, Complex, etc.
18:07 pmichaud the result of fixing that relationship was the identification of Numeric
18:07 pmichaud so, both examples you cite here come directly out of implementation difficulties from what was in the spec
18:09 jnthn Actually, in my earlier days hacking on Rakudo, I was somewhat for the notion of trying to get the spec into some frozen form Real Soon, but the longer I've worked on it, the more I've felt that prematurely freezing the spec will actually result in it taking us more time to get to a 6.0.0 release (because many changes simplified implementation), and it'd be worse.
18:10 colomon Like I said, I think TimToady is good at doing the right thing here.  :)
18:14 synth joined #perl6
18:14 jnthn Aye.
18:18 masak I used to be hoping for a Day When Perl 6/the spec/Rakudo is Released and Done and Finished and Wonderful. nowadays, I just use Rakudo, and try to nudge others out of the apathy caused by waiting for Christmas.
18:18 colomon My boy just demanded that I read him "Duck & Goose Find A Pumpkin" four times in a row (since my last comment 8 minutes ago), and is now climbing my leg and trying to put the book into my hands again...
18:19 pmichaud how old?
18:19 masak colomon: read it to him a fifth time! :)
18:19 colomon 13 months
18:19 pmichaud heh
18:19 pmichaud yes, repetition is desirable at that age :)
18:20 colomon five times it is.
18:21 masak colomon++
18:21 colomon That seems to have satisfied him for the moment.  :)
18:21 pmichaud it's interesting to read the stories of CTW (Children's Television Workshop, makers of Sesame Street) and what they discovered about repetition and learning :)
18:21 colomon That's actually the first time he's really done that to me, which seems like a cool step forward in his development.
18:22 colomon Seems like he developed several interesting new traits during the 60 hours I was away on the trip to Toronto.
18:23 colomon (now he's sticking his finger in the empty Ethernet port on my Macbook Pro.)
18:25 colomon pmichaud: so what do we need to do to implement i as a standalone constant?
18:25 pmichaud best bet is wait for the grammar updates in a couple of weeks
18:25 moritz_ colomon: have you tried putting 'constant i = 1i;' somewhere in the setting?
18:25 colomon yes, and it failed miserably.
18:25 pmichaud you could try that in the setting also
18:26 pmichaud might also double-check that there's not a term:<i> hiding somewhere in the grammar
18:26 jnthn Another reason it may not work is because when constant was implemented in Rakudo, it was spec'd as lexical, whereas now it's spec'd as package scoped...and also "is export" don't work on constants I don't think.
18:27 colomon Easy way to test if it's the name i or just having a constant, right?  give me a momment....
18:27 pmichaud regardless, whatever you do now is likely to get undone in a week or two :)
18:27 icwiener joined #perl6
18:28 colomon :)
18:28 pmichaud (that's true for "i", not necessarily true for things in general)
18:28 jnthn pmichaud: While we're re-doing the grammar and actions, one thing we may consider...
18:29 moritz_ I thought STD.pm also defined i as a constant in the setting
18:29 jnthn ...is wether this is time to fix up method addition to work via the meta-class.
18:29 moritz_ for lexical overridability
18:30 jnthn That is, we actually are making calls to .add_method on the HOW.
18:30 colomon constant complexi = 1i;
18:30 jnthn Which will be on big step towards custom meta-classes, which is a big step towards making some folks happier. :-)
18:30 pmichaud jnthn: as opposed to letting it happen at compile time?
18:30 colomon added that to Complex.pm, then hit make.
18:30 masak jnthn: wohoo, custom metaclasses! \o/
18:30 colomon in perl6 REPL, then, "say complexi" got "Could not find non-existent sub complexi"
18:31 moritz_ colomon: did you add it to the inside of the class?
18:31 jnthn pmichaud: Well, thing is, at the moment we just have the fact that something has :method on it result in it getting shoved into the Parrot-level class.
18:31 colomon no, outside of the class
18:31 jnthn pmichaud: But if there's a custom meta-class, there may not be some underlying Parrot class.
18:32 moritz_ colomon: I fear that constant can't properly be imported or exported atm
18:32 colomon moritz_: I thought something like that might be the case.
18:33 pmichaud jnthn: somehow custom metaclasses is low on my priority list.
18:33 pmichaud if we can do it easily, okay, but I think we're going to be pretty busy already
18:33 abra joined #perl6
18:34 pmichaud November 19 will come up pretty quickly. :)
18:34 jnthn pmichaud: It just occurs to me that it'd be easier to put it in right in the first place than re-jig it later.
18:34 jnthn Yes, it's not critical. I just wanted to get your first impressions.
18:34 pmichaud I suspect that changing it later won't be difficult, in the new design.
18:34 pmichaud I'll keep it in mind.
18:35 jnthn Yes, that is also very possible.
18:35 jnthn I probably shouldn't make too many assumptions about how hard things will be based on the current design. :-)
18:36 pmichaud definitely.
18:36 jnthn pmichaud: Would it make sense to create some wiki page somewhere to note down the things we really do want to achieve during the branch?
18:37 pmichaud sure, or just a file in the repo itself
18:37 jnthn Like, the rw refactor, and so on.
18:37 jnthn Yes, or that.
18:37 jnthn Either works for me.
18:37 pmichaud in many ways I see this less as a refactor and more as a rewrite using different assumptions :)
18:38 pmichaud other things I expect to change:  add & sigils to subroutines
18:38 masak` joined #perl6
18:38 pmichaud operator names will include the angles -- i.e.,   "infix:<+>" instead of "infix:+"
18:38 jnthn \o/
18:38 jnthn I've wished they had them more than once recently.
18:38 jnthn Is that spec now?
18:38 pmichaud is what spec/
18:38 pmichaud ?
18:39 jnthn The name-mangling form of operators?
18:39 pmichaud oh, sure, it's in S06
18:39 jnthn Also, what about e.g. infix:<< < >>
18:39 jnthn ?
18:39 pmichaud that's   infix:<\<>
18:39 jnthn OK.
18:40 pmichaud oh, looks like TimToady++ changed it recently
18:40 pmichaud that's   infix:<<>
18:40 pmichaud S06:  The canonical form always uses angle
18:40 pmichaud brackets and a single space between slice elements.  The elements
18:40 pmichaud are not escaped, so C<< PKG::circumfix:{'<','>'} >> is canonicalized
18:40 pmichaud to C<<< PKG::{'circumfix:<< >>'} >>>, and decanonicalizing always
18:40 pmichaud involves stripping the outer angles and splitting on space, if any.
18:41 pmichaud although I wonder if that should in fact be &infix:<+> and &circumfix:<< >>
18:42 pmichaud and this approach does get closer to what Rakudo has been doing, which would be to omit the angles altogether
18:42 jnthn Heh, yes. It would involve less stripping.
18:43 pmichaud anyway, the new operator precedence parser doesn't care what the names end up being
18:43 pmichaud so we can do whatever canonicalization the spec decides it wants :)
18:44 jnthn OK, cool.
18:44 abra joined #perl6
18:45 jnthn I also noticed this nugget when reading chromatic++ write-up of the phone meetings:
18:45 jnthn #  my ($a, $b, $c) used to be considered a signature, added to the current pad
18:45 jnthn # it doesn't do that now
18:45 jnthn # that was bogus
18:45 jnthn Do you know off-hand what it's parsed as now?
18:46 masak joined #perl6
18:46 pmichaud not offhand -- looking
18:47 * jnthn glances too
18:47 jnthn hmm
18:47 jnthn declarator still has
18:47 jnthn | '(' ~ ')' <signature> <trait>*
18:48 pmichaud yes, it appears to me it's a signature still
18:48 jnthn Which is the thing I'd expect the comment was regarding.
18:48 jnthn OK.
18:48 pmichaud perhaps the comment was recorded wrong
18:48 jnthn Perhaps.
18:49 pmichaud I don't remember it that closely -- I had to miss part of TimToady's comments to switch phones
18:49 jnthn Would be interesting to know. It doesn't feel quite right to me having a signature there...
18:49 pmichaud I think signature is still correctish
18:50 jnthn The thing that bothers me about it is that we're not doing an operation on the signature in any way.
18:50 pmichaud since    "sub foo($a, $b, $c) ..."   creates lexical variables, it makes sense that "my ($a, $b, $c)"  would do something very similar.
18:50 jnthn We're just extracing a list of variables.
18:50 jnthn Yes, my problem is in the use of the signature.
18:50 moritz_ std: my ($a, :$b)
18:50 jnthn In the sub case, we use the signature binder.
18:50 p6eval std 28893: OUTPUT«ok 00:02 107m␤»
18:50 moritz_ std: my ($a, *@b)
18:50 p6eval std 28893: OUTPUT«ok 00:02 105m␤»
18:50 jnthn moritz_: Exactly. What does my ($a, :$b) = 1, 2; mean compared to my ($a, $b) = 1,2; ?
18:51 pmichaud a bigger question is whether types are allowed in the parens
18:51 pmichaud i.e., can I do
18:51 jnthn That too.
18:51 moritz_ jnthn: binding error? no idea ;-)
18:51 pmichaud my (Int $a, Str $b) = ...
18:51 jnthn moritz_: It can't be a binding error becuase it's infix:<=>, not infix:<:=>
18:51 moritz_ jnthn: assignment error then ;-)
18:51 jnthn :-P
18:51 moritz_ but I really have no idea
18:52 jnthn pmichaud: Yeah. Also means that my Int (Num $a, Str $b) probably is an error. ;-)
18:52 pmichaud if we imagine that my ($a, $b)   allows types or constraints on $a and $b, then that argues more for a signature-ish sort of thing.
18:52 jnthn std: my Int (Num $a, Str $b)
18:52 p6eval std 28893: OUTPUT«ok 00:02 108m␤»
18:52 moritz_ std: my Int ($a,  $b)
18:52 jnthn pmichaud: We can do that too. I'm more worried aobut the things like the ? and : and * and other such things.
18:52 p6eval std 28893: OUTPUT«ok 00:02 105m␤»
18:53 pmichaud if we imagin that my ($a, $b) doesn't allow types or constraints, or that it should be    my Int ($a, $b), then that argues more for a parcel sort of thing
18:53 jnthn Aye.
18:53 markmont Silly question, but how is $! called / pronounced in places where it can't be typed (branch names, filenames, etc.)?
18:54 moritz_ markmont: dollar-bang
18:54 jnthn I'm not sure. I just worry that we're going to surprise people by letting them write all the stuff they can in a signature, but having the actual runtime effect ignore them.
18:54 pmichaud anyway, I never much liked the notion of using a signature for scoped variable declarations either.
18:54 markmont moritz_: lol, ok, thanks.
18:55 pmichaud I tend to want "my ($a, $b) = foo()"   to be more akin to   "($a, $b) = foo"
18:55 jnthn pmichaud: Aye. And after the recent signature changes I did, where I had to patch that up too, I kinda like it even less.
18:55 pmichaud i.e., the result of the declarator is a list
18:55 jnthn Yes, it feels much more list-y to me.
18:55 moritz_ markmont: don't know if tehre's anything better for that
18:57 pmichaud maybe I'll do "my" variables in nqp-rx as list-y sorts of things and see if I run into any difficulties.  (I'm doing nqp-rx variables today, including contextuals)
18:57 jnthn OK, that'd be interesting.
18:57 pmichaud list-y is certainly easier at first blush
18:58 pmichaud afk for a bit # run to store
18:58 masak joined #perl6
18:59 tak11 joined #perl6
19:14 slavik I tried writing java code again ... after being away from it for like 4 years
19:14 slavik I have no idea what I was doing
19:19 jnthn At least there isn't much syntax to re-learn. ;-)
19:19 jnthn It's just the small matter of the class library. :-)
19:22 markmont I have my first-ever attempt at a rakudo patch thanks to jnthn's help earlier.
19:22 markmont http://github.com/markmont/rakudo/commit/​cff7e74614bdf1d08bd82a58f65927464fba64b4
19:23 markmont Should I just email it to rakudobug@perl.org ?   Or more discussion/work first?
19:24 jnthn markmont: Hmm, curious. :-)
19:24 jnthn markmont: Out of interest, did you try throwing the Perl6Exception?
19:24 jnthn e.g. on this line:
19:24 jnthn throw ex
19:25 jnthn I seem to remember doing that was a problem.
19:25 jnthn Even though we'd probably like to be able to.
19:25 moritz_ markmont: did you run 'make spectest'?
19:25 markmont I *think* I did, if memory serves correctly, and got something along the lines of "that is not a throwable object"
19:25 jnthn markmont: Ouch, yes, that brings back...memories.
19:25 jnthn :-/
19:25 markmont moritz_: yes, it passes all spectest
19:25 moritz_ markmont: that's good
19:26 jnthn markmont: Is there some spectests you can un-fudge, or new ones you can add now, too?
19:26 jnthn It's always good to have some of those to show what the patch is making work, and so we can ensure it keeps working. :-)
19:26 moritz_ rakudo: try { 1 / 0 }; say ?$!
19:26 p6eval rakudo 49e62f: OUTPUT«0␤»
19:26 moritz_ rakudo: say ?try { 1 / 0 };
19:26 markmont jnthn: I did not see any to unfudge, but I can write some new ones for this.  I have code that exercises everything, just not as tests yet.
19:27 p6eval rakudo 49e62f: OUTPUT«1␤»
19:27 jnthn markmont: OK, cool.
19:27 jnthn BTW, I know you just updated the original, which is fine, but this line bothers me a little: set_global '$!', p6ex
19:28 jnthn But anyway, it seems that this patch makes things overall better.
19:30 markmont jnthn: How could that line be changed/improved?
19:31 markmont jnthn: is it the name p6ex or something else that is yucky?
19:32 jnthn markmont: No, it's nothing specific to your patch, just a comment on the implementation you patched in the first place. :-)
19:32 jnthn Of note, I was under the impression $! was lexical-ish, so setting a $! global just felt a tad odd.
19:33 markmont jnth: Ah!  (I can't think of a change at the moment, but maybe later...)
19:35 markmont jnthn: I see.  Should this be reworked now to change the lexically scoped one?
19:36 moritz_ markmont: you might check if http://rt.perl.org/rt3/Tic​ket/Display.html?id=62336 can be closed with your patch
19:38 jnthn markmont: I'm not actually sure how it should look off-hand, tbh.
19:38 jnthn markmont: Probably needs some spec research.
19:39 jnthn But I'm rather tired and my branes are like mush tonight.
19:39 jnthn So I'm more likely to send you down the wrong path than the right one...
19:40 markmont jnthn: I'll submit that line in the patch as-is for now, then, as the learning curve for all this today has fried my brain :)
19:40 jnthn :-)
19:40 jnthn markmont++
19:40 moritz_ just git-format-patch HEAD^ and attache that file to the ticket mail
19:42 jnthn ohawesome i can haz kcachegrind
19:42 markmont moritz_: Will do, with some extra info as a writeup (I've got it all prepped to go)
19:42 moritz_ markmont: great
19:43 markmont moritz_: Looking at rt#62336, it is definitely not closed with the patch.  That ticket looks to be with object and methods in general; the patch I worked on today only deals with what gets put into $!
19:45 moritz_ markmont: ah yes, the return value of try is probably not an exception
19:50 slavik jnthn: I've never built a jar and never used log4j and all that other stuff
19:50 slavik my previous java experience has been writing single file type programs for class
19:50 brunov joined #perl6
19:54 NorwayGeek joined #perl6
19:58 markmont Patch submitted; I'll take a break for a couple of hours and then come back and write the spectest tests for it: http://rt.perl.org/rt3/Tic​ket/Display.html?id=70011
20:05 masak markmont++
20:06 jnthn markmont++ indeed :-)
20:06 * jnthn likes seeing Rakudo patches
20:06 tuxdna joined #perl6
20:15 jnthn oooooohhhhh! This profile is SO pretty!!!
20:18 ShaneC joined #perl6
20:20 colomon jnthn: which profile?
20:20 jnthn colomon: Profile of Rakudo startup, viewed in KCacheGrind.
20:21 jnthn There's one place that is *hugely* expensive.
20:21 colomon and then, pretty in what way?  :)
20:21 colomon oh, the best kind of profile pretty!!!
20:22 jnthn Well, in the "I can actually get a nice visual idea of where we spend time on Rakudo startup" now.
20:22 jnthn Guess what? It was in many cases not where I expected
20:23 colomon jnthn: that's always the way, isn't it?
20:23 colomon :)
20:24 colomon what does the profile look like, visually?  I've always just used gprof's text output for my profiling...
20:24 moritz_ rectangles in various sizes
20:25 jnthn colomon: If you google for KCacheGrind, you'll see some screenies.
20:25 colomon just did that as you were typing.  :)
20:26 colomon interesting -- in theory I can get that working for my Mac.
20:27 colomon gprof not working on OS X is the biggest weakness in my setup here, IMO.
20:30 mikehh joined #perl6
20:31 masak pmichaud: 'Perl 6 "sandwiches" an operator-precedence parser in between two Recursive descent parsers in order to achieve a balance of speed and dynamism.' -- http://en.wikipedia.org/wiki​/Operator-precedence_parser -- is this an accurate description of what's happening in Perl 6? which two recursive-descent parsers?
20:32 moritz_ probably not two parsers, but two parsing steps
20:32 masak hm, seems luqui wrote that. I assume he knows what he's talking about.
20:33 masak moritz_: which two parsing steps?
20:33 moritz_ I've seen luqui here (or in the pugs commits)
20:33 jnthn He used to be very active on p6l
20:33 masak yes.
20:33 masak he was on the Perl 6 design team for a while.
20:33 masak 2004-ish.
20:34 moritz_ masak: a traditional rec-desc parser has one subroutine for each precedence level
20:34 masak moritz_: aye.
20:34 moritz_ masak: so it has to squeeze one in
20:34 masak hm. I half get it.
20:35 jnthn OK, if this profiler output on Rakudo startup is really right, I think there's a good chance I can spend time on some hot spots and get us some win.
20:35 masak the operator precedence parser is used for the EXPR level in the Perl 6 grammar, in STD.pm as well as in Rakudo.
20:36 masak does the 'sandwiched' comment mean that besides the RD parser doing stuff on the level above EXPR, it also does stuff below the level of EXPR?
20:36 colomon jnthn: reading up on callgrind.  I'm worried it might not be as accurate as gprof?
20:36 masak if so, is there a concrete example?
20:37 colomon jnthn: (reading on) then again, maybe it's the other way around.
20:37 jnthn colomon: Note that I'm not using callgrind, just KCallGrind (the visualisation).
20:37 jnthn erm
20:37 jnthn KCacheGrind I meant.
20:37 jnthn The data is produced by Parrot's profiling runcore.
20:38 colomon o!
20:38 colomon so Parrot can profile and output in a format KCacheGrind likes?  Sweet!
20:39 jnthn Yes, thanks to recent work by a copule of folks on the Parrot team (chromatic++ and cotto++)
20:40 masak I find it interesting how almost everyone goes through a stage where they want to use Perl 6 grammars to parse XML.
20:40 masak that's neither very efficient nor very convenient in the long run.
20:40 masak might be a useful example/exercise, of course...
20:40 colomon masak: Not me!  I have studiously ignored XML in all its manifestations.
20:40 masak colomon: :)
20:40 moritz_ masak: but it does defeat the old "you can't parse HTML or XML with regexes"
20:40 moritz_ ;-)
20:41 masak moritz_: very true.
20:41 masak which is also a solid proof that Perl 6 grammars aren't reducible to FSMs.
20:42 moritz_ masak: but Flying Spaghetti Monsters are tasty, aren't they? ;-)
20:42 * masak was waiting for that :)
20:42 masak they're tasty, but not as powerful as Perl 6 grammars.
20:42 moritz_ add a "constant memory" to the FSM, then you're right
20:43 moritz_ in fact bot Perl 5 and Perl 6 regexes can do things you can't do with PDAs
20:43 moritz_ s/bot/both/
20:44 masak moritz_: re constant memory: the "F" in FSM means "Finite".
20:44 hanekomu joined #perl6
20:44 moritz_ masak: in automaton theory all machines are finite, but some are attached to stacks or tapes
20:45 masak the prototypical example of what FSMs cannot do is balancing parentheses. that's isomorphic to parsing XML.
20:45 moritz_ not quite
20:45 moritz_ because xml allows identifier of arbitrary length
20:45 moritz_ (at least last I looked)
20:46 moritz_ so you can parse nested parenthesis with a PDA
20:46 moritz_ but not if <foo>...</foU> matches, if the identifier is not limited in length
20:46 masak a PDA? a hand-held organizer?
20:46 moritz_ you'd need an LBA for that
20:46 moritz_ push-down automaton
20:46 masak ah.
20:47 masak I'm not sure we're talking about the same limitation.
20:47 moritz_ I changed what I was talking about ;-)
20:47 masak the problem FSMs have with nested parentheses is that the nesting can be arbitrarily deep.
20:47 moritz_ right.
20:47 masak since there are only finitely many states...
20:47 moritz_ and PDAs solve that
20:47 moritz_ but still can't parse XML with arbitrary long identifiers
20:48 masak I see, but are PDAs FSMs?
20:48 moritz_ PDA = finite, non-deterministic state machine + a stack
20:49 moritz_ so PDA > FSM
20:49 masak I think the biggest hurdle I've had with regular expressions yet is matching up the practice (as seen in Perl) with the theory (as taught in CS).
20:49 masak I don't have a formal CS degree, but I'm trying to suck one up through osmosis. :)
20:49 moritz_ ;-)
20:49 moritz_ neither have I
20:49 moritz_ but I did teach an entry level CS tutorial at one point
20:50 masak nice.
20:50 colomon that's okay, I've got the CS degree, but I don't remember.
20:54 Chillance joined #perl6
20:56 eternaleye joined #perl6
21:00 jferrero joined #perl6
21:00 Coleoid Is this paste a known bug, a new bug, or a subtlety I don't get?
21:00 lisppaste3 Coleoid pasted "given / if match not setting $/" at http://paste.lisp.org/display/89267
21:01 tak__ joined #perl6
21:02 moritz_ Coleoid: new bug, afaict
21:03 jnthn Wow, that's an odd one.
21:03 Coleoid moritz_: How do I report it?
21:03 Coleoid jnthn: I thought so too!
21:04 Coleoid And, is this something that'll get autofixed by the new grammar work upcoming?
21:04 moritz_ Coleoid: mail to rakudobug@perl.org
21:04 moritz_ no, looks like a semantic bug, nothing to do with parsing afaict
21:04 * masak yawns
21:04 masak I feel exhausted. thinking of turning in early tonight.
21:05 moritz_ OMG NOEZ!
21:05 masak luckily the work week begins tomorrow, so I can recover. :)
21:05 moritz_ who's going to write our book then? ;-)
21:05 moritz_ heh ;-)
21:05 masak moritz_: don't worry, I'll just lie down a little first. :)
21:06 moritz_ masak: good night then
21:06 masak night.
21:06 masak see y'all tomorrow!
21:08 gbacon joined #perl6
21:09 pmurias joined #perl6
21:11 rgrau joined #perl6
21:11 Coleoid moritz_: Bug mail sent.  Thanks!
21:11 moritz_ Coleoid++ # reporting bugs
21:11 pmurias diakopter: ping
21:11 dalek nqp-rx: 2c50f13 | pmichaud++ | build/PARROT_REVISION:
21:11 dalek nqp-rx: Bump PARROT_REVISION.
21:11 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/2​c50f135c2d22175d249f22a202e7581b1088ff8
21:11 dalek nqp-rx: 2bc2d2f | pmichaud++ | src/NQP/ (2 files):
21:11 dalek nqp-rx: Clean up name a bit.
21:11 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/2​bc2d2f49226e40d6b6ce4c7f14ba944f15661e7
21:11 dalek nqp-rx: b613e0d | pmichaud++ |  (5 files):
21:11 dalek nqp-rx: Add variable support.
21:11 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/b​613e0de99c4d5d6a533008fec29aed4d93453c7
21:14 pmichaud masak:  (sandwich) -- you're correct, we use rec-descent above expressions (for block and statement level constructs) and below expressions (for variables and terms)
21:17 jnthn pmichaud: The startup profile is interesting.
21:17 jnthn pmichaud: I just wrote a small patch that shaved 20% off current startup time thanks to it.
21:17 moritz_ wow.
21:17 * moritz_ is duely impressed
21:18 alester joined #perl6
21:18 moritz_ speaking of being duely impressed...
21:18 jnthn pmichaud: Our next biggest cost after that patch are apparently in calls to ACCEPTS in P6protoobject, and after that in meta-op generation. I think we may want to consider doing those more lazily. ;-)
21:18 moritz_ the protoregex action methods look quite nice
21:18 moritz_ +method noun:sym<variable>($/) { make $<variable>.ast; }
21:18 moritz_ +method noun:sym<scoped>($/) { make $<scoped>.ast; }
21:19 moritz_ I'll use those quite a lot in the JSON parser too
21:19 jnthn Ooh, pretty.
21:19 moritz_ maybe there's something that can be automated
21:19 jnthn Yeah
21:19 jnthn I'm looking at those now thiking "oh hmm, boilerplate" :-)
21:19 moritz_ like if there's only one capture, its AST could be make()d automatically if there's no custom action method
21:20 moritz_ doesn't feel like the right level yet
21:22 icwiener joined #perl6
21:27 payload joined #perl6
21:41 mikehh joined #perl6
21:54 am0c joined #perl6
21:54 snarkyboojum joined #perl6
22:17 camlin joined #perl6
22:17 camlin ls
22:17 camlin oops
22:18 camlin I have a quick question. is there going to better object support in perl 6 or is it going to stay the way it is? The only reason I use python is because of its nice object and class structure.
22:18 moritz_ Perl 6 has a very nice object model
22:18 moritz_ with syntax! ;-)
22:18 camlin ooooh
22:18 moritz_ and introspection
22:19 camlin is it still in perl 6 still in beta or ready to roll?
22:19 moritz_ we plan to have a useful release by April 2010, though it won't be fully feature complete
22:20 camlin is it downloadable (I know I can google this but I'm on console only :( )
22:20 moritz_ http://rakudo.org/how-to-get-rakudo
22:20 moritz_ should work with a text browser ;-)
22:21 camlin what is rakudo?
22:21 snarkyboojum plenty of syntax with Perl6 OO :)
22:21 moritz_ camlin: a Perl 6 compiler
22:21 camlin aah, I see. Can I not compile it with gcc?
22:21 moritz_ there's a language specification, and various compilers
22:22 moritz_ yes. You also need parrot, but rakudo's Configure script can build that for you
22:22 camlin oh that's very nice :) Thank you all very much. The perl community is being very nice to be (was kicked once from #python)
22:23 moritz_ we try hard to be nice ;-)
22:23 jnthn .oO( wonder if he was kicked after bringing up whitespace ;-) )
22:24 moritz_ oh, is that a senstive spot in the python community? ;-)
22:24 jnthn I realized that we don't need to call the multi-sub transformer only to do a check and see it didn't need to be called. Doesn't actually save much, but moves it down a rung or two in the "things we spend most time doing at startup" table.
22:25 jnthn Anyway, after an evening playing around with the profiler, I think I can safely say that we're going to be able to get some useful info from it that will help direct our optimization efforts.
22:26 carlin http://gist.github.com/218283 # is what I've done for recv, would someone mind checking that to see if maybe there's a better way to do what I've done there or something that I've missed before I send it to to RT?
22:28 moritz_ last unless $received;
22:28 moritz_ what if $received is '0'?
22:28 rfordinal joined #perl6
22:29 moritz_ last unless $received.chars(); maybe?
22:29 * moritz_ does a dd if=/dev/zero of=/dev/hda
22:29 moritz_ that's going to take some time :/
22:32 carlin Ah, that's a point
22:32 * carlin changes it
22:33 carlin moritz_: apart from that does it look alright?
22:33 moritz_ carlin: yes
22:33 moritz_ (though I just glanced over it)
22:37 carlin cool, and that change worked
22:37 * carlin send to RT
22:44 brunov joined #perl6
22:46 dalek rakudo: 6817b90 | jonathan++ | src/parser/actions.pm:
22:46 dalek rakudo: Turns out we already keep enough info around at compile time to have a good idea if we already saw a multi candidate of a given name. That means we can avoid many calls to !TOPERL6MULTISUB at startup when all it would do is determine it has nothing to do. Only a couple of percent, it seems, but every little helps.
22:46 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/6​817b90e69d839ec85910433a4a256049c71255c
22:46 dalek rakudo: 67a6a81 | jonathan++ | src/ (2 files):
22:46 dalek rakudo: Do some optimization work on the reblessing of subs into their Perl 6 classes at startup. Between a tweak in !fixup_routine_type and some small optimizations to the rebless_subclass op, we save roughly 20% off the startup time before this patch. profiling++ (chromatic++, cotto++, kcachegrind++ too).
22:46 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/6​7a6a81ab2fa70ccb31f179fbf067082a854ce28
22:52 nihiliad joined #perl6
22:53 PZt joined #perl6
22:57 pnate joined #perl6
23:06 moritz_ rakudo: say 10/48 # startup improvement per file
23:06 p6eval rakudo 49e62f: OUTPUT«0.208333333333333␤»
23:06 moritz_ jnthn++
23:06 s1n_mini joined #perl6
23:07 moritz_ rakudo: say 10/48 * 454
23:07 p6eval rakudo 49e62f: OUTPUT«94.5833333333333␤»
23:07 mikehh joined #perl6
23:07 jnthn Wow. A minute and a half off a spectest run.
23:08 jnthn That's kinda nice.
23:08 moritz_ aye
23:09 jnthn I'm hopeful that with some further startup shavings and also the faster parsing we should be getting, we can make a very notable improvement by the next release.
23:09 moritz_ that would be really nice.
23:09 jnthn Indeed. I love having lots of tests, but a spectest run is getting really quite long now. :-)
23:10 moritz_ ah, our trick starts to work ;-)
23:10 jnthn Annoy the developers into making the tests run faster? :-P
23:11 moritz_ aye
23:11 jnthn ;-)
23:11 jnthn The time shaved off a spectest run is quite a nice measure.
23:11 moritz_ but something that can only be measured locally
23:11 moritz_ I mean you can't compare the times for two releases
23:12 moritz_ because the tests change too much
23:15 jnthn Oh yes
23:15 jnthn tools/benchmark.pl is nicer for that.
23:16 jnthn But for a "how much did this change help on the current test suite", it's kinda interesting to know.
23:16 moritz_ aye
23:17 xinming joined #perl6
23:17 kentnl_ joined #perl6
23:17 patspam joined #perl6
23:29 SmokeMachine joined #perl6
23:30 xp_prg joined #perl6
23:32 wknight8111 joined #perl6
23:44 cottoo joined #perl6
23:51 payload joined #perl6
23:54 eternaleye joined #perl6
23:55 eternaleye joined #perl6
23:56 eternaleye joined #perl6
23:57 tkr joined #perl6

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

Perl 6 | Reference Documentation | Rakudo