Camelia, the Perl 6 bug

IRC log for #perl6, 2009-07-31

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:05 jauaor joined #perl6
00:07 fridim_ joined #perl6
00:08 pugs_svn r27822 | wayland++ | [S17, S22, S26] Turned URLs into links
00:15 jnthn literal: Ah, I'm assuming that's enclosed in a role Positional[::T] { ... }
00:15 jnthn Sorry it wasn't clear.
00:15 jnthn pmichaud: Will try and get those two resolved tomorrow and if not will fudge.
00:15 jnthn (the failing tests)
00:18 lumi_ joined #perl6
00:24 * jnthn -> sleep
00:33 wayland76 Ambiguous dispatch to multi '_block272'. Ambiguous candidates had signatures:
00:33 wayland76 :()
00:33 wayland76 :()
00:33 wayland76 in sub trait_mod:does (src/gen_setting.pm:90)
00:34 wayland76 Does anyone know what that error is about?
00:34 wayland76 I tried to instantiate a role
00:34 wayland76 And the role does another role
00:35 pmichaud I don't know -- jnthn++ is the likely person to ask at the moment.
00:36 wayland76 Hmm.  :)
00:49 wayland76 say I have this: rule element {  '<' <name> <attribute>*  [  | '/>'  | '>' <child>* '</' $<name> '>'  ]  {*} }
00:49 wayland76 When the action for this rule gets called (at {*}), is there a way I can get the "name" text?
00:50 pmichaud yes, from the match object passed to the action
00:50 pmichaud it will be  $match<name>
00:50 wayland76 Ah, ok
00:50 pmichaud or if you pass it in as $/, you can use $<name>
00:50 wayland76 Which is $match{'name'}   right?
00:50 pmichaud right.
00:51 meppl joined #perl6
00:51 wayland76 Yay! Thanks :)
00:56 wayland76 Is "does" not supported yet?
00:58 Eevee_ joined #perl6
01:01 pmichaud it's supported, afaik
01:01 pmichaud there may be places where it doesn't quite work
01:09 wayland76 Ok, I think I've found the problem
01:09 wayland76 I have two roles that have variables of each others' types
01:10 wayland76 So I predeclared one using role   Tree::Node {...}
01:10 wayland76 (with the ... being literal in this case)
01:10 wayland76 Then it gives me an error message because it can't decide which role to use
01:10 orafu joined #perl6
01:10 wayland76 The one with all the methods, etc, or the one with the ...
01:11 * wayland76 summon masak
01:11 wayland76 I'm wondering whether this is a known bug :)
01:11 wayland76 (or if I've predeclared wrong :) )
01:31 japhb joined #perl6
01:42 wayland76 have we considered whether say "match is $match<name>" should DWIM?>
01:52 missingthepoint joined #perl6
01:53 missingthepoint morning all :)
01:57 ctime left #perl6
02:01 wayland76 not quite :)
02:01 wayland76 Afternoon here by 2 minutes
02:02 wayland76 But it was morning when you wrote that :)
02:02 missingthepoint :)
02:03 nihiliad joined #perl6
02:05 sjohnson how's it going pmichaud
02:06 wayland76 sjohnson: o/ :)
02:06 sjohnson hi wayland76
02:08 missingthepoint howdy sjohnson
02:09 sjohnson missingthepoint: y'ello
02:10 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
02:11 sjohnson brain not thinking as efficently anymore
02:11 * sjohnson hates PHP
02:15 * sjohnson sees a tumbleweed roll by
02:16 sjohnson am I alone in saying that about PHP?
02:17 * wayland76 joins sjohnson in being averse to PHP
02:17 * wayland76 doesn't hate PHP when he compares it to Java :)
02:17 wayland76 or COBOL :)
02:17 sjohnson ya, i am the same way
02:17 sjohnson I hate PHP when I compare it to Perl, and when I have to write in it for 7 hours a day at work
02:18 sjohnson it, being PHP unfortunately
02:18 sjohnson sometimes i get to make Perl script system calls
02:18 sjohnson those are the happy days at work
02:18 wayland76 :)
02:18 wayland76 Well, I liked PHP better (and worse) when I found the preg_* calls :)
02:19 sjohnson yeah
02:19 sjohnson preg_match and me have a long history of hating eachother
02:20 sjohnson 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 :)
02:20 sjohnson that is true
02:21 sjohnson is that fixed in P6?
02:21 wayland76 IIRC
02:21 sjohnson i have noticed that problem
02:21 wayland76 There's a match variable
02:21 wayland76 and it does associative
02:21 wayland76 For example, say I have this regex: rule element {  '<' <name> <attribute>*  [  | '/>'  | '>' <child>* '</' $<name> '>'  ]  {*} }
02:22 wayland76 Then if the match variable is the default, I can do...
02:22 wayland76 (default match var is $/ )
02:23 wayland76 I can do: say $/<name> ~ " has attributes " ~ $/<attribute>
02:24 krunen joined #perl6
02:24 wayland76 Which is the same as: $/{'name'} ~ " has attributes " ~ $/{'attribute'}
02:24 wayland76 Hey krunen
02:24 wayland76 I've been modifying your XML grammar
02:26 lisppaste3 wayland76 pasted "untitled" at http://paste.lisp.org/display/84480
02:27 wayland76 phenny: tell krunen  I've been modifying your XML grammar: http://paste.lisp.org/display/84480
02:27 phenny wayland76: I'll pass that on when krunen is around.
02:38 Jimmy_ joined #perl6
02:46 dukeleto joined #perl6
02:53 iktome joined #perl6
03:20 donaldh joined #perl6
03:44 eternaleye joined #perl6
03:59 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 japhb ular Perl 6 implementation, then users may begin to rely on Parrot's core library set ....  Thoughts?
04:02 wayland76 My assumption was that TimToady was not making that a rule for Parrot
04:03 wayland76 Besides, he recently said he wasn't going to have much connectivity until the conference
04:03 japhb ah, forgot about that last.
04:03 wayland76 So you may have trouble getting any info out of him at the moment
04:04 wayland76 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.  :)
04:05 japhb "doing it that way"?
04:05 wayland76 Yeah, I was thinking that to
04:05 wayland76 "doing it that way" = minimal libraries
04:06 wayland76 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:08 alester joined #perl6
04:10 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:12 wayland76 That's why I'm also in agreement with doing it via a packaging system
04:12 wayland76 (the world's most cross-platform packaging system :) )
04:23 sparc joined #perl6
04:26 JimmyZ rakudo: say 'Hello #perl6';
04:26 p6eval rakudo a53a1c:  ( no output )
04:27 JimmyZ rakudo: say 'Hello';
04:27 p6eval rakudo a53a1c: OUTPUT«Hello␤»
04:27 JimmyZ rakudo: say 'Hello \#perl6';
04:27 p6eval rakudo a53a1c: OUTPUT«Hello \#perl6␤»
04:27 JimmyZ rakudo: say 'Hello #perl6';
04:27 p6eval rakudo a53a1c: OUTPUT«Hello #perl6␤»
04:27 JimmyZ no output?
04:28 JimmyZ rakudo: say 'Hello #perl6';
04:28 p6eval rakudo a53a1c: OUTPUT«Hello #perl6␤»
04:28 japhb JimmyZ: sometimes the evalbot times out before a new build is ready.
04:28 JimmyZ I thought it was rand bug
04:29 japhb Nah, just annoying.
04:29 JimmyZ ;)
04:41 JimmyZ rakudo: say #{{
04:41 JimmyZ This comment contains unmatched } and { { { {   (ignored)
04:41 JimmyZ Plus a nested {{ ... }} pair                    (counted)
04:41 p6eval rakudo a53a1c: OUTPUT«say requires an argument at line 2, near " #{{"␤in Main (src/gen_setting.pm:2467)␤»
04:41 JimmyZ }} q<< <<woot>> >>   # says " <<woot>> "
04:46 JimmyZ rakudo: say 'x'.HOW.methods.join(', ')
04:47 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(', ')
05:11 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)␤»
05:11 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)␤»
05:11 JimmyZ rakudo: my Int $error = 7; say $error;
05:11 p6eval rakudo a53a1c: OUTPUT«7␤»
05:12 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)␤»
05:14 JimmyZ rakudo: $_ = 8 | 9; say ++.perl;
05:14 p6eval rakudo a53a1c: OUTPUT«any(8, 10)␤»
05:16 JimmyZ rakudo: $_ = 8 | 9; say (++$_).perl;
05:17 p6eval rakudo a53a1c: OUTPUT«any(9, 10)␤»
05:17 JimmyZ rakudo: $_ = 8; say ++.perl;
05:17 p6eval rakudo a53a1c: OUTPUT«9␤»
05:18 JimmyZ Is It a bug to output any(8, 10)?
05:19 JimmyZ rakudo: $_ = 8 | 9 | 11; say (++$_).perl;
05:19 p6eval rakudo a53a1c: OUTPUT«any(9, 10, 12)␤»
05:19 JimmyZ rakudo: $_ = 8 | 9 | 10; say ++.perl;
05:19 p6eval rakudo a53a1c: OUTPUT«any(8, 9, 11)␤»
05:25 JimmyZ rakudo: $_ = 8 & 9 & 10; say ++.perl;
05:25 p6eval rakudo a53a1c: OUTPUT«all(8, 9, 11)␤»
06:11 moritz_ good mornign
06:13 missingthepoint morning moritz_
06:17 moritz_ oh hai missingthepoint
06:19 masak joined #perl6
06:22 rfordinal joined #perl6
06:27 masak olá, Perl 6 aventureiros!
06:28 moritz_ olé
06:29 * masak waves cape
06:31 * moritz_ looks if there's any bulls around
06:33 masak moritz_: well, speaking as one staying at 'Rua dos Correiros', it does seem likely...
06:34 Su-Shee joined #perl6
06:34 Su-Shee good morning. :)
06:34 * masak waves at Su-Shee
06:36 * moritz_ points people to http://perlpilot.blogspot.com/20​09/07/perl-6-documentation.html
06:37 Su-Shee ah, very nice. :)
06:37 missingthepoint i second that :)
06:38 Su-Shee I had several interesting discussions the last few days with tech-friends of mine concerning perl 6.
06:38 Su-Shee (which all know about it, but don't follow the development)
06:38 moritz_ PerlJam: I'd like to have a commit bit ;-)
06:39 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.
06:39 moritz_ I think we can provide the basic ecosystem pretty soon
06:40 moritz_ 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 :)
06:40 moritz_ also note that perl 5 is one of the fastest dynamic language
06:40 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
06:40 masak testing Druid again after a long time, I have the impression that I/O has gotten blazingly fast, and everything else depressingly slow.
06:40 wayland76 Due probably to years of optimisation
06:41 wayland76 Grammars are slow :)
06:41 wayland76 masak: Did you see the bit in the backlog where I said "summon masak"?
06:41 masak missingthepoint: any progress on the SVG-graphing idea?
06:41 masak wayland76: I didn't. I can backlog soonish and catch it.
06:41 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...
06:41 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 :)
06:42 missingthepoint masak: give me a day or two
06:42 Su-Shee PerlJam: you're Perlpilot? :)
06:43 moritz_ @seen PerlJam
06:43 lambdabot PerlJam is in #perl6. I last heard PerlJam speak 11h 45m 8s ago.
06:44 wayland76 What's the difference between Perlpilot and U4X?
06:46 masak missingthepoint: absolutely.
06:46 masak missingthepoint: let me know if there's anything I can assist with.
06:46 missingthepoint masak: thank you, i will
06:48 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:49 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
06:49 moritz_ masak: I looked over the README to see if anything has to be changed in the ins2 branch, and didn't find anything ;-)
06:49 masak moritz_: I was talking about the default setting, which fetches the latest Rakudo release.
06:51 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?
06:52 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.
06:52 masak moritz_: ah.
06:52 moritz_ sorry of the confusion
06:53 masak I'm not very familiar with the changes introduced by ins2.
06:53 masak but in general, think of proto as a piece of software very willing to adapt.
06:57 wayland76 masak: Possibly, but it may be easier to read as http://rt.perl.org/rt3/Publi​c/Bug/Display.html?id=68066
06:57 wayland76 I'm very familiar with most of the changes made by ins2
06:57 wayland76 Although I may've missed some ramifications of them
06:57 wayland76 What do we want to know?
06:58 masak well, what are the changes?
06:58 wayland76 Basically, everything required to make Rakudo work on an installed Parrot
06:59 wayland76 That involves adding a spec file for RPM (irrelevant)
06:59 wayland76 And changes to the Makefile
06:59 wayland76 Especially adding a "make install" target
07:00 masak wayland76: thanks for the RT link, it helped. hm, I'm not sure that's ever worked.
07:01 moritz_ basically --gen-parrot installs parrot into a local sub dir
07:01 moritz_ http://www.sysadminday.com/
07:01 wayland76 masak: Re roles: Well, it parses; as long as you don't try to instantiate the object, it works fine :)
07:02 wayland76 Also, there appear to be some Configure.pl changes
07:02 wayland76 pmichaud did those.  Investigating
07:02 masak wayland76: I was slightly surprised that you instantiated the role directly -- though I think that should be fine.
07:02 moritz_ rakudo: role B { method b { say "works" } }; role A does B  { }; A.new.b
07:02 p6eval rakudo a53a1c: OUTPUT«works␤»
07:03 wayland76 re:ins2 -- Basically, Configure.pl now takes a --gen-parrot-prefix option
07:03 rfordinal joined #perl6
07:04 wayland76 Yes, intantiating roles works, but only because roles are punned as classes
07:04 masak right.
07:04 masak I kinda knew it, but haven't had any use for it.
07:04 wayland76 In real life, I wasn't planning to do that, but it made the example simpler :)
07:05 masak I suspected as much. :)
07:06 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.
07:08 wayland76 No, my mistake, class XML::Element does Tree::Element
07:08 wayland76 Well, Tree does Tree::Node; Tree::Node is the base class for everything
07:09 wayland76 So it's really only Tree::Node -> Tree::Element -> XML::Element
07:09 wayland76 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
07:10 wayland76 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:11 masak good luck.
07:11 wayland76 :)
07:12 missingthepoint wayland76: (may be missing the point, but the code you posted before breaks with "<foo><!-- stuff --></foo>")
07:12 unitxt left #perl6
07:12 lisppaste3 wayland76 pasted "ins2 diff" at http://paste.lisp.org/display/84492
07:13 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 #perl6
07:14 wayland76 I'm attempting to convert both DOM and Match into Tree
07:14 wayland76 Then manipulate as Tree
07:14 wayland76 Then output as XML :)
07:14 wayland76 Or so the theory goes :)
07:15 wayland76 Well, maybe not
07:15 wayland76 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 #perl6
07:16 wayland76 missingthepoint: Interesting (krunens mg).  Do you know if krunen's original grammar also broke then?
07:17 missingthepoint i don't know where the original is :)
07:17 wayland76 http://www.google.com.au/search?so​urceid=mozclient&amp;ie=utf-8&amp;​oe=utf-8&amp;q=krunen+xml+grammar
07:18 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 :)
07:18 missingthepoint heh, should have guessed. :)
07:18 wayland76 masak: Then that's very similar to what I'm doing
07:18 wayland76 In fact, possibly identical :)
07:18 masak wayland76: it's for the Grampa project, which I've blogged a bit about.
07:18 wayland76 I'm trying to replicate the features of the DOM, but not the API
07:18 wayland76 Ok, I'll read about it
07:19 masak hold on, I'll find the links for you.
07:19 wayland76 Well, google gets me to github and use perl
07:20 masak sounds about right.
07:20 donaldh joined #perl6
07:21 moritz_ sounds like the typical masak++ locations ;-)
07:21 masak :)
07:21 missingthepoint wayland76: nope, original breaks too: "Unable to parse comment, couldn't find final '-->'"
07:21 moritz_ bah, it seems I was again removed from the ironman feed
07:21 masak wayland76: so, these two: http://use.perl.org/~masak/journal/39224 http://use.perl.org/~masak/journal/39351
07:21 moritz_ and nobody bothedred to tell me
07:21 missingthepoint wayland76: (after you remove that extraneous ':')
07:21 wayland76 Yeah, I got rid of the : too
07:22 wayland76 masak: XPath is great, but not good enough :)
07:22 wayland76 masak: Sounds like we should pool our efforts
07:23 masak wayland76: yes.
07:23 wayland76 If we can agree on how to do things
07:23 wayland76 Should we take this to #november-wiki ?
07:23 masak wayland76: re 'good enough', both XPath and CSS are great for searching for DOM nodes in some projects.
07:23 masak wayland76: re #november-wiki, not necessarily.
07:24 wayland76 ok, will remain here if you prefer
07:24 masak Grampa is kinda in the borderland between Web.pm and non-Web.pm...
07:24 wayland76 The changes I want to XPath are:
07:24 wayland76 a) Supports Perl6 inside [] instead of XPath-language
07:24 wayland76 b) Supports other kinds of trees, including overlapping and multiple perspectives
07:25 moritz_ what are overlapping trees?
07:25 masak I was kinda aiming for a pure XPath implementation.
07:25 wayland76 masak: Yeah, I figured.  But we could probably use the same backend model
07:26 masak wayland76: yes, that's fairly likely.
07:26 wayland76 moritz_: Imagine you want to XML a Shakespeare play
07:26 moritz_ well, wayland76 can still inherit from the grammar, and override where neccessary
07:26 wayland76 And you want the XML to mark all the line beginnings and ends with open and close tags
07:26 wayland76 And you also want to mark the speech of the different characters with open and close tags
07:27 wayland76 but XML says ENO-CAN-DO
07:27 moritz_ why not?
07:27 wayland76 But if you had a language where that was allowed, then you'd have a "lines" perspective, and a "characters" perspective
07:28 moritz_ then it's not a tree anymore
07:28 moritz_ but a graph
07:28 wayland76 Yes, a graph
07:28 moritz_ a more generic graph
07:28 wayland76 Exactly
07:28 moritz_ ok
07:28 moritz_ then I was just confused by the word "tree"
07:28 wayland76 I also want to support sloftlinks/hardlinks, a la filesystems
07:29 wayland76 My problem is, to the non-mathematical programmer, "graph" means "picture chart thing", and "tree" means "graph" :)
07:29 Matt-W Morning
07:29 wayland76 SO I call it "tree", just like filesystems do
07:30 wayland76 masak: So shall I create a github project for all this tree stuff?
07:31 masak wayland76: I doubt I'll have any tuits for it in the coming week, but yes, sure.
07:33 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.
07:34 masak or did you have some other XML stuff in mind?
07:34 wayland76 No, I think that's what I meant
07:34 wayland76 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 :) )
07:37 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 masak I think I only did Match traversal so far.
07:37 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 :)
07:38 wayland76 masak: Ok, it sounds like we have slightly different projects then
07:38 wayland76 I'm trying to do XML -> Tree objects
07:38 wayland76 You're trying to do generic grammar -> Tree objects, if I understand correctly
07:38 wayland76 Which is probably a worthier goal :)
07:39 masak wayland76: well, I started wanting to be able to traverse/search Match trees.
07:39 masak wayland76: but then, somehow, the idea of doing the same to DOM trees got mixed in.
07:40 wayland76 ok :)
07:40 masak I'm still not 100% certain these two kinds of tree can be brought under the same model.
07:40 wayland76 Well, then, it's not a big enouhg model :)
07:40 masak what, for example, is the DOM equivalent of $/[0]?
07:41 payload joined #perl6
07:41 wayland76 Maybe there isn't one
07:41 wayland76 But the Tree model should allow for it, and the DOM implementation can throw a "not implementable" :)
07:41 masak then, almost by definition, I couldn't use XPath to find $/[0].
07:42 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.
07:42 wayland76 Ok, so what *exactly* is $/[0]
07:42 wayland76 Is it the whole text of the match?
07:43 masak no, it's a Match object.
07:43 wayland76 (I'm trying to debug two things at once here :) )
07:43 wayland76 Ah, yes, of course
07:43 masak rakudo: "foobarbaz" ~~ /foo(bar)baz/; say ~$/[0]
07:43 p6eval rakudo a53a1c: OUTPUT«bar␤»
07:44 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.
07:44 wayland76 I'd say that anything that accesses a match via [] should be considered a child node
07:45 wayland76 whereas anything that accesses via {} should be considered an attribute
07:45 masak wayland76: that doesn't cut it.
07:45 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 :)
07:46 wayland76 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.
07:46 wayland76 (about my idea not cutting it)
07:46 masak so both kinds need to be child nodes.
07:46 wayland76 Have you noticed that in the DOM, XML::Attribute inherits from XML::Node?
07:47 wayland76 So attributes are nodes, but not child nodes
07:47 wayland76 (unless I'm confused again)
07:47 masak indeed.
07:47 masak that's slightly noticeable in XPath, too.
07:47 kane_ joined #perl6
07:48 wayland76 Ok, let me ask this question
07:48 wayland76 No, I won't :)
07:49 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
07:49 Matt-W the only real difference seems to be what you can put in them...
07:50 wayland76 Matt-W: That's what I was too inarticulate to say :)
07:50 Matt-W well it must be getting late in australia
07:51 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 wayland76 Matt-W: All of 5:51pm :)
07:51 Matt-W yeah, so it's late :P
07:52 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
07:53 wayland76 Oh, another thing that I don't like about XPath -- the axes are insufficient :)
07:54 wayland76 But the Axes I have in mind are such that the XPath axes could be mapped onto them with trivial effort
07:55 masak be that as it may -- my needs call for faithful XPath.
07:56 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:58 wayland76 masak: Just about every sizeable P6 project I have is currently blocking on this Tree stuff :)
08:00 JimmyZ joined #perl6
08:00 JimmyZ hello masak
08:02 masak 你好, JimmyZ.
08:02 JimmyZ rakudo: $_ = 8 & 9 & 10; say ++.perl;
08:02 p6eval rakudo a53a1c: OUTPUT«all(8, 9, 11)␤»
08:02 JimmyZ Is it a bug?
08:03 JimmyZ rakudo: $_ = 8 | 9 | 10; say ++.perl;
08:03 JimmyZ rakudo: $_ = 8 | 9 | 10; say (++$_).perl;
08:03 p6eval rakudo a53a1c: OUTPUT«any(8, 9, 11)␤»
08:03 p6eval rakudo a53a1c: OUTPUT«any(9, 10, 11)␤»
08:03 masak JimmyZ: the former one is probably read as ++(.perl)
08:03 masak I think that's right.
08:04 JimmyZ rakudo: $_ = 8 | 9 | 10; say .perl;
08:04 masak whether it should flag an error is another thing.
08:04 p6eval rakudo a53a1c: OUTPUT«any(8, 9, 10)␤»
08:04 JimmyZ rakudo: $_ = 8 | 9 | 10; say .perl++;
08:04 p6eval rakudo a53a1c: OUTPUT«any(8, 9, 10)␤»
08:04 JimmyZ rakudo: $_ = 8 | 9 | 10; .perl++; say
08:04 p6eval rakudo a53a1c: OUTPUT«say requires an argument at line 2, near ""␤in Main (src/gen_setting.pm:2467)␤»
08:04 JimmyZ rakudo: $_ = 8 | 9 | 10; .perl++; say .perl
08:04 p6eval rakudo a53a1c: OUTPUT«any(8, 9, 10)␤»
08:05 JimmyZ rakudo: $_ = 8 | 9 | 10; say ++(.perl);
08:05 p6eval rakudo a53a1c: OUTPUT«any(8, 9, 11)␤»
08:05 masak JimmyZ: bare 'say' doesn't work. '.say' does.
08:05 JimmyZ rakudo: $_ = 8 | 9 | 10; .++; .say;
08:05 p6eval rakudo a53a1c: OUTPUT«Syntax error at line 2, near ".++; .say;"␤in Main (src/gen_setting.pm:3363)␤»
08:06 masak JimmyZ: '.++' should work.
08:06 masak not yet implemented.
08:06 ejs joined #perl6
08:06 JimmyZ thanks, perl6 is a bit complex.
08:06 masak rakudo: for $*IN.lines() { .flip.say }
08:07 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.
08:07 p6eval ..tsgeil␤.hcielg nez…
08:07 JimmyZ there were too much ways
08:07 masak JimmyZ: "There should be too many ways to do it." ? :)
08:08 ihrd left #perl6
08:08 JimmyZ yes, I think so. it unlike python.
08:09 JimmyZ s/unlike/unlikes/
08:10 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?
08:10 JimmyZ poor english
08:12 moritz_ yes, I think "it is unlike python" works
08:12 Matt-W it does indeed work
08:12 Matt-W it is in fact a very ordinary way to say it
08:12 Matt-W you can also say 'it is not like python'
08:13 Matt-W 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. :(
08:14 moritz_ right, in perl 6 you can say 'perl' !~~ 'python', and it means 'unlike' :-)
08:14 moritz_ or you can say   not 'perl' ~~ 'python', which would be 'not like'
08:15 Matt-W see, just like English!
08:16 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 #perl6
08:17 JimmyZ s/word/world/
08:17 cxreg joined #perl6
08:17 gfldex joined #perl6
08:17 JimmyZ and Perl 7 will be it.
08:18 ejs1 joined #perl6
08:18 masak 世界语!
08:18 JimmyZ masak: 呵呵
08:21 rhr joined #perl6
08:21 samlh joined #perl6
08:21 wayland76 joined #perl6
08:21 broquaint joined #perl6
08:21 hudnix_ joined #perl6
08:21 chipdude joined #perl6
08:21 hcchien joined #perl6
08:22 * masak 很系欢可以用中文使一个笑话
08:23 masak (did I get that right?)
08:23 xinming_ masak: wrong.
08:24 * xinming_ 很喜欢用中文说一个笑话。
08:24 xinming_ 系欢  =>  喜欢
08:24 masak ah, right.
08:24 xinming_ 使 => 说
08:24 masak so, "说一个笑话"?
08:24 xinming_ I'm a more advanced turing machine. :-)
08:24 xinming_ masak: I believe you mean "tell a joke" really.
08:25 masak xinming_: indeed.
08:25 xinming_ tell, or, speak should be    说
08:25 masak right.
08:25 masak makes sense.
08:25 xinming_ 使 is something like,   "use" or "let"
08:27 masak 'make'?
08:27 masak I think I accidentally translated 'make a joke' directly.
08:28 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 #perl6
08:30 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?
08:31 xinming_ masak: Yes.
08:31 masak good to know.
08:33 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 xinming_ Ok, let's give up, It's #perl6 channel. :-)
08:34 masak thanks for the info. it's well received.
08:34 JimmyZ xinming_: are you chinese too?
08:34 xinming_ JimmyZ: Yes I am
08:34 masak ah, something like 'fabricate a joke' or 'make up a joke'.
08:34 xinming_ JimmyZ: From mainland.
08:34 JimmyZ me too
08:34 xinming_ JimmyZ: Where are you from?
08:35 xinming_ masak: Yes, Something like that.
08:35 JimmyZ xinming_ : Shenzheng now
08:35 JimmyZ and you ?
08:35 xinming_ JimmyZ: Let's don't pollute this channel.
08:44 Su-Shee it's a great unicode test. :)
08:51 jan joined #perl6
08:53 jnthn o/
08:53 masak jnthn: morning, jnthn.
08:56 masak jnthn: any cool Rakudo activity planned for today?
08:57 patmat I wish all of you Sysadmins a great Sysadminday :D
08:57 JimmyZ jnthn is the most active man
08:58 masak JimmyZ: actually, jnthn has been offered to play ActiveMan in the next big MegaMan game.
08:59 jnthn ...
08:59 masak jnthn: nobody told you? :)
09:00 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.)
09:00 jnthn *sigh*
09:00 jnthn Su-Shee: I promise you I'm not that. :-)
09:00 masak jnthn: sorry to hear that.
09:00 JimmyZ masak: MegaMan ?  written in perl6 ?
09:00 masak JimmyZ: now, that's an idea.
09:00 Su-Shee jnthn: depends on what else I add to the coffee ;)
09:00 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. :-)
09:01 masak talk? we're supposed to do talks?
09:01 jnthn Su-Shee: Spiking your *own* drinks to find somebody attractive...that's novel! ;-)
09:01 jnthn masak: Well, it's optional I guess...I just thought it might be a nice idea.
09:02 * Su-Shee envies all YAPC participants.. :/
09:02 Su-Shee envys?
09:02 masak no, 'envies'.
09:03 masak jnthn: I'm also late with my talk. don't know how it came to this, I started procrastinating really early this time...
09:04 jnthn masak: By contrast, I put off the procrastinating for quite a while...
09:04 jnthn ;-)
09:04 masak yes, sometimes there's not time to procrastinate.
09:05 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.
09:06 masak sounds like a good idea.
09:06 * Su-Shee recommends GPD.
09:06 masak :)
09:06 masak I'm wrapping up my month-long procrastination as we speak.
09:07 masak it hasn't been easy; a lot of things have stolen valuable time from the procrastinating.
09:08 JimmyZ masak: there were some  POD ERRORS on http://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.
09:08 JimmyZ masak: and  http://perlcabal.org/syn/S32/Containers.html
09:09 masak JimmyZ: do you have a Pugs commit bit?
09:09 JimmyZ nope
09:09 masak JimmyZ: do you want one?
09:10 JimmyZ Is there any condition?
09:10 masak JimmyZ: not any formal ones, no.
09:11 masak we expect you not to blow things up, that's about it.
09:11 JimmyZ that's true.
09:11 mkfort_ joined #perl6
09:12 masak JimmyZ: /msg me your email address, and I'll set you up.
09:14 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)␤»
09:14 jnthn missingthepoint: I think assoc is NYI.
09:14 masak missingthepoint: I think 'is assoc' isn't implemented.
09:15 jnthn wow, our thoughts align!
09:15 sri_kraih joined #perl6
09:15 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 #perl6
09:16 moritz_ no, missingthepoint is compiling a NYI-list :-)
09:16 missingthepoint no, i wanted confirmation... :) ^^
09:17 masak rakudo: my @a = NYI-list.new()
09:17 p6eval rakudo a53a1c: OUTPUT«Could not find non-existent sub NYI-list␤»
09:17 masak NYI-list is not yet implemented, I fear. :)
09:17 * masak is missing the point
09:18 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.
09:19 Su-Shee I'm just punning on missingthepoint. ;)
09:19 masak ok. :)
09:19 masak I missed that point.
09:20 masak 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 masak 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
09:24 JimmyZ thanks, I had alrealdy taken a look at there.
09:24 masak JimmyZ++
09:28 wknight8111 joined #perl6
09:36 missingthepoint is there an actual roadmap document somewhere?
09:36 missingthepoint (for rakudo)
09:37 masak missingthepoint: yes. docs/ROADMAP
09:37 missingthepoint hmm, my ack-fu needs work
09:37 missingthepoint sorry
09:37 masak no problem.
09:37 masak if pmichaud were here, he'd mumble about "no-one ever looks in the docs/ directory" or something. :)
09:38 missingthepoint he'd probably be right, too :)
09:38 masak yes, it's strange how that works.
09:38 masak I had pored over large parts of the Rakudo source code before I even became aware of the docs/ dir...
09:39 moritz_ maybe we should name it FUCKING-READ-THE-docs-DIR
09:40 masak I dunno, I'm old-skool and believe in a polite kind of proffessionalism. but maybe that's just me.
09:40 masak s/ff/f/
09:40 wayland76 ffl <-- font ligatures test :)
09:41 wayland76 The ROADMAP claims to be a few months old, but not much has changed, if I understand correctly
09:41 missingthepoint wayland76: ok, cool.
09:41 wayland76 The stuff that said it would be in the July release wasn't, but Allison claims it's now her top priority
09:41 missingthepoint and i think i have a bug in windows ack.
09:42 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:43 wayland76 Or was that files?  I forget, but I know I like to have it when i need a Perl Regex :)
09:44 masak yes, it ignores some directories.
09:44 masak and files.
09:44 missingthepoint (in this case, those files without an extension)
09:44 missingthepoint petdance, where are youuuuu?
09:45 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.
09:46 missingthepoint wayland76: i've never had trouble with it under linux...
09:47 Su-Shee left #perl6
09:48 masak it (ack) at least sets the bar higher than grep, which is a good thing in itself.
09:48 zamolxes joined #perl6
09:49 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.
09:49 masak and it's also quite powerful, once one learns its quirks.
09:49 wayland76 Although I've been bitten by the flavouring of grep before :)
09:50 wayland76 (ie. Solaris grep is different to GNU grep :) )
09:51 JimmyZ q: Is there any roadmap to make perl6 compile itself?
09:51 masak JimmyZ: perl6 is a specification, not an implementation.
09:52 masak JimmyZ: but yes, this is the goal of e.g. the Elf implementation.
09:52 JimmyZ and  rakudo ?
09:52 masak JimmyZ: Rakudo will probably always have Parrot-specific parts.
09:53 masak that's my guess, anyway.
09:54 jnthn I think it's fair to say Rakudo doesn't have short or medium term plans for being self-hosting.
09:55 wayland76 ooh, jnthn is here :)
09:55 masak that makes it sound like there are long term plans. :)
09:56 JimmyZ some idealismer always wants Perl 6 for self-hosting
09:56 JimmyZ if not, they will be sad
09:56 moritz_ it already has the grammar, action methods and the setting written in Perl 6
09:56 moritz_ IMHO that's a fair start
09:56 jnthn moritz_: Indeed.
09:57 wayland76 jnthn: Have you seen http://rt.perl.org/rt3/Publi​c/Bug/Display.html?id=68066 yet?
09:57 jnthn wayland76: I hadn't, but I'm not surprised either.
09:57 jnthn wayland76: Pre-declaring classes doesn't work afaik.
09:58 wayland76 Should it, though?
09:58 jnthn wayland76: It parses it as nothing more special than a role whose body is ....
09:58 wayland76 Yeah, I figured :)
09:58 jnthn It should work in the sense that yes, it's Perl 6 spec.
09:58 wayland76 That's what I was asking :)
09:58 moritz_ std: class A { ... }; class A { method foo { } }
09:58 jnthn But I don't think it's ever worked in Rakudo yet.
09:58 p6eval std 27822: OUTPUT«[31m===[0mSORRY![31m===[0m␤Illegal redeclaration of package symbol A at /tmp/5nkVtiC3Q2 line 1:␤------> [32mclass A { ... }; class A[33m⏏[31m { method foo { } }[0m␤FAILED 00:02 36m␤»
09:58 jnthn std: orly?
09:58 p6eval std 27822: OUTPUT«[31m===[0mSORRY![31m===[0m␤Obsolete use of ?: for the conditional operator; in Perl 6 please use ??!! instead at /tmp/KKX2s47ZRD line 1:␤------> [32morly?[33m⏏[31m<EOL>[0m␤Undeclared routine:␤       orly used at 1 ␤FAILED 00:02 36m␤»
09:59 wayland76 std: role A { ... }; role A { method foo { } }
09:59 p6eval std 27822: OUTPUT«ok 00:02 36m␤»
09:59 wayland76 Works for roles, though :)
09:59 jnthn I suspect the first of those is a std bug.
09:59 jnthn Sure, but roles are kinda more fun.
09:59 jnthn Since you can declare multiple of them with the same name.
09:59 jnthn So long as they take a distinguishable parameter signature.
10:00 wayland76 What, to the .new() method, or do I need to read more doco? :)
10:01 jnthn wayland76: To the role.
10:02 wayland76 Ah, I see the section in S14 now :)
10:03 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)␤»
10:03 jnthn meh
10:03 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:04 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.
10:04 jnthn \o/
10:04 moritz_ masak: \o|
10:04 masak jnthn++
10:05 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.
10:06 jnthn masak: Erm.
10:07 jnthn masak: You're making me think that silly example should go in my talk now.
10:07 jnthn :-)
10:07 masak jnthn: I'm just saying to worked very well for me.
10:07 wayland76 Is implementing predeclaration of roles as simple as doing something like "if body = '...' then whatever" ???
10:07 masak I've already seen your other param-roles examples.
10:08 jnthn wayland76: Well, maybe something along those lines. The whatever bit is the harder part. ;-)
10:08 wayland76 Ok :)
10:08 jnthn It's relatively low-hanging fruit though.
10:09 wayland76 Lets just overload the * operator to do it :)
10:09 masak how would that help, even in the context of a joke?
10:10 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...
10:10 masak wayland76: oh, I was confused by you calling it an operator. :)
10:10 wayland76 Because it's a pain? :)
10:11 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 masak wayland76: as far as I understand, all roles are parametereized.
10:12 jnthn wayland76: All roles are "parameterized" in a sense.
10:12 wayland76 Sorry, let me rephrase that
10:12 masak though they may be parameterized with zero parameters.
10:12 jnthn role Foo { } is really the same as role Foo[] { }
10:13 jnthn As in, *really* the same.
10:13 wayland76 Should it only work if the roles have different sigs?
10:13 jnthn Well, it's built on multiple dispatch.
10:13 jnthn So the rules for conflicts are the same.
10:14 moritz_ detecting if two sigs are always identical is turing complete
10:15 moritz_ so in general you can't know if there'll be an ambiguous dispatch unless you try it
10:16 jnthn moritz_: Right.
10:16 jnthn Which is the rule for multiple dispatch. :-)
10:16 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
10:16 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
10:16 p6eval ..$x whe…
10:17 * moritz_ submits
10:17 masak wow, that's a new one.
10:18 jnthn Wow!
10:18 masak also, I look forward to the day when closures stringify correctly.
10:18 * jnthn inserted that check hoping it'd never actually happen.
10:20 masak good thing you didn't name it 'ThisShouldNeverHappenError' or something. :)
10:20 * masak has done something in that vein once
10:20 moritz_ jnthn: you should have known us better ;-)
10:21 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.
10:21 jnthn Then doing something that'd be *very* hard to trace/debug later.
10:21 literal http://gbracha.blogspot.com/2​009/07/miracle-of-become.html
10:22 literal does Perl 6 do this?
10:22 eMaX joined #perl6
10:22 jnthn Is that just not assignment to self?
10:23 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 }
10:23 jnthn wayland76: Oh, it *shuld* be an ambiguous dispatch.
10:23 jnthn wayland76: They shouldn't get silently merged, just as different multi candidates should not.
10:24 jnthn 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?
10:24 jnthn No :-)
10:24 wayland76 Ah, no, you're talking about moritz_'s one
10:24 icwiener joined #perl6
10:25 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!
10:25 jnthn nearly forgot that...
10:26 wayland76 ok, sorry
10:26 jnthn wayland76: I suspect we should detect it, but not emit a role body or something.
10:26 jnthn Just create a Perl6Role and install it in the namespace but at that point it has no candidates.
10:26 jnthn That is, if there isn't one there already.
10:27 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:28 wayland76 o/ jnthn
10:30 TimToady rehi
10:31 ejs2 joined #perl6
10:33 wayland76 TimToady: In the backlog, japhb had a question for you :)
10:37 pugs_svn r27823 | jimmy++ | added missing POD commands
10:40 TimToady wayland76: it's difficult to have answers at 3:40am mental time, even if the sun is shining here
10:40 masak TimToady: welcome to Lisbon!
10:40 ejs2 joined #perl6
10:41 wayland76 TimToady: That's fine, I just thought I'd pass on the message :)
10:41 masak TimToady: are you coming to szabgab's training lessons tomorrow?
10:42 TimToady we're still trying to fugure that out
10:42 TimToady *figure
10:43 pugs_svn r27824 | jimmy++ | [blog]using the right single quote character
10:44 masak ok. I thought I'd go there. finally I get to learn Perl 6!
10:45 masak I plan to do a trial walk to the venue later this afternoon.
10:45 masak Google Maps says it's a 72 minute walk.
10:45 meppl joined #perl6
10:45 TimToady we thought we might do that too at some point, bu tmay be no ttoday
10:46 TimToady we want to do a bit of sightseeing, but when we do that depends on when peopel decide to hackathon on what
10:46 TimToady *people even
10:46 masak yes, that makes sense.
10:46 masak I haven't heard much about a hackathon.
10:47 TimToady and we did see the earlier version of Gabor's tutorial
10:47 TimToady one of the reasons prefix:<=> went away :)
10:47 masak yes, I remember.
10:48 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. :)
10:49 masak 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:50 masak lunch &
10:52 jauaor joined #perl6
10:57 JimmyZ while(1) { masak.lunch };
10:59 JimmyZ dinner &
11:04 wayland76 Careful, you could kill masak that way :)
11:06 JimmyZ that's a bug
11:07 JimmyZ while(1) { masak.lunch; masak.sleep(8*24*3600); }
11:19 pmurias joined #perl6
11:20 donaldh joined #perl6
11:23 gribouille joined #perl6
11:24 gribouille hi
11:24 gribouille is perl6 going to be released soon ?
11:26 Front_slash joined #perl6
11:26 Juerd gribouille: No
11:26 moritz_ gribouille: an implementation is released every month
11:26 moritz_ it's not complete, though
11:40 wayland76 It's usable, but there's no database interaction yet, for example
11:53 missingthepoint TimToady: enjoy Lisbon :)
11:55 missingthepoint masak: you too :)
11:57 M_o_C joined #perl6
12:05 Jedai joined #perl6
12:09 xomas_ joined #perl6
12:12 masak joined #perl6
12:16 ruoso joined #perl6
12:18 ruoso Hello!
12:18 masak oh hai
12:19 Ehtyar joined #perl6
12:23 masak gribouille: if you're curious, you can try Perl 6 right here on the channel.
12:23 masak rakudo: say "OH HAI OMG ITS PERL 6"
12:23 p6eval rakudo a53a1c: OUTPUT«OH HAI OMG ITS PERL 6␤»
12:23 masak rakudo: say $*IN.get.words[0]
12:23 p6eval rakudo a53a1c: OUTPUT«Land␤»
12:24 masak rakudo: say $*IN.get.words[0].uc ~ '!'
12:24 p6eval rakudo a53a1c: OUTPUT«LAND!␤»
12:24 masak rakudo: say [~] 'I CAN HAZ ', $*IN.get.words[0].uc, '?'
12:24 moritz_ rakudo: say $*IN.lines.words.grep({/:i ö/}.join: ' '
12:24 p6eval rakudo a53a1c: OUTPUT«I CAN HAZ LAND?␤»
12:24 p6eval rakudo a53a1c: OUTPUT«Statement not terminated properly at line 2, near "({/:i \x{f6}/}."␤in Main (src/gen_setting.pm:3363)␤»
12:25 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!␤»
12:25 pmurias ruoso: hi
12:25 masak :)
12:25 moritz_ that sounds quite a bit funny if you read it ;-)
12:25 pmurias ruoso: i'm trying to get App::Persistent to work with mildew
12:26 ruoso hi pmurias
12:26 masak rakudo: say $*IN.lines.words.grep({/:i ä/}).join: ' '
12:26 p6eval rakudo a53a1c: OUTPUT«Äcker, Hämmer, gläubig␤»
12:26 masak :)
12:26 mkfort joined #perl6
12:27 masak rakudo: say $*IN.lines.words.grep({/:i ä/})
12:27 p6eval rakudo a53a1c: OUTPUT«Äcker,Hämmer,gläubig␤»
12:27 masak rakudo: say $*IN.lines.words.grep({/:i ä/}).fmt
12:27 p6eval rakudo a53a1c: OUTPUT«Äcker, Hämmer, gläubig␤»
12:27 moritz_ rakudo: say $*IN.lines.words.grep({/:i ü/}).fmt
12:27 p6eval rakudo a53a1c: OUTPUT«für vielgerühmtes vielgerühmtes frühen vielgeprüftes vielgeprüftes Brüderchören,␤»
12:27 moritz_ rakudo: say $*IN.lines.words.grep({/:i ü/}).uniq.fmt
12:27 payload joined #perl6
12:28 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
12:28 p6eval rakudo a53a1c: OUTPUT«␤»
12:28 masak rakudo: say $*IN.lines.words.grep({/:i ck/}).fmt
12:28 p6eval rakudo a53a1c: OUTPUT«Äcker,␤»
12:30 * moritz_ can't find App::Persistent on CPAN
12:31 * masak bets there's some joke to be made about that, too
12:31 ruoso pmurias, sounds like an interesting challenge
12:36 pmurias moritz_: it's on git hub
12:37 moritz_ bah. Perl 5 modules don't exist unless they are on CPAN
12:39 * masak agrees, darkly
12:40 * ruoso too
12:41 skids_ joined #perl6
12:47 * wayland76 is a bad boy :)
12:57 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␤»
12:57 masak clearly, the dice are not on my side today.
12:58 jnthn sub rand { 4 #{ what the dice said; totally random } }
12:59 masak not my brand of rand.
13:11 Matt-W I was due to demonstrate a bit of software for my colleagues
13:12 Matt-W I did a dry run
13:12 Matt-W I discovered somebody's sneaked in and broken it
13:12 Matt-W I was not happy
13:13 masak software-o-clasts!
13:14 payload joined #perl6
13:15 * Matt-W is trying to figure out where it's going wrong now
13:15 donaldh joined #perl6
13:15 poe joined #perl6
13:16 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
13:16 Matt-W and if I do, it's likely it's got other things in too that are important
13:17 masak atomic++
13:19 Matt-W also, we're using subversion
13:19 Matt-W so all these things are far harder than they should be
13:19 wayland76 Ah, so the problem is, it subverted your software :)
13:19 Matt-W something did...
13:20 Matt-W it's getting two config parameters confused
13:20 wayland76 Anyway, it's bedtime here, so o/'nightafk&
13:20 Matt-W and feeding the data from one into the routines for the other
13:20 Matt-W the results are quite surprising
13:35 Matt-W Ahah
13:35 Matt-W found it :D
13:43 JimmyZ joined #perl6
13:49 xomas joined #perl6
13:59 mberends joined #perl6
14:00 mberends masak: hi
14:06 masak mberends: oh hai, where are you?
14:07 * masak is in the city in question
14:11 iblechbot joined #perl6
14:13 mberends masak: still in NL, will be in UK tomorrow morning and PT in the evening. Are you online at the Goodnight Hostel?
14:14 masak mberends: I am indeed.
14:14 masak looking forward to seeing you again.
14:14 mberends ditto. you can help me finalize the procrastination of my presentation
14:15 masak ditto.
14:15 mberends (I haven't had time to start procrastinating yet)
14:15 * jnthn is procrastinating his presentation this very minute.
14:15 mberends jnthn++: you're ahead then!
14:15 masak I've finalized procrastinating, but I haven't started on the next step after that.
14:16 mberends afk &
14:24 meppl joined #perl6
14:28 sunnavy joined #perl6
14:45 jnthn masak: The my Can of Beer made it into the talk. ;-)
14:47 clintongormley joined #perl6
14:48 masak jnthn++
14:49 jnthn masak: Thanks for highlighting it as something that made you get parametric roles. ;-)
14:49 jnthn Hopefully it works for others too.
14:55 alester joined #perl6
14:55 jnthn My socks are dry! \o/
14:55 * jnthn finishes up his YAPC::EU packing
14:56 Psyche^ joined #perl6
14:56 nihiliad joined #perl6
14:58 jauaor joined #perl6
14:59 charsbar joined #perl6
15:04 jauaor morning
15:04 masak jauaor: \o
15:05 jauaor :D
15:05 jauaor hi there masak
15:05 jauaor how it goes?
15:06 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)␤»
15:07 dalek rakudo: e02bc06 | jnthn++ | src/builtins/guts.pir:
15:07 dalek rakudo: Improve error output when we have a junction of types.
15:07 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/e​02bc06ee0bb9aabe3c38c171c86739fb0994794
15:08 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:17 masak JimmyZ: :by not implemented.
15:18 masak jauaor: well it goes. how for you it goes?
15:20 jauaor masak: doing good, writing some lines about my lang spec
15:20 jauaor :P
15:20 donaldh joined #perl6
15:22 PerlJam good morning!
15:22 masak rakudo: ('I CAN HAZ ' ~ $*IN.get.uc.subst('D', 'G SPEC?')).say
15:22 p6eval rakudo a53a1c: OUTPUT«I CAN HAZ LANG SPEC? DER BERGE, LAND AM STROME,␤»
15:23 masak oops.
15:23 masak rakudo: ('I CAN HAZ ' ~ $*IN.get.words[0].uc.subst('D', 'G SPEC?')).say
15:23 p6eval rakudo a53a1c: OUTPUT«I CAN HAZ LANG SPEC?␤»
15:29 justatheory joined #perl6
15:30 PerlJam moritz_: you've got a commit bit to perl6-docs now. :)
15:31 PerlJam @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:33 masak PerlJam: ah, good to know. I was wondering about that, too.
15:35 PerlJam at least in my head, u4x is to comprehensive documentation while perl6-docs is almost explicitly NOT comprehensive :)
15:35 PerlJam s/to/to be/
15:36 masak sounds about right.
15:37 PerlJam (perhaps the naming is unfortunate though)
15:37 masak not necessarily.
15:37 masak maybe perl6-docs can handle the 'tutorials' part of Perl 6 documentation.
15:37 PerlJam masak: that's the idea :)
15:37 masak excellent. I'm not really interested in having that in u4x right now anyway.
15:38 PerlJam masak: you want a commit bit ?
15:38 masak sure, might as well. :)
15:44 iblechbot joined #perl6
15:44 PerlJam you *are* masak on github right?
15:45 rfordinal joined #perl6
15:45 PerlJam (github seems to be thinking a little too much)
15:45 PerlJam added.
15:48 * jnthn cracks up laughing reading the last paragraph of chromatic++'s latest post on use.perl.org
15:49 masak URL?
15:50 masak PerlJam: yes.
15:51 leedo masak: http://use.perl.org/~chromatic/journal/39381
15:51 masak thanks.
15:53 masak 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 #perl6
15:57 SmokeMachine joined #perl6
15:58 jnthn OK, I'm off to the airport.
15:58 jnthn Catch you all later, and see some of you in Lisbon. :-)
15:58 masak jnthn: o/
16:04 ilango joined #perl6
16:05 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)␤»
16:05 JimmyZ rakudo: my num @array[@@mytensorshape] is PDL; say @array.perl
16:05 p6eval rakudo e02bc0: OUTPUT«Malformed declaration at line 2, near "num @array"␤in Main (src/gen_setting.pm:3363)␤»
16:05 JimmyZ rakudo: my @array[@@mytensorshape] is PDL; say @array.perl
16:05 p6eval rakudo e02bc0: OUTPUT«Statement not terminated properly at line 2, near "[@@mytenso"␤in Main (src/gen_setting.pm:3363)␤»
16:05 masak JimmyZ: S09 largely unimplemented.
16:06 JimmyZ masak++
16:06 JimmyZ yes, I am using S09
16:07 masak :P
16:11 JimmyZ should we make purl working here?
16:14 ilango joined #perl6
16:15 masak rakudo: sub foo($a, $a) { say $a }; foo(42, 5)
16:15 p6eval rakudo e02bc0: OUTPUT«5␤»
16:15 masak hah!
16:15 * masak submits rakudobug
16:16 JimmyZ masak++ again ;)
16:16 masak don't wear out that plus key, acolyte. :)
16:18 pmichaud Good afternoon, #perl6
16:18 masak pmichaud: boa tarde, pmichaud.
16:18 pmichaud aiiiie so much backscroll to read....
16:19 JimmyZ rakudo: my $_ = 8 | 9; say ++.perl;
16:19 masak and even then, we held back a lot on the Chinese parts of it.
16:19 p6eval rakudo e02bc0: OUTPUT«any(8, 10)␤»
16:19 JimmyZ rakudo: my $_ = 8 | 9; say ++(.perl);
16:19 p6eval rakudo e02bc0: OUTPUT«any(8, 10)␤»
16:20 * JimmyZ still don't know why it outputs 8, 10
16:20 pmichaud JimmyZ: it's doing a string increment
16:20 pmichaud rakudo:  say "any(8,9)".succ
16:20 p6eval rakudo e02bc0: OUTPUT«any(8,10)␤»
16:21 pmichaud .perl is producing "any(8, 9)", and incrementing that string results in "any(8, 10)"
16:21 JimmyZ rakudo: say ++"any(8,9)";
16:21 p6eval rakudo e02bc0: OUTPUT«Unable to set lvalue on PAST::Val node␤in Main (src/gen_setting.pm:3363)␤»
16:21 JimmyZ rakudo: say "any(8,9)".++;
16:21 pmichaud can't use increment on a constant :-)
16:21 p6eval rakudo e02bc0: OUTPUT«Statement not terminated properly at line 2, near ".++;"␤in Main (src/gen_setting.pm:3363)␤»
16:22 pmichaud rakudo:  my $x = "any(8,9)";  $x++;  say $x;
16:22 p6eval rakudo e02bc0: OUTPUT«any(8,10)␤»
16:22 JimmyZ rakudo: my $_= 'any(8,9)'; (++$_).say
16:22 p6eval rakudo e02bc0: OUTPUT«any(8,10)␤»
16:22 JimmyZ rakudo: my $_= 'any(8,9)'; ++$_.say
16:22 p6eval rakudo e02bc0: OUTPUT«any(8,9)␤»
16:23 pmichaud rakudo:  my $x = "cheezburgers:  9!!!";  $x++;  say $x;
16:23 p6eval rakudo e02bc0: OUTPUT«cheezburgers:  10!!!␤»
16:23 JimmyZ rakudo: my $x = "cheezburgers: 7!!!8"; $x++; say $x;
16:23 p6eval rakudo e02bc0: OUTPUT«cheezburgers: 7!!!9␤»
16:24 * masak 's mind boggles at 10 cheezburgers
16:24 JimmyZ it 'inc' the last number.
16:24 pmichaud no, it increments the last incrementable string
16:24 masak JimmyZ: it's in S03.
16:24 pmichaud my $x = "I has 10 cheezburgers";  $x++;  say $x;
16:25 pmichaud rakudo: my $x = "I has 10 cheezburgers";  $x++;  say $x;
16:25 p6eval rakudo e02bc0: OUTPUT«I has 10 cheezburgert␤»
16:25 masak rakudo: my $x = "I has 10.20 cheezburgers"; $x++; say $x
16:25 p6eval rakudo e02bc0: OUTPUT«I has 10.20 cheezburgert␤»
16:25 JimmyZ bug found?
16:25 pmichaud no, that's the spec.
16:25 masak JimmyZ: no, what pmichaud said.
16:26 masak JimmyZ: it increments the last incrementable string.
16:26 pmichaud my $x = "hai";  say ++$x;  say ++$x;  say ++$x;
16:26 pmichaud rakudo: my $x = "hai";  say ++$x;  say ++$x;  say ++$x;
16:26 p6eval rakudo e02bc0: OUTPUT«haj␤hak␤hal␤»
16:27 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␤»
16:28 JimmyZ my $x = '!'; say ++$x; say ++$x; say ++$x;
16:28 JimmyZ rakudo: my $x = '!'; say ++$x; say ++$x; say ++$x;
16:28 p6eval rakudo e02bc0: OUTPUT«!␤!␤!␤»
16:29 donaldh left #perl6
16:29 JimmyZ a bit weird.
16:31 JimmyZ rukudo: my $_ = 'jpg'; .say; my $_ = '001.jpg'; .say;
16:32 JimmyZ rakudo: my $_ = 'jpg'; say ++$_; my $_ = '001.jpg'; say ++$_;
16:32 p6eval rakudo e02bc0: OUTPUT«Redeclaration of variable $_␤jph␤002.jpg␤»
16:32 JimmyZ rakudo: my $_ = 'jpg'; say ++$_;
16:32 p6eval rakudo e02bc0: OUTPUT«jph␤»
16:32 * masak liked 'cheezburgeru' -- sounds a bit like Japanese
16:32 JimmyZ rakudo: my $_ = 'jpg'; say ++$_; $_ = '001.jpg'; say ++$_;
16:33 p6eval rakudo e02bc0: OUTPUT«jph␤002.jpg␤»
16:33 pmichaud (rakudo ftw!)
16:34 JimmyZ what's the definition of last incrementable string ?
16:34 masak rakudo: for '001.jpg' .. '010.jpg' { .say }
16:34 p6eval rakudo e02bc0: OUTPUT«001.jpg␤002.jpg␤003.jpg␤004.jpg␤005.j​pg␤006.jpg␤007.jpg␤008.jpg␤009.jpg␤010.jpg␤»
16:34 masak JimmyZ: well, numbers are incrementable. and letters.
16:34 pmichaud I'm a little surprised that worked.  :-)
16:34 masak JimmyZ: and unicode things which look like numbers and letters.
16:34 pmichaud we can also increment other things.... :-)
16:35 JimmyZ first number, and if no that, and then letters?
16:35 pmichaud rakudo:  my $x = '⚀';  $x++;  say $x
16:35 p6eval rakudo e02bc0: OUTPUT«⚁␤»
16:35 pmichaud rakudo:  my $x = '⚀';  loop { $x++;  say $x }
16:35 p6eval rakudo e02bc0:
16:35 p6eval ..OUTPUT«⚁␤⚂␤⚃␤⚄␤⚅␤⚀⚀␤⚀⚁␤⚀⚂␤⚀⚃␤⚀⚄␤⚀⚅␤⚁⚀␤⚁⚁␤⚁⚂␤⚁⚃␤⚁​⚄␤⚁⚅␤⚂⚀␤⚂⚁␤⚂⚂␤⚂⚃␤⚂⚄␤⚂⚅␤⚃⚀␤⚃⚁␤⚃⚂␤⚃⚃␤⚃⚄␤⚃⚅␤⚄⚀␤⚄⚁␤⚄⚂␤​⚄⚃␤⚄⚄␤⚄⚅␤⚅⚀␤⚅⚁␤⚅⚂␤⚅⚃␤⚅⚄␤⚅⚅␤⚀⚀⚀␤⚀⚀⚁␤⚀⚀⚂␤⚀⚀⚃␤⚀⚀⚄␤⚀�
16:36 JimmyZ my $x = '一'; say ++$x;
16:36 JimmyZ rakudo: my $x = '一'; say ++$x;
16:36 p6eval rakudo e02bc0: OUTPUT«一␤»
16:36 JimmyZ not 二 ;)
16:36 masak pmichaud: yeah, but those are essentially numberish things.
16:37 masak JimmyZ: there's a limit even to Perl 6's magic.
16:37 pmichaud agreed :-)
16:37 masak JimmyZ: but you do have a case.
16:37 masak that character does mean 'one'.
16:37 masak and if even _dice_ get to play, why not hanzi?
16:38 pmichaud rakudo:  my $x = 'ⅰ ';  loop { say ++$x }
16:38 p6eval rakudo e02bc0: OUTPUT«ⅱ ␤ⅲ ␤ⅳ ␤ⅴ ␤ⅵ ␤ⅶ ␤ⅷ ␤ⅸ ␤ⅹ ␤ⅺ ␤ⅻ ␤ⅰⅰ ␤ⅰⅱ ␤ⅰⅲ ␤ⅰⅳ ␤ⅰⅴ ␤ⅰⅵ ␤ⅰⅶ ␤ⅰⅷ ␤ⅰⅸ ␤ⅰⅹ ␤ⅰⅺ ␤ⅰⅻ ␤ⅱⅰ ␤ⅱⅱ ␤ⅱⅲ ␤ⅱⅳ ␤ⅱⅴ ␤ⅱⅵ ␤ⅱⅶ ␤ⅱⅷ ␤ⅱⅸ ␤ⅱⅹ ␤ⅱⅺ ␤ⅱⅻ ␤ⅲⅰ ␤ⅲⅱ ␤ⅲⅲ ␤ⅲⅳ ␤ⅲⅴ ␤ⅲⅵ ␤ⅲⅶ ␤ⅲⅷ ␤ⅲⅸ �
16:38 p6eval ..␤ⅵⅱ ␤ⅵ…
16:38 masak there's clearly a cultural bias here.
16:38 pmichaud I'm just following the spec :-)
16:39 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 一.
16:39 masak JimmyZ: you bet!
16:41 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)␤»
16:41 JimmyZ rakudo: my $_ = '①'; loop { .say }
16:41 p6eval rakudo e02bc0:
16:41 p6eval ..OUTPUT«①␤①␤①␤①␤①␤①␤①␤①␤①␤①␤①␤①␤①␤①␤①␤①␤①␤①␤①␤①␤①​␤①␤①␤①␤①␤①␤①␤①␤①␤①␤①␤①␤①␤①␤①␤①␤①␤①␤①␤①␤①␤①␤①␤①␤①␤①​␤①␤①␤①␤①␤①␤①␤①␤①␤①␤①␤①␤①␤①␤①␤①␤①␤①␤①␤①␤①␤①␤①␤①␤①�
16:41 JimmyZ rakudo: my $_ = '①'; loop { say ++$_ }
16:41 p6eval rakudo e02bc0:
16:41 p6eval ..OUTPUT«②␤③␤④␤⑤␤⑥␤⑦␤⑧␤⑨␤⑩␤⑪␤⑫␤⑬␤⑭␤⑮␤⑯␤⑰␤⑱␤⑲␤⑳␤①①␤​①②␤①③␤①④␤①⑤␤①⑥␤①⑦␤①⑧␤①⑨␤①⑩␤①⑪␤①⑫␤①⑬␤①⑭␤①⑮␤①⑯␤①⑰␤①⑱​␤①⑲␤①⑳␤②①␤②②␤②③␤②④␤②⑤␤②⑥␤②⑦␤②⑧␤②⑨␤②⑩␤②⑪␤②⑫␤②⑬␤②⑭�
16:42 cdarroch joined #perl6
16:42 JimmyZ It is a bug
16:42 masak what is?
16:43 JimmyZ wait...
16:43 JimmyZ rakudo: my $_ = ①; loop { say ++$_ }
16:43 p6eval rakudo e02bc0: OUTPUT«Statement not terminated properly at line 2, near "= \u2460; loop "␤in Main (src/gen_setting.pm:3363)␤»
16:44 JimmyZ rakudo: for '①' .. '⑳' { .say }
16:44 p6eval rakudo e02bc0: OUTPUT«①␤②␤③␤④␤⑤␤⑥␤⑦␤⑧␤⑨␤⑩␤⑪␤⑫␤⑬␤⑭␤⑮␤⑯␤⑰␤⑱␤⑲␤⑳␤»
16:45 pmichaud finally caught up with backscroll
16:45 pmichaud I'm thinking about coming to the perl 6 training tomorrow, if I'm not too tired
16:45 JimmyZ rakudo: my $_ = '①'; loop { say ++$_ }
16:45 p6eval rakudo e02bc0:
16:45 p6eval ..OUTPUT«②␤③␤④␤⑤␤⑥␤⑦␤⑧␤⑨␤⑩␤⑪␤⑫␤⑬␤⑭␤⑮␤⑯␤⑰␤⑱␤⑲␤⑳␤①①␤​①②␤①③␤①④␤①⑤␤①⑥␤①⑦␤①⑧␤①⑨␤①⑩␤①⑪␤①⑫␤①⑬␤①⑭␤①⑮␤①⑯␤①⑰␤①⑱​␤①⑲␤①⑳␤②①␤②②␤②③␤②④␤②⑤␤②⑥␤②⑦␤②⑧␤②⑨␤②⑩␤②⑪␤②⑫␤②⑬␤②⑭�
16:46 pmichaud PerlJam: ping
16:47 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?
16:48 masak another building, but same location.
16:48 pmichaud okay
16:48 TimToady we were thinking of walking up there soon
16:48 masak me too.
16:48 pmichaud my hotel (radisson) appears to be very close to the conference venue so getting there shouldn't be much of a problem
16:48 masak I'm about 1 hour away by foot.
16:49 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.
16:49 masak pmichaud: bet you're glad you have git. :)
16:49 pmichaud well, wifi here seems to be pretty nice so far
16:49 pmichaud but yes, I'm glad for git
16:50 pmichaud 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 M_o_C joined #perl6
16:51 masak those all sound nice to me. :)
16:51 masak do they all take seven hours?
16:51 pmichaud No.
16:51 pmichaud Write my talk slides will take about five minutes.  :-P
16:51 masak I wish I could say the same.
16:51 pmichaud Yes! Yes!  I'm actually going to a conference where I have my slides written before I arrive!!
16:52 pmichaud of course, I'm just re-using my oscon talk....
16:52 pmichaud and I'm thinking about changing a couple of items
16:52 kane_ joined #perl6
16:52 TimToady masak: did you say you were at the alif?
16:53 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.
16:53 M_o_C what's HAR?
16:54 Juerd Hacking At Random
16:55 Juerd security/technology/politics conference
16:55 Juerd http://www.har2009.org/
16:56 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
16:57 masak if I read Google Maps right, there are four Hotels named Alif in town. :)
16:57 pmichaud I noticed that also.
16:57 TimToady we're next to the bullfighting ring in Campo Pequeno
16:58 SmokeMachine joined #perl6
16:58 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 :)
16:58 masak :)
16:59 masak http://twitter.com/carlmasak/status/2952840176
16:59 pmichaud *click*
16:59 masak so, I don't know.
16:59 masak I've been duly warned...
17:00 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;
17:00 JimmyZ rakudo: say 10 div 0;
17:01 pmichaud Is there a page that maps "Training Room B" to a physical location somewhere?
17:01 p6eval rakudo e02bc0: OUTPUT«Divide by zero␤»
17:01 p6eval rakudo e02bc0: OUTPUT«No applicable methods.␤in Main (/tmp/o1DarbXt6C:2)␤»
17:02 masak M_o_C: there's a "get older tweets" button when viewing people's profiles.
17:03 TimToady nothing other than http://yapceurope2009.org/ye​2009/wiki?node=VenueLocation that I can see
17:03 pmichaud yeah.
17:03 JimmyZ $_ = 3 ^ 4 ^ 5; .say;
17:03 pmichaud oh, that map has been updated since I last looked.
17:03 JimmyZ rakudo: $_ = 3 ^ 4 ^ 5; .say;
17:03 pmichaud Good.
17:03 p6eval rakudo e02bc0: OUTPUT«345␤»
17:04 JimmyZ rakudo: $_ = 3 ^ 4 ^ 5; say .perl;
17:04 p6eval rakudo e02bc0: OUTPUT«one(3, 4, 5)␤»
17:04 pmichaud previously it didn't have "training sessions" or "venue" on it.
17:04 JimmyZ rakudo: $_ = 3 | 4 | 5; .say;
17:04 p6eval rakudo e02bc0: OUTPUT«345␤»
17:04 TimToady once you're in the right building you can just shout
17:04 pmichaud "Hey!  I'm a Perl 6 newbie!  Where are the training sessions!"
17:05 * TimToady tries to picture pmichaud shouting
17:05 pmichaud .oO(  If Perl 6 has 'say', why don't we also have a 'shout'? )
17:05 TimToady .uc.say
17:05 pmichaud lol
17:05 pmichaud "Touché!".uc.say
17:06 JimmyZ Perl 6 is kinda like javascript ;)
17:06 pmichaud Perl 6 is kinda like all languages, only different.
17:06 pmichaud Except for Perl 5.  Perl 6 is *nothing* like Perl 5.
17:06 pmichaud :-D
17:06 Juerd I still don't get why say is a method, by the way.
17:06 JimmyZ I meant the Perl 6 object system.
17:06 Juerd Is this explained somewhere?
17:07 pmichaud I find using .say as a method to be very convenient, personally.
17:07 [particle] Ook. Ook.
17:07 JimmyZ pmichaud: me too.
17:07 Juerd pmichaud: That could be a very good reason by itself but I was wondering if there was more to it :)
17:07 pmichaud sometimes we want to put what we're doing at the front     say "hello".uc
17:07 Juerd If somehow it would make sense, be the logical thing to do.
17:08 pmichaud sometimes we want to put everything in the order we're doing them
17:08 pmichaud %hash.sort.say
17:08 masak that reminds me. I still haven't cleared with higher authority to make 'wanr' into a method.
17:08 pmichaud "sort the hash, then say it"
17:08 TimToady this notion of Any methods is kind of a way to define part of Perl the Language
17:08 masak er, 'warn'.
17:08 JimmyZ rakudo: '3'.HOW.methods.say
17:08 p6eval rakudo e02bc0: OUTPUT«too few arguments passed (1) - 3 params expected␤in Main (/tmp/ulIlScME3Y:2)␤»
17:08 masak ('wanr' is Mandarin for 'goofing off')
17:09 Juerd TimToady: "Any method". Is that a unary method that takes any argument?
17:09 JimmyZ rakudo: '3'.^methods.say
17:09 p6eval rakudo e02bc0:
17:09 p6eval ..OUTPUT«predencodesuccperlACCEPTSWHICHsprintfSca​larlcfirstsrandComplexmappolarciskvsamecaselogmin​capitalizemaxfirsttransflipIntdoesp5choplcsubstel​emsabsendchompreduceindexceilingp5chomp:dpairs:e:​fcombunpolarordchopintcharsrootsuckeysreverseisau​cfirstsubstrfmtbytespickevalfilejointrimchrflo…
17:09 JimmyZ rakudo: '3'.^methods.join(', ').say
17:09 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,
17:09 p6eval ..2, 1…
17:09 TimToady nice thing about Any methods/multis is they're automatically just defaults, found only if something more specifc doesn't apply
17:10 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)␤»
17:10 pmichaud rakudo:  '3'.^methods.grep(/^p/).join(', ').say
17:10 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)␤»
17:10 pmichaud uh oh
17:10 pmichaud something doesn't look right there.
17:10 masak looks like a...
17:10 Juerd It looks slightly broken
17:10 TimToady people were discussing the 1s yesterday
17:10 pmichaud I'm guessing PGE is having trouble matching against a method
17:10 JimmyZ rakudo: '3'.^methods.map({.name}.join(', ').say
17:10 p6eval rakudo e02bc0: OUTPUT«Statement not terminated properly at line 2, near "({.name}.j"␤in Main (src/gen_setting.pm:3363)␤»
17:10 JimmyZ rakudo: '3'.^methods.map({.name}).join(', ').say
17:11 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 p6eval ..char…
17:11 pmichaud rakudo:  '3'.^methods.map.{.name}.grep(/^p/).join(', ').say
17:11 p6eval rakudo e02bc0: OUTPUT«Null PMC access in invoke()␤in Main (/tmp/iJWbeDVYFK:2)␤»
17:11 pmichaud bah
17:11 pmichaud oh
17:11 pmichaud rakudo:  '3'.^methods.map({.name}).grep(/^p/).join(', ').say
17:11 masak rakudo: '3'.^methods[0] ~~ /foo/
17:11 p6eval rakudo e02bc0: OUTPUT«perl, pred, p5chomp, polar, pairs, pick, p5chop, perl, print␤»
17:11 p6eval rakudo e02bc0:  ( no output )
17:11 pmichaud rakudo:  '3'.HOW.methods.map({.name}).grep(/^p/).join(', ').say
17:11 p6eval rakudo e02bc0: OUTPUT«too few arguments passed (1) - 3 params expected␤in Main (/tmp/y00ikaqGTs:2)␤»
17:12 pmichaud probably needs the invocant or metaclass passed as an argument somewhere.
17:12 JimmyZ rakudo: '3'.HOW(1).methods.say
17:12 p6eval rakudo e02bc0: OUTPUT«too many arguments passed (2) - 1 param expected␤in Main (/tmp/abholEWQaG:2)␤»
17:13 JimmyZ rakudo: '3'.HOW().perl
17:13 p6eval rakudo e02bc0:  ( no output )
17:13 JimmyZ rakudo: say '3'.HOW.perl
17:13 p6eval rakudo e02bc0: OUTPUT«Str.new()␤»
17:13 JimmyZ rakudo: '3'.HOW.perl.say
17:13 p6eval rakudo e02bc0: OUTPUT«Str.new()␤»
17:14 JimmyZ rakudo: Str.new().methods.say;
17:14 p6eval rakudo e02bc0: OUTPUT«Method 'methods' not found for invocant of class 'Str'␤»
17:15 JimmyZ too many ways, and I don't know whether way is right :(
17:16 pmichaud '3'.HOW.perl looks wrong
17:16 JimmyZ rakudo: 3.HOW.perl.say
17:16 pmichaud rakudo: say '3'.WHAT.perl
17:16 p6eval rakudo e02bc0: OUTPUT«Int.new()␤»
17:16 p6eval rakudo e02bc0: OUTPUT«Str␤»
17:17 masak JimmyZ: 'whether' means something like 是不是 -- you mean 'which way'.
17:18 JimmyZ masak: thanks, I meant choice one from two :(
17:18 JimmyZ but use 'which' is the right way.
17:19 JimmyZ s/use/using/
17:19 ruz_mac joined #perl6
17:19 masak JimmyZ++ # much better at English than masak is at Mandarin
17:20 masak 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?
17:22 JimmyZ masak: i remember now, whether usually is used with 'or'
17:23 PerlJam were you guys trying to do  Str.HOW.methods('') a few minutes ago?
17:23 pmichaud yeah, something like that.
17:23 pmichaud rakudo: say Str.HOW.methods(Str)
17:23 p6eval rakudo e02bc0:
17:23 p6eval ..OUTPUT«predencodesuccACCEPTSperlWHICHsprintfSca​larceilingp5chomp:dpairs:e:fcombunpolarordchopint​charsrootsucreversekeysisaucfirstsubstrfmtbytespi​ckevalfilejointrimchrfloorrandtruncatesortroundsq​rtrindexsplitmatchgrepwordsvaluescanlcfirstComple​xsrandpolarmapciskvsamecaselogmincapitalizemax…
17:23 PerlJam rakudo:  say Str.HOW.methods('').map(*.name).grep(/^p/).join: " "
17:23 p6eval rakudo e02bc0: OUTPUT«perl pred polar pairs pick p5chop p5chomp print perl␤»
17:23 PerlJam rakudo:  say Str.HOW.methods(Str).map(*.name).grep(/^p/).join: " "
17:23 p6eval rakudo e02bc0: OUTPUT«pred perl p5chomp polar pairs pick p5chop print perl␤»
17:24 JimmyZ rakudo: '3'.HOW.methods('').say
17:24 p6eval rakudo e02bc0:
17:24 p6eval ..OUTPUT«predencodesuccperlACCEPTSWHICHsprintfSca​larfmtbytespickevalfilejointrimchrfloorrandtrunca​teroundsortrindexsqrtsplitmatchgrepwordsvaluescan​lcfirstComplexsrandmappolarciskvsamecaselogmincap​italizemaxtransfirstflipdoesIntp5choplcsubstelems​absendchompindexreduceceilingp5chomp:d:epairs:…
17:24 JimmyZ rakudo: '3'.HOW.methods('succ').say
17:24 p6eval rakudo e02bc0:
17:24 p6eval ..OUTPUT«encodesuccWHICHACCEPTSperlsprintfScalarp​redpairskvcapitalizepickevalfilep5choplcjoinchars​canlcfirstrootsreduceComplextrimmap:dcis:e:flogmi​nrandmaxtruncatebytessortsqrtIntgrepabsenducceili​ngp5chompunpolarsamecasefloorsubstrordroundflipdo​esintsplitmatchwordssrandreverseisapolarucfirs…
17:24 JimmyZ the args was not used?
17:26 JimmyZ rakudo: '3'.HOW.methods().say
17:26 p6eval rakudo e02bc0: OUTPUT«too few arguments passed (1) - 3 params expected␤in Main (/tmp/VGiDqBemik:2)␤»
17:26 masak I'm not sure that's how you supply args to .methods
17:27 JimmyZ It's 01:27 here now. good night.
17:27 masak 'night.
17:28 TimToady the first arg to a .HOW should be a dup of the normal object
17:28 TimToady 3.^methods turns into 3.HOW.methods(3) or some such
17:29 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:31 hoelzro joined #perl6
17:31 masak TimToady: could 'warn' conceivably be both a sub and a method, just like 'say'?
17:32 pmichaud masak: would you consider 'fail' and 'return' to also be methods, too?  (honest question, out of curiosity)
17:34 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?
17:34 masak well, same as .say :)
17:34 TimToady if people will get frustrated by it not being there, why not?
17:34 pmichaud I ask because 'warn' is closer to 'fail' or 'return' than to 'say'
17:35 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 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.
17:35 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 :)
17:35 pmichaud s/strong//
17:36 pmichaud 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
17:36 TimToady and warn does IO :)
17:37 PerlJam .fail too?  It *maybe* does IO.
17:38 TimToady then we *maybe* put it into Any :P
17:38 masak worksforme :)
17:39 TimToady to jet-lagged to do make any real decisions...
17:39 pmurias shouldn't say be the method of an output handle
17:39 pmurias instead of being a method of a string
17:39 * PerlJam has no opinion either way at the moment
17:39 TimToady it can be both
17:39 TimToady IO <: Any
17:40 masak is that a situation that Liskov would frown upon, though?
17:40 TimToady Liskov isn't designing Perl 6 :)
17:41 PerlJam there you go again with the gender bias  ;>
17:41 masak TimToady: now that's a statement that can be read many ways.
17:41 masak and I didn't even see the gender bias reading :)
17:42 * masak exhales
17:43 pmurias what's the advantage of 1.say over say 1
17:43 pmurias ?
17:43 PerlJam expressivity?
17:43 TimToady it's in the other order
17:43 TimToady makes more sense to a speaker of 日本語.
17:43 masak pmurias: .say is convenient in loops.
17:44 masak pmurias: it rhymes well with .flip and .++
17:44 pmurias .++ is bas
17:44 pmurias * bad
17:45 TimToady well, we're heading out now to do some walking and sightseeing
17:45 masak pmurias: ok. well, .-- then :)
17:45 pmurias what does morse code have to do with it? ;)
17:46 masak :)
17:46 PerlJam When you're writing chains, it looks better to chain everything  ;)
17:46 masak I'll go offline now. I need to get some evening air before the sun does that cool trick with the horizon again.
17:46 PerlJam rakudo: ''.^methods.map(*.name).grep(/^p/).sort.join(" ").say
17:46 p6eval rakudo e02bc0: OUTPUT«p5chomp p5chop pairs perl perl pick polar pred print␤»
17:47 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(" ")
17:47 p6eval rakudo e02bc0: OUTPUT«p5chomp p5chop pairs perl perl pick polar pred print␤»
17:47 masak pmurias: you're starting to sound very fundamentalist.
17:49 TimToady masak: we'll be poking around a little south of you
17:49 masak TimToady: enjoy!
17:49 masak I know I will. :)
17:49 PerlJam rakudo: Any.^methods.map(*.name).gre​p(/^<[aeiou]>/).sort.join(" ").say
17:49 TimToady bbl &
17:49 p6eval rakudo e02bc0: OUTPUT«abs eigenstates elems end evalfile index int isa item iterator ord uc ucfirst unpolar␤»
17:49 PerlJam unpolar?
17:50 masak PerlJam: a fairly unpopular method :)
17:50 lumi joined #perl6
17:50 masak PerlJam: it converts a complex number from polar coords into rectangular, IIRC.
17:50 masak man, this answering-questions-on-IRC is getting addictive!
17:51 masak see you later, peeps. \o
18:07 ssm joined #perl6
18:18 ZuLuuuuuu joined #perl6
18:22 zamolxes joined #perl6
18:45 * pmichaud checks back in from his now ac-powered notebook
19:04 molaf joined #perl6
19:12 poe joined #perl6
19:12 [Coke] joined #perl6
19:18 [Coke] left #perl6
19:20 kane_ joined #perl6
19:41 r0bby joined #perl6
19:57 iblechbot joined #perl6
20:01 jnthn oh hai
20:01 * jnthn is at the airport, waiting for his delayed flight
20:01 jnthn (smallish delay)
20:34 ruz_mac joined #perl6
21:09 sjohnson what's up d00dz
21:12 tann joined #perl6
21:13 tann rakudo: say caller.perl
21:13 tann :)
21:14 p6eval rakudo e02bc0: OUTPUT«Could not find non-existent sub caller␤»
21:16 Tene tann: can you point me to the 'caller' spec?
21:16 wolverian finding a non-existent sub would be even more surprising
21:17 Tene 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 :)
21:18 Tene tann: what do you need it for, btw?
21:18 tann tene: porting Benchmark.pm to p6 :)
21:19 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'?
21:19 tann tene: http://perlcabal.org/syn/S06.html​#The_context_and_caller_functions
21:20 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:21 PerlJam rakudo: ''.^methods(:local).map(*.n​ame).grep(/^p/).sort.join(" ").say
21:21 p6eval rakudo e02bc0: OUTPUT«perl pred␤»
21:21 PerlJam *that* .perl is the one on Str
21:21 PerlJam the other one is probably Any.perl
21:21 jferrero joined #perl6
21:22 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)
21:22 tann tene: for timeit and timethis
21:23 PerlJam tann: http://github.com/perlpilot/benchmark/tree/master
21:23 PerlJam tann: there are other versions I'm sure :)
21:23 PerlJam (no, mine doesn't do anything with caller)
21:23 tann PerlJam: that's a super simple example :)
21:23 Tene so how are you going to use caller() to run code in the caller's package?
21:24 PerlJam probably with an eval just like Benchmark.pm does.
21:25 PerlJam 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
21:25 Tene 'kay
21:26 lisppaste3 tann pasted "untitled" at http://paste.lisp.org/display/84534
21:26 PerlJam tann: Do you intend for your version to be a faithful translation?
21:26 tann PerlJam: yes
21:26 JE|2|2Y joined #perl6
21:27 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.
21:27 tann PerlJam: i can move the doc down to the bottom
21:27 tann PerlJam: i hate pod stuff intertwining with code too
21:28 JE|2|2Y eval: 2+2
21:28 JE|2|2Y Oo
21:28 PerlJam that too, but I was talking about how the output routines are "intertwined" with the code that does the benchmarking.  :)
21:28 tann tene: this is the part of eval'ing code in the caller's package http://paste.lisp.org/display/84534
21:29 tann PerlJam: gotcha
21:29 tann PerlJam: agree, it's ugly
21:30 tann 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:31 PerlJam tann++
21:32 PerlJam (I'm easily distracted, so I never got beyond timing)
21:32 tann PerlJam: i'm interested in the jamming part of rakudo perl :)
21:34 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 JE|2|2Y left #perl6
21:42 masak joined #perl6
21:43 masak tja, folk.
21:43 maja_ joined #perl6
21:43 pmurias tja = ?
21:44 masak pmurias: it's Swedish, a word that has been slangified at least three times. means 'hello'.
21:44 masak s/times/iterations/
21:45 masak and 'folk', despite appearances, is plural in Swedish. here it means 'people'.
21:46 masak 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?
21:47 masak japhb: oh, slightly above leisurely. I think I was actually faster yesterday, when I was tugging along my trunk.
21:47 masak I'm a moderately fast walker.
21:47 japhb Oy vey.  That's a bit brutal (lugging a trunk for 3+ hours)
21:47 masak nono, yesterday I only walked for one hour.
21:47 japhb ah
21:47 masak well, one and 20 minutes.
21:48 rba_ joined #perl6
21:48 masak that was from the airport. today I set out to find the university campus.
21:48 masak (I failed.)
21:49 japhb Where are you?
21:49 masak in the city in question, Lisbon.
21:49 japhb Ah.
21:49 masak soon to be hosting this year's YAPC::EU.
21:49 masak (the city, that is, not I)
21:49 * japhb very rarely gets to travel far these days.  Haven't been to a Perl conference in a few years.  :-?(
21:49 japhb er
21:49 japhb :-(
21:50 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.  :-)
21:51 masak well, money and conferences ain't everything.
21:51 Limbic_Region joined #perl6
21:52 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 japhb I'd rather be there in person, but ....
21:53 justatheory joined #perl6
21:53 masak why is everyone writing XML grammars? :)
21:53 masak can't we collaborate on hooking in libxml or Expat instead?
21:54 japhb masak: I've been arguing that over in the Parrot side.  I agree with you.
21:54 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.
21:54 masak 'xactly.
21:54 japhb (And we have much bigger mountains to climb.)
21:55 masak and we need all the speedups we can get.
21:55 japhb Definitely.
21:55 japhb OK, so now I've got one person agreeing with me!  W00t!  Time to take over the world!
21:55 * masak recognizes that thought all too well
21:56 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:57 masak oh, did I express an opinion of what should be bundled with Parrot? I didn't realize. :)
22:02 rba_ joined #perl6
22:03 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 Whiteknight joined #perl6
22:04 pmurias japhb: there always can be a parrot + batteries download
22:05 masak sure, but make that the default, and call the one without batteries the 'barebones version'.
22:05 japhb pmurias: what masak said.
22:06 * masak . o O (ooh, is that what I think about this issue? interesting.)
22:06 Tene japhb, masak: I agree too, fwiw
22:06 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.
22:06 japhb And catch on fire.
22:07 masak nod.
22:07 masak but first, a shower.
22:07 masak see y'all around.
22:07 japhb Tene: glad to hear it.
22:07 minskman joined #perl6
22:08 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.
22:08 Tene I have been thinking about the idea of a separate parrot repository, just holding libraries.
22:10 pmurias japhb: what do you advocate putting modules in core or having the default distro contain them?
22:11 japhb Did you mean 'Why'?
22:11 japhb Or do you mean two options to choose from?
22:12 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:13 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:14 japhb 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:15 pmurias that's mostly common sense
22:15 japhb Thank you for the complement.  ;-)
22:18 M_o_C joined #perl6
22:27 pmurias left #perl6
22:41 s1n pmichaud: i have some questions for you about rakudo with regards to filling out an employer request for contributorship
22:41 s1n pmichaud: and i had an idea for dallas.p6m and i wanted your input
22:53 pmichaud s1n: I'm here, for a bit
22:53 pmichaud (flight is delayed)
22:53 s1n pmichaud: lemme go get my paperwork real fast
22:54 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?
22:55 pmichaud http://www.perlfoundation.org/​contributor_license_agreement
22:55 pmichaud Rakudo is under artistic 2.0, yes.
22:55 pmichaud http://github.com/rakudo/r​akudo/blob/master/LICENSE
22:56 s1n pmichaud: what about sponsors?
22:56 pmichaud ...sponsors?
22:56 s1n commercial sponsors
22:56 pmichaud for Rakudo?
22:56 s1n only indirectly through TPF?
22:56 * pmichaud is confused
22:57 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.
22:57 pmichaud japhb: I'm not saying you're wrong; I'm just saying that the p5 lesson is very cautionary.
22:57 japhb pmichaud: fair enough.
22:58 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
22:58 pmichaud it'd be through TPF, yes.
22:58 s1n pmichaud: no sponsorship from TPaF?
22:59 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 pmichaud 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.
22:59 pmichaud s1n:  Allison Randal would be the best person to ask about it, though.
23:00 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 japhb .. or instead of freeze, branch.  Whatever.
23:00 pmichaud I'm currently leaning that it's better if "batteries included" releases are separate from core releases.
23:01 pmichaud 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.
23:01 pmichaud It's basically the way distros work in the Linux world.  Distro releases are separate from core kernel releases.
23:02 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 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"
23:03 pmichaud I'm even going so far as to say there shouldn't be "Parrot Standard"
23:03 pmichaud "Parrot Core", and then "Parrot Batteries 1", "Parrot Batteries 2", "Parrot Batteries 3", etc.
23:03 * japhb is a big believer that we need to be conscious of how our naming and presentation subconsciously pushes on users and HLL implementers
23:04 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?
23:04 japhb s/analog/analogue/
23:04 pmichaud s1n:  I'll be gone the weekend after dallas.p6m
23:05 pmichaud 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.
23:06 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.
23:06 s1n pmichaud: i might want to get with you prior to talk about it then
23:07 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.
23:07 pmichaud I can even give my lightning talk that I did at oscon about Perl 6 meta operators :-)
23:07 pmichaud japhb: "blessed standard" is the problem that p5 ran into, though.
23:07 s1n pmichaud: sounds like a good idea
23:07 japhb pmichaud: I'm not sure what you mean by that.
23:08 s1n pmichaud: lemme know where your slides are, i'm sending out the notice next week
23:08 pmichaud s1n:  http://pmichaud.com/2009/pres/oscon-perl6op
23:08 pmichaud s1n:  although I'm thinking I'll write it up as a use.perl post.  (Perhaps on the plane tonight.)
23:08 s1n pmichaud: okay, if you do that, let me know
23:09 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
23:09 japhb pmichaud: I see what you're getting at.
23:09 pmichaud if they succeed, then they've turned over the maintenance responsibility to the "blessed standard" maintainer
23:10 pmichaud if they fail, then they feel that they're excluded from being part of the standard
23:10 japhb pmichaud: Hmmm.
23:10 * japhb tanking on that thought
23:10 meppl joined #perl6
23:10 pmichaud true growth comes from a marketplace of ideas, and "competition" helps to fuel that marketplace.  Survival of the fittest, and all that.
23:11 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
23:11 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.
23:11 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
23:13 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"
23:13 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.
23:13 pmichaud s1n: this week I'm in lisbon- I get back next friday
23:13 s1n pmichaud: or "these batteries are the standard batteries"
23:14 s1n pmichaud: that's fine, dallas.p6m is on the 10th
23:15 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
23:15 * s1n dinner&
23:16 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 japhb s/doing/doing with core code/
23:16 pmichaud I don't think that solves the "but I need my module to be part of the standard" problem
23:17 pmichaud as an example, I'd be hard pressed to say that SDL should be a standard part of Parrot.
23:18 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.
23:18 japhb "Batteries 2.1"
23:18 japhb ?
23:18 pmichaud But for each of these modules I've mentioned, I can see someone making entirely different choices.
23:19 japhb All right, how about four levels:
23:19 japhb 1. True core.  Just what is needed to get read access to the module repo.
23:20 japhb 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 japhb 3. Power pack.  What we currently think are the most common modules people would want.  Deprecated and cleaned regularly.
23:20 japhb 4. Go use the module repo.
23:20 japhb ?
23:21 japhb 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'?")
23:22 pmichaud 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.
23:22 japhb Fair enough.
23:22 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)
23:23 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"
23:24 pmichaud *stability
23:24 japhb pmichaud: that seems like a place where the aforementioned market of ideas gets to battle it out.
23:24 pmichaud exactly.
23:24 japhb Anyone should be able to make power packs.
23:24 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 :-)
23:24 japhb OK, are we in general agreement at this point?
23:24 japhb heh
23:25 pmichaud indeed, it already does.  :-)
23:25 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:26 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.
23:26 pmichaud I fully agree this is a very good time for this discussion, especially as we're now starting to deal with packaging issues.
23:26 pmichaud I need to move to my gate... bbiab
23:26 japhb nodnod
23:30 * japhb is summarizing this section of the discussion back to the parrot-dv email thread.
23:30 japhb er parrot-dev
23:40 ruz_mac joined #perl6
23:44 payload joined #perl6
23:48 japhb summary sent.

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs