»ö« | 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 expected␤in 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 Int␤in 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üregleiv␤␤nettirtsmu 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 node␤in 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«haj␤hak␤hal␤»
JimmyZ rakudo: my $x = "I has 10 cheezburgers"; say ++$x; say ++$x; say ++$x; 16:27
p6eval rakudo e02bc0: OUTPUT«I has 10 cheezburgert␤I has 10 cheezburgeru␤I 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 $_␤jph␤002.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«jph␤002.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.jpg␤002.jpg␤003.jpg␤004.jpg␤005.jpg␤006.jpg␤007.jpg␤008.jpg␤009.jpg␤010.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 expected␤in 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 expected␤in 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 expected␤in 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 expected␤in 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