»ö« | perl6-projects.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' | irclog: irc.pugscode.org/ | UTF-8 is our friend! Set by moritz_ on 30 July 2009. |
|||
00:05
jauaor left,
jauaor joined
00:07
fridim_ joined
|
|||
pugs_svn | r27822 | wayland++ | [S17, S22, S26] Turned URLs into links | 00:08 | |
00:11
jferrero left
|
|||
jnthn | literal: Ah, I'm assuming that's enclosed in a role Positional[::T] { ... } | 00:15 | |
Sorry it wasn't clear. | |||
pmichaud: Will try and get those two resolved tomorrow and if not will fudge. | |||
(the failing tests) | |||
00:18
lumi_ joined,
lumi left
|
|||
jnthn -> sleep | 00:24 | ||
wayland76 | Ambiguous dispatch to multi '_block272'. Ambiguous candidates had signatures: | 00:33 | |
:() | |||
in sub trait_mod:does (src/gen_setting.pm:90) | |||
Does anyone know what that error is about? | 00:34 | ||
I tried to instantiate a role | |||
And the role does another role | |||
pmichaud | I don't know -- jnthn++ is the likely person to ask at the moment. | 00:35 | |
wayland76 | Hmm. :) | 00:36 | |
00:39
japhb left
|
|||
wayland76 | say I have this: rule element { '<' <name> <attribute>* [ | '/>' | '>' <child>* '</' $<name> '>' ] {*} } | 00:49 | |
When the action for this rule gets called (at {*}), is there a way I can get the "name" text? | |||
pmichaud | yes, from the match object passed to the action | 00:50 | |
it will be $match<name> | |||
wayland76 | Ah, ok | ||
pmichaud | or if you pass it in as $/, you can use $<name> | ||
wayland76 | Which is $match{'name'} right? | ||
pmichaud | right. | ||
00:51
meppl joined
|
|||
wayland76 | Yay! Thanks :) | 00:51 | |
Is "does" not supported yet? | 00:56 | ||
00:58
Eevee_ joined
|
|||
pmichaud | it's supported, afaik | 01:01 | |
there may be places where it doesn't quite work | |||
wayland76 | Ok, I think I've found the problem | 01:09 | |
I have two roles that have variables of each others' types | |||
So I predeclared one using role Tree::Node {...} | 01:10 | ||
(with the ... being literal in this case) | |||
01:10
orafu left
|
|||
wayland76 | Then it gives me an error message because it can't decide which role to use | 01:10 | |
01:10
orafu joined
|
|||
wayland76 | The one with all the methods, etc, or the one with the ... | 01:10 | |
01:10
fridim_ left
|
|||
wayland76 summon masak | 01:11 | ||
I'm wondering whether this is a known bug :) | |||
(or if I've predeclared wrong :) ) | |||
01:12
Eevee left
01:30
Eevee_ is now known as Eevee
01:31
japhb joined
01:33
jevin left
01:35
meppl left
|
|||
wayland76 | have we considered whether say "match is $match<name>" should DWIM?> | 01:42 | |
01:43
payload left,
Whiteknight left
01:47
Limbic_Region left
01:52
missingthepoint joined
|
|||
missingthepoint | morning all :) | 01:53 | |
01:57
ctime left
|
|||
wayland76 | not quite :) | 02:01 | |
Afternoon here by 2 minutes | |||
But it was morning when you wrote that :) | |||
missingthepoint | :) | 02:02 | |
02:03
nihiliad joined,
dukeleto_ left
|
|||
sjohnson | how's it going pmichaud | 02:05 | |
wayland76 | sjohnson: o/ :) | 02:06 | |
sjohnson | hi wayland76 | ||
missingthepoint | howdy sjohnson | 02:08 | |
sjohnson | missingthepoint: y'ello | 02:09 | |
wayland76 | sjohnson: Why not save time and say "hi all" :) | 02:10 | |
sjohnson | probably because I've been writing too much PHP code at work today | ||
brain not thinking as efficently anymore | 02:11 | ||
sjohnson hates PHP | |||
02:13
cdarroch left
|
|||
sjohnson sees a tumbleweed roll by | 02:15 | ||
am I alone in saying that about PHP? | 02:16 | ||
02:16
krunen left
|
|||
wayland76 joins sjohnson in being averse to PHP | 02:17 | ||
wayland76 doesn't hate PHP when he compares it to Java :) | |||
or COBOL :) | |||
sjohnson | ya, i am the same way | ||
I hate PHP when I compare it to Perl, and when I have to write in it for 7 hours a day at work | |||
it, being PHP unfortunately | 02:18 | ||
sometimes i get to make Perl script system calls | |||
those are the happy days at work | |||
wayland76 | :) | ||
Well, I liked PHP better (and worse) when I found the preg_* calls :) | |||
sjohnson | yeah | 02:19 | |
preg_match and me have a long history of hating eachother | |||
we've been locking horns ever since I started trying a few Perl-like tricks in PHP | 02:20 | ||
wayland76 | The one thing about preg_match that's better than p5 is the array of matches :) | ||
sjohnson | that is true | ||
is that fixed in P6? | 02:21 | ||
wayland76 | IIRC | ||
sjohnson | i have noticed that problem | ||
wayland76 | There's a match variable | ||
and it does associative | |||
For example, say I have this regex: rule element { '<' <name> <attribute>* [ | '/>' | '>' <child>* '</' $<name> '>' ] {*} } | |||
Then if the match variable is the default, I can do... | 02:22 | ||
(default match var is $/ ) | |||
I can do: say $/<name> ~ " has attributes " ~ $/<attribute> | 02:23 | ||
02:24
krunen joined
|
|||
wayland76 | Which is the same as: $/{'name'} ~ " has attributes " ~ $/{'attribute'} | 02:24 | |
Hey krunen | |||
I've been modifying your XML grammar | |||
lisppaste3 | wayland76 pasted "untitled" at paste.lisp.org/display/84480 | 02:26 | |
wayland76 | phenny: tell krunen I've been modifying your XML grammar: paste.lisp.org/display/84480 | 02:27 | |
phenny | wayland76: I'll pass that on when krunen is around. | ||
02:38
Jimmy_ joined,
Jimmy_ is now known as JimmyZ
02:46
dukeleto joined
02:53
iktome joined
02:56
dukeleto left
03:20
donaldh left,
donaldh joined
03:22
jauaor left
03:44
eternaleye joined
|
|||
japhb | TimToady: Does your stricture about having the Perl 6 "core library" be as small as possible apply only to the spec standard, or to the base versions of the implementations as well? This is coming up in the context of Parrot ... if Parrot ships a large core library, then Rakudo will effectively be doing so as well -- easy access to shared libraries being part of the point of Parrot, after all. But if by chance Rakudo becomes the most pop | 03:59 | |
ular Perl 6 implementation, then users may begin to rely on Parrot's core library set .... Thoughts? | |||
wayland76 | My assumption was that TimToady was not making that a rule for Parrot | 04:02 | |
Besides, he recently said he wasn't going to have much connectivity until the conference | 04:03 | ||
japhb | ah, forgot about that last. | ||
wayland76 | So you may have trouble getting any info out of him at the moment | ||
I'm in favour of doing it that way if possible, of course | 04:04 | ||
japhb | As for the first, I'm wondering if in fact Parrot's decisions will end up overruling his wishes in *practice*, if not in theory. :) | ||
"doing it that way"? | 04:05 | ||
wayland76 | Yeah, I was thinking that to | ||
"doing it that way" = minimal libraries | |||
My main reasons for being in favour are: 1) TimToady's reasons for making the same decision about P6, and 2) otherwise, Parrot and P6 are pulling in opposite directions | 04:06 | ||
04:08
alester joined
|
|||
japhb | wayland76: sure, but we have to consider that they do have separate goals. Parrot's goal is to make it easy to bring up new dynamic languages to the level of being productively useful -- that's easier with a decent core set of libraries. OTOH, another goal of Parrot is to make it easy for languages to use each other's libraries -- so Parrot wouldn't need to have them in "core". So Parrot itself is pulling in different directions. :-) | 04:10 | |
wayland76 | That's why I'm also in agreement with doing it via a packaging system | 04:12 | |
(the world's most cross-platform packaging system :) ) | |||
04:23
sparc joined
|
|||
JimmyZ | rakudo: say 'Hello #perl6'; | 04:26 | |
p6eval | rakudo a53a1c: ( no output ) | ||
JimmyZ | rakudo: say 'Hello'; | 04:27 | |
p6eval | rakudo a53a1c: OUTPUT«Hello» | ||
JimmyZ | rakudo: say 'Hello \#perl6'; | ||
p6eval | rakudo a53a1c: OUTPUT«Hello \#perl6» | ||
JimmyZ | rakudo: say 'Hello #perl6'; | ||
p6eval | rakudo a53a1c: OUTPUT«Hello #perl6» | ||
JimmyZ | no output? | ||
rakudo: say 'Hello #perl6'; | 04:28 | ||
p6eval | rakudo a53a1c: OUTPUT«Hello #perl6» | ||
japhb | JimmyZ: sometimes the evalbot times out before a new build is ready. | ||
JimmyZ | I thought it was rand bug | ||
japhb | Nah, just annoying. | 04:29 | |
JimmyZ | ;) | ||
04:40
iktome left
|
|||
JimmyZ | rakudo: say #{{ | 04:41 | |
This comment contains unmatched } and { { { { (ignored) | |||
Plus a nested {{ ... }} pair (counted) | |||
p6eval | rakudo a53a1c: OUTPUT«say requires an argument at line 2, near " #{{"in Main (src/gen_setting.pm:2467)» | ||
JimmyZ | }} q<< <<woot>> >> # says " <<woot>> " | ||
rakudo: say 'x'.HOW.methods.join(', ') | 04:46 | ||
p6eval | rakudo a53a1c: OUTPUT«too few arguments passed (1) - 3 params expectedin Main (/tmp/PLXF0akelf:2)» | 04:47 | |
JimmyZ | rakudo:'x'.HOW.methods.join(', ') | ||
04:59
nihiliad left
|
|||
JimmyZ | rakudo: my Int|Str $error = 7 say $error; | 05:11 | |
p6eval | rakudo a53a1c: OUTPUT«Malformed declaration at line 2, near "Int|Str $e"in Main (src/gen_setting.pm:3363)» | ||
JimmyZ | rakudo: my Int|Str $error = 7; say $error; | ||
p6eval | rakudo a53a1c: OUTPUT«Malformed declaration at line 2, near "Int|Str $e"in Main (src/gen_setting.pm:3363)» | ||
JimmyZ | rakudo: my Int $error = 7; say $error; | ||
p6eval | rakudo a53a1c: OUTPUT«7» | ||
JimmyZ | rakudo: my Str $error = 7; say $error; | 05:12 | |
p6eval | rakudo a53a1c: OUTPUT«Assignment type check failed; expected Str, but got Intin Main (/tmp/8iYPiKvA18:2)» | ||
JimmyZ | rakudo: $_ = 8 | 9; say ++.perl; | 05:14 | |
p6eval | rakudo a53a1c: OUTPUT«any(8, 10)» | ||
JimmyZ | rakudo: $_ = 8 | 9; say (++$_).perl; | 05:16 | |
p6eval | rakudo a53a1c: OUTPUT«any(9, 10)» | 05:17 | |
JimmyZ | rakudo: $_ = 8; say ++.perl; | ||
p6eval | rakudo a53a1c: OUTPUT«9» | ||
JimmyZ | Is It a bug to output any(8, 10)? | 05:18 | |
rakudo: $_ = 8 | 9 | 11; say (++$_).perl; | 05:19 | ||
p6eval | rakudo a53a1c: OUTPUT«any(9, 10, 12)» | ||
JimmyZ | rakudo: $_ = 8 | 9 | 10; say ++.perl; | ||
p6eval | rakudo a53a1c: OUTPUT«any(8, 9, 11)» | ||
JimmyZ | rakudo: $_ = 8 & 9 & 10; say ++.perl; | 05:25 | |
p6eval | rakudo a53a1c: OUTPUT«all(8, 9, 11)» | ||
05:30
justatheory left
05:37
orafu left
05:57
kane_ left
05:58
JimmyZ left
|
|||
moritz_ | good mornign | 06:11 | |
missingthepoint | morning moritz_ | 06:13 | |
06:14
alester left
|
|||
moritz_ | oh hai missingthepoint | 06:17 | |
06:19
masak joined
06:22
rfordinal joined
|
|||
masak | olá, Perl 6 aventureiros! | 06:27 | |
moritz_ | olé | 06:28 | |
masak waves cape | 06:29 | ||
moritz_ looks if there's any bulls around | 06:31 | ||
masak | moritz_: well, speaking as one staying at 'Rua dos Correiros', it does seem likely... | 06:33 | |
06:34
Su-Shee joined
|
|||
Su-Shee | good morning. :) | 06:34 | |
masak waves at Su-Shee | |||
moritz_ points people to perlpilot.blogspot.com/2009/07/perl...ation.html | 06:36 | ||
Su-Shee | ah, very nice. :) | 06:37 | |
missingthepoint | i second that :) | ||
Su-Shee | I had several interesting discussions the last few days with tech-friends of mine concerning perl 6. | 06:38 | |
(which all know about it, but don't follow the development) | |||
moritz_ | PerlJam: I'd like to have a commit bit ;-) | ||
Su-Shee | they all say, they expect perl6 to be as fast as perl5 and to have at least a basic ecosystem like DBI and something like CGI.pm | 06:39 | |
masak | Su-Shee: it'll have 'something like CGI.pm', only updated for this decade. | ||
moritz_ | I think we can provide the basic ecosystem pretty soon | ||
the "as fast as perl5" is hard to achieve, unless parrot improves significantly | 06:40 | ||
Su-Shee | masak: yeah, they just used it to illustrate what they want, they don't want CGI.pm again :) | ||
moritz_ | also note that perl 5 is one of the fastest dynamic language | ||
06:40
rfordinal left
|
|||
Su-Shee | moritz_: well the intersting thing is that they _all_ consider speed as one of the first reasons to use perl. | 06:40 | |
moritz_ | Su-Shee: thanks for sharing the results of your discussions | ||
masak | testing Druid again after a long time, I have the impression that I/O has gotten blazingly fast, and everything else depressingly slow. | ||
wayland76 | Due probably to years of optimisation | ||
Grammars are slow :) | 06:41 | ||
masak: Did you see the bit in the backlog where I said "summon masak"? | |||
masak | missingthepoint: any progress on the SVG-graphing idea? | ||
wayland76: I didn't. I can backlog soonish and catch it. | |||
Su-Shee | moritz_: I have to admit that they all use Perl extremely high end - like daily nearly tb of logfile parsing and handling millions of domains and such... | ||
missingthepoint | masak: i'm blocking on porting Text::CSV, since I've not ported any Perl 5 -> 6, i think i'll start with that :) | ||
masak: give me a day or two | 06:42 | ||
Su-Shee | PerlJam: you're Perlpilot? :) | ||
moritz_ | @seen PerlJam | 06:43 | |
lambdabot | PerlJam is in #perl6. I last heard PerlJam speak 11h 45m 8s ago. | ||
wayland76 | What's the difference between Perlpilot and U4X? | 06:44 | |
masak | missingthepoint: absolutely. | 06:46 | |
missingthepoint: let me know if there's anything I can assist with. | |||
missingthepoint | masak: thank you, i will | ||
masak | re proto having to change, I don't mind at all. if we don't insist on being able to load previous releases (and I don't see why we would have to) it's an easy patch and the resulting code will probably be slightly smaller. | 06:48 | |
moritz_ | actually if it just uses perl Configure --gen-parrot it doesn't have to change at all. | 06:49 | |
mikehh | rakudo (a53a1cd) builds on parrot r40351 - make test PASS/ make spectest (up to 27822) same two tests FAIL - Ubuntu 9.04 amd64 | ||
moritz_ | masak: I looked over the README to see if anything has to be changed in the ins2 branch, and didn't find anything ;-) | ||
masak | moritz_: I was talking about the default setting, which fetches the latest Rakudo release. | ||
moritz_ | masak: that'll have to change if we change version numbers; but I don't see how the ins2 branch will affect it | 06:51 | |
masak | moritz_: neither do I. why are you bringing it up? | ||
moritz_ | masak: because I thought it might be need to change. But that was before I looked closer. | 06:52 | |
masak | wayland76: re backlog: you describe your problem, but don't supply any actual code. is it possible to summarize in a one-liner. | ||
moritz_: ah. | |||
moritz_ | sorry of the confusion | ||
masak | I'm not very familiar with the changes introduced by ins2. | 06:53 | |
but in general, think of proto as a piece of software very willing to adapt. | |||
wayland76 | masak: Possibly, but it may be easier to read as rt.perl.org/rt3/Public/Bug/Display.html?id=68066 | 06:57 | |
I'm very familiar with most of the changes made by ins2 | |||
Although I may've missed some ramifications of them | |||
What do we want to know? | |||
masak | well, what are the changes? | 06:58 | |
wayland76 | Basically, everything required to make Rakudo work on an installed Parrot | ||
That involves adding a spec file for RPM (irrelevant) | 06:59 | ||
And changes to the Makefile | |||
Especially adding a "make install" target | |||
masak | wayland76: thanks for the RT link, it helped. hm, I'm not sure that's ever worked. | 07:00 | |
moritz_ | basically --gen-parrot installs parrot into a local sub dir | 07:01 | |
www.sysadminday.com/ | |||
wayland76 | masak: Re roles: Well, it parses; as long as you don't try to instantiate the object, it works fine :) | ||
Also, there appear to be some Configure.pl changes | 07:02 | ||
pmichaud did those. Investigating | |||
masak | wayland76: I was slightly surprised that you instantiated the role directly -- though I think that should be fine. | ||
moritz_ | rakudo: role B { method b { say "works" } }; role A does B { }; A.new.b | ||
p6eval | rakudo a53a1c: OUTPUT«works» | ||
wayland76 | re:ins2 -- Basically, Configure.pl now takes a --gen-parrot-prefix option | 07:03 | |
07:03
rfordinal joined
|
|||
wayland76 | Yes, intantiating roles works, but only because roles are punned as classes | 07:04 | |
masak | right. | ||
I kinda knew it, but haven't had any use for it. | |||
wayland76 | In real life, I wasn't planning to do that, but it made the example simpler :) | ||
masak | I suspected as much. :) | 07:05 | |
wayland76 | In real life, the example roles are Tree and Tree::Node, and Tree::Element does Tree::Node, and XML::Element is Tree::Element :) | 07:06 | |
masak | how hierarchical. | ||
wayland76 | No, my mistake, class XML::Element does Tree::Element | 07:08 | |
Well, Tree does Tree::Node; Tree::Node is the base class for everything | |||
So it's really only Tree::Node -> Tree::Element -> XML::Element | 07:09 | ||
I nicked a number of the general ideas in the Tree model from the XML DOM, but extended things enough so that it should also suit filesystems | |||
Oh, and I'm also hoping to cope with something that looks like XML, but can have some overlapping tags, depending on the "perspective" | 07:10 | ||
masak | good luck. | 07:11 | |
wayland76 | :) | ||
missingthepoint | wayland76: (may be missing the point, but the code you posted before breaks with "<foo><!-- stuff --></foo>") | 07:12 | |
07:12
unitxt left
|
|||
lisppaste3 | wayland76 pasted "ins2 diff" at paste.lisp.org/display/84492 | 07:12 | |
missingthepoint | (krunen's modified grammar, that is) | 07:13 | |
masak | I've been toying with the idea of unigying DOM and Match trees. even that feels a bit tricky, but it still should be more straightforward than unifying XML trees and file hierarchies. | ||
07:13
iblechbot joined
|
|||
wayland76 | I'm attempting to convert both DOM and Match into Tree | 07:14 | |
Then manipulate as Tree | |||
Then output as XML :) | |||
Or so the theory goes :) | |||
Well, maybe not | 07:15 | ||
I'm not quite sure what you mean, so I don't know whether what I'm doing is similar or not :) | |||
07:16
dakkar joined
|
|||
wayland76 | missingthepoint: Interesting (krunens mg). Do you know if krunen's original grammar also broke then? | 07:16 | |
missingthepoint | i don't know where the original is :) | 07:17 | |
wayland76 | www.google.com.au/search?sourceid=m...ml+grammar | ||
masak | wayland76: well, I'm not out to convert anything. I'm just looking for a similar enough API to both so that I can traverse/search them in similar ways. | 07:18 | |
wayland76 | WORKSFORME :) | ||
missingthepoint | heh, should have guessed. :) | ||
wayland76 | masak: Then that's very similar to what I'm doing | ||
In fact, possibly identical :) | |||
masak | wayland76: it's for the Grampa project, which I've blogged a bit about. | ||
wayland76 | I'm trying to replicate the features of the DOM, but not the API | ||
Ok, I'll read about it | |||
masak | hold on, I'll find the links for you. | 07:19 | |
wayland76 | Well, google gets me to github and use perl | ||
07:20
donaldh left
|
|||
masak | sounds about right. | 07:20 | |
07:20
donaldh joined
|
|||
moritz_ | sounds like the typical masak++ locations ;-) | 07:21 | |
masak | :) | ||
missingthepoint | wayland76: nope, original breaks too: "Unable to parse comment, couldn't find final '-->'" | ||
moritz_ | bah, it seems I was again removed from the ironman feed | ||
masak | wayland76: so, these two: use.perl.org/~masak/journal/39224 use.perl.org/~masak/journal/39351 | ||
moritz_ | and nobody bothedred to tell me | ||
missingthepoint | wayland76: (after you remove that extraneous ':') | ||
wayland76 | Yeah, I got rid of the : too | ||
masak: XPath is great, but not good enough :) | 07:22 | ||
masak: Sounds like we should pool our efforts | |||
masak | wayland76: yes. | 07:23 | |
wayland76 | If we can agree on how to do things | ||
Should we take this to #november-wiki ? | |||
masak | wayland76: re 'good enough', both XPath and CSS are great for searching for DOM nodes in some projects. | ||
wayland76: re #november-wiki, not necessarily. | |||
wayland76 | ok, will remain here if you prefer | 07:24 | |
masak | Grampa is kinda in the borderland between Web.pm and non-Web.pm... | ||
wayland76 | The changes I want to XPath are: | ||
a) Supports Perl6 inside [] instead of XPath-language | |||
b) Supports other kinds of trees, including overlapping and multiple perspectives | |||
moritz_ | what are overlapping trees? | 07:25 | |
masak | I was kinda aiming for a pure XPath implementation. | ||
wayland76 | masak: Yeah, I figured. But we could probably use the same backend model | ||
masak | wayland76: yes, that's fairly likely. | 07:26 | |
wayland76 | moritz_: Imagine you want to XML a Shakespeare play | ||
moritz_ | well, wayland76 can still inherit from the grammar, and override where neccessary | ||
wayland76 | And you want the XML to mark all the line beginnings and ends with open and close tags | ||
And you also want to mark the speech of the different characters with open and close tags | |||
but XML says ENO-CAN-DO | 07:27 | ||
moritz_ | why not? | ||
wayland76 | But if you had a language where that was allowed, then you'd have a "lines" perspective, and a "characters" perspective | ||
moritz_ | then it's not a tree anymore | 07:28 | |
but a graph | |||
wayland76 | Yes, a graph | ||
moritz_ | a more generic graph | ||
wayland76 | Exactly | ||
moritz_ | ok | ||
then I was just confused by the word "tree" | |||
wayland76 | I also want to support sloftlinks/hardlinks, a la filesystems | ||
My problem is, to the non-mathematical programmer, "graph" means "picture chart thing", and "tree" means "graph" :) | 07:29 | ||
Matt-W | Morning | ||
wayland76 | SO I call it "tree", just like filesystems do | ||
masak: So shall I create a github project for all this tree stuff? | 07:30 | ||
masak | wayland76: I doubt I'll have any tuits for it in the coming week, but yes, sure. | 07:31 | |
wayland76 | masak: Would you have enough of a tuit to upload what you have so far on the XML stuff? | 07:33 | |
masak | wayland76: that's already uploaded, in the grampa repo. | ||
or did you have some other XML stuff in mind? | 07:34 | ||
wayland76 | No, I think that's what I meant | ||
Anyway, I'll upload what I have, and since I've also started doing XML, we'll have to merge them together (unless one, probably yours, is obviously superior :) ) | |||
masak | I don't recall doing much XML parsing in Grampa, so maybe there's nothing to merge from my side right now. | 07:37 | |
I think I only did Match traversal so far. | |||
wayland76 | moritz_: I'm not intending to do more than just start with XPath, because if I'm going to change it that much anyway, I might as well just revamp the whole thing with Unicode operators, etc :) | ||
masak: Ok, it sounds like we have slightly different projects then | 07:38 | ||
I'm trying to do XML -> Tree objects | |||
You're trying to do generic grammar -> Tree objects, if I understand correctly | |||
Which is probably a worthier goal :) | |||
masak | wayland76: well, I started wanting to be able to traverse/search Match trees. | 07:39 | |
wayland76: but then, somehow, the idea of doing the same to DOM trees got mixed in. | |||
wayland76 | ok :) | 07:40 | |
masak | I'm still not 100% certain these two kinds of tree can be brought under the same model. | ||
wayland76 | Well, then, it's not a big enouhg model :) | ||
masak | what, for example, is the DOM equivalent of $/[0]? | ||
07:41
payload joined
|
|||
wayland76 | Maybe there isn't one | 07:41 | |
But the Tree model should allow for it, and the DOM implementation can throw a "not implementable" :) | |||
masak | then, almost by definition, I couldn't use XPath to find $/[0]. | ||
wayland76 | Ok, so that's why we need TreePath :) | 07:42 | |
masak | that was the original goal of Grampa; to use XPath to find Match objects in a Match tree. | ||
wayland76 | Ok, so what *exactly* is $/[0] | ||
Is it the whole text of the match? | |||
masak | no, it's a Match object. | 07:43 | |
wayland76 | (I'm trying to debug two things at once here :) ) | ||
Ah, yes, of course | |||
masak | rakudo: "foobarbaz" ~~ /foo(bar)baz/; say ~$/[0] | ||
p6eval | rakudo a53a1c: OUTPUT«bar» | ||
wayland76 | Got it | 07:44 | |
masak | wayland76: with all due respect to your TreePath, I think being able to use XPath here would be a really good thing. it's not a place where I feel an entirely new standard would be warranted. | ||
wayland76 | I'd say that anything that accesses a match via [] should be considered a child node | ||
whereas anything that accesses via {} should be considered an attribute | 07:45 | ||
masak | wayland76: that doesn't cut it. | ||
wayland76 | masak: We differ on that, but that doesn't prevent us using the same backend Tree model. We can do both, and see what works :) | ||
masak: Yeah, I think you're probably right :) | 07:46 | ||
masak | attributes aren't flexible enough to hold whole Match objects. they need to be child nodes. | ||
wayland76 | (about my idea not cutting it) | ||
masak | so both kinds need to be child nodes. | ||
wayland76 | Have you noticed that in the DOM, XML::Attribute inherits from XML::Node? | ||
So attributes are nodes, but not child nodes | 07:47 | ||
(unless I'm confused again) | |||
masak | indeed. | ||
that's slightly noticeable in XPath, too. | |||
07:47
kane_ joined
|
|||
wayland76 | Ok, let me ask this question | 07:48 | |
No, I won't :) | |||
Matt-W | XML in some senses makes little distinction between attributes and child nodes | 07:49 | |
wayland76 | Anyway, I vote we try to work on it, and see what we come up with | ||
Matt-W | the only real difference seems to be what you can put in them... | ||
wayland76 | Matt-W: That's what I was too inarticulate to say :) | 07:50 | |
Matt-W | well it must be getting late in australia | ||
wayland76 | And since XPath doesn't (AFAIK) seem to care what you put in them (only the XML standard does, maybe?), then using the idea I had might actually work in an evil twisted sort of way :) | 07:51 | |
Matt-W: All of 5:51pm :) | |||
Matt-W | yeah, so it's late :P | ||
masak | wayland76: I appreciate all collaboration proposals I get, so yes, let's try it together. | 07:52 | |
wayland76 | I'll probably be afk food soon, but I'll try to get the stuff I have onto github | ||
Oh, another thing that I don't like about XPath -- the axes are insufficient :) | 07:53 | ||
But the Axes I have in mind are such that the XPath axes could be mapped onto them with trivial effort | 07:54 | ||
masak | be that as it may -- my needs call for faithful XPath. | 07:55 | |
wayland76 | Oh, of course. I'm glad someone's doing XPath, and I support you in your idea. It's just not what I want for myself :) | 07:56 | |
masak: Just about every sizeable P6 project I have is currently blocking on this Tree stuff :) | 07:58 | ||
08:00
JimmyZ joined
|
|||
JimmyZ | hello masak | 08:00 | |
masak | 你好, JimmyZ. | 08:02 | |
JimmyZ | rakudo: $_ = 8 & 9 & 10; say ++.perl; | ||
p6eval | rakudo a53a1c: OUTPUT«all(8, 9, 11)» | ||
JimmyZ | Is it a bug? | ||
rakudo: $_ = 8 | 9 | 10; say ++.perl; | 08:03 | ||
rakudo: $_ = 8 | 9 | 10; say (++$_).perl; | |||
p6eval | rakudo a53a1c: OUTPUT«any(8, 9, 11)» | ||
rakudo a53a1c: OUTPUT«any(9, 10, 11)» | |||
masak | JimmyZ: the former one is probably read as ++(.perl) | ||
I think that's right. | |||
JimmyZ | rakudo: $_ = 8 | 9 | 10; say .perl; | 08:04 | |
masak | whether it should flag an error is another thing. | ||
p6eval | rakudo a53a1c: OUTPUT«any(8, 9, 10)» | ||
JimmyZ | rakudo: $_ = 8 | 9 | 10; say .perl++; | ||
p6eval | rakudo a53a1c: OUTPUT«any(8, 9, 10)» | ||
JimmyZ | rakudo: $_ = 8 | 9 | 10; .perl++; say | ||
p6eval | rakudo a53a1c: OUTPUT«say requires an argument at line 2, near ""in Main (src/gen_setting.pm:2467)» | ||
JimmyZ | rakudo: $_ = 8 | 9 | 10; .perl++; say .perl | ||
p6eval | rakudo a53a1c: OUTPUT«any(8, 9, 10)» | ||
JimmyZ | rakudo: $_ = 8 | 9 | 10; say ++(.perl); | 08:05 | |
p6eval | rakudo a53a1c: OUTPUT«any(8, 9, 11)» | ||
masak | JimmyZ: bare 'say' doesn't work. '.say' does. | ||
JimmyZ | rakudo: $_ = 8 | 9 | 10; .++; .say; | ||
p6eval | rakudo a53a1c: OUTPUT«Syntax error at line 2, near ".++; .say;"in Main (src/gen_setting.pm:3363)» | ||
masak | JimmyZ: '.++' should work. | 08:06 | |
not yet implemented. | |||
08:06
ejs joined,
xomas_ left
|
|||
JimmyZ | thanks, perl6 is a bit complex. | 08:06 | |
masak | rakudo: for $*IN.lines() { .flip.say } | ||
p6eval | rakudo a53a1c: OUTPUT«,emortS ma dnaL ,egreB red dnaL,emoD red dnaL ,rekcÄ red dnaL!hcierstfnukuz ,remmäH red dnaL,enhöS reßorg ud tsib tamieH,enöhcS sad rüf tedangeb ,kloV,hcierretsÖ setmhüregleiv!hcierretsÖ setmhüregleivnettirtsmu dliw ,tedhefmu ßieH,nettimni ud lietdrE med | 08:07 | |
masak | JimmyZ: it is. | ||
p6eval | ..tsgeil.hcielg nez… | ||
JimmyZ | there were too much ways | ||
masak | JimmyZ: "There should be too many ways to do it." ? :) | ||
08:08
ihrd left
|
|||
JimmyZ | yes, I think so. it unlike python. | 08:08 | |
s/unlike/unlikes/ | 08:09 | ||
masak | JimmyZ: I wish we could say 'unlikes' in English, but it's spelled 'differs from'. | 08:10 | |
JimmyZ | should I say it is unlike python? | ||
poor english | |||
moritz_ | yes, I think "it is unlike python" works | 08:12 | |
Matt-W | it does indeed work | ||
it is in fact a very ordinary way to say it | |||
you can also say 'it is not like python' | |||
English, you see, is like Perl 6. | 08:13 | ||
JimmyZ | masak: good, we alawys mix the grammar in english and you always mix the tone in chinese. :( | ||
moritz_ | right, in perl 6 you can say 'perl' !~~ 'python', and it means 'unlike' :-) | 08:14 | |
or you can say not 'perl' ~~ 'python', which would be 'not like' | |||
Matt-W | see, just like English! | 08:15 | |
08:15
rhr left,
samlh left,
wayland76 left,
broquaint left,
hudnix_ left,
spinclad left,
gfldex left,
chipdude left,
hcchien left
|
|||
masak | or you can say 'perl' ~~ none('python'), which isn't like anything in English. | 08:16 | |
JimmyZ | maybe we should say word-common-language ;) | ||
08:17
spinclad joined
|
|||
JimmyZ | s/word/world/ | 08:17 | |
08:17
cxreg joined,
gfldex joined
|
|||
JimmyZ | and Perl 7 will be it. | 08:17 | |
08:18
ejs1 joined
|
|||
masak | 世界语! | 08:18 | |
JimmyZ | masak: 呵呵 | ||
08:21
rhr joined,
samlh joined,
wayland76 joined,
broquaint joined,
hudnix_ joined,
chipdude joined,
hcchien joined
|
|||
masak 很系欢可以用中文使一个笑话 | 08:22 | ||
(did I get that right?) | 08:23 | ||
xinming_ | masak: wrong. | ||
xinming_ 很喜欢用中文说一个笑话。 | 08:24 | ||
系欢 => 喜欢 | |||
masak | ah, right. | ||
xinming_ | 使 => 说 | ||
masak | so, "说一个笑话"? | ||
xinming_ | I'm a more advanced turing machine. :-) | ||
masak: I believe you mean "tell a joke" really. | |||
masak | xinming_: indeed. | ||
xinming_ | tell, or, speak should be 说 | 08:25 | |
masak | right. | ||
makes sense. | |||
08:25
ejs left
|
|||
xinming_ | 使 is something like, "use" or "let" | 08:25 | |
masak | 'make'? | 08:27 | |
I think I accidentally translated 'make a joke' directly. | |||
xinming_ | masak: I think there is no direct translation for "make a joke" in chinese. :-) | 08:28 | |
Matt-W wishes this computer had chinese fonts | |||
08:29
japhb_ joined,
japhb left
|
|||
xinming_ | masak: But "speak" or "tell" a joke should be understandable. Chinese people don't care where is your joke from, Make or learnt. They just know, You "blabla" a joke just now... :-) | 08:30 | |
masak | so '说个笑话' works as well? | ||
xinming_ | masak: Yes. | 08:31 | |
masak | good to know. | ||
xinming_ | BTW, But If you really want to emphisis the joke is "made", You can use, "编了一个笑话", Here, 编 contains the meaning of "make", But It doesn't necessary to mean that you've told people what the joke is. | 08:33 | |
Ok, let's give up, It's #perl6 channel. :-) | |||
masak | thanks for the info. it's well received. | 08:34 | |
JimmyZ | xinming_: are you chinese too? | ||
xinming_ | JimmyZ: Yes I am | ||
masak | ah, something like 'fabricate a joke' or 'make up a joke'. | ||
xinming_ | JimmyZ: From mainland. | ||
JimmyZ | me too | ||
xinming_ | JimmyZ: Where are you from? | ||
masak: Yes, Something like that. | 08:35 | ||
JimmyZ | xinming_ : Shenzheng now | ||
and you ? | |||
xinming_ | JimmyZ: Let's don't pollute this channel. | ||
08:38
zamolxes left
|
|||
Su-Shee | it's a great unicode test. :) | 08:44 | |
08:46
xinming_ is now known as xinming
08:51
jan joined
08:52
jan is now known as Guest32604
|
|||
jnthn | o/ | 08:53 | |
masak | jnthn: morning, jnthn. | ||
jnthn: any cool Rakudo activity planned for today? | 08:56 | ||
patmat | I wish all of you Sysadmins a great Sysadminday :D | 08:57 | |
JimmyZ | jnthn is the most active man | ||
masak | JimmyZ: actually, jnthn has been offered to play ActiveMan in the next big MegaMan game. | 08:58 | |
jnthn | ... | 08:59 | |
masak | jnthn: nobody told you? :) | ||
jnthn | masak: First, I'm dealing with a mess made by the idiots at FastHosts. Complete failhost. | 09:00 | |
Su-Shee | (I just parsed "most attractive man" ... more coffee.) | ||
jnthn | *sigh* | ||
Su-Shee: I promise you I'm not that. :-) | |||
masak | jnthn: sorry to hear that. | ||
JimmyZ | masak: MegaMan ? written in perl6 ? | ||
masak | JimmyZ: now, that's an idea. | ||
Su-Shee | jnthn: depends on what else I add to the coffee ;) | ||
jnthn | masak: May do a few Rakudo bits but I'm preparing to fly to YAPC also today (packing, etc) and didn't finish my talk. :-) | ||
masak | talk? we're supposed to do talks? | 09:01 | |
jnthn | Su-Shee: Spiking your *own* drinks to find somebody attractive...that's novel! ;-) | ||
masak: Well, it's optional I guess...I just thought it might be a nice idea. | |||
Su-Shee envies all YAPC participants.. :/ | 09:02 | ||
envys? | |||
masak | no, 'envies'. | ||
jnthn: I'm also late with my talk. don't know how it came to this, I started procrastinating really early this time... | 09:03 | ||
jnthn | masak: By contrast, I put off the procrastinating for quite a while... | 09:04 | |
;-) | |||
masak | yes, sometimes there's not time to procrastinate. | ||
09:04
kane_ left
|
|||
masak | I mean, one has to do it with some care. | 09:05 | |
Su-Shee | well, procrastinate faster and more effienctly. that's the key. | ||
masak | sounds like a good idea. | 09:06 | |
Su-Shee recommends GPD. | |||
masak | :) | ||
I'm wrapping up my month-long procrastination as we speak. | |||
it hasn't been easy; a lot of things have stolen valuable time from the procrastinating. | 09:07 | ||
JimmyZ | masak: there were some POD ERRORS on perlcabal.org/syn/S32/Callable.html and other links | 09:08 | |
Su-Shee | it takes experience. and you have to loosen up on the productivity you were forced into at school/university. takes time to develop a good procrastination style. | ||
JimmyZ | masak: and perlcabal.org/syn/S32/Containers.html | ||
masak | JimmyZ: do you have a Pugs commit bit? | 09:09 | |
JimmyZ | nope | ||
masak | JimmyZ: do you want one? | ||
JimmyZ | Is there any condition? | 09:10 | |
masak | JimmyZ: not any formal ones, no. | ||
we expect you not to blow things up, that's about it. | 09:11 | ||
JimmyZ | that's true. | ||
09:11
mkfort_ joined
|
|||
masak | JimmyZ: /msg me your email address, and I'll set you up. | 09:12 | |
missingthepoint | rakudo: sub infix:<***> is assoc('right') { ... } | 09:14 | |
p6eval | rakudo a53a1c: OUTPUT«No applicable candidates found to dispatch to for 'trait_mod:is'in Main (/tmp/nnJ3x5s4mj:2)» | ||
jnthn | missingthepoint: I think assoc is NYI. | ||
masak | missingthepoint: I think 'is assoc' isn't implemented. | ||
09:14
mkfort left
|
|||
jnthn | wow, our thoughts align! | 09:15 | |
09:15
sri_kraih joined
|
|||
missingthepoint | ... and that is exactly what I wanted. Thanks! :) | 09:15 | |
masak | missingthepoint: you wanted 'is assoc' to not be implemented? weird... | ||
09:16
synth joined
|
|||
moritz_ | no, missingthepoint is compiling a NYI-list :-) | 09:16 | |
missingthepoint | no, i wanted confirmation... :) ^^ | ||
masak | rakudo: my @a = NYI-list.new() | 09:17 | |
p6eval | rakudo a53a1c: OUTPUT«Could not find non-existent sub NYI-list» | ||
masak | NYI-list is not yet implemented, I fear. :) | ||
masak is missing the point | |||
Su-Shee | aren't you actually meeting the point next week? ;) | 09:18 | |
masak | Su-Shee: I don't know what you mean, but it sounds deep. | ||
Su-Shee | I'm just punning on missingthepoint. ;) | 09:19 | |
masak | ok. :) | ||
I missed that point. | |||
JimmyZ: when you get your commitbit, it's customary to try making a commit by adding oneself to AUTHORS in the Pugs repo. | 09:20 | ||
JimmyZ: after that, the Pod errors you refer to are in docs/Perl6/Spec/S32-setting-library/Containers.pod and docs/Perl6/Spec/S32-setting-library/Callable.pod | |||
JimmyZ | thanks, I had alrealdy taken a look at there. | 09:24 | |
masak | JimmyZ++ | ||
09:28
wknight8111 joined
|
|||
missingthepoint | is there an actual roadmap document somewhere? | 09:36 | |
(for rakudo) | |||
masak | missingthepoint: yes. docs/ROADMAP | 09:37 | |
missingthepoint | hmm, my ack-fu needs work | ||
sorry | |||
masak | no problem. | ||
if pmichaud were here, he'd mumble about "no-one ever looks in the docs/ directory" or something. :) | |||
missingthepoint | he'd probably be right, too :) | 09:38 | |
masak | yes, it's strange how that works. | ||
I had pored over large parts of the Rakudo source code before I even became aware of the docs/ dir... | |||
moritz_ | maybe we should name it FUCKING-READ-THE-docs-DIR | 09:39 | |
masak | I dunno, I'm old-skool and believe in a polite kind of proffessionalism. but maybe that's just me. | 09:40 | |
s/ff/f/ | |||
wayland76 | ffl <-- font ligatures test :) | ||
The ROADMAP claims to be a few months old, but not much has changed, if I understand correctly | 09:41 | ||
missingthepoint | wayland76: ok, cool. | ||
wayland76 | The stuff that said it would be in the July release wasn't, but Allison claims it's now her top priority | ||
missingthepoint | and i think i have a bug in windows ack. | ||
wayland76 | I tried ack, but I tend to avoid it after getting bitten once or twice by it ignoring directories I didn't want it to | 09:42 | |
Or was that files? I forget, but I know I like to have it when i need a Perl Regex :) | 09:43 | ||
masak | yes, it ignores some directories. | 09:44 | |
and files. | |||
missingthepoint | (in this case, those files without an extension) | ||
petdance, where are youuuuu? | |||
wayland76 | That was probably what I hated :) | 09:45 | |
missingthepoint | petdance++ because in 1-2 years of use this is the first problem i've had. | ||
wayland76: i've never had trouble with it under linux... | 09:46 | ||
09:47
Su-Shee left
|
|||
masak | it (ack) at least sets the bar higher than grep, which is a good thing in itself. | 09:48 | |
09:48
zamolxes joined
|
|||
wayland76 | Someday I'll learn to configure it the way I want, I guess, but until then, I'll default to grep :) | 09:49 | |
masak | grep is ubiquitous, which is an advantage. | ||
and it's also quite powerful, once one learns its quirks. | |||
wayland76 | Although I've been bitten by the flavouring of grep before :) | ||
(ie. Solaris grep is different to GNU grep :) ) | 09:50 | ||
JimmyZ | q: Is there any roadmap to make perl6 compile itself? | 09:51 | |
masak | JimmyZ: perl6 is a specification, not an implementation. | ||
JimmyZ: but yes, this is the goal of e.g. the Elf implementation. | 09:52 | ||
JimmyZ | and rakudo ? | ||
masak | JimmyZ: Rakudo will probably always have Parrot-specific parts. | ||
that's my guess, anyway. | 09:53 | ||
jnthn | I think it's fair to say Rakudo doesn't have short or medium term plans for being self-hosting. | 09:54 | |
wayland76 | ooh, jnthn is here :) | 09:55 | |
masak | that makes it sound like there are long term plans. :) | ||
JimmyZ | some idealismer always wants Perl 6 for self-hosting | 09:56 | |
if not, they will be sad | |||
moritz_ | it already has the grammar, action methods and the setting written in Perl 6 | ||
IMHO that's a fair start | |||
jnthn | moritz_: Indeed. | ||
wayland76 | jnthn: Have you seen rt.perl.org/rt3/Public/Bug/Display.html?id=68066 yet? | 09:57 | |
jnthn | wayland76: I hadn't, but I'm not surprised either. | ||
wayland76: Pre-declaring classes doesn't work afaik. | |||
wayland76 | Should it, though? | 09:58 | |
jnthn | wayland76: It parses it as nothing more special than a role whose body is .... | ||
wayland76 | Yeah, I figured :) | ||
jnthn | It should work in the sense that yes, it's Perl 6 spec. | ||
wayland76 | That's what I was asking :) | ||
moritz_ | std: class A { ... }; class A { method foo { } } | ||
jnthn | But I don't think it's ever worked in Rakudo yet. | ||
p6eval | std 27822: OUTPUT«===SORRY!===Illegal redeclaration of package symbol A at /tmp/5nkVtiC3Q2 line 1:------> class A { ... }; class A⏏ { method foo { } }FAILED 00:02 36m» | ||
jnthn | std: orly? | ||
p6eval | std 27822: OUTPUT«===SORRY!===Obsolete use of ?: for the conditional operator; in Perl 6 please use ??!! instead at /tmp/KKX2s47ZRD line 1:------> orly?⏏<EOL>Undeclared routine: orly used at 1 FAILED 00:02 36m» | ||
wayland76 | std: role A { ... }; role A { method foo { } } | 09:59 | |
p6eval | std 27822: OUTPUT«ok 00:02 36m» | ||
wayland76 | Works for roles, though :) | ||
jnthn | I suspect the first of those is a std bug. | ||
Sure, but roles are kinda more fun. | |||
Since you can declare multiple of them with the same name. | |||
So long as they take a distinguishable parameter signature. | |||
wayland76 | What, to the .new() method, or do I need to read more doco? :) | 10:00 | |
jnthn | wayland76: To the role. | 10:01 | |
wayland76 | Ah, I see the section in S14 now :) | 10:02 | |
jnthn | rakudo: role Can[::T] { method fill(::S $stuff) { if $stuff !~~ T { say "you can not fill a can of {T.perl} with {S.perl}!" } }; class Beer { }; class Water { }; my Can of Beer $starobrno = Can[Beer].new(); $starobrno.fill(Water.new); | 10:03 | |
p6eval | rakudo a53a1c: OUTPUT«Unable to parse block; couldn't find final '}' at line 2, near ""in Main (src/gen_setting.pm:3363)» | ||
jnthn | meh | ||
rakudo: role Can[::T] { method fill(::S $stuff) { if $stuff !~~ T { say "you can not fill a can of {T.perl} with {S.perl}!" } } }; class Beer { }; class Water { }; my Can of Beer $starobrno = Can[Beer].new(); $starobrno.fill(Water.new); | |||
p6eval | rakudo a53a1c: OUTPUT«you can not fill a can of Beer with Water!» | 10:04 | |
masak | moritz_: I'm thinking of switching proto to JSON. it would be less hackish. | ||
jnthn | \o/ | ||
moritz_ | masak: \o| | ||
masak | jnthn++ | ||
wayland76 | Hmm. Not sure whether that will help me, but maybe I can fool the compiler that way :) | 10:05 | |
masak | jnthn: that example, more than anything I've seen so far, makes me realize what to use parameterized roles for. | ||
jnthn | masak: Erm. | 10:06 | |
masak: You're making me think that silly example should go in my talk now. | 10:07 | ||
:-) | |||
masak | jnthn: I'm just saying to worked very well for me. | ||
wayland76 | Is implementing predeclaration of roles as simple as doing something like "if body = '...' then whatever" ??? | ||
masak | I've already seen your other param-roles examples. | ||
jnthn | wayland76: Well, maybe something along those lines. The whatever bit is the harder part. ;-) | 10:08 | |
wayland76 | Ok :) | ||
jnthn | It's relatively low-hanging fruit though. | ||
wayland76 | Lets just overload the * operator to do it :) | 10:09 | |
masak | how would that help, even in the context of a joke? | ||
wayland76 | Isn't it called the "whatever" operator? :) | 10:10 | |
jnthn | Gah, why do I find the syntax for iptables impossible to commit to memory... | ||
masak | wayland76: oh, I was confused by you calling it an operator. :) | ||
wayland76 | Because it's a pain? :) | ||
moritz_ | it's a term, actually | 10:11 | |
wayland76 | jnthn: That example in the bug I submitted works as long as you don't call .new() Is that a bug? Should it only work if one of the roles is parameterised? | ||
10:12
wknight8111 left
|
|||
masak | wayland76: as far as I understand, all roles are parametereized. | 10:12 | |
jnthn | wayland76: All roles are "parameterized" in a sense. | ||
wayland76 | Sorry, let me rephrase that | ||
masak | though they may be parameterized with zero parameters. | ||
jnthn | role Foo { } is really the same as role Foo[] { } | ||
As in, *really* the same. | 10:13 | ||
wayland76 | Should it only work if the roles have different sigs? | ||
jnthn | Well, it's built on multiple dispatch. | ||
So the rules for conflicts are the same. | |||
moritz_ | detecting if two sigs are always identical is turing complete | 10:14 | |
so in general you can't know if there'll be an ambiguous dispatch unless you try it | 10:15 | ||
jnthn | moritz_: Right. | 10:16 | |
Which is the rule for multiple dispatch. :-) | |||
moritz_ | rakudo: role A[Int $x where { $x % 2 == 0 }] { method s { 'even' } }; role A[Int $x where{ $x % 2 == 1 }] { method s { 'odd' } }; class X does A[5]; say X.new.s | ||
p6eval | rakudo a53a1c: OUTPUT«Potential internal error: bindability check may have done more than just binding.Potential internal error: bindability check may have done more than just binding.Ambiguous dispatch to multi '_block50'. Ambiguous candidates had signatures::(Int $x where all({ ... })):(Int | ||
..$x whe… | |||
moritz_ submits | 10:17 | ||
masak | wow, that's a new one. | ||
jnthn | Wow! | 10:18 | |
masak | also, I look forward to the day when closures stringify correctly. | ||
jnthn inserted that check hoping it'd never actually happen. | |||
masak | good thing you didn't name it 'ThisShouldNeverHappenError' or something. :) | 10:20 | |
masak has done something in that vein once | |||
moritz_ | jnthn: you should have known us better ;-) | ||
masak | #perl6: helping torment the implementors since 2005. | 10:21 | |
jnthn | Well, I'd much rather having the implementation flagging up that something has probably gone very wrong than silently appearing to work. | ||
Then doing something that'd be *very* hard to trace/debug later. | |||
literal | gbracha.blogspot.com/2009/07/miracl...ecome.html | ||
does Perl 6 do this? | 10:22 | ||
10:22
eMaX joined
|
|||
jnthn | Is that just not assignment to self? | 10:22 | |
wayland76 | jnthn: Where should the merging of the two roles be done? Should it be done during the first dispatch, or during !add_variant, or what? | 10:23 | |
jnthn | method foo($self is rw:) { $self = OtherThingy.new } | ||
wayland76: Oh, it *shuld* be an ambiguous dispatch. | |||
wayland76: They shouldn't get silently merged, just as different multi candidates should not. | |||
wayland76: The problem is that something triggered a sanity check that we should never trigger. | 10:24 | ||
wayland76 | Err, I'm talking about the predeclaration one. Are you talking about that too? | ||
jnthn | No :-) | ||
wayland76 | Ah, no, you're talking about moritz_'s one | ||
10:24
icwiener joined
|
|||
wayland76 | Ok, can you re-read the question, assuming it's about the predeclaration one? :) | 10:25 | |
jnthn | eek, I got a meet-up with my slovak language parter that I gotta head off too! | ||
nearly forgot that... | |||
wayland76 | ok, sorry | 10:26 | |
jnthn | wayland76: I suspect we should detect it, but not emit a role body or something. | ||
Just create a Perl6Role and install it in the namespace but at that point it has no candidates. | |||
That is, if there isn't one there already. | |||
wayland76 | Ok, that sounds reasonable. I'll see if I can find the time to learn enough about Rakudo to understand what needs doing, even if I can't solve it :) | 10:27 | |
o/ jnthn | 10:28 | ||
TimToady | rehi | 10:30 | |
10:31
ejs2 joined
|
|||
wayland76 | TimToady: In the backlog, japhb had a question for you :) | 10:33 | |
pugs_svn | r27823 | jimmy++ | added missing POD commands | 10:37 | |
TimToady | wayland76: it's difficult to have answers at 3:40am mental time, even if the sun is shining here | 10:40 | |
10:40
ejs2 left
|
|||
masak | TimToady: welcome to Lisbon! | 10:40 | |
10:40
ejs2 joined
|
|||
wayland76 | TimToady: That's fine, I just thought I'd pass on the message :) | 10:41 | |
10:41
ejs1 left
|
|||
masak | TimToady: are you coming to szabgab's training lessons tomorrow? | 10:41 | |
TimToady | we're still trying to fugure that out | 10:42 | |
*figure | |||
pugs_svn | r27824 | jimmy++ | [blog]using the right single quote character | 10:43 | |
masak | ok. I thought I'd go there. finally I get to learn Perl 6! | 10:44 | |
I plan to do a trial walk to the venue later this afternoon. | 10:45 | ||
Google Maps says it's a 72 minute walk. | |||
10:45
meppl joined
|
|||
TimToady | we thought we might do that too at some point, bu tmay be no ttoday | 10:45 | |
we want to do a bit of sightseeing, but when we do that depends on when peopel decide to hackathon on what | 10:46 | ||
*people even | |||
masak | yes, that makes sense. | ||
I haven't heard much about a hackathon. | |||
TimToady | and we did see the earlier version of Gabor's tutorial | 10:47 | |
one of the reasons prefix:<=> went away :) | |||
masak | yes, I remember. | ||
pugs_svn | r27825 | jimmy++ | [spec]using the right single quote character | 10:48 | |
masak | my fondest memory from that class was finishing the five-lines for-loop exercise first, with a one-liner. :) | ||
the task was "sum all the values coming in on STDIN, one on each line". and the answer would be spelled `say [+] $*IN.lines()` nowadays. | 10:49 | ||
lunch & | 10:50 | ||
10:51
masak left
10:52
jauaor joined
|
|||
JimmyZ | while(1) { masak.lunch }; | 10:57 | |
dinner & | 10:59 | ||
wayland76 | Careful, you could kill masak that way :) | 11:04 | |
JimmyZ | that's a bug | 11:06 | |
while(1) { masak.lunch; masak.sleep(8*24*3600); } | 11:07 | ||
11:08
payload left
11:19
pmurias joined
11:20
donaldh left,
donaldh joined
11:23
gribouille joined
|
|||
gribouille | hi | 11:24 | |
is perl6 going to be released soon ? | |||
11:26
Front_slash joined
|
|||
Juerd | gribouille: No | 11:26 | |
moritz_ | gribouille: an implementation is released every month | ||
it's not complete, though | |||
wayland76 | It's usable, but there's no database interaction yet, for example | 11:40 | |
11:43
ejs2 left
11:46
JimmyZ left
|
|||
missingthepoint | TimToady: enjoy Lisbon :) | 11:53 | |
masak: you too :) | 11:55 | ||
11:57
M_o_C joined
12:04
iblechbot left
12:05
Jedai joined
12:09
xomas_ joined
12:12
masak joined
12:15
dakkar left
12:16
ruoso joined
|
|||
ruoso | Hello! | 12:18 | |
masak | oh hai | ||
12:19
Ehtyar joined
12:20
Ehtyar left
|
|||
masak | gribouille: if you're curious, you can try Perl 6 right here on the channel. | 12:23 | |
rakudo: say "OH HAI OMG ITS PERL 6" | |||
p6eval | rakudo a53a1c: OUTPUT«OH HAI OMG ITS PERL 6» | ||
masak | rakudo: say $*IN.get.words[0] | ||
p6eval | rakudo a53a1c: OUTPUT«Land» | ||
masak | rakudo: say $*IN.get.words[0].uc ~ '!' | 12:24 | |
p6eval | rakudo a53a1c: OUTPUT«LAND!» | ||
masak | rakudo: say [~] 'I CAN HAZ ', $*IN.get.words[0].uc, '?' | ||
moritz_ | rakudo: say $*IN.lines.words.grep({/:i ö/}.join: ' ' | ||
p6eval | rakudo a53a1c: OUTPUT«I CAN HAZ LAND?» | ||
rakudo a53a1c: OUTPUT«Statement not terminated properly at line 2, near "({/:i \x{f6}/}."in Main (src/gen_setting.pm:3363)» | |||
moritz_ | rakudo: say $*IN.lines.words.grep({/:i ö/}).join: ' ' | 12:25 | |
p6eval | rakudo a53a1c: OUTPUT«Söhne, Schöne, Österreich, Österreich! Österreich, Österreich! Brüderchören, schwören, Österreich, Österreich!» | ||
pmurias | ruoso: hi | ||
masak | :) | ||
moritz_ | that sounds quite a bit funny if you read it ;-) | ||
pmurias | ruoso: i'm trying to get App::Persistent to work with mildew | ||
ruoso | hi pmurias | 12:26 | |
masak | rakudo: say $*IN.lines.words.grep({/:i ä/}).join: ' ' | ||
p6eval | rakudo a53a1c: OUTPUT«Äcker, Hämmer, gläubig» | ||
masak | :) | ||
12:26
mkfort joined
|
|||
masak | rakudo: say $*IN.lines.words.grep({/:i ä/}) | 12:27 | |
p6eval | rakudo a53a1c: OUTPUT«Äcker,Hämmer,gläubig» | ||
masak | rakudo: say $*IN.lines.words.grep({/:i ä/}).fmt | ||
p6eval | rakudo a53a1c: OUTPUT«Äcker, Hämmer, gläubig» | ||
moritz_ | rakudo: say $*IN.lines.words.grep({/:i ü/}).fmt | ||
p6eval | rakudo a53a1c: OUTPUT«für vielgerühmtes vielgerühmtes frühen vielgeprüftes vielgeprüftes Brüderchören,» | ||
moritz_ | rakudo: say $*IN.lines.words.grep({/:i ü/}).uniq.fmt | ||
12:27
payload joined
|
|||
p6eval | rakudo a53a1c: OUTPUT«für vielgerühmtes frühen vielgeprüftes Brüderchören,» | 12:28 | |
masak | rakudo: say $*IN.lines.words.grep({/:i aus/}).fmt | ||
p6eval | rakudo a53a1c: OUTPUT«» | ||
masak | rakudo: say $*IN.lines.words.grep({/:i ck/}).fmt | ||
p6eval | rakudo a53a1c: OUTPUT«Äcker,» | ||
moritz_ can't find App::Persistent on CPAN | 12:30 | ||
masak bets there's some joke to be made about that, too | 12:31 | ||
ruoso | pmurias, sounds like an interesting challenge | ||
12:34
jauaor left,
gribouille left
|
|||
pmurias | moritz_: it's on git hub | 12:36 | |
12:37
mkfort_ left
|
|||
moritz_ | bah. Perl 5 modules don't exist unless they are on CPAN | 12:37 | |
masak agrees, darkly | 12:39 | ||
ruoso too | 12:40 | ||
12:41
missingthepoint left,
skids_ joined
|
|||
wayland76 is a bad boy :) | 12:47 | ||
masak | rakudo: say (('bad boys' xx 2).join(', '), 'watcha gonna do').pick(4, :repl).join(', ') | 12:57 | |
p6eval | rakudo a53a1c: OUTPUT«watcha gonna do, watcha gonna do, watcha gonna do, watcha gonna do» | ||
masak | clearly, the dice are not on my side today. | ||
jnthn | sub rand { 4 #{ what the dice said; totally random } } | 12:58 | |
masak | not my brand of rand. | 12:59 | |
13:05
meppl left,
payload left
|
|||
Matt-W | I was due to demonstrate a bit of software for my colleagues | 13:11 | |
I did a dry run | 13:12 | ||
I discovered somebody's sneaked in and broken it | |||
I was not happy | |||
masak | software-o-clasts! | 13:13 | |
13:14
payload joined
13:15
donaldh left
|
|||
Matt-W is trying to figure out where it's going wrong now | 13:15 | ||
13:15
donaldh joined,
poe joined
|
|||
masak | why not just revert first and ask questions later? | 13:16 | |
Matt-W | because I've not even found the commit that broke it yet | ||
and if I do, it's likely it's got other things in too that are important | |||
masak | atomic++ | 13:17 | |
Matt-W | also, we're using subversion | 13:19 | |
so all these things are far harder than they should be | |||
wayland76 | Ah, so the problem is, it subverted your software :) | ||
Matt-W | something did... | ||
it's getting two config parameters confused | 13:20 | ||
wayland76 | Anyway, it's bedtime here, so o/'nightafk& | ||
Matt-W | and feeding the data from one into the routines for the other | ||
the results are quite surprising | |||
Ahah | 13:35 | ||
found it :D | |||
13:42
M_o_C left
13:43
JimmyZ joined
13:49
xomas joined
13:59
mberends joined
|
|||
mberends | masak: hi | 14:00 | |
14:03
xomas_ left
|
|||
masak | mberends: oh hai, where are you? | 14:06 | |
masak is in the city in question | 14:07 | ||
14:11
iblechbot joined
|
|||
mberends | masak: still in NL, will be in UK tomorrow morning and PT in the evening. Are you online at the Goodnight Hostel? | 14:13 | |
masak | mberends: I am indeed. | 14:14 | |
looking forward to seeing you again. | |||
mberends | ditto. you can help me finalize the procrastination of my presentation | ||
masak | ditto. | 14:15 | |
mberends | (I haven't had time to start procrastinating yet) | ||
jnthn is procrastinating his presentation this very minute. | |||
mberends | jnthn++: you're ahead then! | ||
masak | I've finalized procrastinating, but I haven't started on the next step after that. | ||
mberends | afk & | 14:16 | |
14:24
meppl joined
14:28
sunnavy joined
|
|||
jnthn | masak: The my Can of Beer made it into the talk. ;-) | 14:45 | |
14:47
payload left,
clintongormley joined
|
|||
masak | jnthn++ | 14:48 | |
14:48
iblechbot left,
rfordinal left
|
|||
jnthn | masak: Thanks for highlighting it as something that made you get parametric roles. ;-) | 14:49 | |
Hopefully it works for others too. | |||
14:55
alester joined,
charsbar left
|
|||
jnthn | My socks are dry! \o/ | 14:55 | |
jnthn finishes up his YAPC::EU packing | |||
14:56
Psyche^ joined,
nihiliad joined
14:58
jauaor joined
14:59
charsbar joined
|
|||
jauaor | morning | 15:04 | |
masak | jauaor: \o | ||
jauaor | :D | 15:05 | |
hi there masak | |||
how it goes? | |||
JimmyZ | rakudo: my @results{1..100 :by(2)}; say @results{*} | 15:06 | |
p6eval | rakudo a53a1c: OUTPUT«Statement not terminated properly at line 2, near "{1..100 :b"in Main (src/gen_setting.pm:3363)» | ||
dalek | kudo: e02bc06 | jnthn++ | src/builtins/guts.pir: Improve error output when we have a junction of types. |
15:07 | |
JimmyZ | rakudo: my @results{1..100 :by(2)} = 42, 86, 99, 1; say @results{*} | 15:08 | |
p6eval | rakudo a53a1c: OUTPUT«Statement not terminated properly at line 2, near "{1..100 :b"in Main (src/gen_setting.pm:3363)» | ||
15:12
Patterner left,
Psyche^ is now known as Patterner
|
|||
masak | JimmyZ: :by not implemented. | 15:17 | |
jauaor: well it goes. how for you it goes? | 15:18 | ||
15:20
donaldh left
|
|||
jauaor | masak: doing good, writing some lines about my lang spec | 15:20 | |
:P | |||
15:20
donaldh joined
|
|||
PerlJam | good morning! | 15:22 | |
masak | rakudo: ('I CAN HAZ ' ~ $*IN.get.uc.subst('D', 'G SPEC?')).say | ||
p6eval | rakudo a53a1c: OUTPUT«I CAN HAZ LANG SPEC? DER BERGE, LAND AM STROME,» | ||
masak | oops. | 15:23 | |
rakudo: ('I CAN HAZ ' ~ $*IN.get.words[0].uc.subst('D', 'G SPEC?')).say | |||
p6eval | rakudo a53a1c: OUTPUT«I CAN HAZ LANG SPEC?» | ||
15:29
justatheory joined
|
|||
PerlJam | moritz_: you've got a commit bit to perl6-docs now. :) | 15:30 | |
@tell Su-Shee The difference between perl-docs and u4x is that perl6-docs doesn't aim to be documentation for perl6 as much as just documents about perl 6. They may merge at some point though. | 15:31 | ||
lambdabot | Consider it noted. | ||
15:32
hercynium left
|
|||
masak | PerlJam: ah, good to know. I was wondering about that, too. | 15:33 | |
PerlJam | at least in my head, u4x is to comprehensive documentation while perl6-docs is almost explicitly NOT comprehensive :) | 15:35 | |
s/to/to be/ | |||
masak | sounds about right. | 15:36 | |
PerlJam | (perhaps the naming is unfortunate though) | 15:37 | |
masak | not necessarily. | ||
maybe perl6-docs can handle the 'tutorials' part of Perl 6 documentation. | |||
PerlJam | masak: that's the idea :) | ||
masak | excellent. I'm not really interested in having that in u4x right now anyway. | ||
PerlJam | masak: you want a commit bit ? | 15:38 | |
masak | sure, might as well. :) | ||
15:44
iblechbot joined
|
|||
PerlJam | you *are* masak on github right? | 15:44 | |
15:45
rfordinal joined
|
|||
PerlJam | (github seems to be thinking a little too much) | 15:45 | |
added. | |||
jnthn cracks up laughing reading the last paragraph of chromatic++'s latest post on use.perl.org | 15:48 | ||
masak | URL? | 15:49 | |
PerlJam: yes. | 15:50 | ||
leedo | masak: use.perl.org/~chromatic/journal/39381 | 15:51 | |
masak | thanks. | ||
somehow, I had skimmed that earlier today and missed the immense sarcasm in it. skimming-- | 15:53 | ||
leedo | same here :P | ||
15:56
payload joined
15:57
SmokeMachine joined
|
|||
jnthn | OK, I'm off to the airport. | 15:58 | |
Catch you all later, and see some of you in Lisbon. :-) | |||
masak | jnthn: o/ | ||
16:04
ilango joined
|
|||
JimmyZ | rakudo: my @array is PDL(:shape(2;2;2;2)) of int8; say @array.perl | 16:05 | |
p6eval | rakudo e02bc0: OUTPUT«Statement not terminated properly at line 2, near "(:shape(2;"in Main (src/gen_setting.pm:3363)» | ||
JimmyZ | rakudo: my num @array[@@mytensorshape] is PDL; say @array.perl | ||
p6eval | rakudo e02bc0: OUTPUT«Malformed declaration at line 2, near "num @array"in Main (src/gen_setting.pm:3363)» | ||
JimmyZ | rakudo: my @array[@@mytensorshape] is PDL; say @array.perl | ||
p6eval | rakudo e02bc0: OUTPUT«Statement not terminated properly at line 2, near "[@@mytenso"in Main (src/gen_setting.pm:3363)» | ||
masak | JimmyZ: S09 largely unimplemented. | ||
JimmyZ | masak++ | 16:06 | |
yes, I am using S09 | |||
masak | :P | 16:07 | |
16:07
ilango left
|
|||
JimmyZ | should we make purl working here? | 16:11 | |
16:14
ilango joined
|
|||
masak | rakudo: sub foo($a, $a) { say $a }; foo(42, 5) | 16:15 | |
p6eval | rakudo e02bc0: OUTPUT«5» | ||
masak | hah! | ||
masak submits rakudobug | |||
16:15
ilango left
|
|||
JimmyZ | masak++ again ;) | 16:16 | |
masak | don't wear out that plus key, acolyte. :) | ||
pmichaud | Good afternoon, #perl6 | 16:18 | |
masak | pmichaud: boa tarde, pmichaud. | ||
pmichaud | aiiiie so much backscroll to read.... | ||
JimmyZ | rakudo: my $_ = 8 | 9; say ++.perl; | 16:19 | |
masak | and even then, we held back a lot on the Chinese parts of it. | ||
p6eval | rakudo e02bc0: OUTPUT«any(8, 10)» | ||
JimmyZ | rakudo: my $_ = 8 | 9; say ++(.perl); | ||
p6eval | rakudo e02bc0: OUTPUT«any(8, 10)» | ||
16:19
synth left
|
|||
JimmyZ still don't know why it outputs 8, 10 | 16:20 | ||
pmichaud | JimmyZ: it's doing a string increment | ||
rakudo: say "any(8,9)".succ | |||
p6eval | rakudo e02bc0: OUTPUT«any(8,10)» | ||
pmichaud | .perl is producing "any(8, 9)", and incrementing that string results in "any(8, 10)" | 16:21 | |
JimmyZ | rakudo: say ++"any(8,9)"; | ||
p6eval | rakudo e02bc0: OUTPUT«Unable to set lvalue on PAST::Val nodein Main (src/gen_setting.pm:3363)» | ||
16:21
zamolxes left
|
|||
JimmyZ | rakudo: say "any(8,9)".++; | 16:21 | |
pmichaud | can't use increment on a constant :-) | ||
p6eval | rakudo e02bc0: OUTPUT«Statement not terminated properly at line 2, near ".++;"in Main (src/gen_setting.pm:3363)» | ||
pmichaud | rakudo: my $x = "any(8,9)"; $x++; say $x; | 16:22 | |
p6eval | rakudo e02bc0: OUTPUT«any(8,10)» | ||
JimmyZ | rakudo: my $_= 'any(8,9)'; (++$_).say | ||
p6eval | rakudo e02bc0: OUTPUT«any(8,10)» | ||
JimmyZ | rakudo: my $_= 'any(8,9)'; ++$_.say | ||
p6eval | rakudo e02bc0: OUTPUT«any(8,9)» | ||
pmichaud | rakudo: my $x = "cheezburgers: 9!!!"; $x++; say $x; | 16:23 | |
p6eval | rakudo e02bc0: OUTPUT«cheezburgers: 10!!!» | ||
JimmyZ | rakudo: my $x = "cheezburgers: 7!!!8"; $x++; say $x; | ||
p6eval | rakudo e02bc0: OUTPUT«cheezburgers: 7!!!9» | ||
masak 's mind boggles at 10 cheezburgers | 16:24 | ||
JimmyZ | it 'inc' the last number. | ||
pmichaud | no, it increments the last incrementable string | ||
masak | JimmyZ: it's in S03. | ||
pmichaud | my $x = "I has 10 cheezburgers"; $x++; say $x; | ||
rakudo: my $x = "I has 10 cheezburgers"; $x++; say $x; | 16:25 | ||
p6eval | rakudo e02bc0: OUTPUT«I has 10 cheezburgert» | ||
masak | rakudo: my $x = "I has 10.20 cheezburgers"; $x++; say $x | ||
p6eval | rakudo e02bc0: OUTPUT«I has 10.20 cheezburgert» | ||
JimmyZ | bug found? | ||
pmichaud | no, that's the spec. | ||
masak | JimmyZ: no, what pmichaud said. | ||
JimmyZ: it increments the last incrementable string. | 16:26 | ||
pmichaud | my $x = "hai"; say ++$x; say ++$x; say ++$x; | ||
rakudo: my $x = "hai"; say ++$x; say ++$x; say ++$x; | |||
p6eval | rakudo e02bc0: OUTPUT«hajhakhal» | ||
JimmyZ | rakudo: my $x = "I has 10 cheezburgers"; say ++$x; say ++$x; say ++$x; | 16:27 | |
p6eval | rakudo e02bc0: OUTPUT«I has 10 cheezburgertI has 10 cheezburgeruI has 10 cheezburgerv» | ||
JimmyZ | my $x = '!'; say ++$x; say ++$x; say ++$x; | ||
rakudo: my $x = '!'; say ++$x; say ++$x; say ++$x; | 16:28 | ||
p6eval | rakudo e02bc0: OUTPUT«!!!» | ||
16:29
donaldh left
|
|||
JimmyZ | a bit weird. | 16:29 | |
rukudo: my $_ = 'jpg'; .say; my $_ = '001.jpg'; .say; | 16:31 | ||
16:31
SmokeMachine left
|
|||
JimmyZ | rakudo: my $_ = 'jpg'; say ++$_; my $_ = '001.jpg'; say ++$_; | 16:32 | |
p6eval | rakudo e02bc0: OUTPUT«Redeclaration of variable $_jph002.jpg» | ||
JimmyZ | rakudo: my $_ = 'jpg'; say ++$_; | ||
p6eval | rakudo e02bc0: OUTPUT«jph» | ||
masak liked 'cheezburgeru' -- sounds a bit like Japanese | |||
JimmyZ | rakudo: my $_ = 'jpg'; say ++$_; $_ = '001.jpg'; say ++$_; | ||
p6eval | rakudo e02bc0: OUTPUT«jph002.jpg» | ||
pmichaud | (rakudo ftw!) | 16:33 | |
JimmyZ | what's the definition of last incrementable string ? | ||
masak | rakudo: for '001.jpg' .. '010.jpg' { .say } | 16:34 | |
p6eval | rakudo e02bc0: OUTPUT«001.jpg002.jpg003.jpg004.jpg005.jpg006.jpg007.jpg008.jpg009.jpg010.jpg» | ||
masak | JimmyZ: well, numbers are incrementable. and letters. | ||
pmichaud | I'm a little surprised that worked. :-) | ||
masak | JimmyZ: and unicode things which look like numbers and letters. | ||
pmichaud | we can also increment other things.... :-) | ||
JimmyZ | first number, and if no that, and then letters? | 16:35 | |
pmichaud | rakudo: my $x = '⚀'; $x++; say $x | ||
p6eval | rakudo e02bc0: OUTPUT«⚁» | ||
pmichaud | rakudo: my $x = '⚀'; loop { $x++; say $x } | ||
p6eval | rakudo e02bc0: | ||
..OUTPUT«⚁⚂⚃⚄⚅⚀⚀⚀⚁⚀⚂⚀⚃⚀⚄⚀⚅⚁⚀⚁⚁⚁⚂⚁⚃⚁⚄⚁⚅⚂⚀⚂⚁⚂⚂⚂⚃⚂⚄⚂⚅⚃⚀⚃⚁⚃⚂⚃⚃⚃⚄⚃⚅⚄⚀⚄⚁⚄⚂⚄⚃⚄⚄⚄⚅⚅⚀⚅⚁⚅⚂⚅⚃⚅⚄⚅⚅⚀⚀⚀⚀⚀⚁⚀⚀⚂⚀⚀⚃⚀⚀⚄⚀xE2 | |||
JimmyZ | my $x = '一'; say ++$x; | 16:36 | |
rakudo: my $x = '一'; say ++$x; | |||
p6eval | rakudo e02bc0: OUTPUT«一» | ||
JimmyZ | not 二 ;) | ||
masak | pmichaud: yeah, but those are essentially numberish things. | ||
JimmyZ: there's a limit even to Perl 6's magic. | 16:37 | ||
pmichaud | agreed :-) | ||
masak | JimmyZ: but you do have a case. | ||
that character does mean 'one'. | |||
and if even _dice_ get to play, why not hanzi? | |||
pmichaud | rakudo: my $x = 'ⅰ '; loop { say ++$x } | 16:38 | |
p6eval | rakudo e02bc0: OUTPUT«ⅱ ⅲ ⅳ ⅴ ⅵ ⅶ ⅷ ⅸ ⅹ ⅺ ⅻ ⅰⅰ ⅰⅱ ⅰⅲ ⅰⅳ ⅰⅴ ⅰⅵ ⅰⅶ ⅰⅷ ⅰⅸ ⅰⅹ ⅰⅺ ⅰⅻ ⅱⅰ ⅱⅱ ⅱⅲ ⅱⅳ ⅱⅴ ⅱⅵ ⅱⅶ ⅱⅷ ⅱⅸ ⅱⅹ ⅱⅺ ⅱⅻ ⅲⅰ ⅲⅱ ⅲⅲ ⅲⅳ ⅲⅴ ⅲⅵ ⅲⅶ ⅲⅷ ⅲⅸ xE2 | ||
..ⅵⅱ ⅵ… | |||
masak | there's clearly a cultural bias here. | ||
pmichaud | I'm just following the spec :-) | ||
JimmyZ | Is Perl 6 too strong? | 16:39 | |
masak | the long-dead Roman empire can be incremented, but the still-alive Sinitic peoples have to remain at 一. | ||
JimmyZ: you bet! | |||
JimmyZ | rakudo: my $_ = ①; loop { .say } | 16:41 | |
p6eval | rakudo e02bc0: OUTPUT«Statement not terminated properly at line 2, near "= \u2460; loop "in Main (src/gen_setting.pm:3363)» | ||
JimmyZ | rakudo: my $_ = '①'; loop { .say } | ||
p6eval | rakudo e02bc0: | ||
..OUTPUT«①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①xE2 | |||
JimmyZ | rakudo: my $_ = '①'; loop { say ++$_ } | ||
p6eval | rakudo e02bc0: | ||
..OUTPUT«②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳①①①②①③①④①⑤①⑥①⑦①⑧①⑨①⑩①⑪①⑫①⑬①⑭①⑮①⑯①⑰①⑱①⑲①⑳②①②②②③②④②⑤②⑥②⑦②⑧②⑨②⑩②⑪②⑫②⑬②⑭xE2 | |||
16:42
cdarroch joined
|
|||
JimmyZ | It is a bug | 16:42 | |
masak | what is? | ||
JimmyZ | wait... | 16:43 | |
rakudo: my $_ = ①; loop { say ++$_ } | |||
p6eval | rakudo e02bc0: OUTPUT«Statement not terminated properly at line 2, near "= \u2460; loop "in Main (src/gen_setting.pm:3363)» | ||
JimmyZ | rakudo: for '①' .. '⑳' { .say } | 16:44 | |
p6eval | rakudo e02bc0: OUTPUT«①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳» | ||
pmichaud | finally caught up with backscroll | 16:45 | |
I'm thinking about coming to the perl 6 training tomorrow, if I'm not too tired | |||
JimmyZ | rakudo: my $_ = '①'; loop { say ++$_ } | ||
p6eval | rakudo e02bc0: | ||
..OUTPUT«②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳①①①②①③①④①⑤①⑥①⑦①⑧①⑨①⑩①⑪①⑫①⑬①⑭①⑮①⑯①⑰①⑱①⑲①⑳②①②②②③②④②⑤②⑥②⑦②⑧②⑨②⑩②⑪②⑫②⑬②⑭xE2 | |||
pmichaud | PerlJam: ping | 16:46 | |
masak | pmichaud: me too. I'll try walking there tonight, so I won't have worry about finding the way there tomorrow. | 16:47 | |
pmichaud | is it in the same location as the conference? | ||
masak | another building, but same location. | 16:48 | |
pmichaud | okay | ||
TimToady | we were thinking of walking up there soon | ||
masak | me too. | ||
pmichaud | my hotel (radisson) appears to be very close to the conference venue so getting there shouldn't be much of a problem | ||
masak | I'm about 1 hour away by foot. | ||
pmichaud | right now I'm "stuck" at EWR for the next seven hours waiting for my next flight :-) | 16:49 | |
masak | it'll make a nice late-afternoon walk. | ||
pmichaud: bet you're glad you have git. :) | |||
pmichaud | well, wifi here seems to be pretty nice so far | ||
but yes, I'm glad for git | |||
I'm trying to decide if I should (1) goof off, (2) work on PGE, (3) work on Rakudo REPL, (4) write my talk slides | 16:50 | ||
16:50
M_o_C joined
|
|||
masak | those all sound nice to me. :) | 16:51 | |
do they all take seven hours? | |||
pmichaud | No. | ||
Write my talk slides will take about five minutes. :-P | |||
masak | I wish I could say the same. | ||
pmichaud | Yes! Yes! I'm actually going to a conference where I have my slides written before I arrive!! | ||
of course, I'm just re-using my oscon talk.... | 16:52 | ||
and I'm thinking about changing a couple of items | |||
16:52
kane_ joined
|
|||
TimToady | masak: did you say you were at the alif? | 16:52 | |
masak | TimToady: no, at a hostel called GoodNight. | 16:53 | |
Juerd isn't going to YAPC::Europe this year, because it's too close to HAR, datewise. | |||
M_o_C | what's HAR? | ||
Juerd | Hacking At Random | 16:54 | |
16:54
justatheory left
|
|||
Juerd | security/technology/politics conference | 16:55 | |
www.har2009.org/ | |||
masak | TimToady: it might be that finding each other before setting out on the hike is more trouble than it's worth. I still have a bit of an unexpected extra workday to finish, so I don't really know when I will embark on the walk. | 16:56 | |
TimToady | yeah, prolly doesn't make sense | ||
masak | if I read Google Maps right, there are four Hotels named Alif in town. :) | 16:57 | |
pmichaud | I noticed that also. | ||
TimToady | we're next to the bullfighting ring in Campo Pequeno | ||
16:58
SmokeMachine joined
|
|||
masak | I think I've been really lucky with my choice of lodging. but maybe I should reserve judgment until after Friday night. | 16:58 | |
TimToady | er, yeah :) | ||
masak | :) | ||
twitter.com/carlmasak/status/2952840176 | 16:59 | ||
pmichaud | *click* | ||
masak | so, I don't know. | ||
I've been duly warned... | |||
M_o_C | Does someone know why it's necessary for twitter to have javascript enabled? it kind of anoys me as I see no obvious reason | 17:00 | |
JimmyZ | rakudo: say 10/0; | ||
rakudo: say 10 div 0; | |||
pmichaud | Is there a page that maps "Training Room B" to a physical location somewhere? | 17:01 | |
p6eval | rakudo e02bc0: OUTPUT«Divide by zero» | ||
rakudo e02bc0: OUTPUT«No applicable methods.in Main (/tmp/o1DarbXt6C:2)» | |||
masak | M_o_C: there's a "get older tweets" button when viewing people's profiles. | 17:02 | |
TimToady | nothing other than yapceurope2009.org/ye2009/wiki?node...ueLocation that I can see | 17:03 | |
pmichaud | yeah. | ||
JimmyZ | $_ = 3 ^ 4 ^ 5; .say; | ||
pmichaud | oh, that map has been updated since I last looked. | ||
JimmyZ | rakudo: $_ = 3 ^ 4 ^ 5; .say; | ||
pmichaud | Good. | ||
p6eval | rakudo e02bc0: OUTPUT«345» | ||
JimmyZ | rakudo: $_ = 3 ^ 4 ^ 5; say .perl; | 17:04 | |
p6eval | rakudo e02bc0: OUTPUT«one(3, 4, 5)» | ||
pmichaud | previously it didn't have "training sessions" or "venue" on it. | ||
JimmyZ | rakudo: $_ = 3 | 4 | 5; .say; | ||
p6eval | rakudo e02bc0: OUTPUT«345» | ||
TimToady | once you're in the right building you can just shout | ||
pmichaud | "Hey! I'm a Perl 6 newbie! Where are the training sessions!" | ||
TimToady tries to picture pmichaud shouting | 17:05 | ||
pmichaud | .oO( If Perl 6 has 'say', why don't we also have a 'shout'? ) |
||
TimToady | .uc.say | ||
pmichaud | lol | ||
"Touché!".uc.say | |||
JimmyZ | Perl 6 is kinda like javascript ;) | 17:06 | |
pmichaud | Perl 6 is kinda like all languages, only different. | ||
Except for Perl 5. Perl 6 is *nothing* like Perl 5. | |||
:-D | |||
Juerd | I still don't get why say is a method, by the way. | ||
JimmyZ | I meant the Perl 6 object system. | ||
Juerd | Is this explained somewhere? | ||
pmichaud | I find using .say as a method to be very convenient, personally. | 17:07 | |
[particle] | Ook. Ook. | ||
JimmyZ | pmichaud: me too. | ||
Juerd | pmichaud: That could be a very good reason by itself but I was wondering if there was more to it :) | ||
pmichaud | sometimes we want to put what we're doing at the front say "hello".uc | ||
Juerd | If somehow it would make sense, be the logical thing to do. | ||
pmichaud | sometimes we want to put everything in the order we're doing them | 17:08 | |
%hash.sort.say | |||
masak | that reminds me. I still haven't cleared with higher authority to make 'wanr' into a method. | ||
pmichaud | "sort the hash, then say it" | ||
TimToady | this notion of Any methods is kind of a way to define part of Perl the Language | ||
masak | er, 'warn'. | ||
JimmyZ | rakudo: '3'.HOW.methods.say | ||
p6eval | rakudo e02bc0: OUTPUT«too few arguments passed (1) - 3 params expectedin Main (/tmp/ulIlScME3Y:2)» | ||
masak | ('wanr' is Mandarin for 'goofing off') | ||
Juerd | TimToady: "Any method". Is that a unary method that takes any argument? | 17:09 | |
JimmyZ | rakudo: '3'.^methods.say | ||
p6eval | rakudo e02bc0: | ||
..OUTPUT«predencodesuccperlACCEPTSWHICHsprintfScalarlcfirstsrandComplexmappolarciskvsamecaselogmincapitalizemaxfirsttransflipIntdoesp5choplcsubstelemsabsendchompreduceindexceilingp5chomp:dpairs:e:fcombunpolarordchopintcharsrootsuckeysreverseisaucfirstsubstrfmtbytespickevalfilejointrimchrflo… | |||
JimmyZ | rakudo: '3'.^methods.join(', ').say | ||
p6eval | rakudo e02bc0: OUTPUT«WHICH, perl, ACCEPTS, sprintf, Scalar, pred, encode, succ, kv, samecase, capitalize, fmt, bytes, flip, does, p5chop, lc, reduce, chr, 1, 1, 1, comb, floor, round, chop, split, 1, words, can, lcfirst, uc, 1, srand, keys, map, 1, cis, 1, 1, min, max, 2, trans, 1, first, 1, join, | ||
..2, 1… | |||
TimToady | nice thing about Any methods/multis is they're automatically just defaults, found only if something more specifc doesn't apply | ||
Juerd | rakudo: '3'.^methods.grep(/say/).join(':').say | 17:10 | |
p6eval | rakudo e02bc0: OUTPUT«Object must be created by a class.in regex PGE::Grammar::_block54 (/tmp/otUrFBse0p:1)called from method Any::grep (src/gen_setting.pm:161)called from Main (/tmp/otUrFBse0p:2)» | ||
pmichaud | rakudo: '3'.^methods.grep(/^p/).join(', ').say | ||
p6eval | rakudo e02bc0: OUTPUT«Object must be created by a class.in regex PGE::Grammar::_block54 (/tmp/9AIHOlFwQU:1)called from method Any::grep (src/gen_setting.pm:161)called from Main (/tmp/9AIHOlFwQU:2)» | ||
pmichaud | uh oh | ||
something doesn't look right there. | |||
masak | looks like a... | ||
Juerd | It looks slightly broken | ||
TimToady | people were discussing the 1s yesterday | ||
pmichaud | I'm guessing PGE is having trouble matching against a method | ||
JimmyZ | rakudo: '3'.^methods.map({.name}.join(', ').say | ||
p6eval | rakudo e02bc0: OUTPUT«Statement not terminated properly at line 2, near "({.name}.j"in Main (src/gen_setting.pm:3363)» | ||
JimmyZ | rakudo: '3'.^methods.map({.name}).join(', ').say | ||
p6eval | rakudo e02bc0: OUTPUT«encode, succ, WHICH, ACCEPTS, perl, sprintf, Scalar, pred, map, polar, cis, log, substr, min, max, pick, first, evalfile, trans, Int, join, subst, elems, abs, chomp, end, index, ceiling, trim, p5chomp, pairs, unpolar, ord, rand, truncate, sort, rindex, sqrt, int, grep, values, | 17:11 | |
..char… | |||
pmichaud | rakudo: '3'.^methods.map.{.name}.grep(/^p/).join(', ').say | ||
p6eval | rakudo e02bc0: OUTPUT«Null PMC access in invoke()in Main (/tmp/iJWbeDVYFK:2)» | ||
pmichaud | bah | ||
oh | |||
rakudo: '3'.^methods.map({.name}).grep(/^p/).join(', ').say | |||
masak | rakudo: '3'.^methods[0] ~~ /foo/ | ||
p6eval | rakudo e02bc0: OUTPUT«perl, pred, p5chomp, polar, pairs, pick, p5chop, perl, print» | ||
rakudo e02bc0: ( no output ) | |||
pmichaud | rakudo: '3'.HOW.methods.map({.name}).grep(/^p/).join(', ').say | ||
p6eval | rakudo e02bc0: OUTPUT«too few arguments passed (1) - 3 params expectedin Main (/tmp/y00ikaqGTs:2)» | ||
pmichaud | probably needs the invocant or metaclass passed as an argument somewhere. | 17:12 | |
JimmyZ | rakudo: '3'.HOW(1).methods.say | ||
p6eval | rakudo e02bc0: OUTPUT«too many arguments passed (2) - 1 param expectedin Main (/tmp/abholEWQaG:2)» | ||
JimmyZ | rakudo: '3'.HOW().perl | 17:13 | |
p6eval | rakudo e02bc0: ( no output ) | ||
JimmyZ | rakudo: say '3'.HOW.perl | ||
p6eval | rakudo e02bc0: OUTPUT«Str.new()» | ||
JimmyZ | rakudo: '3'.HOW.perl.say | ||
p6eval | rakudo e02bc0: OUTPUT«Str.new()» | ||
JimmyZ | rakudo: Str.new().methods.say; | 17:14 | |
p6eval | rakudo e02bc0: OUTPUT«Method 'methods' not found for invocant of class 'Str'» | ||
JimmyZ | too many ways, and I don't know whether way is right :( | 17:15 | |
pmichaud | '3'.HOW.perl looks wrong | 17:16 | |
JimmyZ | rakudo: 3.HOW.perl.say | ||
pmichaud | rakudo: say '3'.WHAT.perl | ||
p6eval | rakudo e02bc0: OUTPUT«Int.new()» | ||
rakudo e02bc0: OUTPUT«Str» | |||
masak | JimmyZ: 'whether' means something like 是不是 -- you mean 'which way'. | 17:17 | |
JimmyZ | masak: thanks, I meant choice one from two :( | 17:18 | |
but use 'which' is the right way. | |||
s/use/using/ | 17:19 | ||
17:19
ruz_mac joined
|
|||
masak | JimmyZ++ # much better at English than masak is at Mandarin | 17:19 | |
JimmyZ: there's also 'whichever' (a strange synonym of 'which'), which sounds a bit like 'whether'. | 17:20 | ||
JimmyZ | masak: likes whatever and however, is it right? | ||
masak: i remember now, whether usually is used with 'or' | 17:22 | ||
PerlJam | were you guys trying to do Str.HOW.methods('') a few minutes ago? | 17:23 | |
pmichaud | yeah, something like that. | ||
rakudo: say Str.HOW.methods(Str) | |||
p6eval | rakudo e02bc0: | ||
..OUTPUT«predencodesuccACCEPTSperlWHICHsprintfScalarceilingp5chomp:dpairs:e:fcombunpolarordchopintcharsrootsucreversekeysisaucfirstsubstrfmtbytespickevalfilejointrimchrfloorrandtruncatesortroundsqrtrindexsplitmatchgrepwordsvaluescanlcfirstComplexsrandpolarmapciskvsamecaselogmincapitalizemax… | |||
PerlJam | rakudo: say Str.HOW.methods('').map(*.name).grep(/^p/).join: " " | ||
p6eval | rakudo e02bc0: OUTPUT«perl pred polar pairs pick p5chop p5chomp print perl» | ||
PerlJam | rakudo: say Str.HOW.methods(Str).map(*.name).grep(/^p/).join: " " | ||
p6eval | rakudo e02bc0: OUTPUT«pred perl p5chomp polar pairs pick p5chop print perl» | ||
JimmyZ | rakudo: '3'.HOW.methods('').say | 17:24 | |
p6eval | rakudo e02bc0: | ||
..OUTPUT«predencodesuccperlACCEPTSWHICHsprintfScalarfmtbytespickevalfilejointrimchrfloorrandtruncateroundsortrindexsqrtsplitmatchgrepwordsvaluescanlcfirstComplexsrandmappolarciskvsamecaselogmincapitalizemaxtransfirstflipdoesIntp5choplcsubstelemsabsendchompindexreduceceilingp5chomp:d:epairs:… | |||
JimmyZ | rakudo: '3'.HOW.methods('succ').say | ||
p6eval | rakudo e02bc0: | ||
..OUTPUT«encodesuccWHICHACCEPTSperlsprintfScalarpredpairskvcapitalizepickevalfilep5choplcjoincharscanlcfirstrootsreduceComplextrimmap:dcis:e:flogminrandmaxtruncatebytessortsqrtIntgrepabsenducceilingp5chompunpolarsamecasefloorsubstrordroundflipdoesintsplitmatchwordssrandreverseisapolarucfirs… | |||
JimmyZ | the args was not used? | ||
rakudo: '3'.HOW.methods().say | 17:26 | ||
p6eval | rakudo e02bc0: OUTPUT«too few arguments passed (1) - 3 params expectedin Main (/tmp/VGiDqBemik:2)» | ||
masak | I'm not sure that's how you supply args to .methods | ||
JimmyZ | It's 01:27 here now. good night. | 17:27 | |
masak | 'night. | ||
TimToady | the first arg to a .HOW should be a dup of the normal object | 17:28 | |
3.^methods turns into 3.HOW.methods(3) or some such | |||
pmichaud | okay, there's a Ben & Jerry's here that needs my business.... and then I need to find a comfortable spot with a power outlet | 17:29 | |
17:29
iblechbot left
17:31
hoelzro joined
|
|||
masak | TimToady: could 'warn' conceivably be both a sub and a method, just like 'say'? | 17:31 | |
17:32
JimmyZ left
|
|||
pmichaud | masak: would you consider 'fail' and 'return' to also be methods, too? (honest question, out of curiosity) | 17:32 | |
masak | hm. not as much, no. I wouldn't be bothered by it, but I don't see the need as much. | 17:34 | |
PerlJam | on Any? or Object? or what? | ||
masak | well, same as .say :) | ||
TimToady | if people will get frustrated by it not being there, why not? | ||
pmichaud | I ask because 'warn' is closer to 'fail' or 'return' than to 'say' | ||
masak | all I know for sure so far is I expected .warn to be there and it wasn't. so far that hasn't happened with .fail and .return. | 17:35 | |
17:35
clintongormley left
|
|||
TimToady | "Any" verbs are just bits of the language that we havent' baked in as keywords | 17:35 | |
pmichaud | I have no strong opposition to .warn, fwiw. | ||
masak | if we do it with too many core subs, people might get the unreasonable expectation that subs can be written as methods on objects :) | ||
pmichaud | s/strong// | ||
afk for a bit (ice cream, power) | 17:36 | ||
TimToady | I think well just need to take it on a case-by-case basis, but most of the common IO ones seem like a set | ||
and warn does IO :) | |||
PerlJam | .fail too? It *maybe* does IO. | 17:37 | |
TimToady | then we *maybe* put it into Any :P | 17:38 | |
masak | worksforme :) | ||
TimToady | to jet-lagged to do make any real decisions... | 17:39 | |
pmurias | shouldn't say be the method of an output handle | ||
instead of being a method of a string | |||
PerlJam has no opinion either way at the moment | |||
TimToady | it can be both | ||
IO <: Any | |||
masak | is that a situation that Liskov would frown upon, though? | 17:40 | |
17:40
lumi_ left
|
|||
TimToady | Liskov isn't designing Perl 6 :) | 17:40 | |
PerlJam | there you go again with the gender bias ;> | 17:41 | |
masak | TimToady: now that's a statement that can be read many ways. | ||
and I didn't even see the gender bias reading :) | |||
masak exhales | 17:42 | ||
pmurias | what's the advantage of 1.say over say 1 | 17:43 | |
? | |||
PerlJam | expressivity? | ||
TimToady | it's in the other order | ||
makes more sense to a speaker of 日本語. | |||
masak | pmurias: .say is convenient in loops. | ||
pmurias: it rhymes well with .flip and .++ | 17:44 | ||
pmurias | .++ is bas | ||
* bad | |||
TimToady | well, we're heading out now to do some walking and sightseeing | 17:45 | |
masak | pmurias: ok. well, .-- then :) | ||
pmurias | what does morse code have to do with it? ;) | ||
masak | :) | 17:46 | |
PerlJam | When you're writing chains, it looks better to chain everything ;) | ||
masak | I'll go offline now. I need to get some evening air before the sun does that cool trick with the horizon again. | ||
PerlJam | rakudo: ''.^methods.map(*.name).grep(/^p/).sort.join(" ").say | ||
p6eval | rakudo e02bc0: OUTPUT«p5chomp p5chop pairs perl perl pick polar pred print» | ||
masak | rakudo: ''.^methods.map(*.name).grep(/^p/).sort.fmt.say | 17:47 | |
pmurias | it's better to say ''.^methods.map(*.name).grep(/^p/).sort.join(" ") | ||
p6eval | rakudo e02bc0: OUTPUT«p5chomp p5chop pairs perl perl pick polar pred print» | ||
masak | pmurias: you're starting to sound very fundamentalist. | ||
TimToady | masak: we'll be poking around a little south of you | 17:49 | |
masak | TimToady: enjoy! | ||
I know I will. :) | |||
PerlJam | rakudo: Any.^methods.map(*.name).grep(/^<[aeiou]>/).sort.join(" ").say | ||
TimToady | bbl & | ||
p6eval | rakudo e02bc0: OUTPUT«abs eigenstates elems end evalfile index int isa item iterator ord uc ucfirst unpolar» | ||
PerlJam | unpolar? | ||
masak | PerlJam: a fairly unpopular method :) | 17:50 | |
17:50
lumi joined
|
|||
masak | PerlJam: it converts a complex number from polar coords into rectangular, IIRC. | 17:50 | |
man, this answering-questions-on-IRC is getting addictive! | |||
see you later, peeps. \o | 17:51 | ||
17:51
masak left
18:05
ssm left
18:07
ssm joined
18:17
payload left
18:18
ZuLuuuuuu joined
18:22
sparc left,
zamolxes joined
|
|||
pmichaud checks back in from his now ac-powered notebook | 18:45 | ||
18:54
kane_ left
19:04
molaf joined
19:06
ZuLuuuuuu left
19:08
ruz_mac left
19:11
poe left
19:12
poe joined,
[Coke] joined
19:18
[Coke] left
19:20
kane_ joined
19:21
Front_slash left
19:30
icwiener left
19:41
r0bby left,
r0bby joined
19:44
M_o_C left
19:57
iblechbot joined
|
|||
jnthn | oh hai | 20:01 | |
jnthn is at the airport, waiting for his delayed flight | |||
(smallish delay) | |||
20:23
hoelzro left
20:34
ruz_mac joined
|
|||
sjohnson | what's up d00dz | 21:09 | |
21:09
arthur-_ left
21:11
hudnix_ left
21:12
tann joined
|
|||
tann | rakudo: say caller.perl | 21:13 | |
:) | |||
p6eval | rakudo e02bc0: OUTPUT«Could not find non-existent sub caller» | 21:14 | |
wolverian | finding a non-existent sub would be even more surprising | 21:16 | |
Tene | tann: can you point me to the 'caller' spec? | ||
also, are you wanting that feature for something specific? | 21:17 | ||
tann | Tene: give me a min..i'll look it up for you .. and yes, i really need it so i plan to say caller.perl on #perl6 the first thing after each login :) | ||
Tene | tann: what do you need it for, btw? | 21:18 | |
tann | tene: porting Benchmark.pm to p6 :) | ||
Tene | Hmm. I don't see 'caller' used in the Benchmark.pm on cpan. | 21:19 | |
japhb_ | Why did PerlJam's rakudo: ''.^methods.map(*.name).grep(/^p/).sort.join(" ").say produce two copies of 'perl'? | ||
tann | tene: perlcabal.org/syn/S06.html#The_cont..._functions | ||
21:19
japhb_ is now known as japhb
|
|||
Tene | tann: that is, can you show me exactly what you'd need to do with caller() ? | 21:20 | |
PerlJam | japhb: because there are two .perl methods in the inheritance tree. | ||
21:20
ruoso left
|
|||
PerlJam | rakudo: ''.^methods(:local).map(*.name).grep(/^p/).sort.join(" ").say | 21:21 | |
p6eval | rakudo e02bc0: OUTPUT«perl pred» | ||
PerlJam | *that* .perl is the one on Str | ||
the other one is probably Any.perl | |||
21:21
jferrero joined
|
|||
tann | tene: it's in the doc of Benchmark | 21:22 | |
PerlJam | (I don't know if there's a way to get the "fully qualified name" of a method, but that would be nice) | ||
tann | tene: for timeit and timethis | ||
PerlJam | tann: github.com/perlpilot/benchmark/tree/master | 21:23 | |
tann: there are other versions I'm sure :) | |||
(no, mine doesn't do anything with caller) | |||
tann | PerlJam: that's a super simple example :) | ||
Tene | so how are you going to use caller() to run code in the caller's package? | ||
PerlJam | probably with an eval just like Benchmark.pm does. | 21:24 | |
AFAIK, Benchmark just uses caller() to get the name of the package and then does an eval "package $name; ..." | 21:25 | ||
tann | tene: it searches for the name of the caller's package and then eval the whole thing in a string | ||
Tene | 'kay | ||
lisppaste3 | tann pasted "untitled" at paste.lisp.org/display/84534 | 21:26 | |
PerlJam | tann: Do you intend for your version to be a faithful translation? | ||
tann | PerlJam: yes | ||
21:26
JE|2|2Y joined
|
|||
tann | PerlJam: at least 99% :) | 21:27 | |
PerlJam | tann: I was thinking of separating the benchmarking from the presentation. Seems weird to have them so tightly coupled. | ||
tann | PerlJam: i can move the doc down to the bottom | ||
PerlJam: i hate pod stuff intertwining with code too | |||
JE|2|2Y | eval: 2+2 | 21:28 | |
Oo | |||
PerlJam | that too, but I was talking about how the output routines are "intertwined" with the code that does the benchmarking. :) | ||
tann | tene: this is the part of eval'ing code in the caller's package paste.lisp.org/display/84534 | ||
PerlJam: gotcha | 21:29 | ||
PerlJam: agree, it's ugly | |||
PerlJam: but the initial intention is just a faithful translation to p6 so that i can benchmark new shiny p6's stuff with old code :) | 21:30 | ||
PerlJam | tann++ | 21:31 | |
(I'm easily distracted, so I never got beyond timing) | 21:32 | ||
tann | PerlJam: i'm interested in the jamming part of rakudo perl :) | ||
PerlJam | Someone (cotto?) is working on profiling PIR at the subroutine level. It'll be interesting to see which routines are most important to rakudo. | 21:34 | |
21:34
JE|2|2Y left
21:38
skids_ left
21:42
masak joined
|
|||
masak | tja, folk. | 21:43 | |
21:43
maja_ joined
|
|||
pmurias | tja = ? | 21:43 | |
masak | pmurias: it's Swedish, a word that has been slangified at least three times. means 'hello'. | 21:44 | |
s/times/iterations/ | |||
and 'folk', despite appearances, is plural in Swedish. here it means 'people'. | 21:45 | ||
I've been walking for three and a half hours. my feet ache, but less than I deserve. | 21:46 | ||
japhb | masak: What kind of pace? | ||
masak | japhb: oh, slightly above leisurely. I think I was actually faster yesterday, when I was tugging along my trunk. | 21:47 | |
I'm a moderately fast walker. | |||
japhb | Oy vey. That's a bit brutal (lugging a trunk for 3+ hours) | ||
masak | nono, yesterday I only walked for one hour. | ||
japhb | ah | ||
masak | well, one and 20 minutes. | ||
21:48
rba_ joined
|
|||
masak | that was from the airport. today I set out to find the university campus. | 21:48 | |
(I failed.) | |||
japhb | Where are you? | 21:49 | |
masak | in the city in question, Lisbon. | ||
japhb | Ah. | ||
masak | soon to be hosting this year's YAPC::EU. | ||
(the city, that is, not I) | |||
japhb very rarely gets to travel far these days. Haven't been to a Perl conference in a few years. :-?( | |||
er | |||
:-( | |||
masak | japhb: what's the blocker? family? | 21:50 | |
japhb | masak: yeah, pretty much. Money too, I suppose, but that's because of the family. :-) | ||
masak | well, money and conferences ain't everything. | 21:51 | |
21:51
Limbic_Region joined,
molaf left
|
|||
japhb | masak: quite. I just hate the fact that for-profit conferences make it so I can't even get the slides half the time. | 21:52 | |
I'd rather be there in person, but .... | |||
21:53
justatheory joined
|
|||
masak | why is everyone writing XML grammars? :) | 21:53 | |
can't we collaborate on hooking in libxml or Expat instead? | |||
japhb | masak: I've been arguing that over in the Parrot side. I agree with you. | 21:54 | |
21:54
maja left
|
|||
masak | yah, saw the emails about it. | 21:54 | |
japhb | Writing an XML grammar is fun, and makes sure we didn't miss some obvious hump in the waterbed, but there's no way we're going to compete with libxml. | ||
masak | 'xactly. | ||
japhb | (And we have much bigger mountains to climb.) | ||
masak | and we need all the speedups we can get. | 21:55 | |
japhb | Definitely. | ||
OK, so now I've got one person agreeing with me! W00t! Time to take over the world! | |||
masak recognizes that thought all too well | |||
21:56
jauaor left
|
|||
japhb | (It seems like most of the people who replied feel that Parrot should be bereft of core libs, which I think is taking that axe and grinding the head clean off.) | 21:56 | |
21:56
rba_ left
|
|||
masak | oh, did I express an opinion of what should be bundled with Parrot? I didn't realize. :) | 21:57 | |
22:02
rba_ joined
22:03
rba_ is now known as minskman
|
|||
masak | all I really ask is that it be possible to tie in libxml or Expat somehow. I guess it's natural in Rakudo to do that via Parrot. | 22:03 | |
22:03
Whiteknight joined,
iblechbot left
|
|||
pmurias | japhb: there always can be a parrot + batteries download | 22:04 | |
masak | sure, but make that the default, and call the one without batteries the 'barebones version'. | 22:05 | |
japhb | pmurias: what masak said. | ||
masak . o O (ooh, is that what I think about this issue? interesting.) | 22:06 | ||
Tene | japhb, masak: I agree too, fwiw | ||
japhb | I think it will be a horrendous mistake if we get all purist with default Parrot, and then every HLL decides that they need to provide their own batteries. From Elbonia. That leak. A lot. | ||
And catch on fire. | |||
masak | nod. | 22:07 | |
but first, a shower. | |||
see y'all around. | |||
22:07
masak left
|
|||
japhb | Tene: glad to hear it. | 22:07 | |
22:07
minskman left,
minskman joined
|
|||
pmurias | japhb: i think the reason is to avoid the perl5 situation with dual-life modules | 22:08 | |
japhb | pmurias: Sure, that's fair. But I think dual-life modules are VASTLY less likely when the core iterates monthly. | ||
Tene | I have been thinking about the idea of a separate parrot repository, just holding libraries. | ||
pmurias | japhb: what do you advocate putting modules in core or having the default distro contain them? | 22:10 | |
japhb | Did you mean 'Why'? | 22:11 | |
Or do you mean two options to choose from? | |||
pmurias | if you treat modules as part of the core they will have to be treated with the sort of backward compability the rest of parrot is | 22:12 | |
japhb | I'm fine with the default distro containing most of the modules that I think should be included. (I think the barebones version is a good idea but should NOT be default.) But I think there are probably a small number of modules that really need to be core, there even in a barebones distro -- those that are required to get access to (and effectively use) the module repository. | 22:13 | |
And frankly, I think Parrot's deprecation scale of 6 months is about right -- since many of the higher level libraries release every six months, and several major distros do as well. | 22:14 | ||
pmurias | that's mostly common sense | 22:15 | |
japhb | Thank you for the complement. ;-) | ||
22:17
meppl left
22:18
M_o_C joined
22:24
nihiliad left
22:27
pmurias left
22:37
alester left
|
|||
s1n | pmichaud: i have some questions for you about rakudo with regards to filling out an employer request for contributorship | 22:41 | |
pmichaud: and i had an idea for dallas.p6m and i wanted your input | |||
pmichaud | s1n: I'm here, for a bit | 22:53 | |
(flight is delayed) | |||
s1n | pmichaud: lemme go get my paperwork real fast | ||
pmichaud | (included modules) -- one of the things I've been realizing by watching the p5 process is that testing+maintaining modules is currently more than a single release manager can handle. | 22:54 | |
s1n | pmichaud: is rakudo under artistic 2.0? have a link to the CLA for rakudo? | ||
pmichaud | www.perlfoundation.org/contributor_..._agreement | 22:55 | |
Rakudo is under artistic 2.0, yes. | |||
github.com/rakudo/rakudo/blob/master/LICENSE | |||
s1n | pmichaud: what about sponsors? | 22:56 | |
pmichaud | ...sponsors? | ||
s1n | commercial sponsors | ||
pmichaud | for Rakudo? | ||
s1n | only indirectly through TPF? | ||
pmichaud is confused | |||
japhb | pmichaud: P5 ships a LOT more modules in core than I'm even dreaming of, it doesn't have the massive advantage of Parrot's monthly release cycle, and it has to deal with dual-life modules, which I honestly think will be far less likely for Parrot (because of the module-friendly release and deprecation cycles) | 22:57 | |
pmichaud | japhb: I'm not so certain of that. | ||
japhb: I'm not saying you're wrong; I'm just saying that the p5 lesson is very cautionary. | |||
japhb | pmichaud: fair enough. | ||
pmichaud | I think it's important that modules be able to live on release cycles that are separate from the core language. | 22:58 | |
s1n | pmichaud: i need to list companies that sponsor the community, if that's indirectly though TPF, then i'll list that | ||
pmichaud | it'd be through TPF, yes. | ||
s1n | pmichaud: no sponsorship from TPaF? | ||
pmichaud | to the extent that the core decides to include a module as part of the core, it subsumes that module's release cycle | 22:59 | |
s1n: Rakudo is owned by TPF. PaFo may be doing things that help support Rakudo but I don't know that it's direct support. | |||
s1n: Allison Randal would be the best person to ask about it, though. | |||
japhb | pmichaud: I think this is why the "true core" module set should be very small. But to make the "batteries included" release easy, it may be worth having the modules freeze a few days before the release. | 23:00 | |
.. or instead of freeze, branch. Whatever. | |||
pmichaud | I'm currently leaning that it's better if "batteries included" releases are separate from core releases. | ||
even to the extent of having different release managers. | 23:01 | ||
japhb | Interesting idea, and at least the "different release managers" idea sounds quite good. | ||
pmichaud | It's basically the way distros work in the Linux world. Distro releases are separate from core kernel releases. | ||
s1n | pmichaud: lastly, i thought about hosting a rakudo sprint the weekend after dallas.p6m | 23:02 | |
japhb | What do you think of my point about trying to avoid HLL implementors all reimplementing their own batteries, because they perceive a "default" parrot that is too bare-bones? | ||
23:02
SmokeMachine left
|
|||
pmichaud | I would think that an HLL implementor would choose a batteries-included release of parrot over a core one. | 23:02 | |
japhb | I guess we could simply call the two releases "Parrot Core" and "Parrot Standard" | ||
pmichaud | I'm even going so far as to say there shouldn't be "Parrot Standard" | 23:03 | |
"Parrot Core", and then "Parrot Batteries 1", "Parrot Batteries 2", "Parrot Batteries 3", etc. | |||
japhb is a big believer that we need to be conscious of how our naming and presentation subconsciously pushes on users and HLL implementers | |||
pmichaud | any time we start talking about "*the* distribution" instead of "*a* distribution", we're likely to run into trouble. | 23:04 | |
japhb | pmichaud: sort of a vanilla/strawberry/chocolate analog? | ||
s/analog/analogue/ | |||
pmichaud | s1n: I'll be gone the weekend after dallas.p6m | ||
s1n: you're welcome to have a rakudo sprint, but I won't be able to make it :-| | 23:05 | ||
japhb | If we get too fine-grained, though, we risk people shooting for the lowest common denominator, because for instance Debian ships PB3, and Fedora ships PB2, and OpenBSD ships PC. | ||
pmichaud | japhb: does that sort of thing happen now? | 23:06 | |
japhb | pmichaud: I would argue that's why people still program to Perl 5.6, let alone 5.8. | ||
s1n | pmichaud: i might want to get with you prior to talk about it then | ||
pmichaud | s1n: okay. I'll be at dallas.p6m, though | 23:07 | |
japhb | If we don't send a clear message about the blessed standard, everyone will pick a different standard, and the end users lose. | ||
pmichaud | I can even give my lightning talk that I did at oscon about Perl 6 meta operators :-) | ||
japhb: "blessed standard" is the problem that p5 ran into, though. | |||
s1n | pmichaud: sounds like a good idea | ||
japhb | pmichaud: I'm not sure what you mean by that. | ||
s1n | pmichaud: lemme know where your slides are, i'm sending out the notice next week | 23:08 | |
pmichaud | s1n: pmichaud.com/2009/pres/oscon-perl6op | ||
s1n: although I'm thinking I'll write it up as a use.perl post. (Perhaps on the plane tonight.) | |||
s1n | pmichaud: okay, if you do that, let me know | ||
pmichaud | japhb: As soon as there's a "blessed standard", everyone wants his/her favorite module to be included in the "blessed standard" | 23:09 | |
s1n | i think i finally got my tuits back | ||
japhb | pmichaud: I see what you're getting at. | ||
pmichaud | if they succeed, then they've turned over the maintenance responsibility to the "blessed standard" maintainer | ||
if they fail, then they feel that they're excluded from being part of the standard | 23:10 | ||
japhb | pmichaud: Hmmm. | ||
japhb tanking on that thought | |||
23:10
meppl joined
|
|||
pmichaud | true growth comes from a marketplace of ideas, and "competition" helps to fuel that marketplace. Survival of the fittest, and all that. | 23:10 | |
s1n | or survival of the longest maintained (see EU::MM) | 23:11 | |
pmichaud | I think it's also a mistake to assume that a single standard can meet the needs of all audiences/clients | ||
japhb | pmichaud: No argument. I guess my mental image of the standard modules mostly comes from things that people have already discussed to death in a bazillion forums, and have actually managed to agree on, for several years running. | ||
pmichaud | s1n: yes, that's really true. Because there's "one blessed standard", it's not possible to create a competing standard that eliminates EU::MM | ||
s1n | pmichaud: i have to leave, i want to run more specifics of the sprint by you to see what you think (i've never hosted one); free beer at my place if you really want to discuss it in meatspace | 23:13 | |
pmichaud | so, I think "with batteries" is a good idea; I just am not sure that we should be thinking in terms of "standard with batteries" | ||
japhb | pmichaud: Unfortunately, EU::MM is a special case, because it's part of the core set for contributors -- modules needed to write to CPAN, as opposed to the modules needed to read from it. At some point in the distant past, something had to be reliably available for that task. | ||
pmichaud | s1n: this week I'm in lisbon- I get back next friday | ||
s1n | pmichaud: or "these batteries are the standard batteries" | ||
pmichaud: that's fine, dallas.p6m is on the 10th | 23:14 | ||
japhb | pmichaud: is the real problem on the Perl 5 side the fear of following through with deprecations of the modules? | 23:15 | |
pmichaud | japhb: I have a feeling that's only one of the problems | ||
s1n dinner& | |||
japhb | I mean, if we have a set of standard modules that are deprecated and cleaned as reliably as Parrot seems to be doing, how much closer to the happy place are we? | 23:16 | |
s/doing/doing with core code/ | |||
pmichaud | I don't think that solves the "but I need my module to be part of the standard" problem | ||
as an example, I'd be hard pressed to say that SDL should be a standard part of Parrot. | 23:17 | ||
japhb | OK, so it work better in your mind if we're more mushy than "standard"? Like "the usual suspects?" Or "Best Practices <release number>"? | 23:18 | |
pmichaud | XML seems like a borderline case. A DBDI interface seems like it ought to be standard. SQLite... I'm not sure. | ||
japhb | "Batteries 2.1" | ||
? | |||
pmichaud | But for each of these modules I've mentioned, I can see someone making entirely different choices. | ||
japhb | All right, how about four levels: | 23:19 | |
1. True core. Just what is needed to get read access to the module repo. | |||
2. Basic batteries. The stuff everyone has hashed to death, agree on, and (like DBDI) forms a common layer through which other things are easy to plug in. | 23:20 | ||
3. Power pack. What we currently think are the most common modules people would want. Deprecated and cleaned regularly. | |||
4. Go use the module repo. | |||
? | |||
In my mind, the Parrot release manager would be responsible only for #1. | 23:21 | ||
pmichaud | well, first let me point out that we have the same sort of questions from a Rakudo perspective (as in, "What exactly is the scope of 'Rakudo Perl'?") | ||
I'd say that the Parrot project should only directly involve itself in #1 and #2. And to the degree possible, #1 and #2 should be kept as separate as possible. | 23:22 | ||
japhb | pmichaud: sure, though as I mentioned in another discussion, I think Parrot's decisions will end up wagging Rakudo's tail. | ||
Fair enough. | |||
pmichaud | Once we start getting to #3, I'd hope that we would be seeing "Power pack for Business", "Power pack for Scientists", "Power pack for hackers", etc. (as examples) | ||
japhb | I can see that. | 23:23 | |
pmichaud | even within "Power pack for business" there are likely to be a range of issues going from "I need the latest features" to "I need ultra stabilitity" | ||
*stability | 23:24 | ||
japhb | pmichaud: that seems like a place where the aforementioned market of ideas gets to battle it out. | ||
pmichaud | exactly. | ||
japhb | Anyone should be able to make power packs. | ||
pmichaud | anyway, I know that Parrot will wag Rakudo's tail a bit.... but I also know that Rakudo will be wagging Parrot's tail a fair bit too :-) | ||
japhb | OK, are we in general agreement at this point? | ||
heh | |||
pmichaud | indeed, it already does. :-) | 23:25 | |
23:25
ruz_mac left
|
|||
pmichaud | japhb: it sounds like we have some agreement, yes. To be honest, I've only really started to get an understanding of these issues in the past couple of weeks, so some of my ideas may not be too well-formed yet. | 23:25 | |
japhb | Oh sure. But it feels to me like somehow now is the right time for this discussion. | 23:26 | |
pmichaud | so I don't claim to have all, or even most, of the answers. I'm just trying to learn the lessons from other projects. | ||
I fully agree this is a very good time for this discussion, especially as we're now starting to deal with packaging issues. | |||
I need to move to my gate... bbiab | |||
japhb | nodnod | ||
23:29
xomas left
|
|||
japhb is summarizing this section of the discussion back to the parrot-dv email thread. | 23:30 | ||
er parrot-dev | |||
23:36
minskman left
23:40
ruz_mac joined
23:44
payload joined,
cdarroch left
23:45
frew_ left
|
|||
japhb | summary sent. | 23:48 |