pugs.blogs.com | pugscode.org | pugs.kwiki.org | paste: sial.org/pbot/perl6 | <stevan> Moose... it's the new Camel ":P | .pmc == PPI source filters!
Set by Alias_ on 16 March 2006.
TimToady pmichaud: pongongongong 00:01
pmichaud wanders back
TimToady just committed new S05
pmichaud ooh, good timing
two questions (hopefuly quick) 00:02
first, p6l had opined from time to time that :w(&my_ws) would use a custom rule for whitespace -- is this blessed or speculative?
TimToady I'd say speculative for the moment. 00:03
pmichaud okay, so thus far we allow :w as a boolean adverb that enables/disables <?ws>
TimToady Maybe less speculative with "use rule :w" and such.
pmichaud second question -- not quite as quick. How much room do we want to leave the rules compiler for optimization? (more) 00:04
TimToady but I'm inclined to think you just redefine the ws rule.
pmichaud for example: rule myrule { hello world }
TimToady well, that's part of the motivation for defaulting to not backtracking...
pmichaud then later myrule("hello world", :w(1))
do we allow such a thing?
TimToady I wouldn't mind disallowing it by default. could always put a "use pessimize" at the top. :) 00:06
pmichaud how about something like rx :w($foo) / ... /
TimToady you willing to compile it both ways?
pmichaud I'm willing to do whatever the language designer(s) say it should do :-) 00:07
but of course, we also have other adverbs...
TimToady The language designer is unwilling to say things that it shouldn't do. :)
the question is whether those are instructions to the rule compiler or the eventual sub?
pmichaud yes 00:08
that is the question
TimToady I'd say they're compile time instructions to the rule parser.
pmichaud so, $foo is evaluated at compile time?
TimToady yes, I think.
same is true of qq:foo($x) 00:09
pmichaud yes, that makes sense
if someone needs a really dynamic rule, they can call the rule compiler directly at runtime, or use an eval
TimToady basically, arguments to the macro, not the produced code.
pmichaud okay, I buy all of that -- makes me happy
TimToady or write their rule as a method, or use $^a in their rule...
cognominal_ what is this coerce call mentionned in S05?
TimToady Just like @() only different. 00:10
pmichaud of course, :keepall is special in that each rule has to be ready for it regardless of how it was compiled
:parse is the same way
TimToady right.
:parse?
pmichaud sorry, :panic
TimToady you had me parsing there for a bit... 00:11
buu Are $^foo fariables still the block arugment.. magical.. variable thingies?
pmichaud okay, that's what I needed to know
buu Heh, variables.
pmichaud many thanks
TimToady I'd say more likely is "rule foo ($a, $b) :w {...} 00:12
and then you could use them from inside closures, where $^a wouldn't work.
pmichaud and if someone wants a runtime adverb, it's put in the rule signature 00:13
?
TimToady right, it's just a named parameter :a($x)
pmichaud poifect
TimToady that also presumably gives you <foo($x,$y)> and <foo mumble> stuff. 00:14
for appropriate sigs.
pmichaud some of these S05 changes will require redoing parts of PGE, but they're parts that needed bringing up to date anyway. Plus the parrot team finally has things far enough along that I can do better integration of PGE with other languages
TimToady hopefully they'll be viewed as improvements... 00:15
pmichaud yes, I've been planning <foo($x,$y)>. PGE currently also supports the speculated <foo: mumble> form (which is really convenient for parsing and passing a string arg, btw)
TimToady that's partly why I put in <<<foo: mumble>>> 00:16
in case mumble has angles
pmichaud oh, yes. So, does this mean that <foo: mumble> is official?
or still just conjectural? 00:17
TimToady slightly less conjectural, let's say. :)
pmichaud (I think conjectural is still fine)
it's not hard to change if/when we get there
TimToady It doesn't really buy much over <foo('mumble')>
pmichaud it buys a bit from the rule parser end :-) 00:18
but I could go ahead and get the rule parser to easily handled single-argument forms for now
*handle
TimToady you can leave it in for now.
pmichaud ah -- when it comes to implementation shortcuts, that's where I feel I get to impose my perogative over the language designers' :-) 00:19
TimToady go for the gusto
00:19 weinig joined
pmichaud so, we're now to regex / rule / token . Nice. 00:20
S05 no longer seems to summarize A05 (first sentence :-)
I was wondering if <@abc|@def|@ghi> would end up with "longest-match" semantics like a hash? ;-) 00:21
then I told myself I shouldn't mention such things to anyone :-) 00:22
(oops)
TimToady do you hear a buzzing in here? 00:23
pmichaud a small one, yes
TimToady I suppose it's entirely possible such a feature could happen by accident.
pmichaud could happen. Not happening now. :-)
TimToady and if a test for it snuck into the right place, it'd be official. 00:24
pmichaud okay, that's all the questions I had for the moment. Long night of (re-)coding ahead :-)
TimToady kinda sorry, kinda not...
pmichaud I'm not sorry -- I like the new formulations a lot
TimToady yeah, but you said that last time, and the time before. :) 00:25
PerlJam doesn't like "regex", but who am I? :)
pmichaud and much of the stuff was going to be redone internally anyway (to bring PGE up to speed with Parrot lexicals and namespace changes), so it's extremely timely
yeah, I feel a bit like Scott McClellan, since I've been telling everyone for a couple of years now that "regexes are now called 'rules'" 00:26
"Oh, they're really called 'regex'"
TimToady We'll have to refer it to the Damage Control Committee, I guess...
pmichaud np
kids are calling me to "Lego Star Wars", so bbl 00:27
theorbtwo Have fun.
TimToady nap &
00:33 lisppaste3 joined
Khisanth but "rules rule!" sounds awkward :) 00:34
00:36 amnesiac joined
buu rules Khisanth with a whip 00:48
00:49 weinig joined 01:02 KingDiamond joined 01:28 Coke joined 01:34 beppu joined 01:41 drbean left 01:47 frederico joined 01:51 KingDiamond joined 01:55 YetAnotherEric joined 02:00 vel joined 02:12 dbrock joined 02:23 weinig joined
geoffb audreyt: I explicitely give permission to relicense as you see fit any of my code that still remains in the pugs tree. 02:25
(In reference to your blog entry) 02:26
avar "However, if people who have contributed to the src/ tree before feel uncomfortable about this change, that will necessitate a rewrite of those parts, so please voice your concerns." 02:29
almost anything is better than some stupid rewrite of code due to stupid legal issues;)
dbrock what is the goal of -Ofun? 02:48
Coke ...to have fun? 02:55
03:00 FurnaceBoy_ joined
SamB it means "optimizing for fun" 03:00
03:05 saorge_ joined 03:55 fglock joined 04:05 KingDiamond joined 04:10 cognominal joined 04:31 drbean joined 04:41 fglock left 04:56 pdcawley joined 05:04 justatheory joined 06:02 joelbryan joined 06:36 arcady joined 06:44 iblechbot joined 06:55 pdcawley joined 07:03 mjk joined, joelbryan left 07:09 marmic joined 07:13 Aankhen`` joined 07:16 pdcawley joined
svnbot6 r10049 | audreyt++ | * Disclaim my copyright over compilation of any Pugs releases as well 07:28
r10049 | audreyt++ | as for compilation of this repisitory.
r10049 | audreyt++ | * Per Allison's suggestion, create a demonstratably legally separate
r10049 | audreyt++ | third-party/ directory to put all code derived form upstream projects.
r10049 | audreyt++ | All third-party parts under src/ will be moved here.
r10049 | audreyt++ | * Check in the first member of third-party: Text.Regex.Lazy, a full
r10049 | audreyt++ | Rule engine with .*+ and .*? control (modulo named captures and <ws>); we
r10049 | audreyt++ | just need a surface syntax for it to run Perl 6 rules. :)
r10049 | audreyt++ | (The PArrows approach I used before did not handle lazy streams
r10049 | audreyt++ | and wouldn't allow piecemeal conversion from our Parsec rules
r10049 | audreyt++ | into Rule rules.)
07:28 Southen_ joined 07:29 Southen_ joined, azuroth joined, Southen joined 07:31 arcady joined 07:41 ayrnieu joined
rgs wow, now that's a commit 07:45
07:48 arcady_ joined 07:52 pdcawley joined 08:05 Cerial^Killer joined
Cerial^Killer having an issue with a while statement running off any help would be apprechiated pastebin/672860 08:06
xinming Cerial^Killer: I don't think you should ask here. :-) 08:09
08:14 iblechbot joined 08:22 pdcawley joined 08:25 pdcawley joined 08:33 fordinal joined 08:41 ghenry joined 08:44 macroron joined 08:57 dakkar joined 08:58 arcady_ is now known as arcady 08:59 macroron joined 09:01 macroron joined 09:13 macroron joined 09:31 marmic joined 09:51 kakos joined 10:06 Aragone is now known as Arathorn 10:13 igorsutton joined 10:40 macroron joined 10:44 lidden joined 10:51 elmex joined
dakkar is away: pranzo 11:03
nothingmuch EARTLSCTOOLNG 11:19
i like the mit licensr 11:20
short and sweet
11:37 froh-doh joined 11:57 macroron joined 11:58 pawel joined
pawel hi 11:58
11:58 pawel is now known as pmurias
azuroth hey 11:59
12:01 KingDiamond joined
Arathorn distinct deadness in here today 12:02
pmurias on which term can things in the pugs tree which have no copyright or legal info be distributed?
s{pugs}{misc/pX}
or is it undefined 12:03
? 12:04
12:05 iblechbot joined 12:09 ruoso joined 12:11 Toaster joined 12:12 merlyn joined
ruoso merlyn, heya... 12:14
12:14 kolibrie joined
merlyn hi 12:15
ruoso merlyn, are you in brazil?
merlyn yes
12:18 Limbic_Region joined, merlyn joined 12:21 Coke joined 12:41 xerox_ joined, fglock joined
dakkar is back (gone 01:39:45) 12:43
fglock merlyn: hi! 12:52
merlyn hey 12:53
pmurias ruoso,fglock: hi 12:54
fglock ruoso: we've got a sponsor for YAPC::SA 12:57
ruoso wow... that's good 12:58
who?
pmurias, hi
fglock, YAPC::SA will be inside CONISLI, right? 12:59
fglock yes - but we are in the organization committee - so we can add more Perl to it :) 13:00
ruoso that's really nice 13:02
xinming May you do good and not evil. 13:10
May you find forgiveness for yourself and forgive others.
May you share freely, never taking more than you give.
People out the world won't take these 3 if there is no license... :-) 13:11
theorbtwo xinming: "May you" doesn't force terms upon you, which was the point. 13:12
(I'm having problems parsing your last line.)
xinming hmm, This is from audreyt's blog... I mean, there are many people which will get the source, and rename it and become his "own" 13:14
audreyt and I... welcome that.
xinming feels sorry about his poor English.... Xinming should practise...
fglock audreyt: ping
audreyt fglock: pong 13:15
fglock audreyt: we've got a sponsor for YAPC::SA in november - would you come?
13:15 Qiang joined
theorbtwo audreyt: You should probably collect URLs to people's copyright dedications/disclaimers. 13:15
ingy seen bsb
jabbot ingy: bsb was seen 21 hours 19 minutes 40 seconds ago
audreyt theorbtwo: yes, doing that. 13:16
xinming audreyt: hmm, won't you blame about that? I mean, even erase the copyright and all other things, and become their own.... :-/
audreyt theorbtwo++ # thanks a lot :)
xinming: I... welcome that. really :)
theorbtwo That's one reason I kept track of AUTHORS -- to make things a bit easier when this day came.
xinming audreyt: If you don't, then, I should help you on blaming that... :-)
audreyt theorbtwo: yup, and I have a set of contact data in openfoundry db
xinming theorbtwo: do you mean vi AUTHORS d G ? 13:17
audreyt theorbtwo: for people actually committing code ("svk annotate" on src will show all involved parties)
13:17 beppu joined
theorbtwo I don't know what d G does in vi. (I'm an emacser.) 13:18
audreyt xinming: no no, not that.
dG erases the whole file.
xinming :-)
audreyt AUTHORS is wonderful; it's a social construct
xinming theorbtwo: how about C-x h C-w ? :-)
beppu dG erases from the current cursor line to the end of the file.
13:18 azuroth left
audreyt it's just the (revokable at any time) legal construct part of the Artistic and of the GPL that I'm trying to do without 13:18
13:19 azuroth joined
azuroth I was pondering how hard C-x h C-w might be to type, and... 13:19
xinming azuroth: It's as easy as drinking. :-)
theorbtwo Ah, in that case, you should certianly use a public domain dedication, and not the license you're using, which /is/ revokeable.
pmurias GPL is revokable? 13:20
audreyt pmurias: yeah, according to Eben
it's a popular myth that it is not, but it really is
beppu what does it mean to "revoke" the gpl?
audreyt beppu: to cease to allow people to use your software under GPL. 13:21
xinming beppu: your previous part belongs to public domain, and you can folk the one yourself
13:21 particle_ joined
audreyt beppu: legally it _may_ be possible that earlier fork survives 13:21
but even that is controversial.
theorbtwo However, dedications of copyright interest to third parties or to the public domain are /not/ revokable (if done properly).
audreyt right, with creative commons's phrasing of Certifier 13:22
beppu so something that's gpl'd now is not necessarily free in perpetuity.
(...if the author decides to change his mind and un-gpl his work)
pmurias so if a past core developer of a project revokes the gpl, all his code needs to be rewritten
?
theorbtwo Assuming he hasn't given away his right to do that, yes. 13:23
audreyt pmurias: yes.
beppu is that a bug or a feature?
audreyt FSF thinks it's a bug I think
pmurias a bug
if you use someones could he could blackmail you 13:24
13:24 jserv-- joined
pmurias bbiab& 13:24
beppu I imagine that this doesn't happen very much in practice.
ruoso audreyt, do you have some docs/links about the gpl revokability?
xinming while we are talking about this, It reminds me about the x-chat. :-)
x-chat is great... but the author added the bomb in the source, and release the binary... which made many people angry... :-) 13:25
I mean for windows people
audreyt ruoso: sure... www.wired.com/news/business/1,35258-0.html
theorbtwo ruoso: en.wikipedia.org/wiki/Public_domain 13:26
audreyt en.wikipedia.org/wiki/Public_Domain - grep for "en.wikipedia.org/wiki/Public_Domain"
er
grep for "Revocability where no consideration"
xinming not Linux, In Linux, there is always people compiling the source. for Windows version, the author added a bomb and just release the binary... IMO, There is nothing to say... But I don't know what the deals is in GPL. :-)
beppu He must really hate Microsoft. 13:27
xinming beppu: I don't think so... :-)
lumi Bomb?
merlyn "somebody set us up the bomb!" 13:28
lumi YM "set up us"
theorbtwo No, he must really hate people who run binary version.
merlyn oops. :)
I can never remember it literally.
xinming lumi: hmm, I mean the software will become unusable after 30 days without regiesteration.
merlyn I paraphrase the badly translated to autocorrect it.
most microsoft software doesn't wait 30 days. :) 13:29
lumi It's thoroughly engraved in my brain
xinming www.xchat.org/windows/
merlyn "born unusable!"
xinming here, It's still there. :-)
merlyn: MS windows shouldn't be used much... eg: if Xp is running on a spaceship... the problem is, while it asks you for activation.... :-) 13:30
lumi Oh, well gee. Make it simpler to build? 13:31
merlyn <dalekvoice>"activate - EXTERMINATE"</dalekvoice>
xinming lumi: that's not I'm aware of, after I can work with Linux, Windows is a bit like an advanced "gameboy" in software area. 13:33
theorbtwo It seems more or less reasonable to me. Do users of the win32 binary version help the community? They obviously aren't going to be sending back patches any time soon.
lumi Give them the source and a compiler, they might 13:34
Anyway they can certainly write scripts etc
theorbtwo lumi: They're certianly free to get the source and the compiler, and stop using the version with the time bomb.
lumi I don't know X-Chat that well, but ISTR it had a scripting arch
audreyt oh. hm. interestingly, GPLv3 now explicitly states that it is irrevocable
in the current draft
xinming lumi: do you mean distribute it with perl or a bash, or cygwin?
merlyn but what could that mean?
theorbtwo audreyt: Note that the wired article says that they're revocable even if they say otherwise. 13:35
audreyt (GPLv2 didn't do that; neither does Artistic[12])
theorbtwo: right, but opinions differ on that
merlyn I can certainly release version 3 under one license, and version 4 under another one
if I'm the copyright holder
theorbtwo OTOH, the WP article says that you might be able to make a promisory estoppel claim.
lumi No, most IRC clients have embeddeds scripting, I think X-Chat does as well... (Or does it use perl?)
xinming feels confused by Licenses... :-/
audreyt merlyn: sure, this has more to do of whether you can go back and say version 3 cannot be used under that license anymore
merlyn has the same feeling about lawyers in general
theorbtwo merlyn: You can, but the question is if you can make the old license no longer apply to version 3.
audreyt thinks it's a Very Good Reason to avoid licenses altogether and simply disclaim copyright 13:36
merlyn that would already make sense
if I got software from you under a certain license, you shouldn't have unilateral rights to terminate that license
that's a biased agreement
audreyt merlyn: sure, but for future users
Limbic_Region only question I have with disclaiming copyright is if someone is then able to copyright it themselves?
merlyn you should have rights to terminate *if* I fail to meet certain clauses 13:37
xinming lumi: It doesn't need the full perl, and also, Do you need x-chat to install with the perl distribution?
13:37 stevan joined
audreyt Limbic_Region: no, copyright cannot be obtained like that 13:37
Limbic_Region: but you can combine it with other copyrighted work of yours
and claim that the whole, or the derived product, or the compilation, is copyrighted by you
merlyn Oh. that's how irrevocable could mean. once put out there, it would be forever under that license to all future users.
lumi xinming: You mean, would I require X-Chat to come with a full perl?
audreyt and set whatever term.
merlyn interesting
ruoso I think the problem is: "The GPL purports to grant a new license from the original grantor, rather than each succeeding author of a program granting a sub-license to the next"
audreyt ruoso: right, that's the crux of the problem 13:38
merlyn Oooh. how could that work?
especially if it's a derived work
ruoso I don't have a clue
merlyn it means I would own your work if you derive.
ruoso no
lumi Doesn't it licence you to licence it under the same or compatible terms?
merlyn if I have the right to control its license, then I own it
ruoso because a second agreement is needed to transfer the proprierty
theorbtwo en.wikipedia.org/wiki/Public_Domain#Case_law 13:39
merlyn in any case, this is confusing
the gplv3 track at FISL is today
xinming hmm, eg, someone ever wrote a software. and the authoer(someone) doesn't maintain it, and another one wants to maintain that, after a period, the whole software is rewritten, Can that author(maintainer) redistribute his version in different license?
merlyn I imagine RMS will have a lot to stay
xinming lumi: thanks...
merlyn to say
audreyt Limbic_Region: so, in practice, a copyright disclaimer (SQLite) versus a BSD/MIT license is that
Limbic_Region listens closely
audreyt the former no longer requires attribution for derived works, and may not be revoked. 13:40
that's it.
Limbic_Region would rather not copyright/license any of his code other than I wouldn't want anyone else to be able to prevent others from using/enjoying it
audreyt Limbic_Region: right... so if I take SQLite, derive from it, claim it mine 13:41
lumi But it doesn't keep free
audreyt that's entirely OK
but it doesn't prevent you from grabbing the same SQLite I took.
in that regard it's exactly the same as BSD.
Limbic_Region is fine with that
Limbic_Region is even fine with someone taking my work and selling it
merlyn although BSD requires a tip-o-the-hat to the originator
sqlite disclaims that
audreyt yup
xinming lumi: that's what I mean... In fact, Windows isn't for people who wish to compile something, even in VC... It's a pain if the system crashed.... In Gnu/Linux, at least, If the X window doesn't work, you can switch to console go on working while your repairing(or upgrade) the system...
merlyn the BSD license is very close to the artistic license
theorbtwo It does, yes. That makes it a license, and one without consideration for the author, and thus revokable. 13:42
merlyn except for the "don't call your thing Perl" part
ruoso so... if you say "public domain" and put on sourceforge... no way to revoke...
audreyt merlyn: right, but Artistic 2.0b14 added some more bits
merlyn: patent retaliation, more prominiently.
merlyn Ugh. I didn't get the memo. :)
ruoso is getting back to the case_law
merlyn will have to go read now
audreyt and also that TPF retains the right to update the terms for Artistic2
lumi xinming: Although making a further buck on the backs of people who are already stuck in Windows (usually because they don't even know about an alternative).. A bit mean 13:43
audreyt which seems to apply automatically, but that worries me, so I wrote to allison (but havn't got a reply yet)
merlyn so the license is legally held by TPF rather than Larry now?
that's good
audreyt yup
it's in general much better than A1 :)
merlyn TPF has automatic survivorship
audreyt allison++ # Artistic2
merlyn Larry, on the other hand, is not bus-compatible. :)
theorbtwo Bus-compatable? 13:44
merlyn big bus hitting larry
audreyt theorbtwo: TimToady is suspectible to bus errors
merlyn the classic "oops" scenario in software design
theorbtwo Aaah!
merlyn and organization design
particle_ bus error: passengers dumped
lumi The ol' exploding bus trick 13:45
theorbtwo But what happens if TPF goes bankrupt, and is forced to sell the right to change the terms of the Artistic 2?
merlyn "sorry about that, chief"?
audreyt theorbtwo: then... well, we're screwed.
merlyn purchased by Guido. :) 13:46
xinming hi, by the way, Do you here believe perl 6 will change the world, and becoming popular quickly rather than scaring people to learn perl 6 programming language? :-)
audreyt (which is why I find the new clause worrisome)
xinming: Perl6 already changed my world... :)
xinming As for now, there are too many things to learn in perl 6 even if you are from perl 5. :-/
theorbtwo This is one reason that the GPL doesn't allow switcheroo, but rather "any later version, at your option".
audreyt theorbtwo: Arttistic up to 2.0b5 at least does that as well
it's a new feature in b14
xinming audreyt: well, I mean the world. If that is what you mean, I should say, you and pugs changed my world... :-)
audreyt xinming: yeah. work on docs/Perl6/ in the pugs tree! 13:47
read the overviews, see if it makes sense, report quesions, etc
merlyn Flavio wants me to bring up the sin/time/divide/regex issue in this channel when both audreyt and pmichaud are around
xinming :-)
merlyn just to see how the current implementations deal with the issue
I've already discussed the problem with both Larry and Damian earlier in life, but that was before implementations were as far along 13:48
fglock yup - like how the parser will tell things like 'func / ...' from 'func / rx /'
theorbtwo Um, what sin/time/divide/regex issue? I know a divide/regex issue, but what do sin and time have to do with it?
merlyn sin and time were my examples for prototypes
sin / vs time /
theorbtwo Ah.
merlyn and userfunc1 / vs userfunc2 / 13:49
in the face of prototypes
audreyt fglock: circumfix // versus infix / ?
merlyn: thank god perl6 has only three prototypes
nullary, (optional) unary, and listop
merlyn but that still triggers the problem
nullary vs listop
so that means that you *must* execute code that defines prototypes during *compile* time 13:50
and if so, the state of the symbol table has changed, and is that packaged alongside the P6AST for use in later stages?
that's my current curiousity
since the code that defines the prototype for userfunc1 can also set the variable $foo to "bar", and then append "x" to it, is "barx" included in the P6AST 13:51
audreyt oh ok, that
that's a solved problem :) 13:52
as you observed, the parser must keep an execution environment
known as a "object space"
anything that may be referred to from runtime, including the symbol table 13:53
needs to be serialized and stored as part of the AST
(more like, alongside the AST)
each .pm file is separatedly compiled that way 13:54
when we say the "main AST" we really mean
"the AST structure accessible from the &Main::MAIN object in the serialized object space"
theorbtwo Seperately compiled? What happens when A.pm sets something in Main, then B.pm looks at it during compiletime, and compiles differently based on if it's set or clear? 13:55
audreyt theorbtwo: the doctrine of separate compilation says
each .pm file must be compiled without access to other compilation unit's object space
the only thing allowed is explicit import via "use"
and it's a clone, not a shallow shared copy.
beppu just out of curiosity, has anyone written a tutorial on perl 6 for people coming from perl 5? 13:56
theorbtwo Hm, that places a limit on dynamicasim, but I don't think that's a big problem.
audreyt so, that means the compiler has to work as-if each .pm file is compiled in a different process
particle_ beppu: i think that's called the pugs test suite :)
audreyt and effectively makes macros (and other language-changing things) lexically scoped.
(because you can't redefine what "if" means and affect other modules that does not import you.) 13:57
we came up with this in the Toronto hackathon, and it's a good doctrine :)
beppu I figured it was too early for a tutorial. ;)
audreyt beppu: it's not - see docs/articles/tpr.pod
beppu thanks 13:58
audreyt also, docs/Perl6/Overview/*
there are also various other tutorials available on the web
probably they belong to docs/Perl6/Tutorial/.
xinming beppu: read synopsis. :-) since perl 6 changed much in grammar :-)
theorbtwo Oh. I probably knew that doctorine then, then.
audreyt it might be even you who raised this discussion (or was it nothingmuch.) 13:59
13:59 merlyn joined
merlyn bleh. my screen emacs went sour 13:59
But what I saw, looked like it addresssed the issue
audreyt cool :) 14:00
merlyn this also means that every compiler has to have an execution context
audreyt there's no longer action-at-a-distance
if your main.p6 says
merlyn is that the case?
audreyt use foo;
use bar;
foo cannot ever affect how bar is compiled.
(unlike in p5)
merlyn Oh. that's cooler
except that I've used that to work around bugs. :)
audreyt merlyn: it's called "doctrine of separate compilation"
merlyn so now I will have to have other hooks to do that.
audreyt yeah, you can use 14:01
merlyn after use bar, I can poke into bar's space, right?
beppu xinming: The synopses look useful. thanks.
audreyt module bar; use foo; class foo:::moose is extended { ... }
and even override their symbols etc, or itnroduce pre/post hooks
xinming beppu: yw. :-) I'd say most people read synopsis as a start of learning perl 6. :-)
audreyt so all the dynamic klugability is still there 14:02
it's just not allowed to affect the static (compile time) part.
merlyn: also larry ruled (during OSDC.il) that if you say 14:03
./pugs -O moose.p6
xinming audreyt: in docs/Perl6/ Is the document mirrored from @Larry's synopsis?
audreyt: hmm, in docs/Perl/Spec/
as the doc in Spec isn't up-to-date
audreyt then the dynamic extension can be forbidden by the optimizer
xinming: it is, and clkao is supposed to help keeping the mirror current by fixing the merge process... 14:04
clkao: got any luck adjusting the merge ticket?
xinming: it's temporarily out of sync. thanks for the reminder
14:05 FurnaceBoy joined
xinming audreyt: hmm, IMO, why should spec in docs? as we can create a small script to dynamically download it, and rename it. :-/ 14:06
audreyt xinming: oh, I have that script 14:07
14:07 justatheory joined
audreyt xinming: you think it makes more sense that way? 14:07
xinming: can you fix Makefile.PL in docs/Perl6/Makefile.PL so it does that? 14:08
the renaming table is
01 Overview 02 Syntax 03 Operator 04 Block
05 Rule 06 Subroutine 09 Structure 10 Package
11 Module 12 Object 13 Overload
xinming audreyt: No, what I think is, we don't need the Spec dir in Perl6 yet, as every time we need it, eg, call make install and no need for people to maintain it... Since all of us like laziness. :-) 14:09
merlyn now we just need to get some complete end-to-end solutions that work fast, and get people using perl6. :)
audreyt the upstream is svn.perl.org/perl6/doc/trunk/design/syn
merlyn: working on that! :)
merlyn Yup
fglock's work sounds exciting
audreyt it is very exciting, as I suspect people don't only want end-to-end 14:10
merlyn now we just need either ponie or larry's p5-to-p6 working, and life is good
audreyt they want end-to-end-that-hooks-to-existing-end
unfortunately, p5-to-p6 has no champion
(neither does ponie at this point)
merlyn well - if the p6 rules can be subclassed to provide a p5 translater, that'd be interesting. :) 14:11
given that p5 is a semantic subset...
so once we get the p6 compiler written in rules, then the rules can also be tweaked to parse p5 14:12
audreyt (afk, bbiab)
rgs sounds doubtful
theorbtwo wonders if you could convert perly.y to p6 rules. 14:13
Even better, if you can generically convert yacc grammars to p6 rules.
merlyn the interesting parts of perl5 parsing is not the perly.y, but the interaction between that and the lexer.
theorbtwo ...and how hard it is to do the insanity that perl5 does to yacc's output after that.
merlyn so it might be faster to come at it from subclassing the p6 rules 14:14
theorbtwo Hm.
merlyn leveraging off the semantics already computed
theorbtwo You have to start somewhere, and I bet perly.y is closer then perl6. I'm hardly an expert on perl5 internals, though. 14:15
RGS?
14:15 KingDiamond joined
rgs perly.y might be clearer, but fear the dark side of toke.c 14:15
merlyn I bet perly.y and p6-rules will be closer than most people realize
fglock theorbtwo: I've been experimenting with that - I think we could have a special "rule" that implemented bottom-up
particle_ theorbtwo: that seems to be a perl6 problem, not enough people with perl5 internals expertise 14:16
merlyn they have to have a common look, because the core semantics of Perl are still common
rgs "not enough people with perl5 internals expertise" is also a perl5 problem
make babies !
particle_ this is true
theorbtwo Heck, it's a large part of the reason for the perl6 project in the first place, as I understand it.
xinming audreyt: is your svn script for Perl6/Spec in pugs tree? if it is in, where I can find it... If It's lost.. I think I have to write myown. :-/ 14:24
beppu If I wanted to type a hyperoperator in emacs, you would I do it: (For example, >>*<< with the >> and << turned into unicode chars.) 14:30
s/you/how/
theorbtwo beppu: docs/Quicref/Unicode, or something like that... 14:31
beppu thanks
xinming it seems, we have to lookup up the character in unicode table many times... :-) 14:32
theorbtwo svn.openfoundry.org/pugs/docs/quickref/unicode
beppu What's the difference between a logical && and a junctive & ? 14:35
particle_ a junctive like a set, one value that contains many. 14:38
& and | are used to create the junctions, eg. (42&7) creates a junction of two values, 42 and 7 14:39
using 'and' semantics
(5|3) creates a junction with 'or' semantics 14:40
see S03, 'Junctive operators' section for info on the ops
beppu my $junction = 42 | 7; # is something that stands for (42|7) ?
14:41 vel joined
particle_ $junction would contain a junction of two values 14:42
$res = $junction + 4; # $res contains (46|11)
beppu that's a trip. 14:43
particle_ this came out of perl5's quantum::superpositions 14:44
beppu I like it. 14:46
It seems like pugs has already implemented a lot of Perl 6. What's left to implement? 14:47
particle_ there's a TASKS file in the root, for a start 14:49
beppu cool. you've all documented this project well. 14:50
particle_ i'm just an observer. i got my commit bit at yapc::na last year, but haven't committed anything yet :) 14:51
theorbtwo Hm, is it the case that ?($x & $y) == ?($x && $y), always? 14:55
particle_ i don't know what a junction returns in boolean context 14:57
theorbtwo Nor do I. 14:59
xinming :-) I think it might be... 1|2 --> true, 0|0 --> false, 0|1 --> true, 0&1 -> false, 1&2 -> true, :-) 15:02
I'm not sure...
beppu I thought _ was going to be a string concatenation operator, but I don't see it mentioned in svn.openfoundry.org/pugs/docs/Perl6...erator.pod 15:06
How is one supposed to concat strings together? 15:07
integral beppu: ~ now
beppu i see.
15:08 _bernhard joined
beppu ~ seems to be the prefix for anything stringy.. although, I'm not sure I understand the concept of shifting strings. I tried ~< and ~> in pugs, but I wasn't sure what to make of the results. 15:09
What does it mean to shift a string left?
particle_ junctions in binary context aren't tested in t/junction/ 15:10
theorbtwo beppu: We're still struggling with that a bit.
In general, you think of the string as a long binary number, shift that, then think of it as a string again. 15:11
beppu that's what it kinda looked like.
theorbtwo And yes, ~ is supposed to mean stringy, in general, just as + means numeric, and ? means boolean.
beppu kindof like a hyperoperator for chars...
theorbtwo Well, kind of, except for overflow. 15:12
?eval "\x[80]" ~< 1
15:12 evalbot_10048 is now known as evalbot_10049
evalbot_10049 "\d[0]" 15:12
beppu no saturation
theorbtwo That should probably be "\d1\0".
That is, chr(1).chr(0) 15:13
beppu oh.. you think it should go so far as to prepend chr(1) on overflow? 15:14
particle_ chr(1) ~ chr(0) 15:15
theorbtwo Er, right, sorry.
I think in perl5. It's a nasty habit, but when I write perl5 I still keep getting warnings about @foo[$bar].
beppu I'm trying to imagine how string shifting could be useful.
particle_ i think in perl5, and occasionally in pir. <barbie>perl6 is *hard*</barbie> 15:16
beppu Why would I want to do a bitwise shift on a whole lot of chars at once?
particle_ beppu: think vec()
dunno, but it's there
theorbtwo When parsing from bitty specifications. 15:17
It'd be lovely when I was messing with DVB a while back.
15:17 frederico joined
theorbtwo Perhaps sometime when I'm feeling like going back to it, I'll clean up and release my automagical transcriber. 15:18
particle_ what's the name of the win pugs distro, pxpugs?
maybe pxperl
theorbtwo ...and bitty.pm. 15:19
15:19 xinming1983 joined 15:20 xinming1983 joined 15:21 aufrank joined 15:22 xinming1983 is now known as xinming 15:35 turrepurre joined 15:36 penk joined
audreyt xinming: see my last commit 15:40
svnbot6 r10050 | yiyihu++ | Edit docs/Perl6/Makefile.PL. So that It will update docs/Perl6/Spec from "svn.perl.org/perl6/doc/trunk/design/syn" automatically.
r10050 | yiyihu++ | In docs/Perl6/Spec/, S17.pod(Threads.pod) and S29.pod(Functions.pod) isn't in Spec yet, Added...
r10050 | yiyihu++ | Update files in docs/Perl6/Spec too... :-)
r10051 | audreyt++ | * Perl6::Doc Makefile.PL: tweak it to use LWP::Simple 15:42
r10051 | audreyt++ | instead of /usr/bin/svn to save bandwidth.
xinming :-)
audreyt: thanks
audreyt also, that probably means we can rm the files from the repo and let people download it themselves 15:43
I'll do that
svnbot6 r10052 | audreyt++ | * Threads.pod => Concurrency.pod
r10052 | audreyt++ | * Functions.pod is a better name for Builtins.pod
audreyt done 15:46
Limbic_Region audreyt - is the Pugs release plan changing with all the new directions it is going?
svnbot6 r10053 | audreyt++ | * now that the Spec files can be fetched automatically by
r10053 | audreyt++ | Makefile.PL, remove them from the repo to reduce out-of-sync
r10053 | audreyt++ | errors.
xinming audreyt++
audreyt Limbic_Region: yeah, the 6.2 level spec has been effectively restructured
Limbic_Region is it updated anywhere? 15:47
audreyt you mean the release plan?
I mean the Synopses
the relevant part of synopses renders the once-complete 6.2-level features
incorrect 15:48
Limbic_Region I mean Pugs Apocryphon 1
audreyt oh. the milestones still stand
it's just we can't move toward 6.28.0 without getting the 6.2.0 milestone working again
namely, that binding, assignment and function calls
as well as hashes and arrays
works totally differently now
Limbic_Region ok - even though we are simultaneously working on future milestones too
audreyt that always happens anyway :) 15:49
but there is a logical dependency
Limbic_Region okie dokie -
audreyt and as such I'm not comfortable with declaring "full rules support"
without even supporting the new calling convention
ditto for objects.
on the other hand, it's much easier to implement now. 15:50
(compared to the pesudoreference autodereferncing passthru
morphing container hoops we had to jump through.)
Limbic_Region waits for Xmas 15:52
TimToady audreyt: your ||= //= change did change the semantics, from "succeed once" to "try once".
?...? in P5 is succeed once. 15:53
audreyt apologies. r8899. 15:56
TimToady: so, have you thought (or worked on) the idea of formulating the operator-table parser as rules? 15:58
15:58 SamB joined
TimToady not much. You'd have to capture the same info that the declarations currently capture 16:00
audreyt <%term|%prefix|%circumfix> ...
TimToady and you'd either have to not promise things you shouldn't promise
or mark it as "for bootstrap only" so allowed to recognize a subset.
audreyt elaborate on the capture-the-same-info part? 16:01
TimToady the hard part is capturing new precedence levels on the fly, I expect
16:01 saorge joined
audreyt hm? 16:01
TimToady infix:<!!!> is tighter(*)
audreyt each precedence level is recursively the lower precedence level's "term" 16:02
so each new level recompiles the rule
TimToady yes, but you tend to get into static/dynamic issues.
it can probably be made to work
I just banged my head on it a long time a couple of years ago before I decided not to think about it for a while. 16:03
audreyt I mean, Parsec currently works like that, and granted it doesn't do circumfix
TimToady I have no problem is someone else wants to think about it.
*if
audreyt but if it does, then that makes operators->token much simpler
TimToady operators->token? 16:04
audreyt given a set of operators
with their fixity arity associativity info
generate a set of tokens
each represents a precedence level
"token" rules, sorry
TimToady gotcha. 16:05
audreyt currently the opp engine exists somewhat outside-the-system
conceptually
and it'd be cool if it can be exposed to the user under the match framework 16:06
TimToady what I was thinking about a long time ago was more on the order of how you use a fixed set of rules to interpret an optable
audreyt I'll try to code it up some more tomorrow; just want a sanity check :)
TimToady but if you're allowed to rewrite the "come from" rules then it works.
audreyt yeah, I think it's inevitable
of course we can always cheat 16:07
and have them recursively call a dynamically interpolating
"construct_the_next_level_from_here"
subrule
which takes a prec as argument
find the next currently existing prec
compile that recursively
TimToady what you run into while parsing is that then you can hit an intermediate level
audreyt and return the term rule.
TimToady between your current prec and the constructed
audreyt I think you always has to passthru. 16:08
(that's what parsec does)
(because otherwise it can't be made to work)
TimToady don't grok passthru while running a fever
audreyt aww. gesundheit
passthru means if you have three prec levels
* + err 16:09
and you see "1 err 3"
it always pass through the *-level and +-level <term> first.
TimToady you can theoretically construct another level while in the middle of all that.
audreyt but that level gets a number 16:10
TimToady 1 + do sub infix:<!!!> ...
audreyt so if it's lower than current, it works transparently
but if it's tighter... I see your point.
if it's tighter, we need to recompile.
TimToady yeah. but again, it's fine for bootstrap or for error reporting. 16:11
xinming what does junction return in bool context and list context?
TimToady list context is easy--it's just a scalar.
audreyt it doesn't flatten, that is
TimToady in boolean context it just does whatever the junction specifies. 16:12
audreyt and returns a boolean
TimToady when you say "if any(@x) == 1" you're always evaluating an any() in boolean context, albeit after the == has transformed it to a different any(). 16:13
audreyt TimToady: actually, now I think about it, a doubly linked list between level-tokens fixes that. 16:14
if you insert a new level that's looser when you are parsing one level
TimToady fine, you've just constructed an op table. :)
audreyt the reduce can find the newly compiled level by looking up that globally linked list :) 16:15
er, it's a list of compiled tokens for each prec level, but yeah, operationally it's equivalent :)
(wouldn't do what you expect it to do if it is not :))
TimToady how to specify precedence on a token? 16:16
pmichaud audreyt: btw, I'm currently reworking (and adding comments) to OPTable.pir
audreyt: (but it's the OPTable.pir that is in the pge-pm branch of the parrot repo)
audreyt TimToady: each token when compiled gets a rational number 16:17
TimToady I prefer strings...
audreyt TimToady: it uses that number when entering "term" position
ok, a rational number serialized to ASCII 16:18
TimToady isomorphism++
audreyt when it enters "term", it calls interpolating-tighter-level
(which can be memoized)
which returns the next tighter token 16:19
or the original "term" if it's the currently highest prec.
that function gets the rational string as input
TimToady I just think strings are easier to diff than things with different divisors.
(for human visual diff, I mean)
audreyt ok :)
sure
anyway. when it finishes parsing 16:20
the "term"
TimToady plus you get surreal precedence for free, if you need to introduce infinities.
audreyt the term-token returns the match 16:21
as well as its rational string
now the upper-token can recheck if a new level as since been introduced
and redispatch to that
again that is suspectible to memoization 16:22
Juerd Results 1 - 2 of about 3 for "surreal precedence". (0.33 seconds)
TimToady lazy passthru you mean?
audreyt yes.
TimToady probably both of them me...
audreyt pmichaud: ooh, didn't know there's a branch
excellent, I'll sync up
Juerd Since Google only points to wall.org and a #perl6 log... What's surreal precedence?
audreyt Juerd: it's an encoding for "is tighter" levels 16:23
pmichaud audreyt: I just started the branch this morning -- there are a number of changes I want to introduce but I don't want to block punie/apl/pheme in the process
TimToady when you add new prec levels on the fly, it's done by lengthing the string to be le or gt shorter strings
basically every string ends with a sentinal that puts it in the middle of the next set of precedence levels. 16:24
Juerd So it's just implementation, not language?
TimToady yes
Juerd Pfew.
Thanks :)
TimToady In P6 everything is relative to existing prec level.
pmichaud juerd: want a detailed example?
Juerd pmichaud: Well, one might be useful in a somewhat more permanent place 16:25
audreyt Juerd: and I call them "rational string" because
LooserThan {} -> prec - 1 % (denominator prec * 2)
TighterThan {} -> prec + 1 % (denominator prec * 2)
pmichaud Juerd: okay, I can add one
Juerd Like, documentation, or a wiki
TimToady Except you don't get infinities with that.
audreyt TimToady: where is infinities used?
pmichaud in PGE, it's looserthan: -> substr prec, -1, 0, "<"
audreyt and what does it mean anyway? :)
pmichaud tighterthan: -> substr prec, -1, 0, ">"
TimToady with string, you can add a character +1 or +1 for tigher/looser, or 0 or 255 for "infinity". 16:26
It probably isn't the way you want to do parens anyway...
audreyt it isn't... 16:27
audreyt tries to think of a use case
but I can get that if I say *3 or *4 above.
TimToady I think anything with brackets should always switch to top-down.
audreyt but anyway, it's really trivia :)
TimToady yes.
it's more inspired by surreal numbers than isomorphic to them.
audreyt TimToady: uh, wait 16:28
1 + ( 3 * 4 ) # top-down?
I believe both pmichaud and fglock uses circumfix:<( )> here
TimToady if you're doing op prec, the () is a term to the +.
audreyt circumfix can appear at term position... 16:29
pmichaud audreyt: yes; TimToady has suggested that bracketing things should be done top-down, I just haven't convinced myself of it yet
audreyt the parsec one does it with topdown
TimToady Let's you take the infinites out of op prec.
audreyt by redispatching anything in postcircumfix or circumfix back to the term table
TimToady basically anything inside () is infinite tighter than anything outside, so might as well be top down.
It just becomes a rule parameterized by terminator. 16:30
or terminator set.
audreyt or terminator governors.
TimToady governators... 16:31
basically the subrule promises "I'll be bock."
16:31 FurnaceBoy joined
audreyt proto 'circumfix:( )' is equiv('term:') 16:31
TimToady sure, on the outside. 16:32
inside/outside is the same surreal experience as left/right listops.
pmichaud maybe proto 'circumfix:( )' is equiv('term:') is parsed(&subexpression)
TimToady only with a different governator.
audreyt pmichaud: how does it work with parrot opp? 16:33
when you drop into the :(, you get back to the toplevel?
pmichaud circumfix is in the opp table
audreyt (prec-wise)
s/toplevel/lowest-prec level/
pmichaud a circumfix open is considered lower precedence than any other op except the close
audreyt ah right. 16:34
ok, that's what TimToady meant by infinities
pmichaud how about ternary? Currently PGE treats ternary as a special form of circumfix 16:35
TimToady maybe surreal rationals would work... :)
I think it's a special form of infix.
pmichaud that too :-)
audreyt ternOp pre post syn = (`Infix` AssocRight) $ do symbol pre y <- ?parseExpWithTightOps symbol post return $ \x z -> Syn syn [x, y, z] 16:36
translated:
TimToady where the is parsed just goes and looks for two expressions with :: between
pmichaud er, !!
(or did you change that again?)
TimToady *!!
audreyt it's infix associated to the right, with a customized "is parsed" between them
TimToady I have to run, any questions hanging fire?
pmichaud PGE essentially does that as well 16:37
I have no burning questions atm
audreyt that is, the custom "is parsed" makes the infix operator itself "fat"
in (1 ?? 2 !! 3), "??2!!" is a infixop
TimToady: fine here :)
pmichaud audreyt: right, I get it, np
audreyt only thing I don't understand is that where does it get the in-part
pmichaud right. I think I'll stick with what I have for now :-) 16:38
audreyt I mean, currently I hardcode it so it parses one level looser than it
so
1 ?? 2 => 3 !! 4
can work
but should it?
(=> is loower than ??!!)
TimToady not allowed in Perl 5. 16:39
audreyt but p5 allows
1 ?? $x = 5 !! 6
and = is also one level lower.
TimToady = is tighter
audreyt it is?
pmichaud it is?
TimToady er...
audreyt no way
TimToady blame it on the fever
audreyt blames the fever
so, anyway, that is the one inconsistency I've always wondered. 16:40
pmichaud isn't => the pair constructor?
(in p6)
audreyt pmichaud: yup
same level as =
pmichaud so it's tighter than ?? !!
audreyt nope.
see S03
TimToady I don't know when that snuck into P5. I distinctly remember deciding the other way...
pmichaud oh, that's new
audreyt so, we can "fix"this
by swapping ??!! with = 16:41
that's all
fg
for the next level is listfix
and that is surely bad.
$ print(1 ? $x += 4 : 5)
4
pmichaud what's the rationale for => same as =? 16:42
TimToady ah, just cancelled my appointment, so don't have to run.
audreyt "blame" says 16:43
----------------------------------------------------------------------
r8273 (orig r6653): larry | 2005-11-24 00:07:44 +0800
- nonchaining binary => but does cmp <=> .. ^.. ..^ ^..^ till
+ assignment = := ::= += -= **= xx= etc. (and also =>)
TimToady primarily to make a => b => c => d right associative
audreyt ah. right. I remember that
TimToady because that's Lisp's '.'
audreyt "=> now reads "cons""
TimToady for some definition of "is" 16:44
pmurias pm: IMHO they both imply relationship
pmichaud I'm just thinking of autoquoting
audreyt TimToady: oh btw 16:45
pmurias pm: and they share 50% of the syntax :)
audreyt func( name => 42 )
vs
func( $flah ?? name => 42 !! foo => 10 )
TimToady speaking of autoquoting, yesterday I was thinking about BNF: <ident> ::= ...
audreyt there is no parens, and I wonder if it's a named form or a pair literal.
TimToady but it was an idle notion.
audreyt (current spec has it as pair literal) 16:46
but I guess you can always say
func( *($blah ?? name => 42 !! foo => 10) )
so pretend I never asked :)
masak uh, in languages/perl6/lib/grammar_optok.pge, should proto 'postfix:--' really be equiv('postfix:++')? seems strange
audreyt masak: same as p5 (and everyone else), no? 16:47
masak audreyt: I don't know
audreyt TimToady: so... I think allowing => inside ??!! is useful
theorbtwo masak: It's not saying that they have equivelent effects, just equivelent precidence levels.
audreyt and other assignments probably not that bad (p5 does it anyway) 16:48
masak theorbtwo: ah
thx
audreyt TimToady: so maybe juptaxose the levels?
TimToady except wouldn't that parse as
($blah ?? name => 42 !! foo) => 10
audreyt not if => is tighter
both are rightassoc
TimToady juxtapose doesn't mean swap 16:49
rw-rw-r-- audreyt: Awesomest. Spelling of juxtapose. Ever.
audreyt ok. barter them, then
1 + 2 * 3 # 2*3 first
TimToady I never make snap judgements about precedence... 16:50
audreyt 1 ??!! foo => 4 # foo=>$ first
(treating anything inside ??!! as invisible)
theorbtwo Oh!
theorbtwo finally sees what you meant about it being infix.
audreyt sorry if I wasn't clear :) 16:51
theorbtwo You see the ??, and grab stuff until the !!, and parse it seperately.
pmichaud so, ternary really becomes more circumfix than infix, in that $a = $x ?? $b = 5 !! 7 the ?? is tighter, but the = inside of ??!! is looser than ??
theorbtwo You were probably clear to everyone who has written a real compiler.
16:51 DaGo joined
pmichaud s/looser/tighter 16:51
TimToady you're basically turning ??!! into () from the inside view
audreyt righ 16:52
t
TimToady but I don't think that helps the right side
theorbtwo No, sorry, that was me being distracting.
audreyt which is what the problem was
indeed
TimToady $w = $x ?? $y !! $z would break if we swapped prec
audreyt ?eval 1 ?? 2 => 3 !! 4 => 5
16:53 evalbot_10049 is now known as evalbot_10053
evalbot_10053 ((2 => 3) => 5) 16:53
TimToady and would definitely not be what a C programmer would expect.
audreyt how does p5 do that then
pmichaud right. From a PGE perspective, I think I need to be able to offer the traditional semantics for other languages
audreyt it's as if the ? side and : side behave with two precs.
pmichaud even if Perl 6 does it differently
audreyt ok then... 16:54
so, the prec stays the same
TimToady I think I'd rather just get a syntax error on = inside ??!!
audreyt the evalbot behaviour above remains
16:55 lumi joined
audreyt and the thing inside ??!! is by normal prec level 16:55
which makes = inside it an error.
TimToady and => inside ??!!
audreyt "normal" defined to mean "whatever ??!! does"
TimToady our conversation looks really exciting??!!
audreyt indeed??!! 16:56
pmichaud (btw, this is why PGE_OPTABLE_TERNARY appears just above PGE_OPTABLE_INFIX and just below PGE_OPTABLE_POSTCIRCUMFIX -- it has aspects of both)
TimToady to get a syntax error on $x ?? $y = 1 !! $z requires governator of both max precedence and !! 16:57
pmichaud PGE sees that as an unclosed ?? 16:58
(when it hits the '=')
16:58 elmex joined
TimToady good, but I presume the precedence is currently hardwired rather than passed in as a parameter 16:58
Juerd Would $x ?? ($y = 1) !! $z still work?
TimToady sure 16:59
pmichaud juerd: yes
Juerd Ok
TimToady I don't mind forcing parens where people would misparse visually anyway.
pmichaud TimToady: depends on what you mean by "hardwired". It's hardwired in the same sense that the circumfix operators are
i.e., one can do looser(ternary:?? !!) or tighter(ternary:?? !!) and it does the right thing 17:00
TimToady okay, it's not top down on ??!! currently. 17:01
pmichaud right
TimToady I'm just saying if it were top down there, you'd have to parameterize with prec as well as !!
pmichaud right
audreyt right, that's what I do currently
and I had to arbitarily add 1 to it
and I'm happy it can be gone :) 17:02
TimToady we aim to please.
and sometimes that's fun. :)
audreyt :)
pmichaud back to updating the opp
TimToady I should probably whack some on S03 then. 17:03
never documented ()= stuff yet either.
'cept on p6l
audreyt TimToady++ 17:04
audreyt goes looking at pmichaud's branch
pmichaud audreyt: no commits there yet -- look again in a couple of hours
TimToady then it makes it easy to look at. :)
audreyt perl5.004 has 1?$_=2:4 support 17:07
(perl1..4 doesn't it seems)
not sure about anything before 5.004. 17:08
17:09 kakos joined
TimToady and there's always do if 1 { $_ = 2 } else { 4 } now, so that also says we probably shouldn't change the precedence of = vs ??!! 17:14
that is, if we have both low and high prec versions, they should stay apart.
audreyt right. the only wart is 1??2!!3=>4 17:16
but that's only because => was much tighte 17:17
r
pmichaud pge would currently parse that as 2 => 4
audreyt if it were thought as fat-comma (i.e. one level looser than it currently is)
?eval 1??2!!3=>4
evalbot_10053 (2 => 4)
audreyt then the 2=>4 interpretation is natural.
TimToady the unnatural thing is 1 ?? "a" !! b => 4 autoquoting b and then throwing it away 17:23
since most pairs are autoquoters
particle_ ?eval $a = 1; $b = $c = $a; $b++; say $c;
TimToady maybe we could detect that and carp
evalbot_10053 Error: Undeclared variable: "$a"
particle_ how do i set $x and $y to the same initial value, but let them vary independently? 17:25
integral my $x = my $y = 1234; ? 17:26
TimToady ?eval my ($a,$b,$c) = 1234 xx Inf 17:27
evalbot_10053 (\1234, \1234, \1234)
TimToady cool
I wonder if postfix xxx is xx Inf?
particle_ ?eval my( $a, $b ) = ( 0 & 1 ) xxx; say 'false' unless ?($a & $b) == ?($a && $b); 17:30
TimToady ?eval my ($a,$b,$c) = 1234 ... :by(0)
evalbot_10053 Error: unexpected "x" expecting comment, operator, ";" or end of input 17:31
particle_ no on xxx
?eval my( $a, $b ) = ( 0 & 1 ) xx Inf; say 'false' unless ?($a & $b) == ?($a && $b);
evalbot_10053 Error: unexpected ":" expecting operator, comment, ";" or end of input
TimToady that was "is" in the "have I discovered a missing feature" sense.
evalbot_10053 (no output)
particle_ ?eval my( $a, $b ) = ( 0 & 1 ) xx Inf; say 'true' if ?($a & $b) == ?($a && $b); 17:32
evalbot_10053 (no output)
particle_ is there a shortcut for postfix x Inf?
17:33 azuroth joined
TimToady not that I know of 17:33
particle_ if xxx is short for xx Inf, one might suspect xx is short for x Inf
TimToady no, the analogy is the difference between .. and ...
not the difference between . and .. 17:34
particle_ that makes sense
TimToady but maybe that means Inf is just badly Huffman coded.
audreyt will that make perl programs not passing cyberpatrol?
particle_ ?eval my( $a, $b ) = ( 0 & 1 ) xx Inf; ?($a & $b) == ?($a && $b) ?? 1 !! 0; 17:35
evalbot_10053 (no output)
audreyt ponders if evalbot should build optimized
particle_ well, i obviously need to work on my perl6 syntax 17:36
audreyt no, that means diverging
TimToady ?eval my ($a,$b,$c) = 1234 xx āˆž
evalbot_10053 Error: unexpected "\RS" expecting comment or term
audreyt as in, you run into the "we didn't know how lazy Array containers were supposed to work" situation.
TimToady ?eval my ($a,$b,$c) = 1234 xx 17:39
evalbot_10053 Error: unexpected end of input expecting end of input, comment or term 17:40
TimToady ?eval my ($a,$b,$c) = 1234 ...
evalbot_10053 (\1234, \1235, \1236)
TimToady ?eval my ($a,$b,$c) = 1234 ..
evalbot_10053 Error: unexpected end of input expecting end of input, comment or term
TimToady ?eval my ($a,$b,$c) = 1234 .. * 17:41
particle_ is there a hyper = ?
evalbot_10053 Error: unexpected end of input expecting term
TimToady yes, but hyper isn't particularly lazy
audreyt autopromotion works though.
TimToady and my () = isn't a real = anyway... 17:42
audreyt ?eval (1,2,3) >>+<< 4
evalbot_10053 (5, 6, 7)
audreyt (for the xxx case)
TimToady which probably doesn't make differnce for "my", but
state ($a,$b,$c) >>= 1234 17:43
is likely to do the wrong thing at the wrong time.
>>=<< rather.
audreyt why? 17:44
= and := are "initializers" per S04
merlyn ahh, the docking ring for the spaceship operator. :)
audreyt and hyper forms can be considered initializers as well
TimToady well, maybe we can extend to hyper, but state ($a,$b,$c) += 2 is almost certainly bogus. 17:45
audreyt sure
but then, it's not as useful.
+= wouldn't be an initializer
as it uses the lhs as rval.
TimToady ?eval my ($a,$b,$c) >>=<< 1234 17:46
evalbot_10053 Error: unexpected ">" expecting comment, trait, "=", ".=", ":=", "::=", ";" or end of input
audreyt (currently = is special form not infix and is not hyperable nor foldable)
(which is a bug :))
now that we have my-declarator-sig ruling, I can go fix it. 17:47
TimToady well don't let the fact that it's the middle of the night slow you down... :)
audreyt actually I should sleep first, because I tend to produce erroneous code, like that //=, around this time... 17:48
TimToady there's a good girl
audreyt =) 17:49
particle_ ?eval my( $a, $b ) = (0 & 1, 0 & 1); ?($a & $b) == ?($a && $b) 17:52
evalbot_10053 bool::true 17:53
particle_ that's what i'm looking for.
TimToady though of course one has no clue whether it's actually doing what you think it's doing. :) 17:54
particle_ this is true
in fact, it's not 17:55
?eval my( $a, $b ) = (0 & 1, 0 & 0); ?($a & $b) == ?($a && $b)
evalbot_10053 bool::true 17:56
particle_ wrong!
Limbic_Region has no idea how audreyt is able to sleep 17:58
17:58 fglock joined
Limbic_Region is incapable of shutting brain down in less than 2-3 hours before sleep 17:58
fglock TimToady: ping 17:59
TimToady: ping 18:00
Limbic_Region fglock - he's here but is probably looking at something other than the channel
fglock audreyt: ping
Limbic_Region [13:53] <TimToady> though of course one has no clue whether it's actually doing what you think it's doing.
she just went to sleep
[13:53] <TimToady> though of course one has no clue whether it's actually doing what you think it's doing.
[13:47] <audreyt> actually I should sleep first, because I tend to produce erroneous code, like that //=, around this time..
fglock I've got a sponsor for bringing TimToady and audreyt to YAPC::SouthAmerica in november - I need to know if they can come (or at least if they will think about it) 18:01
Limbic_Region is jealous
when in November btw? 18:02
they both backlog so I am sure they will get the message
fglock you may come too
Limbic_Region well - try convincing that to my wife
audreyt fglock: I can come. 18:03
fglock nov 7-11
audreyt (the yellow light in irssi woke me up. :))
fglock wow!
sorry to wake you up 18:04
audreyt np
merlyn so YAPC::SA is the same as CONISLI, and that's nov 7-10?
fglock merlyn: yes - Brasil-PM is in the CONISLI organizing committee 18:05
merlyn 7-11. ok. great, erasing my september dates reserved 18:06
Limbic_Region fglock - have a english info reference lying around?
audreyt but I really need to sleep now :) 18:08
&
fglock Limbic_Region: sorry, not yet - the link will be www.perl.org.br/yapc/ 18:09
18:09 aufrank joined
fglock Limbic_Region: DaWolf and Mago said they will try to get at least some partial sponsorship for you 18:11
Limbic_Region fglock - no, but I am flattered 18:12
money wouldn't be an issue if I could go
it is the fact that I would be leaving my wife home to take care of our recent addition to the family by herself
fglock yes, I understand 18:13
kolibrie Limbic_Region: does that mean no YAPC::NA either?
aufrank audreyt: have you done any work on adding pugs as a project for google SoC
?
particle_ audrey's sleeping
Limbic_Region kolibrie - if it hadn't been during the week I would have come but yeah - no YAPC::NA either 18:14
fglock kolibrie: may I add the grammar compiler to PCR package? would you add the copyright text?
aufrank particle_: it had to happen some time, I guess
kolibrie Limbic_Region: I'll have to come visit you some time around here then
fglock: you can add it to the PCR package, 18:15
what kind of copyright notice do you want
aufrank what does PCR stand for?
fglock aufrank: I'm thinking about submitting the p6-p5 compiler modules to SoC 18:16
TimToady fglock: I don't see any reason I couldn't come offhand.
fglock Pugs::Compiler::Grammar
TimToady Polymerase Chain Reaction
fglock TimToady: cool - this will be the best YAPC::SA ever (the first one too)
TimToady my social secretary is checking... :)
aufrank fglock: sounds like a really good idea :) 18:17
Limbic_Region kolibrie - I am going to be sending my wife to the Philippines withour daughter next year so I will be more available to go to conferences and what not
kolibrie - but if you (or anyone else) is ever around my way and wants to be taken out for dinner, drinks, and some decent conversation then let me know
aufrank which way is your way? 18:18
kolibrie Limbic_Region: do you or she have ties in the Philippines?
Limbic_Region Baltimore/DC area
kolibrie - heh, yeah, she is filipino (having been in this country 2 years and 3 days)
theorbtwo Happy aniversery! 18:19
TimToady Glo says that time seems to be open.
Limbic_Region theorbtwo - anniversary is in June. Actually, June 12th to be exact which is also filipino independence day - not much chance she is ever going to forget which really stinks for me 18:20
theorbtwo Well, happy aniversary of moving.
Limbic_Region really really really wants to visit SA though and spending time with geeks is always fun
thanks 18:21
theorbtwo Er, you were supposed to relay that -- you aren't the one that moved!
TimToady Is YAPC::SA in PA?
Limbic_Region brazil I think 18:22
fglock TimToady: Sao Paulo, Brazil
aufrank ooh, brazil
Limbic_Region yeah - now you know why I am jealous
aufrank I bet the crab is still better in B'more
fglock busy place, >10million people - so there must be some perl programmers among them 18:23
Limbic_Region yeah - and I am from Maine which definately has better lobster
aufrank yeah, who needs brazil anyway!
fglock :)
Limbic_Region is waiting to win the lottery so he can retire, fund Perl/OS, and travel to all these exotic locale for geek meetings 18:24
aufrank is betting that we'll standardize on emacs/OS long before perl/OS
TimToady s
SP is fine too.
Limbic_Region heh - OS = OpenSource in that case 18:25
TimToady Last time I flew into SP, the plane had two official languages, English and Japanese!?!
aufrank oh... I thought it sounded a little ambitious =P
theorbtwo TimToady: What was the carrier? 18:26
fglock TimToady: they have flights to Japan that go through the US
TimToady yes, LA is the stopover.
I think it was Varig, but I could be misremembering
theorbtwo OTOH, I took a KLM plane from the Netherlands to the US, and everything was in Dutch, German, and English. 18:27
pmurias nserver irc.freenode.org
sorry accidental enter press
TimToady In the SP airport I was conversing with a Brasilian family through a Japanese interpreter. :)
Limbic_Region 's first time to Germany involved landing in Frankfurt, exiting the back of the plane where uniformed men with automatic rifles were pulling passengers aside 18:28
don't think they were speaking english or german but I knew enough not to ask either 18:29
theorbtwo Blink.
What uniform? 18:30
TimToady I would guess the language contained pharyngials...
theorbtwo ...and was this a military flight or a civilian one?
Limbic_Region theorbtwo - military would be my guess - some shade of green
theorbtwo That describes german police too. 18:31
Limbic_Region I was connecting from Amsterdam so that might have had something to do with it
TimToady It's those Dutch terrorists...
fglock TimToady: portuguese seems to be difficult to english speakers - but there are a few success stories 18:32
TimToady It's actually quite similar in vowel structure.
kolibrie fglock: r10054
TimToady both have rather complicated vowel systems.
Limbic_Region heh - in the Philippines there is less punishment for trying to overthrow the government then there is for selling a joint
TimToady but of course it's a romance language, and I never got into any of those... 18:33
German and Greek and Japanese so far. Maybe Mandarin next.
svnbot6 r10054 | kolibrie++ | added documentation and copyright notice
TimToady Or maybe I should go back and actually *learn* German and Greek... 18:34
Limbic_Region TimToady - what about ASL? I remember talking with a Korean prostitute in ASL which would have otherwise made the conversation impossible 18:35
TimToady Ich habe meine Deutsch ganz vergessen...
...
18:35 chris2 joined
TimToady I think, if I ever had the inclination, which I hope I never will, that I would have no difficulty communicating with a Korean prostitute... 18:36
theorbtwo shrugs.
I don't see what her profession has to do with it.
aufrank I'm about to meet with my advisor about plans for the summer
TimToady It's just that some things are easier to mime than others...
aufrank and would like to suggest doing a p6-related SoC project 18:37
Limbic_Region theorbtwo - striking up a conversation with a korean you met on the street isn't an easy task (if you are an american speaking english)
aufrank any ideas for a vaguely computational-linguistics SoC I could try to sell him on?
theorbtwo I wouldn't be at all surprised if prostitutes tend to be one of the more polylingual professions.
Especially ones that hang around airports.
Limbic_Region her profession led to an easier introduction
TimToady I don't think I've ever met someone in that line of work that had difficulty striking up conversations... :) 18:38
Limbic_Region but the only reason I was inclined to talk to her in the first place was that I was suprised to see her using ASL since SL is not universal
theorbtwo It's not even universal amongst people who would speak the same spoken language.
IE ASL != BSL.
TimToady but then, maybe it's only the ones I notice that I notice...
PerlJam Limbic_Region: I think SL is universal, just the signs are different ;)
Limbic_Region PerlJam - could be, I only ever bothered to learn ASL 18:39
aufrank one of our faculty members here is a native ASL speaker, and he tells us that when they have international conferences, a really robust pidgin forms almost immediately
Limbic_Region in any case - she is one of the few people in Korea that I ever talked to outside of work
and I lived there for almost 2 years
aufrank people give talks in this sort of conference-sign rather than their native sign systems, and it all works somehow
Limbic_Region and it wasn't for a lack of trying either
theorbtwo Cool! 18:40
I wonder if this has to do with the... omnipedic nature of signing. It doesn't seem that intuitive, then.
18:41 FurnaceBoy is now known as FB|afk
kolibrie fglock: oh, I changed the example to .pm -> .pmc, too 18:41
Limbic_Region oh, come to think of it - she was deaf and mute
fglock kolibrie: thanks! 18:42
kolibrie fglock: glad to do whatever I can
fglock kolibrie: I can't pay enough attention for actually programming now - too many people around here :) 18:43
the conference site counts 5746 people 18:45
kolibrie fglock: for modifiers, can I convert every :something into { something => 1 } ?
fglock yes - that's what it means in p6, actually 18:46
kolibrie I was hoping to not change the meaning of the language
fglock and :something<param> is something=>"param"
kolibrie and :!something is something=>0 18:47
if I understood yesterday's discussion correctly
fglock oh, I didn't see that 18:48
bbiab
kolibrie colabti.de/irclogger/irclogger_log/...l=481#l699 18:49
TimToady Actually, :something<a b> is something => ('a','b') or some such 18:51
kolibrie TimToady: fglock: hmm, so in Perl5 that would be something => ['a','b'] ? Since I'm translating to PCR-syntax? 18:59
fglock: or do you prefer that I leave it a string and you can figure out what it means? 19:01
19:03 Arathorn is now known as Aragone
Aragone exit 19:03
oops
rw-rw-r-- /
fglock kolibrie: a hashref is better 19:04
the modifiers will be parsed by the p6 compiler (or by the "grammar" subset) 19:05
kolibrie fglock: so :i :p<25> :something<a b> becomes { i => 1, p => 25, something => 'a b' } 19:06
or do you prefer: { i => 1, p =>
25, something => ['a','b'] 19:07
}
fglock the second one
kolibrie fglock: ok
19:12 ZaphodBeeblebrox joined 19:15 penk left 19:26 KingDiamond joined
TimToady kolibrie: yes, you have to maintain the distinction between :foo("foo bar") and :foo<foo bar>, which is more like :foo("foo","bar") 19:29
kolibrie TimToady: ah, yes. Glad you're driving
19:31 Southen joined
theorbtwo Bear is driving? 19:32
aufrank theorbtwo: clerks the cartoon?
theorbtwo Aye. 19:33
aufrank I didn't know that joke had stuck around 19:34
Juerd TimToady: Is it so that postfix <> always implies some other kind af brackets around it? 19:35
TimToady: Or is it its own postfix op?
19:38 larsen joined 19:41 mago joined
pmichaud juerd: < > is its own "op" -- it's essentially qw/ ... / 19:42
Juerd Yes, but even postfix .<>? 19:43
pmichaud yes
19:43 hcarty joined
Juerd Okay. So it could be something else than .(<>) or .{<>}, for other things? 19:43
pmichaud $foo.<a b c> is essentially $foo('a', 'b', 'c')
sorry, $foo{'a', 'b', 'c'}
Juerd That's what I mean by implying other brackets 19:44
pmichaud it's the angles
Juerd The As it's $foo{ <a b c> }
The {} are implied
s/The As/As/
pmichaud From S02: The qw/foo bar/ quote operator now has a bracketed form: <foo bar>. When used as a subscript it performs a slice equivalent to {'foo','bar'}.
Juerd "As a subscript" is rather vague. 19:45
pmichaud "when used as a subscript" is essentially "when used as a postfix .< >"
Juerd Does this mean that :foo<a> is not really :foo('a'), but actually :foo{'a'}?
pmichaud ...looking... 19:46
:foo<a> is really foo => 'a' 19:47
Juerd Oh, of course, :foo is not a term by itself... 19:48
pmichaud as opposed to :foo($a) which is really foo => $a
TimToady :foo<a b c> is really :foo(<a b c>)
and :foo{ mumble } might be either a closure or a hash composer 19:49
Juerd TimToady: And how would that be written in fat arrow form?
theorbtwo But :foo is a unary function?
TimToady :foo isn't a function
It's the front half of a pair
Juerd wonders what foo => <a b c> is
TimToady same as foo => ('a', 'b', 'c'); 19:50
Juerd Is that foo => 'a', b => 'c'? Is it foo => [ 'a', 'b', 'c' ]? Maybe foo => ('a', 'b', 'c')?
I see
:foo<a>, is that foo => 'a' or foo => ('a',)? 19:51
i.e., list or not list?
(the other way around)
TimToady but say 1,<a b c>,5 prints 1abc5 because (...) autointerpolates into a list.
pmichaud that's (foo => 'a', )
TimToady I think it's just foo => 'a' 19:52
via foo => ('a') 19:53
pmichaud I was taking the , as part of the question. (I could still be wrong)
TimToady ok
theorbtwo I really hope that you can put commas between attributes without semantic. 19:58
There are some places where the lack of commas looks really wrong.
20:00 larsen_ joined, larsen_ is now known as larsen 20:08 SamB joined 20:15 justatheory joined
TimToady theorbtwo: I presume you mean adverbs. 20:28
theorbtwo Er, yes.
TimToady basically, you can put commas between them where a term is expected, but not where an operator is expected. 20:29
theorbtwo Sounds lovely.
TimToady in term position, they're just named args in a list
theorbtwo Why aren't they normally written with commas, then?
TimToady but $x .. $y :by(2), :foo($bar) wouldn't parse
I normally write them with commas, but then I'm not terribly normal...
theorbtwo Well, unless you meant @x = (($x .. $y :by(2)), :foo($bar)) 20:30
TimToady I would, however, tend to leave out the commas if they were the first thing a list and I wanted to emphasize that these are before the first positional arg.
yes, I meant it wouldn't parse the way you were expecting if you expected both to apply to ..
PerlJam If only there were a way to leave out the comma on a one element list ... ;-) 20:31
theorbtwo Hm, can you write 3, as list(3)?
PerlJam ($foo,) reminds me so much of python
theorbtwo I'm not sure that's any better, though.
20:31 coumbes joined
Juerd pmichaud: But that would mean that $pair.value would be a List if it was created with :foo<a b>, but not be a List if it was created with :foo<a>... That may be surprising. 20:31
PerlJam (which, even though the parens are only for grouping, I think I'd end up using them always anyway) 20:32
Juerd PerlJam: You have to anyway, because , has low precedence :)
TimToady I think adverb defs just have to be prepared to deal with that. 20:33
PerlJam Juerd: I don't *have* to, but yes, in most cases it would be needed.
Juerd Nobody's forcing you to :P
TimToady If you really mean a list, you can say :foo['a']
*array
Juerd TimToady: I'd expect an Array then.
And we established that there's an important difference between them. OTOH, defining a one-element list makes NO SENSE whatsoever :) 20:34
That is, I can't think of any good reason to use a single element list 20:35
TimToady sure it does, we just usually call it a scalar. :P
Juerd Yea.
TimToady $a is a lovely one-arg list...
Juerd But only in list context 20:36
TimToady lists don't mean anything outside of a context though.
you can perfectly well say it's a list in scalar context too, as long as you define what happens to a one-arg list in scalar context properly. 20:37
20:37 zgh joined
Juerd Well, that's also the big difference with $foo being a list or a scalar 20:37
+$foo and $foo.elems will be different
TimToady $foo is never a list. 20:38
Juerd List.
TimToady except in the 1-arg sense
Juerd It can be a List object, I thought?
TimToady A List by definition hasn't had a context applied to it yet. 20:39
it's the + or the .elems that apply the context.
And List is just a component of Capture these days.
Juerd Yes, but if $a is a List, +$a will return the number of elements, while if it's a Str, +$a will numify the string... Or not?
TimToady so I think users are even less likely to see a List than a Capture.
If we define List to have Array semantics. I don't see all that much reason to. 20:40
pmichaud do we have a really detailed spec for Capture somewhere? I'll probably need a Parrot implementation soon
Juerd I'm incredibly lost.
I can't find a way to match this conversation to the Array/List one we had a few days ago... 20:41
Did things change in between?
(relevant things)
TimToady \($a,$b,$c) is a Capture, not a List
it happens to contain a List if you look hard enough.
Juerd But $a, after $a = (1, 2, 3), is a List.
Scalar comma would return a List, audreyt said, and you were there :) 20:42
Also, :foo<a b c> would be foo => ( a List object )
TimToady well, it's certainly possible that List still has its place in the pantheon, but I don't find it all that useful to think about these days... 20:43
that could just be my fever talking.
these days I think that a List is probably just a Capture that is missing its other bits. 20:44
pmichaud I like that idea
Juerd My questions have little to do with the implementation, though. 20:45
TimToady Don't use List in a real program.
PerlJam can only think of one thing to pare away from Captures to get List. 20:46
what are the others?
TimToady the invocant and the named args
and anything else anyone like Patrick has stuffed into it for various nefarious purposes
pmichaud I don't want to stuff things into Capture, I just want to inherit from it :-) 20:47
20:47 kanru joined
TimToady I'm thinking of mixins as a form of "stuffing in"... 20:47
cognominal TimToady: will be able to explore our inner self like in Moose? (inner as opposed to super). 20:49
TimToady anybody can look at .meta
cognominal I mean to call it.
20:50 KingDillyDilly joined
TimToady Moose is just prototyping all the stuff that we intend to hide behind .meta 20:50
is how I think of it, anyway...
cognominal then we will use macro to mutate the langage to use all that meta stuff?
Juerd Nevermind. 20:51
I'll try again later
TimToady mostly not, unless you want to define your own declarators.
Juerd Thanks for trying to explain
TimToady any method not recognized by Object gets passed on to .meta, so you can usually just say .does instead of .meta.does for instance. 20:52
cognominal ho, I always forget that
btw, the list part of a Capture should translate pretty well in the javascript Argument. 20:54
KingDillyDilly Do you all think it's clear enough that this channel isn't about the current Perl? Should #perl be renamed #perl5? 20:56
Which it will have to be some day.
PerlJam er, what?
KingDillyDilly Now we're even, because I don't understand 90% of what's discussed here. :) 20:57
PerlJam KingDillyDilly: you just lack the proper context for understanding. Gain the context and you will understand more.
cognominal KingDillyDilly: the default Perl is Perl5, if we get out of our way to name this channel #perl6, it is because there is somethin special about it. 20:58
KingDillyDilly I'll wait until I actually need Perl6. Kind of busy to learn it right now.
PerlJam KingDillyDilly: then there's no reason for you to be here :)
TimToady I'm too busy to *not* learn it. :)
PerlJam TimToady: learn it faster! ;) 20:59
TimToady I is peddlin' as hard as might be...
KingDillyDilly I like to see how much I don't know sometimes.
Juerd Perl 6 isn't needed. But it'll be incredibly nice to have.
PerlJam KingDillyDilly: the scope is infinite.
TimToady No programming language is needed in that sense.
Juerd Indeed 21:00
TimToady bare turning machine for you!!!
Juerd But some are much nicer to have than others
21:00 justatheory joined
TimToady *turing 21:00
Juerd A turning machine :)
They have that at the gym
TimToady lathe
cognominal ho, yes Perl6 is needed because now Perl5 looks comparatively so crummy
KingDillyDilly Behind the scenes, maybe. Perl is pretty good to use. 21:01
TimToady I just need Perl 6 to purge the image of flying mugs from my head...
I admit I have a fondness for Perl 5 myself. 21:02
Juerd The image will return when you announce Perl 7 in 2025
I like Perl 5 because I understand it.
TimToady Agh. Where's a bus when I need one?
Juerd I like Perl 6 because it gives me a few more years of learning new stuff.
TimToady Perl 6 is a Capture that is slowly being bound to the Perl 5 Signature... 21:03
Juerd Maybe we should call Perl 5 "Perl, Novice Edition", and Perl 6 "Perl, Expert Edition"
TimToady Or maybe it's the other way around...
Juerd That'll automatically create extra reasons to migrate.
Juerd can't call it upgrade.
TimToady Perl 6, Migraine Edition 21:04
PerlJam There are editions now?!?!?
;-)
KingDillyDilly Anyone here check up on Wikipedia's Perl6 article at en.wikipedia.org/wiki/Perl6#Rules:_...w_regexes? Will there be no regular expressions in Perl 6? They'll really be called rules?
PerlJam KingDillyDilly: well, they were.
TimToady we just change back to regex, actually
rules are now more specialized critters 21:05
KingDillyDilly Good.
TimToady we didn't do it for you :P
PerlJam I wonder how many people we'll confuse though.
KingDillyDilly Putting it on my resume anyway.
TimToady I don't care how many we confuse before 6.0.0 as long as we get it right. 21:06
PerlJam KingDillyDilly++ heh
pmurias TimToady: what do you think of audrey's rules-as-templates proposal? 21:09
21:10 hcarty left
TimToady I agree with the concept of reversible declarations being very powerful concept right up to the point where my brain explodes 21:12
The trick, as always, will be to introduce reversibility in a way
that doesn't force people's heads to explode prematurely. 21:13
(see Haskell)
PerlJam where was this rules-as-templates proposal? It sounds like using them as generators instead of matching.
TimToady basically 21:14
pmurias it's in misc/pX/audreyt
TimToady there's also the notion that you can take a corpus and derive a grammar from it automatically, much like humans learn their syntax.
PerlJam TimToady: that's about where *my* head explodes :) 21:15
TimToady To usefully reverse a pattern matcher, you have to add back in the ideas that were deleting upon pattern matching, of course...
Unless you just want to produce gibberish. 21:16
Juerd PerlJam: Nahh... rule document { .* }
21:17 hlen joined
TimToady Of course, you do realize that that has to generate the longest document first? 21:17
Juerd Ehh... :) 21:18
TimToady Actually, now it can only produce the longest document.
PerlJam so I guess perl6 isn't always lazy
TimToady You'd need .*+ to backtrack.
or .*? to start with the shortest document. 21:19
Juerd Okay, this is where my head explodes.
I'm so glad your head can take a lot more than ours :)
cognominal juerd, hopefully you can backtrack to a place before you head exploded. 21:20
TimToady I just don't always notice when my head has exploded... 21:21
pmurias good night 21:30
KingDillyDilly Getting back to the channel names, I think Perl 6 will be referred to as just Perl eventually. The #perl might need to be renamed #perl5. 21:33
Actually, Perl 6 should have been named "Perl eventually" years ago. 21:35
21:36 aufrank joined
PerlJam I don't think so. #perl will stay #perl. and #perl6 may eventually go away, but in the mean time it'll still be #perl6. 21:41
Juerd Nah, people will just get used to [5] and [6] tags 21:45
:P 21:46
TimToady can create #perl5 and then #perl is only place where you'd need tags. 21:55
22:21 kanru2 joined
Juerd #perl could aggregate #perl5 and #perl6, and add tags :P 22:35
buu Juerd: TAGS?! 22:43
KingDillyDilly: Not you again.
#perl (is|should be) a generic help channel for all versions of the perl. 22:44
Version is irrelevant. You will be helped.
Juerd Let's try that. 22:45
buu =] 22:46
Now they may not know the answer
But the logical course of action is for people who do know the answer to hang out there..
22:46 turrepurre joined
buu But I don't think that diminishes my main point that p6 is just as ontopic as p5 22:47
Juerd The only help I'm getting is Yaakov trying to be funny... 22:48
22:49 mako132_ joined
buu Juerd: Well, yes 22:49
But the same applies to p5 and p4 questions
22:54 pdcawley joined
KingDillyDilly Yes, me again. There's nothing in the topic of #perl6 that explains that this channel isn't about the current version of Perl and that it isn't for support of the current version. 23:00
buu doesn't like Wassercrats. Everyone hate buu.
Juerd audreyt: My removal of Firefly apparently never happened; dozens of people have been able to enjoy it :)
audreyt: But it's gone now, fyi.
KingDillyDilly perlbot KingDillyDilly is Wassercrats 23:01
perlbot added KingDillyDilly to the database
KingDillyDilly perlbot Barry is Wassercrats 23:02
perlbot added Barry to the database
Juerd Why is perlbot here? 23:03
Juerd doesn't like perlbot here, to be honest.
It adds immensely to the noise-to-signal ratio, and its factoids are Perl 5 based. Factoids added here will be useless to most other channels. A similar bot might be useful, but then still I don't think this channel (which is not a help channel, but mostly a channel for discussion) should have such a bot yet. 23:04
s/It adds/It could add/ # It's the first time I see it here. I don't know how long it has been around. 23:05
KingDillyDilly I'd like a bot with a "last x" feature to pvt msg you with previous posts. I know about colabti.de/irclogger//irclogger_logs/perl6 though. 23:06
perlbot has lots of useful features, like "phone" 23:09
perlbot phone 1-800-555-5555
perlbot Bad number: 1-800-555-5555
KingDillyDilly perlbot phone 1234567890 23:10
perlbot That function is broken for now, try back later
buu Juerd: Why do you think it adds to the noise-to-signal ratio? 23:13
Juerd See your current scrollbuffer. 23:14
Good night
z
buu Juerd: I've found that KingDillyDilly manages that all by himself.
Juerd Let's hope that KingDillyDilly stops all by himself too. 23:15
KingDillyDilly I've had thoughts of creating a log of #perl and comparing it with a log of #python to see which has the higher noise-to-signal ratio and to deter those most responsible for it. 23:18
SamB well, PERL itself is said to have a lower signal-to-noise ratio
23:22 ZaphodBeeblebrox joined
KingDillyDilly Would anyone really leave one language for another because they prefer short symbols to words or shorter words? I prefer extra readability. I'm anti-elsif, for example. Not sure if that relates to what you're saying, SamB. 23:22
SamB I was talking about all punctuation 23:23
buu SamB: What is PERL?
SamB you know when they curse in the comics?
buu No?
SamB oh, sorry, I guess it is called Perl. 23:24
buu Yes it is.
SamB thats what I get for reading the headings in manpages...
buu I suspect perl actually has the highest signal to noise ratio of almost any language
For some value of signal and noise of course 23:25
KingDillyDilly I read a debate on whether it's an acronym. I'm still not sure, but somehow it was decided it's not.
SamB so it doesn't stand for Pattern Extraction and Reporting Language? 23:26
KingDillyDilly Kinda no.
arcady Pathologically Eclectic Rubbish Lister?
buu SamB: It does not. 23:28
SamB: The name is Perl, not an acronym. You are of course free to make up any words you want to fit it however.
Juerd SamB: Read perlfaq1 23:31
SamB: Unix tradition is to have manpage headlines in allcaps. The manpage of ls(1) has LS(1) in the first line. 23:32
SamB Juerd: yeah, I know about that
I honestly am unsure why I thought it was PERL
buu Long standing rumour. 23:33
SamB if I call it perl, nobody will bother me ;-)
buu This is true.
23:34 mako132_ joined
KingDillyDilly Unless you're writing for something that matters. In chat, many people don't capitalize even the first letter of sentences. 23:34
23:36 Limbic_Region joined
KingDillyDilly Or of their handles. Someone told me that's because it's not a real name. Doesn't make sense to me. 23:36
23:46 weinig joined