perl6-projects.org/ | nopaste: sial.org/pbot/perl6 | evalbot: 'perl6: say 3;' | irclog: irc.pugscode.org/ | ~290 days 'til Xmas
Set by mncharity on 6 March 2009.
araujo can get it right now 00:02
00:06 ujwalic left
s1n araujo: what do you mean? 00:07
araujo s1n, the domain 00:09
s1n araujo: i can get it right now too though 00:10
00:10 arejay left
s1n and i will unless someone gives me a good reason not to 00:10
araujo ok, will you?, it is a cool domain
s1n yes i will, but nfsn says it can't determine availability
wayland76: know why? 00:11
araujo nfsn? 00:12
s1n nearlyfreespeach.net
wayland76 recommended the registrar
wayland76 not offhand, unfortunately. 00:13
araujo would go for gd 00:14
s1n any other recommended registrars that do the anonymous thing?
araujo gd
s1n hmm okay
frooh back 00:19
s1n frooh: i'm registering on godaddy right now 00:21
frooh awesome 00:22
pmichaud gd has always worked well for me. 00:23
s1n: I won't be able to meet up tomorrow -- wife has a work meeting that came up so I'll be at home with kids :-|
frooh pmichaud: did you see that I updated that patch by the way?
pmichaud frooh: just got back to my terminal and read scrollback 00:24
haven't looked at anything else yet.
00:24 DemoFreak left
frooh it was yesterday evening, but yeah, no rush or anything, I'd just like to make it all good and stuff 00:24
pmichaud frooh: oh, the .pop patch?
frooh yeah 00:25
pmichaud in general, I think that .push and .pop should not be making splices, or using subscripted accesses.
00:25 Khisanth left
frooh oh; I thought you said it should be 00:25
pmichaud sorry, s/splices/slices
frooh my bad
pmichaud splice would be okay
slice would not be okay
frooh ok
00:25 Khisanth joined
frooh so no [..] but .splce(...) instead 00:25
that will be hard without using .elems 00:26
pmichaud also, jnthn++ and I expect to be completely refactoring List and Array, so I wouldn't put a lot of effort into them anyway
frooh ok
then I'll just look at your list
pmichaud (Array has to be parameterized)
s1n man, i don't know what i'm doing when it comes to domain registration, you wanna do this frooh?
pmichaud I can register it. 00:27
I do that sort of stuff all the time.
s1n okay, i'll pay for it, but i don't really know how to register properly
pmichaud I'll even pay for it. :-)
s1n i don't even have hosting space or whatever
pmichaud I have hosting space.
s1n well damn heh
so much for my contribution, pmichaud is just johnny on the spot :) 00:28
pmichaud you guys came up with the name, and found that it was available
s1n pmichaud: there were some things i wanted to chat about tomorrow, you have time tonight (online)? 00:29
pmichaud okay, we now have p6m.org . In general it can be pretty difficult to get three-character second-level domains... I'm a bit surprised this one is available. :-) 00:31
wayland76 I was too :)
Considering all the other even 5-letter ones that have been taken
I think it's the 6 that does it
Where did frew want dallas.p6m.org delegated to? 00:32
frooh phone&
pmichaud github supports building websites using git, fwiw. 00:34
TimToady now for p6l and p6c and...
s1n TimToady: are those available?
pmichaud I was very disappointed many years ago when I could get neither pm.com nor pm.org
s1n what luck for p6 if they are
pmichaud p6l.org is available
s1n ha!
pmichaud p6c.org is taken. 00:35
s1n urges TimToady to take p6l
pmichaud s1n/frooh/others.... if I could arrange a dfw.pm meeting for early-mid april, think you could make it? 00:36
s1n absolutely
pmichaud I'd like to practice/polish my "Hacking Rakudo Perl" talk at least once before NPW.
s1n i'm up for that, i'm not an official member of dfw.pm though 00:38
pmichaud doesn't matter 00:39
if you attend you're basically a member. afaik there's not a formal membership of any sort. 00:40
heh. dfw.pm.org already indicates there's a meeting on April 28th. It even says I'm presenting. Unfortunately, it's April 28, 2008. 00:41
s1n hah 00:42
just change the year lol
pmichaud: wayland76, frooh, and i have been discussing a lot lately how to properly submit patches, and i think we finally have it down 00:45
pmichaud yes, I've been reading the scrollbacks
if you have something drafted, I'll revise/edit
s1n does it sound sane?
well, we're working off frooh's guide for now
pmichaud so far what I've seen sounds pretty good. I'm still in favor of using RT for patches; github seems a little behind the curve yet. 00:46
s1n i was thinking of maintaining my fork, one branch per feature, squashing the patch and committing to my fork, then submitting that (full patch) to RT as well as the pull request 00:47
pmichaud that works for me.
squashed patches are easier to review than anything else.
and one branch per feature seems to be the git way.
git likes to be very liberal with branches.
s1n git seems to favor frequent small patches with frequent patch review 00:50
so we'll have to do the squashing and RT to get bigger patches with easier review process 00:51
pmichaud well, any distributed vcs really is made for frequent small commits. And that's a useful model in many respects. It's often just hard to review such patches.
s1n i'm going to try the workflow again tomorrow
it's hard to review when there are few reviewers 00:52
pmichaud chrisdolan gave a very good overview of how they handle patches for the linux kernel
s1n yeah they have a development hierarchy, we have like half a dozen regular commiters 00:53
pmichaud I don't think the problem is few reviewers.
maybe I should rephrase that. 00:54
s1n i made that assumption when you guys were talking about how the fork queue was unmanagable
pmichaud the thing that makes the fq unmanageable is githubs presentation of the fork queue
00:54 nihiliad joined
pmichaud it only shows 50 commits. And it shows commits that are really unrelated to the thing being requested to pull 00:55
00:56 kate21de1 left
s1n the pull request doesn't show just the commit id with a link? 00:56
pmichaud so, if I fork a repo, start working on a patch, do 40 "git pull"s from the master repository, finish my patch, commit my patch to my fork, and do a pull request, the fork queue shows 41 commits.
40 of which are commits that came from the master repo
and thus are already in the repo. 00:57
actually, I phrased that wrong. it's not 40 "git pulls" -- if I do a "git pull" that pulls in 40 commits, then they show up in the fork queue
s1n it's doubling up on the commits even though the master repo already has it. odd...
pmichaud it gets even worse if this scenario:
I fork a repo, start working on a feature. I make a small commit. I git pull from the master, that brings in a few commits. I work more on the feature, make another small commit. git pull from the master again, more commits in my forked repo. I finish my feature, make a final commit, a final git pull, and then push it all up to github. 00:58
then the fork queue shows my little commits interspersed with all of the other commits that I pulled in from the master. 00:59
s1n why are pulls from the master showing up as commits on a fork of the master?
pmichaud I don't know.
s1n that's double-dipping
pmichaud probably because everything depends on a parent commit 01:00
s1n sounds wrong to me, mainly because it's a fork. if it weren't a fork, then it might make sense
hmm, okay, so do you recommend not to do any git pull upstreams?
pmichaud normally git handles the duplicates just fine when they're merged back to the master repository -- merging is what git is very good at.
but it does make it very difficult to review. 01:01
no, I think it's important that developers continue to pull from upstream
because otherwise you're working with outdated code.
01:01 Whiteknight left
s1n wiki.github.com/rakudo/rakudo/frews...d-workflow 01:02
that mentions the format-patch way of creating diffs
then says to push to RT, so then it's in github and a patch goes to RT 01:03
01:03 cspencer joined
s1n that allows us to still do the pull upstream, but you'll basically want to ignore the fork queue 01:03
01:03 justatheory left
pmichaud yes, what's in that guide looks pretty good to me. Hopefully it's not too much of a pain for others -- but having patches in RT is easy to work with and lets us also point out other issues about each patch in a nicely public place. 01:03
s1n okay, we'll give that a try then 01:04
pmichaud I've also built up an RT query that gives me just a list of the open patches (those that have [PATCH] in the subject)
so, generally I start by pulling up that query and reviewing the patches that I can.
s1n is it prebuilt (i.e. available to everyone)?
pmichaud I might be able to make a saved query somewhere.
s1n i bet others would like to use it 01:05
pmichaud revises frew's guide to remind people to put '[PATCH]' in the subject line.
s1n like the "my bugs"
dinner& 01:06
frooh back 01:07
sorry
I didn't know that [PATCH] was supposed to be in the email
pmichaud I highly recommend reading the README file. 01:08
frooh will do
pmichaud Someday in the future, the Oxford English Dictionary will likely have an entry for "README" that indicates that this was used to refer to files that should never ever under any circumstances be viewed by people looking for information. :-) :-)
frooh also: I am down for any kind of preview talk that you were talking about
although I never noticed what you did about the dfw.pm website 01:09
I have that april meeting on my calendar
I didn't notice the year
pmichaud (hint: [PATCH] is mentioned in the README file :-)
yeah, the year isn't at all obvious.
frooh i gathered :-)
pmichaud I was looking at dfw.pm to find the person to contact for setting up a meeting and happened to see that there was already a meeting scheduled for april. 01:10
but when I saw who the speaker was, I knew it had to be from 2008. :-)
and yes, that's an indication of how after dfw.pm has been.
but I think I may just do a series of presentations about Perl 6 and we'll see who comes.
I have to go help with homework for a bit... bbl 01:12
skids suggests "capsize" as a new name for &Hash.reverse 01:18
TimToady invert perhaps 01:23
and maybe Str.reverse should become .flip 01:26
frooh why?
TimToady to distinguish from .reverse when you see $unknown.reverse 01:27
frooh why can't it just DWIM?
skids Because if people expect them to behave like the rest of the .reverse methods, there will be much wailing and gnashing of teeth.
TimToady what should ('string').reverse do? 01:28
how about ('string',).reverse
that's too subtle
since they're different operations, they should really get different names 01:29
much as we distinguish x from xx now
cspencer how do i access a specific character in a string?
skids I went with capsize just as a warning that in the case of Hash, stuff may fall out -- eventually we'll have total coding neophytes learning Perl6 as their first language. 01:30
cspencer: substr.
cspencer skids: thanks :)
TimToady I can imagine versions of invert that turn multiple instances into a sublist
but maybe %hash.push(@pairs) should have the effect of turning values into pushlists upon collision 01:31
frooh TimToady: wouldn't that be good for some versions of Hash but not all? 01:32
or whatever the role is called
TimToady just brainstorming
frooh well I agree, I think it would be awesome 01:33
skids Though if you can a subclass Associative that is also ordered, .reverse again makes sense, pairwise.
frooh but you could have that same idea about method overloading in classes (I didn't come up with that idea)
TimToady certainly we'll need to figure out the default semantics for %has <<== source()
skids erm s/can/have/
TimToady *%hash rather
yes, overloading where it isn't expected can be a bug 01:34
which is why we distinguish only from multi
frooh but would that be cool? Instead of SUPER.foo we could have SUPER[0].foo
TimToady and maybe it's in the definition of the hash how it wants to handle collisions 01:35
frooh where [0] is the most recent parent class
TimToady well, SUPER is a little strange in the world of mmi, so we avoid it 01:36
frooh I know
I am just brainstorming :-)
TimToady just do things like callnext and let the dispatcher handle ordering
frooh shower& 01:40
skids ponders what %% like unto @@ would be. 01:44
01:45 araujo left, [particle]1 left, miloux left, charsbar left, AzureStone_ left, nihiliad left, cotto left, PZt left, ascent_ left, xuser left, oskie left, pjcj_ left, edenc left, cookys left, BinGOs left, perlbot left
s1n whoa, split // 01:45
01:46 cspencer_ joined, BinGOs joined, araujo joined, AzureStone_ joined, [particle]1 joined, miloux joined, charsbar joined 01:47 pjcj joined 01:48 lisppaste3 left 01:50 nihiliad joined, cotto joined, PZt joined, oskie joined, xuser joined, cookys joined, edenc joined, ascent_ joined, perlbot joined 01:53 Util joined, oskie_ joined
skids Hrm I think %h <== <a b c d e f g>;<A B C D E F G> producing { 1 => [<a b c d e f g>], 2 => [<A B C D E F G>] } may not be exciting, but perhaps best fits @@ context. 01:55
01:56 ascent_ left
skids (given what .kv does with arrays) 01:56
01:57 lisppaste3 joined 02:02 eternaleye joined, cspencer left 02:03 oskie left 02:04 ascent_ joined 02:17 jimmy_ joined, cookys_ joined, jimmy_ left 02:26 cookys left 02:29 felipe left 02:45 perlbot left 02:47 Util left 02:57 Limbic_Region left
pugs_svn r25801 | lwall++ | [Cursor] switch to .rob (with _ as internal attribute) 03:04
03:09 FurnaceBoy joined, FurnaceBoy left 03:16 felipe joined 03:22 alc joined 03:24 Util joined 03:27 Kimtaro left
meppl good night 03:30
03:31 meppl left 03:34 Tene joined 03:44 alester joined, Tene_ left 03:47 estrabd joined 03:50 Kimtaro joined 03:57 cspencer_ left
frooh TimToady: are you here? 03:59
TimToady vaguely 04:33
frooh I was just curious why (perl5) for is a topicalizer and while isn't 04:39
TimToady because it sets $_, and while doesn't 04:40
frooh but I thought while did... while(<STDIN>) { print; }
right?
TimToady only because that's a special form that rewrites itself to while (defined($_ = <STDIN>)) { print; } 04:41
frooh alright then; that explains it
thanks
TimToady but while (foo()) doesn't rewrite
frooh do you think while should be a topicalizer? 04:42
TimToady not by defualt
*default
frooh what about for?
TimToady but it's easy enough to make it one in p6
anything that binds to $_ implicitly or explicitly functions as a topicalizer
while foo() -> $_ {...}
explicit 04:43
for @foo {...} # implicit
frooh interesting
why do you think while shouldn't implicitly?
TimToady note the while case isn't interesting if foo(0 returns only true or false
frooh is that why?
TimToady but much more interesting if it returns an object that knows how to be true or false
but is also the object 04:44
in p5 all objects are true (as a reference), so the while would never terminate
frooh so while @*IN -> $_ {} would be an example of that
TimToady but you don't want to do that
it'd be =$*IN in any case 04:45
frooh ah, that's right
TimToady but it would bomb out on a line of "0"
frooh ah, good point...
TimToady and the for is lazy, so there's no point
frooh yeah
I am just trying to understand so I can explain to other people later
because I doubt Learning Perl6 will be out anytime soon :-) 04:46
04:51 justatheory joined 05:01 nihiliad left, justatheory left 05:28 alester left 05:32 alc left 05:33 wayland76 left 05:52 ilogger2_ joined 05:55 masak joined
masak backlogs 06:02
Matt-W: are you implying that you found a Null PMC access, and aren't sharing with the rest of us? 06:09
there's too few Null PMC accesses nowadays for that kind of selfish behaviour. :P
SamB what is Null PMC ? 06:14
masak SamB: you can think of it as the Parrot VM's equivalent to Java's 'null' 06:15
the bottom line is, each time it happens, I or someone else gets to file a rakudobug ticket without much explanation of what went wrong, since any Null PMC access is an abstraction leak, and hence inherently wrong. 06:16
pugs_svn r25802 | masak++ | [u4x/TODO] added 'topic' and 'topicalizer' 06:17
06:29 alc joined 07:08 DemoFreak joined 07:12 wayland76 joined
pugs_svn r25803 | moritz++ | [irclog] updated comment in bot.conf 07:26
masak moritz_: bonan matenon.
moritz_ masak: god dag 07:27
masak it's 08:30 here, so 'god morgon' still. :) 07:28
moritz_ don't be so picky ;-)
masak I'm not, just needlessly informative. :) 07:30
I'm happy with whatever greeting.
07:45 ilogger2 joined, mberends joined 07:52 Maghnus joined 07:59 sri_kraih joined 08:00 ejs joined 08:03 elmex joined
wayland76 Anyone here know enough about where Rakudo is up to to be able to update github.com/rakudo/rakudo/blob/ea328...cs/ROADMAP ? 08:07
08:07 ejs1 joined
wayland76 (That's the Rakudo ROADMAP, which claims not to have been updated since August last year) 08:07
08:07 ejs left
wayland76 Or failing that, to give me a description of where we're up to so I can update it myself? 08:08
masak wayland76: I can provide fragments of clues, but best to ask jnthn and pmichaud, I think. 08:11
wayland76++ # initiative
wayland76 Fragments of clues welcome :) 08:14
For example, have we done anything in the A section? M1/M2/M3/M4?
masak looks
M1: no, I think. 08:15
hence not M2-M4 either.
but I hear pmichaud talk about these things sometimes as if they're not too distant in the future.
we have C, at least in some form. 08:16
08:16 mikehh joined
masak I'm pretty sure some things have happened in D since August. 08:17
wayland76 ok.
Haven't we done some of the parts of M1-M4 relating to the prelude? 08:18
masak L works to some degree.
wayland76: actually, you might be right.
I withdraw all previous claims to cluefulness on the status of M1-M4.
R was done to some degree. we have .assuming -- Tene++ 08:19
T is something I sometimes really want.
U would be awesome, needless to say. 08:20
end of fragments.
Matt-W Morning
wayland76 I'm waiting on Operator Overloading and macros :) 08:21
masak wayland76: indeed. me too, fsvo 'waiting'. 08:22
wayland76 fsvo? 08:23
(oh, for some value of) :)
masak aye. :) 08:25
Matt-W mmm operator overloading
masak: if you pull form, you can see a wonderful failing test in t/02-parseactions.t, although I'm hoping that it fails because I'm Doing It Wrong. 08:26
masak Matt-W++
masak pulls
aah, "./proto update form" :) 08:27
Matt-W Also, I still need to do a proper test suite script thingy
for now i tend to just run the .t scripts directly 08:28
masak Matt-W: have a look at some of the other projects.
you'll get yourself a decent Makefile for free that way.
Matt-W yeah I'll borrow one from somebody
masak um, the first two tests in t/02-parseactions.t pass, and then Rakudo dies with an error. 08:30
Matt-W boo hiss
masak technically, that's not a "failing test" :)
Matt-W pfft
nitpicker
masak why does people keep calling me that today? :)
Matt-W which test is it?
masak well, it stops after the second one.
should I paste the output somewhere? 08:31
wayland76 Maybe they're glad to be rid of their nits, as they want to avoid lice?
masak wayland76: that must be it. :P
Matt-W yes because I'm pretty sure on mine it failed the third one instead of blowing up
wayland76 I'm reminded of the Calvin & Hobbes quote 08:32
masak Matt-W: gist.github.com/77965
wayland76 Calvin: Dad, what's a control freak?
Dad: It's what lazy, slipshod people call someone who cares enough to do it right!
Calvin: Am I in the presence of their king? Should I bow? 08:33
Matt-W masak: oh no, that is the one it blew up on last night, I remember now
as far as I can tell it's something to do with the make Form::TextField.new call
wayland76 (Btw, does anyone else think Larry reminds them of Bill Watterson?)
Matt-W you're right, technically it's not a failing test, it's a rakudobug
masak Matt-W: I'm pretty sure I just updated.
Matt-W: a rakudobug which you didn't submit? ;)
(if a rakudobug falls in the forest...) 08:34
Matt-W dude I'd been at aikido before that, I wasn't sure my brain was working right
masak Matt-W: you're forgiven... if you do it now instead. :)
Matt-W and I couldn't summon up the energy to develop a suitable minimal case
masak no sweat.
Matt-W wonders what the minimum case will actually be 08:35
rakudo: grammar G { regex TOP { 'a' {*} } }; class GA { method TOP($m) { make GA.new } }; G.parse('a', :action(GA.new)) 08:36
p6eval rakudo ea3283: OUTPUTĀ«Method 'result_object' not found for invocant of class 'Failure'ā¤current instr.: 'make' pc 19258 (src/builtins/match.pir:39)ā¤Ā»
Matt-W that's it!
masak Matt-W++ 08:37
moritz_ Matt-W: write a test, submit a bug report :-)
Matt-W I always forget, is it [email@hidden.address]
moritz_ it is
Matt-W cheers 08:39
bumbumbum
webmail system's broken
refuses to send :(
Matt-W tries alternatives
right 08:42
sent
Matt-W doesn't like finding rakudo bugs 08:48
wayland76 echo 'I HAZ A BUG!' | mail [email@hidden.address]
Matt-W I prefer it when I try things and they work 08:49
That makes me happy
08:50 tomyan joined
masak Matt-W: I'm happy either way... at least as long as the bugs get fixed within a timeframe corresponding to their severity :) 08:50
and presently, they are.
Matt-W yes
it's a far cry from reporting a bug with no expectation that anybody will care
masak indeed. 08:51
Matt-W there's a level of passion in this community that's wonderful to see
masak I agree. 08:52
it's because we're crazy about Perl 6, I guess.
Matt-W Still, if it doesn't get fixed soon I can write some formatting subs and do tests for those
things like "take this string and produce me a line from it that's this wide and right-justified" 08:53
masak Matt-W++
Matt-W probably shouldn't start doing that while I'm at work though 08:54
I doubt the job requirements for my new grade include Perl 6 development
which is a shame
masak no rush. nice to see you back on Form, though. 08:55
Matt-W it'll go through phases
I get three or four days in a row where I'm busy all evening
masak I should be able to give my projects some love this evening.
Matt-W: yeah, tell me about it.
moritz_ would love to see some u4x docs by masak 08:56
08:56 tomyan left
masak moritz_: did you see P2T1A? 08:56
Matt-W is planning a blog entry on grammars and action methods and things
masak moritz_: it's a doc about writing the first few docs :) 08:57
Matt-W (after rakudo doesn't crash)
masak Matt-W: cool.
be sure to link to it here.
moritz_ masak: well, enough meta-docs, I want docs ;-)
masak moritz_: I hear ya. will try to prioritize them. 08:58
moritz_: kudos for the ones you wrote, by the way.
Matt-W masak: of course 08:59
masak moritz_: oh, and I think a great way to increase interest about u4x is to get a web frontend going fairly early on. mberends++ has already done the groundwork with Pod. 09:00
Matt-W I'll contribute to u4x where I can 09:01
masak sounds good.
Matt-W but Form is taking priority 09:02
gotta learn the language before I can document it :D
moritz_ :-)
09:08 jferrero joined
masak what's the syntax for adding a method programmatically from within a class declaration? 09:24
something with the metaclass? 09:25
moritz_ probably self.^add_method('name', &method) or something 09:26
s/_/-/
masak where 'self' resolves to the class?
what happens if you attempt that from outside the class declaration? and (more importantly), what's the difference from the callee's perspective? 09:27
rakudo: class A { self.^add_method("foo", { say "OH HAI" }) }; A.foo 09:28
p6eval rakudo ea3283: OUTPUTĀ«Lexical 'self' not foundā¤current instr.: 'parrot;A;_block20' pc 112 (EVAL_21:54)ā¤Ā»
moritz_ I think self resolves to the object
masak moritz_: the protoobject? 09:29
Matt-W yes I think it does
moritz_ masak: no, the normal object
masak moritz_: but I'm in the class declaration. see code.
no object yet.
moritz_ ah, that's not runtime
that's where the confusion comes from
masak don't mind runtime or no, just want to do it programmatically. 09:30
moritz_ rakudo: class A { say $?CLASS };
p6eval rakudo ea3283: OUTPUTĀ«Scope not found for PAST::Var '$?CLASS' in ā¤current instr.: 'parrot;PCT;HLLCompiler;panic' pc 146 (src/PCT/HLLCompiler.pir:102)ā¤Ā»
moritz_ meh
09:46 ujwalic joined 09:54 kane__ joined
masak so, I guess my question was: can I declare a method programmatically at class declaration time? 09:59
moritz_ I don't think you can at the moment, at least i've never seen it 10:00
masak it was just something I thought of. don't know if it's useful enough to be in standard Perl 6. 10:05
moritz_ it is
masak feels like a thing Moose could do easily. 10:06
maybe we should take a cue from them. :)
moritz_ or even standard Perl 5 :-)
*name = sub { .. }
wayland76 Does $?CLASS get you anywhere? 10:12
jnthn Maybe $?CLASS.^add_method(eval($the_code_that_makes_the_sub)) 10:14
btw morning
wayland76 morning :)
Have we gotten anywhere on section A of the ROADMAP? 10:15
github.com/rakudo/rakudo/blob/ea328...cs/ROADMAP
jnthn wayland76: Somewhere, yes. 10:17
mikehh rakudo (ea32839) builds on parrot r37351 = make test/spectest PASS - linux i386
wayland76 Are we done with M1, or are there still things to do on that? 10:18
10:19 sri_kraih_ joined
wayland76 (I know you guys have been busy with many other things) 10:23
10:28 Kimtaro_ joined 10:29 Kimtaro_ left
jnthn wayland76: The PGE bits of M1 aren't done yet, or are largely not done. 10:30
10:30 bacek joined
wayland76 Ok 10:33
jnthn++ 10:34
10:35 sri_kraih left 10:36 orafu joined
moritz_ funny thing is, lots of stuff that depended on A got done anyway :-) 10:44
like list assignment
jnthn It probably partly depended on A. ;-) 10:46
Rather than needing all of A.
10:52 jan_ joined
masak morning, jnthn. 11:06
jnthn morning, masak 11:11
How's things?
Matt-W hey jnthn. Have you caught up yet? 11:21
11:21 sri_kraih_ left, sri_kraih joined
jnthn Matt-W: On the Perl 6 spec changes? No 11:24
On sleep, mostly. 11:25
Still language-lagged though...
Matt-W aaah sleep 11:28
if only we didn't need as much
wayland76 We dont 11:30
cf. polyphasic sleep :)
If done correctly, the average human can operate normally on 4 hours of sleep a day
yes, normally :)
jnthn isn't sure he operates normally ever... 11:31
Matt-W that tends to blow up any chance of doing a regular 9-5 office job though doesn't it?
wayland76 Unless you have one that will let you nap at specified times 11:32
Such as a job at Google, for example
You could probably also do it by napping 8:40-9:00, 1pm-1:20pm, and 5pm-5:20pm 11:33
But that would require successful car-napping or something
Matt-W mmm
tricky
wayland76 Rather :) 11:34
Unfortunately, owls like me don't adapt well to polyphasic
But I was only told that after trying it for a few months and failing (crashing out on day 5)
I never got through the adaption period
11:55 ejs1 left 11:58 lisppaste3 joined 12:14 xinming_ joined
ujwalic how to have a local copy of perlcabal.org/syn/ 12:15
wayland76 Is that a question?
ujwalic yes
wayland76 Just a moment... 12:16
Do you just want the specs, or do you want the HTML index too? 12:17
You probably want "svn checkout svn.pugscode.org/pugs/docs/Perl6/Spec Spec" or something like that 12:18
ujwalic I want html version on those
I have the pugs checkout 12:19
wayland76 Oh, ok
Well, you can get the HTML version of the index, but the other things are auto-generated
ujwalic ok .. dev.pugscode.org/login/ is not working 12:20
wayland76 So your best bet for those is wget (assuming you're on Unix)
ujwalic me on windows but no prob.
is development of pugs stoped dev.pugscode.org/login/? 12:21
wayland76 I don't know the answer to that, but certainly the Specs and STD.pm (both of which currently live in the Pugs repo) are under active development 12:22
Does anyone else know if someone's still working on Pugs?
ujwalic thanks
12:23 bacek left
ujwalic i think i can use modified svn.openfoundry.org/pugs/docs/feath...update-syn 12:25
util/podhtm.pl in pugs repo
wayland76 ok
Incidentally, if you happen to see how to make the S32 generation work while you're there, let me know
It generated the directory, but no HTML files, unfortunately 12:26
ujwalic let me try
12:32 tomyan joined
masak jnthn: things are good. (sorry for the delay, it contained 1 lunch) 12:33
jnthn: and you?
jnthn Good, thanks. 12:34
Refreshed after my vacation.
And my health seems improved.
wayland76 yay :)
jnthn Planning Rakudo day tomorrow.
wayland76 Will look forward to it 12:35
Are notices about that still going on Rakudo.org?
jnthn Yes, expect so.
wayland76 Good
jnthn I have a login there.
wayland76 I'm expecting them to go on the news page instead of the front page 12:36
masak jnthn: looking forward to Rakudo day. those days are usually great fun.
wayland76 (I'm pretty sure that just involves writing the article, and it appears there automatically) 12:37
masak I have a quiet evenening with Perl 6 planned tonight.
not sure which project I'll dive into yet.
wayland76 Ah, the anticipation :)
masak moritz_ wanted me to do u4x, but I want to write code! :)
wayland76 :)
I'm still trying to get RPMs working
Involves debugging Parrot :( 12:38
masak wayland76: what is it you're trying to do, more exactly?
wayland76 It's past my bedtime, but I want to try to get a patch in tonight
Well, at the moment, I'm trying to figure out why it doesn't load the libraries I built 12:39
Even when I specify the path with -L
/usr/bin/parrot -w -L/home/wayland/Science/Computer/src/perl/perl6/rakudo-dev/git/rakudobuild/usr/lib/rakudo/build14/dynext -o perl6_s1.pbc perl6.pir
(yes, that path is terrible, I agree :) ) 12:40
ujwalic will LD_LIBRARY_PATH help
wayland76 Good question. I should experiment with that :) 12:41
I doubt it, though 12:42
ujwalic dont use it blogs.sun.com/ali/entry/avoiding_ld...y_path_the 12:43
wayland76 Ok, that's easy :) 12:50
pmichaud good morning #perl6 12:56
wayland76 good morning teacher :)
pmichaud rakudo: grammar G { regex TOP { 'a' {*} } }; class GA { method TOP($m) { make GA.new } }; G.parse('a', :action(GA.new)) 12:57
p6eval rakudo ea3283: OUTPUTĀ«Method 'result_object' not found for invocant of class 'Failure'ā¤current instr.: 'make' pc 19258 (src/builtins/match.pir:39)ā¤Ā»
pmichaud rakudo: grammar G { regex TOP { 'a' {*} } }; class GA { method TOP($/) { make GA.new } }; G.parse('a', :action(GA.new))
p6eval rakudo ea3283: RESULTĀ«Match.new(ā¤ # WARNING: this is not working perl codeā¤ # and for debugging purposes onlyā¤ text => "a",ā¤ from => 0,ā¤ to => 1,ā¤)Ā»
masak morning, pm
12:58 Woody2143 joined
wayland76 'night all & 13:01
jnthn morning pm
masak wayland76: 'night
13:03 Kimtaro joined
Matt-W pmichaud: interesting... 13:09
pmichaud Matt-W: 'make' only works on $/ 13:13
Matt-W pmichaud: hence why it couldn't find result_object method 13:14
pmichaud correct, because $/ was undef
Matt-W so I need to have $/ as the parameter to my action methods
or explicitly assign
pmichaud yes.
Matt-W right
thanks
maybe we can get a better error message one day 13:15
like which object it was looking on
pmichaud how do you mean? example? 13:19
Matt-W well it said it couldn't find result_object 13:20
it didn't say it was trying to find $/.result_object
pmichaud it couldn't find a method called 'result_object'
so, perhaps "method 'result_object' not found on $/" ?
Matt-W That would help, yes 13:21
It's not so bad when it's a method call you wrote explicitly, but when it blows up inside a builtin it's rather more confusing
pmichaud that's a bit tough to do at runtime in the general case
Matt-W I remember writing a compiler at university and worrying about error messages and finding that they're incredibly hard
pmichaud we might be able to come up with something. At any rate, patches welcome for the make() subroutine :-)
(to have it check to see if $/ is a valid Match object) 13:22
Matt-W yeah I was wondering if it should do that
is make written in Perl 6 yet?
pmichaud no, and since it has to deal with CALLER:: it probably won't be yet.
Matt-W hmm
I'm not good in PIR
pmichaud even having a perl6 version available would be a good guide, though. 13:23
Matt-W Writing one using unimplemented syntax in the expectation that it'll work in the future? 13:24
krunen rakudo: my %cards = <ace two three four five six seven eight nine ten jack queen king> X~ (" of " X~ <spades hearts diamonds clubs>) Z (1|11,2..13 X* 1,1,1,1); %cards.pick(5).perl.say 13:35
p6eval rakudo ea3283: OUTPUTĀ«["eight of diamonds" => 8, "ten of spades" => 10, "queen of spades" => 12, "queen of clubs" => 12, "eight of spades" => 8]ā¤Ā»
krunen metaoperators are _nice_!
jnthn Wow! 13:36
pmichaud Matt-W: also in that it guides us into implementing those features that can make it work sooner. 13:37
okay, all, I have a pumpking "patch review" question
jnthn wants to steal that one for an example... 13:38
pmichaud I'm looking at RT #63796
13:38 yantom joined
pmichaud This is a patch to provide Perl 6 setting versions of ucfirst, lcfirst, chop, and fmt to Any.pm 13:38
the proposed implementations of ucfirst and lcfirst have a couple of somewhat subtle bugs in them
should I... 13:39
krunen jnthn: feel free :)
pmichaud (1) reply to the ticket indicating what the problem is and invite a fix
(2) apply the patch after fixing the bug
(2a) and send a note back to the ticket/list
(2b) and don't send a note back to the ticket/list 13:40
(3) ...other?
jnthn I've tended to not pick one as a rule. (more) 13:41
masak krunen++
jnthn If it's going to take me a few minutes to do the fixes, such that in the long run it would cost me more time to re-review an ammended patch later, I'll fix it, apply it, but explain in the note what I changed to the author of the patch can learn from it. 13:42
masak krunen: I'll steal that too, if it's ok. we're writing Perl 6 documentation.
jnthn If it's a more major change needed to it, or it's coming from the wrong angle, I'll do (1).
krunen masak: no prob 13:43
pmichaud jnthn: so, in this case you'd probably go with #2 13:44
masak krunen: I imagine it'll end up in either or several of X, Z, pick 13:45
pmichaud (since the fix is fairly straightforward)
13:46 jan_ left
pmichaud (actually, #2a) 13:47
jnthn pmichaud: 2a 13:48
I like to give feedback to help the submitter grow
OK, I has slovak class now...back in a bit...
pmichaud agreed, and in this case it's probably an important Perl 6 lesson.
jnthn aye
ok, bbiab
krunen masak: X<op> is really useful and needs good examples
13:49 jan_ joined, cotto joined, PZt joined, xuser joined, edenc joined
masak krunen: indeed. have you read about the u4x effort? 13:49
13:49 finanalyst joined 13:50 ujwalic left
Matt-W pmichaud: I didn't see any problems in that patch, so I'd like to see what they are too :) 13:51
pmichaud Matt-W: yes, that's what I'm thinking also.
it's important that we increase the number of people who know what's going on :-)
Matt-W yes
krunen masak: yeah, and I'd like to contribute. I just thought you should get a bit more structure to the project before I jump in. How are things coming along?
Matt-W very few people have really deep knowledge of perl 6 at the moment, and that needs to change 13:52
pmichaud right. I'm also thinking I'll leave it to someone else to contribute tests for the cases where the patch fails.
masak krunen: u4x is waiting for me to make a small prototype to figure out the reqs. I'm blocking on time.
after that, I'll announce loud and clear that the project needs a silly amount of contributors. 13:53
krunen masak: do that :D 13:54
masak I'll be happy to. but first time, and then prototype.
pmichaud masak: would you accept someone else figuring out the reqs, if anyone was interested in doing so? ;-)
masak pmichaud: absolutely.
it's just that I don't expect it to happen. 13:55
pmichaud raises krunen's hand
Matt-W masak: what if I bought you a clock that goes slightly slower than an ordinary clock, and stole all your other clocks?
masak Matt-W: I like the way you're thinking here.
13:55 tomyan left
masak krunen: if you're interested, check all the files in the u4x repo. P2T1A is the latest, and contains the attack plan for the reqs collecting. 13:55
13:56 alester joined
masak krunen: after your example, I'm thinking of adding 'pick' to the list. :) 13:56
masak does that
pugs_svn r25804 | masak++ | [u4x/P2T1A] added .pick 13:59
krunen masak: ok, will read up. I'll need a project to work on while I sail across the Atlantic in May...
masak krunen: sounds perfect, frankly. 14:00
14:10 skids joined, rodi joined 14:14 xuser left, cotto left, jan_ left, edenc left, PZt left 14:15 jan_ joined, cotto joined, PZt joined, xuser joined, edenc joined 14:25 jferrero left 14:30 finanalyst left 14:31 Kimtaro_ joined
dalek kudo: c48d6a3 | pmichaud++ | src/ (2 files):
Move ucfirst, lcfirst, chop, and fmt into settings. (RT #63796, cspencer++)

modifications.
14:34
kudo: 087e299 | pmichaud++ | docs/spectest-progress.csv:
spectest-progress.csv update: 317 files, 7153 passing, 0 failing
14:39
14:42 [particle] joined
krunen rakudo: my %cards = <ace two three four five six seven eight nine ten jack queen king> X~ (" of " X~ <spades hearts diamonds clubs>) Z @((1|11,2..13) <<xx>> 4); %cards.pick(5).perl.say 14:45
p6eval rakudo ea3283: OUTPUTĀ«["eight of clubs" => 8, "four of diamonds" => 4, "seven of clubs" => 7, "three of hearts" => 3, "ten of spades" => 10]ā¤Ā» 14:46
krunen marginally easier to read...
14:48 Kimtaro left
pmichaud it somehow totally frightens me that rakudo is able to do that. 14:54
szabgab pmichaud, thanks for your comment 14:55
is the scalar interpolation without braces a mistake or a design ?
rakudo: my $x="foo"; say "hello $foo"
14:55 ejs joined
p6eval rakudo 087e29: OUTPUTĀ«Scope not found for PAST::Var '$foo' in ā¤current instr.: 'parrot;PCT;HLLCompiler;panic' pc 146 (src/PCT/HLLCompiler.pir:102)ā¤Ā» 14:55
masak rakudo: say ("hello" but False).ucfirst
szabgab rakudo: my $x="foo"; say "hello $x" 14:56
alester ZERE ARE NO MISTAKEZ IN ZE PERL SEEX!
masak my line of code seems to hang Rakudo.
p6eval rakudo 087e29: No output (you need to produce output to STDOUT)
rakudo 087e29: OUTPUTĀ«hello fooā¤Ā»
alester szabgab: ARe you getting interest in your articles?
masak submits rakudobug
szabgab alester, some 14:57
alester I'm really glad you're doin' 'em.
14:57 thomasyandell__ joined
szabgab I am sure *I* will learn a lot :-) 14:57
14:58 thomasyandell__ left
pmichaud scalar interpretation is by design 14:58
szabgab pmichaud, thanks
pmichaud yes, 'hello' but False seems to hang rakudo for some reason.
szabgab alester, and my post on use.perl was not front-paged (yet ?) 14:59
alester szabgab: Dunno. I have nothing to do with use.perl.org
Matt-W pmichaud: oh so that's what was wrong with that patch. Can't rely on the boolean value of a string being false being equivalent to it being empty. 15:00
pmichaud Matt-W: correct. Also can't rely on 'self' being a string.
Matt-W pmichaud: point, since these are in Any 15:01
pmichaud thus: 0.ucfirst
Matt-W I was thinking, why are they in Any 15:02
and then I realised that's exactly why
so you don't have to go (~0).ucfirst
szabgab hmm, in the perl6 interactive mode I seem to need to declare my variables with my and then I don't have them the next line 15:03
pmichaud szabgab: yes, that's correct. Each line is an eval until itself.
s/until/unto/
szabgab that's ok I guess, but why do I need to use my ?
pmichaud we'd like to fix that... but the fix is terribly non-trivial. 15:04
rakudo doesn't implement non-strict
(yet)
szabgab ic
Matt-W doesn't miss it
szabgab so I'll keep writing oneliners
rakudo: my @x=(2,3,4); my $z = @x; my @y=$z; @x.perl.say; @y.perl.say; 15:07
p6eval rakudo 087e29: OUTPUTĀ«[2, 3, 4]ā¤[[2, 3, 4]]ā¤Ā»
15:08 yantom left
masak szabgab: the extra array comes from the 'my @y = $z', which is the Perl 6 equivalent of 'my @y = ($z)'. 15:10
15:10 nihiliad joined
pmichaud stated slightly differently -- the $z doesn't flatten in list context. 15:10
szabgab masak, thanks, I figured that afterwards but I am still not clear why $z is an Array
rakudo: my @x=(2,3,4); my $z = @x; my @y=$z; $z.WHAT.say; 15:11
masak szabgab: because @x is.
p6eval rakudo 087e29: OUTPUTĀ«Arrayā¤Ā»
szabgab slightly confusing I think
pmichaud rakudo: my @x = (2,3,4); my $z = @x; @x[1] = 5; say $z.perl; 15:12
p6eval rakudo 087e29: OUTPUTĀ«[2, 5, 4]ā¤Ā»
pmichaud rakudo: my @x = (2,3,4); my $z = @x; my @y = $z; @x[1] = 5; say $y.perl;
p6eval rakudo 087e29: OUTPUTĀ«Scope not found for PAST::Var '$y' in ā¤current instr.: 'parrot;PCT;HLLCompiler;panic' pc 146 (src/PCT/HLLCompiler.pir:102)ā¤Ā»
pmichaud rakudo: my @x = (2,3,4); my $z = @x; my @y = $z; @x[1] = 5; say @y.perl; 15:13
p6eval rakudo 087e29: OUTPUTĀ«[[2, 5, 4]]ā¤Ā»
moritz_ rakudo: my @x := (2, 3, 4); @x.push(5); say @x.perl
p6eval rakudo 087e29: OUTPUTĀ«[2, 3, 4, 5]ā¤Ā»
moritz_ rakudo: my @x := (2, 3, 4); @x[1] = 5; say @x.perl
p6eval rakudo 087e29: OUTPUTĀ«[2, 5, 4]ā¤Ā»
pmichaud moritz: yes, that's a rakudo bug.
moritz_ both should fail, right?
pmichaud we inherit the 'push' method from from Parrot's ResizablePMCArray (the base class for list) 15:14
yes, they should likely fail.
the first should have 'no such method' for push
Matt-W needs to read up on infix:<:=>
moritz_ binding++
pmichaud the second should complain about attempting to assign to a read-only value.
Matt-W oh so it binds the name @x to the readonly list (2, 3, 4) 15:15
pmichaud correct. 15:16
szabgab alester, any chance for a little buzzing for the Tricks and Treats?
Matt-W so if you bound it to an Array containing (2, 3, 4) it'd be perfectly okay to call .push, because that wouldn't be readonly
alester I tweeted it
moritz_ Matt-W: right 15:17
Matt-W okay
that makes sense
<- learned something today
actually, no, three things 15:18
it really is a good day
masak it is indeed. 15:19
Matt-W although one of those things wasn't related to perl 6 15:21
15:24 mberends left 15:25 finanalyst joined 15:27 mberends joined, justatheory joined
jnthn is back 15:29
pmichaud we charge extra for non-perl6 lessons.
Matt-W Fortunately I didn't learn it here :)
pmichaud we charge anyway. 15:30
masak :)
Matt-W Can I pay in code and bug reports?
pmichaud that is the preferred currency, yes.
Matt-W \o/
pmichaud we give karma points in exchange.
masak the karma points are only valid in-game, and cannot be traded. 15:31
Matt-W non-transferrable, non-refundable? 15:32
moritz_ glad they're not a limited resource :-)
masak moritz_: well, there's an upper limit, but it's high. 15:33
15:33 Psyche^ joined
Matt-W :) 15:33
PerlJam masak: there's a limit? 15:34
moritz_ masak: only the storage of karma points is limited, not the notional number
masak moritz_: true. 15:35
PerlJam: theoretically, no. practically, depends.
Matt-W it's a limit nobody's likely to reach before death...
masak without cheating.
Matt-W rakudo: class Cheater does Cheat {} 15:36
p6eval rakudo 087e29: OUTPUTĀ«The type Cheat does not exist. at line 1, near "{}"ā¤ā¤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)ā¤Ā»
Matt-W thankyou rakudo
PerlJam no kobayashi maru for you!
jnthn Oh hey, it gives a nice error message. ;-) 15:37
masak Rakudo++ 15:38
mberends comes out of lurk mode: good %GREETING_TIME, #perl6
masak mberends: good Whatever time, mberends.
szabgab reading again the previous examples 15:39
rakudo: my @x = (2,3,4); my $z = @x; my @y = $z; @x[1] = 5; say @y.perl;
p6eval rakudo 087e29: OUTPUTĀ«[[2, 5, 4]]ā¤Ā»
szabgab does that mean that @y is the same as @x ?
not a copy ? 15:40
rakudo: my @x = (2,3,4); my @y = @x; @x[1] = 5; say @y.perl;
p6eval rakudo 087e29: OUTPUTĀ«[2, 3, 4]ā¤Ā»
masak @y contains @x, it seems.
lambdabot Maybe you meant: yarr yhjulwwiefzojcbxybbruweejw yow . ? @ v
masak lambdabot: sorry :/
mberends szabgab has chosen Best Western Anker for NPW in Oslo, have others already done the same?
jnthn @yhjulwwiefzojcbxybbruweejw 15:41
lambdabot "\""
masak mberends: no, how do I do that?
jnthn @yhjulwwiefzojcbxybbruweejw wtf
lambdabot "\"#$%&'()*+,\""
masak jnthn: :)
lambdabot's ways are inscrutable.
jnthn I'm not even going to try and understand that...
mberends: I *think* that's where is booked for me...
pmichaud I'm at the best western, yes. 15:42
mberends masak: www.perlworkshop.no/npw2009/wiki?no...StaysWhere
Matt-W sounds like breakfasts will be interesting
szabgab I was there last year and it was quite ok 15:43
jnthn "need coffee"
"need coffee too"
masak will read "Hotels" and then choose
Matt-W jnthn: then after a few sips "So I was thinking about implementing embedded closures in rules..." 15:44
jnthn: in my imagination, at least
masak Matt-W: we already have PIR closures in rules. :)
Matt-W masak: but we want perl 6 ones! 15:45
moritz_ hey, *working* Perl 6 action stups would also be great
masak and a pony!
Matt-W and the moon on a pitchfork!
pmichaud I'm working on it folks... really :-)
masak pmichaud: cool.
moritz_ :-)
Matt-W pmichaud: it's okay, I can cope with associating another object to provide action methods for the time being :) 15:46
jnthn doesn't mention his longing for .loadinit() to work on regexes.
Matt-W although arguably it's the better way anyway
separation of grammar from parse actions
pmichaud jnthn: do you need .loadinit, or just for regexes to change type?
Matt-W multiple action sets, same grammar
hmm
jnthn pmichaud: I want to make .perl on them work too... ;-)
Then maybe I can write Grammar::Generative. ;-) 15:47
.loadinit() would make that kinda easy. 15:48
15:48 Psyche^ is now known as Patterner 15:49 mberends left
pmichaud oh! I know how to do that! 15:49
jnthn But it's not high priority really. Just my desire to have evil fun. ;-)
pmichaud it's just a couple of pct refactors away.
masak do not underestimate Evil Fun. :)
pmichaud we already have a node representing the regex in the PAST tree -- I just need to make sure the :subid attribute is set properly.
jnthn Ah, neat. 15:50
pmichaud and that PGE knows how to generate rules with subids.
Matt-W as long as it's done before Christmas :)
pmichaud then it's just .loadinit on the existing PAST node
because PGE doesn't have to generate the loadinit at all, it just has to generate the sub with the correct subid.
sounds like a good possible plane "fun thing to do" 15:51
pmichaud likes doing fun hacks on airplanes. Last fun hack-on-plane was getting a 90% speed improvement in pbc_to_exe
jnthn Don't forget to get me a list of the RTs you want me to peek at tomorrow also. :-) 15:52
15:52 Tene_ joined
pmichaud oh yes. 15:52
Matt-W pmichaud: and that has made a huge difference to my rakudo updating satisfaction
moritz_ rakudo: class A { method BUILD(*@a, *%b) { @a.perl.say; %b.perl.say } }; A.new(:d<e>); 15:54
p6eval rakudo 087e29: OUTPUTĀ«[A.new()]ā¤{"d" => "e"}ā¤Ā»
moritz_ that looks... less wrong than I thought it would be
probably my ticket on that subject is pointless then 15:55
Matt-W that looks pretty plausible to me
moritz_ from some examples in S12 it looked like the newly created object shouldn't be passed as first argument 15:58
Matt-W hmm 15:59
I guess it wouldn't be in an ordinary method
so why should build be any different
moritz_ why not?
moritz_ confused 16:00
Matt-W or would it be in an ordinary method if it used slurpy list like that
moritz_ rakudo: class A { method BUILD($obj, :$d) { $d.perl.say } }; A.new(:d<e>); 16:01
p6eval rakudo 087e29: OUTPUTĀ«"e"ā¤Ā»
moritz_ I just choose the slurp vars to get the most general signature that's possible
to find out what's passed to it
pmichaud the problem is that for any given object, we may have to call multiple BUILD (sub)methods 16:05
one for each parent class
so we can't just use $obj.BUILD(...)
TimToady BUILDALL is essentially a dispatcher, so BUILD should really be called as a sub 16:06
pmichaud that works for me.
so, we look up the BUILD (sub)methods, but invoke each one as $buildsub($obj, params...) 16:07
and inside buildsub $obj is 'self'
Matt-W home &
TimToady which you know is okay because it's a submethod
pmichaud we'll refactor rakudo to do it this way. Perhaps not this week. 16:08
jnthn: small reminder note for this week -- we should probably try to not do anything too... "radical" with rakudo until after its release next week.
TimToady hmm, though that doesn't get the default BUILD from Object if there isn't a BUILD
pmichaud we could still look up Object's BUILD and invoke it as a sub, yes? 16:09
TimToady so maybe it's really more like $obj.MyClass::BUILD
start looking at ::?CLASS
jnthn pmichaud: Does the dispatch refactor you wanted count? 16:10
pmichaud jnthn: I'm okay with doing the dispatch refactor.
(prior to release)
that one doesn't strike me as scary.
jnthn ok
me either
It was easy last time around. 16:11
pmichaud at any rate, it's less scary to me than what we have now :-P
jnthn What we have no doesn't scare me. :-P
*now
pmichaud I'm also thinking we could eliminate the $past<invocant> handling as a result, but that's not a requirement.
jnthn Maybe yes.
That was introduced to keep actions.pm neat in light of this patch.
erm, in light of .HOW and .dispatch through that 16:13
pmichaud one could simplify '!method_dispatch' by passing the invocant as a named param :-)
(potentially simplify, at any rate)
at any rate, I'm kinda wanting a method call in actions.pm to result in a single output call in the generated PIR 16:14
whether that's a PIR method dispatch or a call to something that then handles method dispatch after that is okay 16:15
jnthn sure 16:16
pmichaud yesterday I tried playing with "my $a = $b; my $b = 5;" (detecting the use of a variable before it's declared) but didn't have much success 16:17
that might need to wait for contextual variables.
jnthn Ah yes, context vars... 16:18
We need the dynop done for those...
jnthn wants state vars soonish too
pmichaud I'm still thinking I don't want that as a dynop.
I want it in parrot core -- pge and pct will need contextual vars also.
I just haven't approached allison about it yet.
jnthn Oh, yes.
Prototype it as a dynop first and then suggest it for core? 16:19
pmichaud and adding it pre-1.0 seems risky.
I think I'd rather just add it to core post-1.0 and then let her argue that it should be a dynop :-)
jnthn agree
ok
pmichaud easier to ask forgiveness than permission, or something like that.
and if I do it as part of PGE changes it's probably easier to make the case (since allison has already said that custom ops to support PGE are okay) 16:20
jnthn: okay if i just assign tickets to you in RT if I think you're the right person to look at them? 16:26
16:28 ejs left, tomyan joined
jnthn pmichaud: Sure. 16:29
pmichaud to "jonathan" or [email@hidden.address] ?
jnthn The latter.
pmichaud is RT #57862 still a valid issue? 16:36
jnthn grammar A { token b { <c> } }; "c" ~~ A::b 16:37
masak std: sub if($a) { say $a }; if("OH HAI")
p6eval std 25804: OUTPUTĀ«ok 00:04 37mā¤Ā» 16:38
jnthn rakudo: grammar A { token b { <c> } }; "c" ~~ &A::b
p6eval rakudo 087e29: OUTPUTĀ«Unable to find regex 'c'ā¤Null PMC access in invoke()ā¤current instr.: 'parrot;A;b' pc 263 (EVAL_21:116)ā¤Ā»
jnthn rakudo: grammar A { token b { <c> } }; "c" ~~ /<A::b>/
pmichaud is &A::b even valid?
16:38 yantom joined
p6eval rakudo 087e29: OUTPUTĀ«Unable to find regex 'c'ā¤Null PMC access in invoke()ā¤current instr.: 'parrot;A;b' pc 263 (EVAL_19:116)ā¤Ā» 16:38
jnthn Maybe not
But that second one is, right?
pmichaud sure, although the error message is correct that there's not a regex named 'c' 16:39
szabgab rakudo: my @x=(1, 2, 3); say "@x[]"
p6eval rakudo 087e29: OUTPUTĀ«@x[]ā¤Ā»
pmichaud szabgab: we don't do array interpolation yet, sorry.
jnthn Yes, but it is the null pmc access afterwards that is the problem.
pmichaud szabgab: my @x = (1,2,3); say "{@x[]}"; # works
moritz_ rakudo: grammar A { token b { <c> } }; try { rakudo: grammar A { token b { <c> } } }; say "alive" 16:40
pmichaud rakudo: my @x = (1,2,3); say "{@x[]}"; # works
p6eval rakudo 087e29: OUTPUTĀ«Statement not terminated properly at line 1, near ": grammar "ā¤ā¤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)ā¤Ā»
rakudo 087e29: OUTPUTĀ«1 2 3ā¤Ā»
szabgab pmichaud, I forgive for now
moritz_ rakudo: grammar A { token b { <c> } }; try { "a" ~~ /<A::b>/ }; say "alive"
p6eval rakudo 087e29: OUTPUTĀ«Unable to find regex 'c'ā¤aliveā¤Ā»
pmichaud I wonder how hard it would be to get the simple array interpolation case to work.
szabgab so is the only interpolation now the "{@x}" style ? 16:41
pmichaud szabgab: except for simple scalars, yes.
jnthn: I'm not sure where that null pmc access is coming from. Perhaps from PGE.
moritz_ rakudo: say "{ 2 + 3 }" 16:42
p6eval rakudo 087e29: OUTPUTĀ«5ā¤Ā»
pmichaud It may be that PGE can't find the regex but tries to invoke it anyway.
PerlJam szabgab: you mean implemented or specced?
pmichaud PerlJam: good question.
szabgab: "@x[]" is specced but not implemented in rakudo.
szabgab yes I am reading S02 and trying to play with interpolation 16:43
so I was wondering what is implemented
rakudo: $x=1; say $x.WHAT;
pmichaud there's a list on rakudo.org: rakudo.org/status 16:44
szabgab rakudo: $x=1; say "$x.WHAT";
p6eval rakudo 087e29: OUTPUTĀ«Scope not found for PAST::Var '$x' in ā¤current instr.: 'parrot;PCT;HLLCompiler;panic' pc 146 (src/PCT/HLLCompiler.pir:102)ā¤Ā»
pmichaud note that "$x.WHAT" in that case would always be "1.WHAT"
in order for non-simple-scalar interpolation to occur there has to be a postcircumfix at the end, I think.
moritz_ ah 16:45
"$x.WHAT()" it should be
szabgab rakudo: my $x=1; say $x.WHAT;
p6eval rakudo 087e29: OUTPUTĀ«Intā¤Ā»
szabgab rakudo: my $x=1; say "$x.WHAT";
p6eval rakudo 087e29: OUTPUTĀ«1.WHATā¤Ā»
pmichaud rakudo: my $x=1; say "{$x.WHAT}";
p6eval rakudo 087e29: OUTPUTĀ«Intā¤Ā»
masak pmichaud: I'm reading use.perl.org/~chromatic/journal/38552 -- did you know that there is a Pod(6) parser already written in Perl 6?
pmichaud rakudo: my $x=1; say "$x.WHAT()"; # not yet implemented 16:46
p6eval rakudo 087e29: OUTPUTĀ«1.WHAT()ā¤Ā»
szabgab just checking, maybe you've forgotten that it already works :-)
pmichaud masak: I knew there was a pod6parser that particle++ started that is in the rakudo tree 16:47
masak pmichaud: mberends++ has written one; it's in perl6-examples.
pmichaud masak: allison++ and others have created a pod 5 parser using Perl 6 rules that's in the parrot tree (although it may have moved recently in preparation for the 1.0 release)
moritz_ there's a much more complete parser by mberends++
16:47 tomyan left
pmichaud excellent. 16:47
no, I wasn't aware of that one.
masak I'm really impressed by his work.
I plan to blog about it at some point.
pmichaud please do. 16:48
masak pmichaud: ok, prioritizing up that one.
moritz_ masak: admit it, you're just looking for excuses not to write u4x docs :-)
masak moritz_: sorry, sorry! :/
moritz_ :-) 16:49
masak moritz_: but yes, I don't feel in a rush to do u4x.
I figure I've got till summer to do that prototype.
moritz_ speaking of summer... any news about the TPF application for GSOC?
[particle] no news until the 18th? of march 16:52
moritz_ ok 16:53
masak how should I write my for loops if I want to possibly remove items I iterate over? is gather/take my best bet for that?
moritz_ don't think so 16:54
masak ideally, I'd like a .delete method on the iterator, or something.
oh, how do I access the iterator of the for loop? :)
moritz_ indirectly, with redo, next, last
masak moritz_: yah, but directly?
moritz_ masak: you don't. 16:55
afk
masak I want to see pipes sticking out!
pmichaud masak: isn't that what a Null PMC error is? ;-)
masak pmichaud: touche.
[particle] you want a destructive .pick?
maybe .pickaxe 16:56
masak [particle]: not necessarily.
16:56 yantom left
masak [particle]: I have .=pick 16:56
that's destructive enough for me.
jnthn masak: Why not just grep? 16:57
masak jnthn: I might. 16:58
but I'm doing side-effects like 'say' in there. 16:59
[particle] When will accepted mentoring organizations be announced? We will announce the list of accepted mentoring organizations on the Google Summer of Code 2009 home page on March 18, 2009.
pmichaud moritz_: can we close RT #62810 ?
[particle] socghop.appspot.com/document/show/p...#org_apply
masak right now I chose to put things I want to keep in a hash; that way I get uniqueness included in the deal. but I lose ordering. :/
is there a native Perl 6 hash type which preserves insertion order? 17:00
PerlJam masak: just use an array an .uniq on it
s:2nd/an/and/
masak PerlJam: thanks, will do. 17:01
ah, .uniq!
17:03 xinming_ is now known as xinming
jnthn looks at the flurry of tickets pm has given him 17:03
moritz_ pmichaud: yes 17:05
pmichaud: I'll close it
pmichaud jnthn: feel free to reassign them back to me or nobody if you think that's best... these are just tickets I think you're especially well-placed to address.
moritz++ # thanks
jnthn: anyway, that gives you something to do for your rakudo days, if you're lacking tasks or have an excess of tuits :-) 17:07
jnthn pmichaud: They all look like ones that I know the area of pretty well, yes. 17:08
17:18 orafu left
pmichaud afk for a bit # lunch 17:26
17:32 Khisanth joined, PacoLinux joined
pugs_svn r25805 | moritz++ | [t/spec] tests that (Str but True).uc and similar things work 17:34
Matt-W Hmm 17:37
If one of my subrules has matched and its action method has set the result object using make, how do I get at that object in my action method? 17:38
pugs_svn r25806 | moritz++ | [t/spec] test for things like 0.uc
PerlJam it's in $/ isn't it?
$/<subrule>
Matt-W that's what I thought
but I just get a Str 17:39
moritz_ $<subrule>.rob # but doesn't work yet
Matt-W it doesn't work yet??
moritz_ $( $/<subrule> ) should work, though
Matt-W hmm
aaah
something else is wrong
looks like one of the action methods isn't triggering 17:40
PerlJam thought that he had imagined or dreamed .rob until just now
moritz_ Matt-W: say() in the actions help to debug that
Matt-W moritz_: yeah that's how I know it's not triggering 17:41
it has to have gone through the rule to get to the method that's failing
but the method that goes with it isn't running
how odd
moritz_ maybe forgot a {*} ? 17:42
Matt-W nope
PerlJam pastebin the code :)
Matt-W aaah making progress 17:44
the methods trigger now
it seems the juxtaposition of a subrule and {*} binds more tightly than |
PerlJam "binds more tightly"? 17:45
Matt-W as in if you say regex r { <a> | <b> {*} } it only triggers the rule if you get b, not a 17:46
it's considered part of b's branch
it seems
skids "do is blah {...}" not "do {...} is blah" correct?
std: do is rw {...}
p6eval std 25806: OUTPUTĀ«Undeclared routines:ā¤ is used at 1 ā¤ rw used at 1 ā¤ok 00:02 34mā¤Ā» 17:47
skids std: do {...} is rw;
p6eval std 25806: OUTPUTĀ«##### PARSE FAILED #####ā¤Statements must be separated with semicolon at /tmp/Dn2NUI91FW line 1:ā¤------> do {...} is rw;ā¤ expecting any of:ā¤ infix or meta-infixā¤ infix stopperā¤ standard stopperā¤ statementā¤ statement modifier loopā¤ terminatorā¤FAILED
..00:02 34mā¤Ā»
Matt-W studies rakudo's grammar and learns things 17:48
skids struggles to find traits applied to loop or if statements in the Synopsis.
17:55 Kimtaro joined
Matt-W oooh 17:56
a bug, a bug!
but I can't stop to quantify it now
except that at least some of the time, calling .perl on a Match object causes a null PMC access 17:57
concert & 17:59
18:00 PacoLinux left 18:03 ruoso joined, Kimtaro_ left
ruoso Hello! 18:04
18:04 meppl joined
skids Hi! 18:04
18:05 M_o_C joined, bigpresh joined 18:06 justatheory left 18:07 bigpresh left, abra joined, eternaleye joined 18:08 bigpresh joined 18:12 drbean joined 18:21 abra left 18:30 finanalyst left
pmichaud Matt-W: {*} acts like any other closure. 18:42
(in terms of its precedence)
skids Any examples of traits applied to a for/loop/if that you know of? Or even a bare block? I know pointy blocks cannot have them. 18:45
TimToady Matt-W: and note that there is already a {*} implied at the end of every rule, at least as far as STD is concerned 18:52
skids: traits are only for declarators
we don't allow them on rvalues generally 18:53
skids Ahh, well that will make the S17 refactor fun :-) 18:54
Then the START {} CATCH {} etc are exceptions to that rule. 18:55
18:56 M_o_C left
ruoso TimToady, er... 18:57
about your last mail
so do I always need to use two sets of parens when I'm accessing an attribute that happens to contain a closure that I want to invoke?
TimToady yes
I think that's even documented somewhere 18:58
ruoso alright... not as pretty as I'd like... but seems fine
so...
self.foo.() is also the same as self.foo() 18:59
meaning... it has nothing to do with the sigil before the dot...
pmichaud that doesn't match how I read STD.pm, though. Or there's some other magic going on. 19:01
TimToady yes, we want to treat .() as a mere syntactic variant of ()
pmichaud $.foo() is parsed specially in STD.pm 19:02
TimToady it's certainly possible that I botched STD somehow :)
ruoso pmichaud, I think it needs to be parsed specially because it's not really a twigil, I think
TimToady yes, I botches STD 19:03
s/s/d/
pmichaud timtoady: okay, I'm fine with that then :-)
ruoso .oO (yed?)
pmichaud we need a "smart substitute" to go along with "smart match"
ruoso: the special parsing in STD handles the case where the twigil is '.' 19:04
(at least, until TT changes it :-)
TimToady but it doesn't allow the .() forms 19:05
yet 19:06
ruoso right, pmichaud, so that special parsing has nothing to do with how .() or () is parsed, it seems
TimToady the special form currently only allows (), but it should also allow .()
and variants
ruoso although the dot meaning an aditional deref is not that useless 19:07
TimToady unspace variants, not .* variants...
ruoso not actually deref 19:08
actually, I don't know how to define it
pmichaud in order to obtain an attribute that contains a closure, it would require two parens, yes, if using the dot twigil
if using the bang twigil, only one set of parens would be needed.
ruoso pmichaud, makes sense...
since the syntax for private attributes is completely different than for private methods 19:09
while there are no such thing as public attributes
pmichaud afk for a bit again 19:11
ruoso TimToady, but I do feel a bit unconfortable with "has $.foo; ...; $.foo = {*}; ... $.foo()() 19:12
it doesn't look right
because it forces the attribute to actually look like a method 19:13
TimToady $.foo is not an attribute 19:15
$!foo is an attribute
$.foo is a method that happens to also declare $!foo
ruoso I know... I know...
but from the user's perspective 19:16
19:16 mberends joined
ruoso might be a bit unconfortable because he has just lost 2 hours because of an extra parens required by javascript 19:16
[particle] clips his fingernails at ruoso 19:17
TimToady it's actually desugaring to $(self.foo())
so the ".foo" is the important part, not the "$." 19:18
ruoso what surprised me was actually that ".()" would be the same as"()"
TimToady it's just convenient to use a sigil as a standin for "self", which was a very long-fought war on p6l
ruoso which happens to cause the requirement for the extra paren set
because if ".()" and "()" were not the same 19:19
$.foo.() would do the trick
TimToady but foo.() would fail unless foo returned something .()-able 19:20
ruoso seems what I would expect
jnthn Makes sense to me too.
TimToady as I say, now that we have foo\(), maybe we could get away with that 19:21
ruoso maybe only make the dot irrelevant *after* a postcircumfix
TimToady and as long as .() still is a postfix (a normal postfix, not special form) it could still be used in conversation
ruoso so the first dot is relevant
so $a.(){}() doesn't need to be $a.().{}.() 19:22
but you still have the first dot
TimToady $a() is fine too
ruoso my point is... 19:23
TimToady or your getting back to p5 mentality
ruoso we assume that empty parens are not necesary for most things
$a() to me looks like $a
since empty parens are mostly irrelevant
TimToady no, they're not
e() is an error 19:24
if you mean the constat
*constant
19:24 barney joined
ruoso s/irrelevant/not required/ 19:24
TimToady what, you think $a should call itself when mentioned?
that would be completely non-Perly 19:25
ruoso no, it shouldn't...
TimToady () isn't a no-op
ruoso I know... I know...
but for most method calls and sub calls
if you have no args
you don't need to use the parens at all
skids except &f() 19:26
TimToady that was another long battle that we're not going to revisit
$x.meth already has one argument, so it can default to not wanting more 19:27
ruoso sub bar { ... }; bar;
TimToady bar is looking for arguments
ruoso std: sub bar { ... }; bar;
TimToady so is expecting a term next
p6eval std 25806: OUTPUTĀ«ok 00:02 34mā¤Ā»
TimToady it can be a null list, but it's still there 19:28
$x.meth expects an operator after it, not a term
std: $x.meth 1
ruoso let me put it another way then...
p6eval std 25806: OUTPUTĀ«##### PARSE FAILED #####ā¤Syntax error (two terms in a row?) at /tmp/hTPtA6o0R4 line 1:ā¤------> $x.meth 1ā¤ expecting any of:ā¤ infix or meta-infixā¤ infix stopperā¤ standard stopperā¤ statement modifier loopā¤ terminatorā¤Other potential difficulties:ā¤
..Variable $x is n...
ruoso if '.()' is the same as '()', what is the dot doing there?
TimToady same thing as the dot in .++ 19:29
ruoso which is?
skids Isn't it more that '()' is short for '.()'?
TimToady except that () is a special form
makes the dereference more explicit, where the deref of foo() vs foo.() is in the compiler, not the run-time 19:31
hence it's a special form
but it's still dereffing a symbol table entry at compile time
ruoso right... that was precisely my thought when I wrote $.foo.()
I thought it would make a deref more explicit, and thus not require me an extra () 19:32
TimToady there is no $.foo in the symbol table
ruoso I'm not sure it being into the object table instead of the lexical table to be all of that importance for that matter 19:33
it's going to be looked up somehow
TimToady it's a method call, so parens are always part of the call, if there, just as .meth() eats the parens
it's going to look for .foo just as it looks for .foo
it's just a method call, and should have the same syntax 19:34
now I'm not saying that we can't break symmetry for .meth() vs .meth.()
ruoso ok.. that is precisely the point I'm arguing about
TimToady but if we do it will be intentional symmetry breaking
well, you have to let me thing through the ramifications 19:35
*think
skids $.foo: ... ? 19:36
pmichaud 19:24 <TimToady> e() is an error 19:37
spectests have 19:38
S32-trig/e.t
17:is_approx(e() , $e, "e(), as a sub");
18:is_approx(1 + e(), $e+1, "1+e(), as a sub");
19:is_approx(e() + 1, $e+1, "e()+1, as a sub");
I'd be very happy if e() is an error, though. :-) 19:40
that would kinda go against S03:2665 though. 19:41
(afk, picking up children from school) 19:44
19:52 [particle]2 joined 19:54 bacek joined, j1n3l0 joined, PacoLinux joined
bacek good morning 19:55
std: sub prefix:Ī£ (*@args) {...}; my @a; say Ī£@a 19:56
p6eval std 25806: OUTPUTĀ«##### PARSE FAILED #####ā¤Syntax error (two terms in a row?) at /tmp/uJGNNnzNhO line 1:ā¤------> ub prefix:Ī£ (*@args) {...}; my @a; say Ī£@aā¤ expecting any of:ā¤ POSTā¤ argument listā¤ infix or meta-infixā¤ infix stopperā¤ postfixā¤
..postfix_prefix_meta_operatorā¤ standard ...
bacek std: sub prefix:<Ī£> (*@args) {...}; my @a; say Ī£@a
p6eval std 25806: OUTPUTĀ«ok 00:03 41mā¤Ā»
20:07 [particle] left 20:11 eternaleye left 20:13 eternaleye joined 20:15 justatheory joined, barney left, [particle] joined 20:22 ingy joined, ejs joined 20:28 bacek_ joined 20:33 bacek left 20:34 yary joined 20:37 AzureStone joined 20:38 frioux_ joined
TimToady just fyi: there are approximately 20 places in t/ that are assuming .() is equivalent to () on function or method calls (that aren't real derefs of &foo) 20:43
diakopter nopaste list?
(probably nearly all the uses of .()?)
20:44 eternaleye left
pasteling "TimToady" at 71.139.3.159 pasted "uses of non-deref .()" (23 lines, 2.1K) at sial.org/pbot/35503 20:47
20:56 cspencer joined 20:58 frioux left 21:02 Whiteknight joined
yary Hello- is there a moderator for the perl.perl6.users usenet group here? 21:06
21:15 eternaleye joined
ruoso TimToady, I'd argue that uses are counter-intuitive 21:22
21:29 bacek_ left
pugs_svn r25807 | lwall++ | Clarify value syntax inconsistency noticed by pmichaud++ 21:31
21:32 skids left 21:38 [particle]2 left, ejs left
TimToady ruoso: running experimental tests with STD and test suite 21:57
ruoso i.e.: breaking mildew? 21:59
TimToady not yet :) 22:00
ruoso decommute &
22:00 ruoso left 22:06 mberends left 22:07 Limbic_Region joined 22:08 eternaleye left 22:15 j1n3l0 left
cspencer can parrot do MMD based on return type? 22:31
22:32 yary left 22:34 cspencer left
pugs_svn r25808 | lwall++ | [Cursor,viv] add captures in parse order, not just via named kids 22:34
r25808 | lwall++ | also continue transition from .<?> to .rob (internally ->{'_'}
22:35 j1n3l0 joined 22:36 cspencer joined
jnthn cspencer: (parrot mmd on return type) not that I'm aware of... 22:37
Perl 6 doesn't need that, though...
AFAIK.
(I hope...)
22:37 skids joined
cspencer well, i was looking at a way of getting Inf to work for Int types 22:37
at the moment, it's a Parrot sub that returns a float
and i believe that Parrot now support Inf for integer types... 22:38
22:42 bacek_ joined 22:43 j1n3l0 left, ZuLuuuuuu joined
pmichaud parrot supports Inf for integer types? I hadn't seen that yet. 22:47
22:51 ZuLuuuuuu left
cspencer pmichaud: probably me getting confused again, i'd somehow thought it did ;) 22:59
pmichaud the section on MMD tiebreakers in S12 says: 23:04
Therefore return-type tiebreaking need not be supported
in 6.0.0 unless some enterprising soul decides to make it work.)
TimToady it supports Inf for Object types, not for native types 23:06
has for years...
S02: C<Int> automatically supports promotion to arbitrary precision, as well as holding C<Inf> and C<NaN> values. 23:07
moritz_ I think you're both mixing up Perl 6 and parrot ;-) 23:08
cspencer yes, i probably should have been more clear that i was referring to to Parrot native int types :) 23:10
jnthn is SO not an enterprising soul. 23:12
Though that may change after 6.0.0 is released. ;-) 23:13
pugs_svn r25809 | lwall++ | [STD] special named forms foo() .foo() and $.foo() no longer support 23:16
r25809 | lwall++ | the dereferencing .() postfix syntax, since they don't actually do
r25809 | lwall++ | any dereferencing! You may still insert space using "unspace" however.
r25809 | lwall++ | This decrease in consistency on the syntactic level is offset by an
r25809 | lwall++ | increase in consistency on the semantic level, as suggested by rouso++.
r25809 | lwall++ | (We'd already gotten rid of the dot forms of adverbs some time ago,
r25809 | lwall++ | for similar reasons. We just didn't quite carry the idea through.)
wayland76 s/rouso/ruoso/
ruoso++ :)
TimToady sorry, I sort of assumed this channel was about Perl 6 :P
bleh
ruoso++ again for putting up with me :) 23:17
moritz_ we have a healty amount of semi off-topic discussions here ;-)
TimToady never does that <whistles>
wayland76 changes channel name to perl6-and-linguistic-puns to make TimToady correct :) 23:18
TimToady don't forget the -and-everything-else bit too 23:19
but then, I guess pretty much everything has been related to Perl at one point or another already...
wayland76 :) 23:20
23:22 kate21de joined 23:27 alester left 23:28 kate21de1 joined, kate21de1 left
Limbic_Region TimToady - 6 degrees of Perl Yak Shaving 23:34
pugs_svn r25810 | moritz++ | [irclog] try to support channel names with dots 23:40
diakopter ... and where do the shavings end up?
23:40 lambdabot joined
pugs_svn r25811 | moritz++ | [irclog] try to unbreak .htaccess 23:41
23:44 kate21de left
wayland76 In a yaks'-wool sweater, of course :) 23:45
pugs_svn r25812 | moritz++ | [irclog] oh my, I can't even write char classes anymore in perl 5... 23:46
pmichaud so, we still have .[] and .{} but no longer have .() ? 23:49
TimToady we still have .() too 23:52
it's just always an operator
like .[] and .{}
the parens in foo() aren't an operator, is the point 23:53
in &foo.(), they are
at least, the hardwired one is a different operator
pmichaud okay, I get it. Works for me. 23:54
TimToady and it turns out, in the test suite, half of the .foo.() meant one thing, and half meant the other !!! 23:55
pmichaud &foo() is still done with a postcircumfix operator, though, yes?
TimToady so definitely indicative of some confusion
yes
moritz_ so $.bar.() will invoke the thing that $.bar returned?
TimToady you can assume the . where you need to
but you can't unassume it where you don't, as it were 23:56
moritz_: yes
and $.bar() is the direct call now
pmichaud I wonder if this means that rakudo works in a copule of tickets now :-)
(I know there are still some where it doesn't :-)
$.bar.() is the same as $.bar().()
TimToady yes
pmichaud just like $xyz.foo.bar.() is the same as xyz.foo().bar().() 23:57
er, *$xyz
TimToady it's more consistent semantically, and less consistent syntactically
yes
pmichaud okay. I like it.
ruoso++
TimToady agreed, I'm glad he was more stubborn than me this time :) 23:58
pmichaud I'm glad I didn't work on fixing the rakudo bugs related to this issue before today, though :-)
TimToady yes, well, by that argument nothing ever gets done... :P 23:59