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 |