Camelia, the Perl 6 bug

IRC log for #perl6, 2009-07-07

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:18 ihrd left #perl6
00:19 s1n frew_: ping
00:19 whoppix joined #perl6
00:21 skids joined #perl6
00:29 s1n i updated my rakudo repo, switched my trait_auxillary's to trait_mod and now i'm getting "No applicable candidates found to dispatch to for 'trait_mod:is'"
00:29 s1n any ideas?
00:29 Tene s1n: post the code?
00:38 frew_ s1n: I can look but these other guys are a lot more likely to have ideas
00:38 frew_ :-)
00:52 jauaor joined #perl6
00:52 TimToady note the order of arguments changed also
00:52 TimToady s1n: ^^
00:53 s1n TimToady: ahh, that's probably it
00:53 s1n TimToady: how did the order change?
00:54 s1n frew_: time for another dallas.p6m
00:54 TimToady the thing being declared now goes first
00:55 s1n TimToady: before the trait? (at least that's what i'm getting from the spec)
00:55 TimToady yes
00:55 TimToady first is usually before everything else :)
00:59 s1n rakudo: role xxx { multi trait_mod:<is>($block, xxx $trait, $arg) is export { ... } }
01:00 p6eval rakudo 99ad1e: OUTPUT«No applicable candidates found to dispatch to for 'trait_mod:is'␤in Main (/tmp/WBneI0jl8r:2)␤»
01:00 s1n rakudo: role xxx { multi trait_auxillary:<is>($block, xxx $trait, $arg) is export { ... } }
01:00 p6eval rakudo 99ad1e:  ( no output )
01:00 s1n is that wrong? i thought i saw commits about how trait_auxillary was completely removed
01:02 frew_ s1n: I'm down
01:03 s1n frew_: i think i'm going to stick with the "second tuesday of the month" schedule unless someone bitches
01:07 frew_ Tuesday's work for me and my coworkers
01:11 s1n i need to check my fall schedule though...
01:12 s1n they work for me, barely
01:12 s1n i have a 5.30-6.45 class
01:22 KyleHa joined #perl6
01:27 frew_ I presume that's the same for Thursday?
01:30 frew|work joined #perl6
01:32 s1n frew_: yes
01:32 frew_ ok..
01:32 frew_ well, I'd imagine that if Tuesday is too bad for you Mon would be the best
01:33 frew_ I know people have stuff Wed and Friday is kindav a given for other things in general
01:38 s1n i can do it, but i'll be a little late
01:39 frew_ What time do we start again?
01:39 s1n (not this month yet)
01:39 s1n 7
01:39 frew_ ah, then you won't be too late
01:40 frew_ we can just chat till you get there
01:40 s1n it's fine, it's only for a few months :)
01:42 s1n TimToady: there used to be a 'trait_auxillary(Code, Role, @arg)', but rakudo doesn't seem to be generating anything similar, how did that change?
01:43 s1n oops, trait_auxillary:<is>
01:43 s1n was that changed to a different trait_mod?
01:58 Molaf joined #perl6
01:58 SmokeMachine joined #perl6
02:04 pugs_svn r27460 | kyle++ | [t/spec] Add a smartmatch test that seemed like a good idea and "fix" a test that was causing output.
02:12 alester joined #perl6
02:27 pugs_svn r27461 | s1n++ | [spec] trait_auxillary was replaced with traid_mod.
02:30 stepnem joined #perl6
02:36 stepnem joined #perl6
02:40 stepnem joined #perl6
02:45 beggars joined #perl6
02:47 molaf_x joined #perl6
02:55 KyleHa S02 speaks of Set and Bag types, and S02-builtin_data_types/sigils-and-types.t seems to think these have the interface of hashes (%x{...}), but I don't get how one would add an item to a set or what value it would have if evaluated.
03:06 frew_ rakudo: 5/140
03:06 p6eval rakudo 99ad1e:  ( no output )
03:07 frew_ rakudo: say 5/140
03:07 p6eval rakudo 99ad1e: OUTPUT«0.0357142857142857␤»
03:07 frew_ rakudo: say 140/5
03:07 p6eval rakudo 99ad1e: OUTPUT«28␤»
03:11 KyleHa rakudo: say (5/140).WHAT
03:11 p6eval rakudo 99ad1e: OUTPUT«Num()␤»
03:12 TimToady %set{$key}++ adds the key if it's not already there, and %set{$key}-- would delete it
03:12 TimToady that's because for sets the value is constrained to a boolean
03:13 TimToady for bags, with integer values, the key is deleted when the value gets back down to 0
03:13 TimToady and the integer tells you how many dups of that key there are
03:15 KyleHa TimToady: Thanks!
03:17 TimToady note that this is for KeySet and KeyBag, which are mutable.  Sets and Bags themselves are immutable and don't allow modification, but present the same key/value interface
03:19 KyleHa Aha.
03:19 KyleHa So I'd create a Set or Bag using a List, I guess?  It would take the list and disorder it.
03:20 donaldh joined #perl6
03:31 literal there's planet.perl.org and perlspere.net
03:31 lambdabot literal: You have 3 new messages. '/msg lambdabot @messages' to read them.
03:31 literal perlsphere.net # oh, and I was replying to something in the buffer
03:39 Kentrak joined #perl6
03:40 Kentrak Q regarding .push container method in p6, if anyone is game.
03:44 cotto joined #perl6
03:48 pugs_svn r27462 | kyle++ | [t/spec] keybag.t needs review
03:49 Kentrak ah, n/m, I fund the relevant synopsis (S32 Containers).  Rakudo isn't returning the modified array after a push operation, it's returning the count (as in p5).  I'll look at Array.pir and see if I get you guys a patch
03:50 literal returning the count?
03:51 literal rakudo: my @a = <a b c>; say @a.push(1);
03:51 Kentrak number of array elements.  But it possible my rakudo+parrot is out of date, so I'm rebuilding now
03:51 p6eval rakudo 99ad1e: OUTPUT«4␤»
03:51 literal hm
03:52 literal rakudo: my @a = <a b c>; say ~@a.push(1);
03:52 p6eval rakudo 99ad1e: OUTPUT«4␤»
03:52 Kentrak well, my test was actually an array attribure of an object, which might affect it in some odd way, but I'll know in a minute when Rakudo finishes building
03:52 literal rakudo: my @a = <a b c>; say @a.=push(1);
03:52 p6eval rakudo 99ad1e: OUTPUT«4␤»
03:53 literal rakudo: my @a = <a b c>; say @a;
03:53 p6eval rakudo 99ad1e: OUTPUT«abc␤»
03:53 dalek grok: e30e5a5 | (Hinrik Örn Sigurðsson)++ |  (2 files):
03:53 dalek grok: Make target_index() sort the function list
03:53 dalek grok: Gives a nice alphabetized list in --index
03:53 dalek grok: review: http://github.com/hinrik/grok/commit/e3​0e5a58aefaa001d5afce1e01122852aa7ab971
03:53 dalek grok: f7c6085 | (Hinrik Örn Sigurðsson)++ |  (4 files):
03:53 dalek grok: Bump version to 0.11
03:53 dalek grok: review: http://github.com/hinrik/grok/commit/f7​c6085b61a6a2ff25f34b6025664077c42f8bb7
03:53 dalek grok: 3191567 | (Hinrik Örn Sigurðsson)++ | share/Spec/S (32 files):
03:53 dalek grok: Sync synopses
03:53 dalek grok: review: http://github.com/hinrik/grok/commit/31​915670d59d90ce7054f4b1cfce482d5a31b031
03:54 Kentrak OK, something must be up on my end, because your examples are failing on my rebuilt rakudo+parrot.  I must be updating incorrectly.
03:56 literal Kentrak: what do you mean? they seem to be failing here too
03:57 Kentrak literal: oh, I must have skimmed the relevant real tests and focused on your simple array output that looked correct (because there was no push)
04:07 Kentrak ok, anyone know the preferred patfh submission location?  RT?
04:07 KyleHa I hear there's a README file that says how to submit patches.
04:07 Kentrak thanks
04:08 KyleHa (Yes, send the patch to rakudobug@perl.org with [PATCH] in the subject.  The README has stuff about patch formatting.)
04:12 Kentrak ok, submitted.  Thanks everyone for the guidance, this was my first Rakudo patch!
04:13 KyleHa Yay Kentrak!
04:14 Kentrak hmm, I guess I should write a test for this and submit that as well...
04:15 KyleHa What's the patch do?
04:15 Kentrak Just changes the return of .push to be the modified array instead of the count of elements, as S32 defines and as makes sense.
04:16 KyleHa I'm writing tests for that already.
04:16 Kentrak Oh, okay.  I'll leave it to you then. :)
04:19 lambdabot joined #perl6
04:22 pugs_svn r27463 | kyle++ | [t/spec] S32-array/push.t tests for .push returning modified array
04:23 KyleHa Kentrak: You can read the new tests here:  http://dev.pugscode.org/changeset/27463
04:28 Kentrak KyleHa: how far should that test get?  It fails on the named array portion for me, but I doubt that's anything I did in my patches.
04:30 KyleHa Sitting in the rakudo dir, I run it as: perl t/harness --fudge --verbosity=1 t/spec/S32-array/push.t
04:30 KyleHa The fudge is the important part.
04:30 KyleHa After fudging, the named array stuff that's killing you will be skipped.
04:37 Kentrak KyleHa: Yep, looks all good.  Had to fix some svn spectest checkout problems I caused first.  Thanks.
04:37 KyleHa You're welcome.
04:39 Kentrak left #perl6
04:53 justatheory joined #perl6
05:06 azawawi joined #perl6
05:06 azawawi hi
05:22 elmex_ joined #perl6
05:25 tann joined #perl6
05:33 cbk joined #perl6
05:38 eMaX_ joined #perl6
05:46 jrockway joined #perl6
05:48 kimtaro joined #perl6
05:51 DemoFreak joined #perl6
05:53 alanhaggai joined #perl6
06:21 rfordinal joined #perl6
06:32 frew_ joined #perl6
06:33 azawawi joined #perl6
06:42 azawawi ping
06:43 iblechbot joined #perl6
06:43 moritz_ pong -B
06:53 moritz_ rakudo: class A { }; class B does A { }; say "alive"
06:53 p6eval rakudo 99ad1e: OUTPUT«Method '!select' not found for invocant of class ''␤»
06:55 * moritz_ submits bug
06:55 moritz_ "less than awesome" error message
07:03 pugs_svn r27464 | moritz++ | [t/spec] more smartmatch test and reviews
07:05 azawawi moritz_: did u see the grok-powered Padre Perl 6 help dialog? :)
07:05 moritz_ azawawi: aye. Way cool.
07:06 moritz_ azawawi: I'd also like to add that your blog posts with pictures are a nice exception from the always-only-text blogs that usually appear on the ironman feed
07:07 moritz_ s/pictures/images/ but you get the point
07:08 rfordinal joined #perl6
07:08 azawawi moritz_: one thing i didnt mention is that it is context sensitive... so if grok supports keywords help, then it will be way cooler.
07:09 * azawawi takes a look at u4x
07:13 dakkar joined #perl6
07:14 azawawi @tell literal any pending grok update regarding u4x? For example 'grok my', 'grok for', 'grok method'
07:14 lambdabot Consider it noted.
07:15 rfordinal left #perl6
07:20 donaldh joined #perl6
07:22 azawawi moritz_: so every perl 6 builtin will be in S32-category right?
07:22 moritz_ azawawi: no.
07:23 moritz_ there's still an S29, and I don't think it's going away entirely
07:25 azawawi moritz_: i see
07:38 Matt-W Morning
07:46 payload joined #perl6
07:57 meppl joined #perl6
08:02 pugs_svn r27465 | moritz++ | [t/spec] unfudge Hash ~~ Pair tests for Rakudo
08:07 dalek rakudo: 9f63647 | moritz++ | src/setting/Pair.pm:
08:07 dalek rakudo: Implement Hash ~~ Pair smartmatching
08:07 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/9​f6364786438e2f0300ff8e43339d1104f3dc904
08:08 amoc joined #perl6
08:09 ejs joined #perl6
08:11 Matt-W moritz_: So %hash ~~ $pair smartmatches the value with that key against the pair's value?
08:13 moritz_ Matt-W: aye, that's what S03 says
08:13 Matt-W cool
08:13 Matt-W smartmatch is extremely smart
08:14 Matt-W I like the implementation too, nice and simple
08:14 Matt-W multimethods do make things like that nice and easy
08:14 moritz_ that's why it's not called dumbmatch :-)
08:14 moritz_ aye, and adding the stuff to the setting is really fun.
08:14 Matt-W and also implementing smartmatch by doing it as rhs.ACCEPTS(lhs), which initially seemed very silly to me, turns out to be nice and flexible
08:26 moritz_ rakudo: my %h = (a => 1, b => 2); say %h.contains('a')
08:27 p6eval rakudo 99ad1e: OUTPUT«1␤»
08:27 moritz_ rakudo: my %h = (a => 1, b => 2); say %h.contains('c')
08:27 p6eval rakudo 99ad1e: OUTPUT«0␤»
08:34 Matt-W yay
08:34 Matt-W it works
08:35 moritz_ but I don't know if it's specced
08:36 moritz_ the smartmatch table used to contain .contains, but it was meant more as a description, not as a spec
08:42 Pismire joined #perl6
08:46 Matt-W hmm
08:46 Matt-W because come to think of it, don't we have :exists
08:47 moritz_ rakudo: my %h = (a => 1, b => 2); say %h.exists('b')
08:47 p6eval rakudo 9f6364: OUTPUT«1␤»
08:47 moritz_ rakudo: my %h = (a => 1, b => 2); say %h.exists('c')
08:47 p6eval rakudo 9f6364: OUTPUT«0␤»
08:49 rgrau joined #perl6
08:55 pugs_svn r27466 | moritz++ | [t/spec] rakudo unfudging; s/method/submethod/ in an integration test
08:58 dalek rakudo: 7203e4b | moritz++ | t/spectest.data:
08:58 dalek rakudo: re-add smartmatch.t to spectest.data
08:58 dalek rakudo: I reviewed and improved it extensively in the last 12H, it should now be on
08:58 dalek rakudo: average much more correct than our average test file.
08:58 dalek rakudo: This commit also removes S12-attributes/class2.t which has been merged into
08:58 dalek rakudo: class.t
08:58 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/7​203e4bed2c4d86b5179fb0c8aaabeb8d409530b
08:59 dalek rakudo: e249a62 | moritz++ | src/ (2 files):
08:59 dalek rakudo: move Hash.ACCEPTS to the setting, add more variants
08:59 dalek rakudo: Actually I'm not fully convinced that this is right approach because I don't
08:59 dalek rakudo: understand the magic with hash_ACCEPTS that the anonymous sub in
08:59 dalek rakudo: src/classes/Hash.pir:32-41 does, but the spectest didn't throw up any black
08:59 dalek rakudo: smoke.
08:59 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/e​249a62914f02d6e5aeb2461979528b3341ce0ad
09:02 pmurias joined #perl6
09:02 jnthn morning, 6folk
09:02 moritz_ oh hai jnthn
09:02 pmurias hi
09:02 lambdabot pmurias: You have 3 new messages. '/msg lambdabot @messages' to read them.
09:04 pmurias why does lambdabot mention the same messages multiple times?
09:04 moritz_ it shouldn't, but it's b0rked
09:04 moritz_ sometimes @clear messages help
09:12 Matt-W hi jnthn
09:16 jnthn Matt-W: hi :)
09:25 moritz_ jnthn: if you have some spare tuits it would be nice if you looked over my last commit
09:30 * Matt-W has actually understood a couple of recent commits to rakudo
09:30 Matt-W admittedly, one of those was the one I wrote...
09:32 jnthn It's always a nice feeling when one understands their own patches.
09:32 ejs joined #perl6
09:32 jnthn moritz_: Doesn't look wrong...will check into that curious :subid though.
09:40 Matt-W jnthn: yes, but I understood masak's fmt patch too
09:41 jnthn :-)
09:44 Matt-W it's another step on the road to more useful contributions
09:45 jnthn I guess the patches going into the setting are a tad easier to follow in that, they're written in Perl 6. :-)
09:45 masak joined #perl6
09:46 jnthn lolitsmasak
09:46 masak \o/
09:53 M_o_C joined #perl6
09:57 Matt-W jnthn: this is very true. I can read PIR in that I know what it does, but it tends to involve more of the guts of Rakudo so I don't understand the total meaning
10:00 jnthn Yes, some bits can have quite complex interplay.
10:01 hanekomu joined #perl6
10:02 Matt-W And then there are the parts where it turns out that PCT is doing most of the work behind the scenes
10:02 Matt-W So I think 'hey that looks far too simple'
10:03 jnthn Yes, PCT often does some of the "heavy lifting". :-)
10:04 icwiener joined #perl6
10:09 Matt-W So I think I'll leave method call refactoring to you :)
10:10 jnthn Aww!
10:10 jnthn But it's fun...you'd love it! ;-)
10:10 zamolxes joined #perl6
10:12 Matt-W possibly, if I had time to learn how
10:17 jnthn :-)
10:17 jnthn Well, you're working on Form.
10:17 jnthn I'm happy not to have to figure that bit out. :-)
10:21 Matt-W the text bit wasn't too bad
10:21 Matt-W it's the numbers that are driving me crazy
10:22 Matt-W and the fact that Damian's code for thePerl 5 implementation is pretty much incomprehensible
10:22 jnthn Implementing stuff spec'd by Larry is a scary prospect. Implementing stuff spec'd by Damian is a terrifying one. :-)
10:23 Matt-W they're both very clever
10:23 Matt-W very, very clever
10:24 jnthn Indeed.
10:24 jnthn "Insanely good" still contains the word "insane" though. :-D
10:24 Matt-W oh yes
10:25 jnthn Eh well, tormenting the implementors for the sake of the users and all that. :-)
10:25 Matt-W anyway, every time I bash away at another little bit of Form, I get closer to getting the big picture over how the numbers should work
10:25 masak I should read more Damian-authored code. it seems that people have scary things to day about it, and that intrigues me. :)
10:26 Matt-W go read Perl6::Form
10:26 Matt-W there's one function in it called segment which seems to do virtually all of the work, and I don't understand any of it
10:26 masak I've skimmed it not so long ago.
10:26 masak but I'll read it again.
10:26 Matt-W I think Damian's code would be vastly improved by some thoughtful commenting
10:27 Matt-W But I'm not trying to do the same implementation anyway, I'm exploiting Perl 6 for all it's worth :)
10:28 last joined #perl6
10:28 masak jnthn: seen Ovid's email to p6l?
10:29 * Matt-W is awaiting a reply to that rather interesting question
10:31 jnthn masak: aye
10:33 masak rakudo: role A { method foo { say "A:foo" } }; role B { method foo { say "B:foo" } }; class C does A does B { method foo { self.A::foo } }; C.new.foo
10:33 p6eval rakudo e249a6: OUTPUT«Method 'A::foo' not found for invocant of class 'C'␤»
10:33 masak close, but no cigar.
10:34 jnthn That's the Right Answer.
10:34 jnthn But I need to patch Rakudo before I give it.
10:34 jnthn ;-)
10:34 masak jnthn++
10:35 masak next question: Aristotle has been pressing me for Buf features. http://use.perl.org/comments​.pl?sid=43314&amp;cid=69326 -- so what exactly does 'a stringish view of an array of integers' mean?
10:36 masak will I be able to do $buf ~~ /foo/ ?
10:37 jnthn Does a Buf know it's encoding/charset?
10:38 masak not in the general case.
10:38 Matt-W either it means using string-ish API to manipulate a buf, or it means that he actually wants to convert a buf to a str
10:39 pmurias gprof-- # can't profile shared libraries and doesn't document it
10:44 rjh I would hope the latter
10:44 rjh If it is faster to do string operations on strings encoded with ASCII, that should be encapsulated into the Str object, people should not be doing string ops on Buf for speed reasons.
10:45 Matt-W definitely not
10:45 Matt-W if you want to treat it as a string, I'd say you should turn it into a Str with an appropriate encoding
10:45 rjh yep
10:46 Matt-W isn't the entire point that a byte stream and a string are semantically different
10:46 kimtaro_ joined #perl6
10:46 rjh tell that to C programmers
10:46 amoc joined #perl6
10:47 jnthn Some C programmers know better. It's just that their language doesn't. ;-)
10:47 rjh obviously, in many languages, strings aren't even mutable
10:48 masak Jon Lang's reply to p6l appears to treat the role methods as subs...
10:51 jnthn That'll not fly
10:51 jnthn for one because you're not passing an invocant.
10:52 masak exactly.
10:52 jnthn And for two because if the method isn't hasing an our scope, you can't look it up that way.
10:52 jnthn wtf
10:52 jnthn doesn't have an...
10:52 jnthn lolcode has destroyed my english
10:55 masak "isn't hasing" is cute! :)
10:55 masak that's the kind of plasticity I miss in natural languages.
10:56 Matt-W that did actually make perfect sense
10:56 Matt-W and english does mutate over time
10:56 masak it gets especially interesting when you start to think about the differens between 'hasing' and 'having'.
10:56 Matt-W the spelling 'thru' is becoming more common
10:56 masak languages evolve.
10:56 jnthn Aye.
10:57 * jnthn ponders that he should some day try porting his sigil-tags templated engine to Perl 6.
10:57 jnthn s/templated/templating/
10:57 masak oh noes, now he's blogging about it too: http://use.perl.org/~Ovid/journal/39241
10:57 jnthn Then everyone can tell me how insane I was.
10:58 kane_ joined #perl6
10:59 Matt-W someone just tell him the Right Way and say it's NYI
10:59 Matt-W me wonders...
10:59 jnthn masak: at least he didn't blog teh wrong answer ;-)
10:59 Matt-W class PracticalJoke does Bomb<fuse> does Spouse<explode>
10:59 masak jnthn: it's only a matter of time before someone does... :/
11:00 Matt-W hmm
11:00 Matt-W no
11:00 Matt-W that's horrible now I see it written down
11:00 Matt-W please ignore me
11:00 masak /ignore Matt-W
11:00 jnthn masak: yes yes, will do soon
11:00 jnthn erm, masak even
11:00 jnthn GAH!!
11:00 jnthn matt-w even
11:00 * jnthn types it rather than tab compltes...
11:01 jnthn just finishing my little bit of Perl 5 $dayjob hacking first :-)
11:01 Matt-W I keep thinking there might be some way to get handles being used to say which base class the methods should come from
11:01 * Matt-W is trying to get openssl to build on a solaris system which appears to be completely fucked up
11:21 donaldh joined #perl6
11:21 masak Matt-W: I've now skimmed through the &segment sub. I see what you mean.
11:21 masak then again, it's not _that_ bad, is it? I mean, it's obviously tidy code, well-indented.
11:21 masak and there are some comments.
11:22 Matt-W yes but what does it DO
11:22 Matt-W nowhere does it explain what its overall purpose is
11:22 masak it... segments things...
11:22 Matt-W what goes in, what comes out?
11:22 Matt-W what's the relationship between those things
11:22 Matt-W I find these pieces of information very important
11:22 masak it's only being called in one place, &form.
11:22 Matt-W clearly the whole process revolves around it
11:23 masak the variable storing the result is called $currformat.
11:23 masak so my guess is that &segment does some initial format parsing or something.
11:23 Matt-W I think it's something to do with comprehending the format picture
11:23 Matt-W perhaps a similar thing that I do with Form::Grammar and Form::Actions and Form::Field
11:24 masak maybe.
11:25 * Matt-W -> band practice &
11:31 azawawi joined #perl6
11:32 azawawi .
11:32 azawawi std: .
11:32 p6eval std 27466: OUTPUT«##### PARSE FAILED #####␤Can't understand next input--giving up at /tmp/zCjeKdbdpN line 1:␤------> [32m[31m.[0m␤    expecting any of:␤    prefix or noun␤   statement end␤    statement list␤   whitespace␤FAILED 00:02 36m␤»
11:48 pugs_svn r27467 | moritz++ | [t/spec] push and unshift return the array, not .elems
11:49 masak rakudo: my @a = 1..5; say (push @a, 6).perl
11:49 p6eval rakudo e249a6: OUTPUT«6␤»
11:49 masak moritz_: so, something that needs patching, then?
11:50 jnthn je uz patch v lisku
11:50 moritz_ I just pushed a patch
11:50 jnthn erm. There's already a patch on the list.
11:50 jnthn :-)
11:50 moritz_ I took the one from RT
11:50 moritz_ tested it
11:50 moritz_ adjusted the tests
11:50 moritz_ and pushed half a minute ago :-)
11:50 * jnthn fixes RT 66978
11:51 masak jnthn: 'v lisku'? was that a typo?
11:52 jnthn yes
11:52 masak moritz_++
11:52 jnthn s/listu/listku
11:52 masak jnthn: ok. phew. :)
11:52 jnthn That the whole thing was a language-o.
11:52 jnthn s/That/But/
11:52 jnthn gah
11:52 jnthn Maybe it's a good job I'm only working half the day!
11:52 dalek rakudo: 40251e4 | (Kevan Benson)++ | src/classes/Array.pir:
11:52 dalek rakudo: Patch to change bahavior of .unshift to return modified array, not number of elements
11:52 dalek rakudo: Signed-off-by: Moritz Lenz <mlenz@wvbh074.physik.uni-wuerzburg.de>
11:52 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/4​0251e4f9ad04f181e973a98e61d34d1023eb2ed
11:52 dalek rakudo: 8a786f4 | (Kevan Benson)++ | src/classes/Array.pir:
11:52 dalek rakudo: Patch to change bahavior of .push to return modified array, not number of elements
11:52 dalek rakudo: Signed-off-by: Moritz Lenz <mlenz@wvbh074.physik.uni-wuerzburg.de>
11:52 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/8​a786f4c99c027c518c3a7a59a832433d19e8d7b
11:53 * masak <3 Signed-off-by
11:54 clkao joined #perl6
11:55 clkao joined #perl6
11:58 masak ingy: ping
12:02 jnthn .oO( pingy )
12:09 takadonet morning all
12:09 masak takadonet: morning.
12:09 moritz_ good localtime()
12:09 moritz_ rakudo: say time()
12:09 p6eval rakudo e249a6: OUTPUT«1246968587.9968␤»
12:09 moritz_ rakudo: say time()
12:09 p6eval rakudo e249a6: OUTPUT«1246968599.0826␤»
12:10 masak that late already!?
12:11 moritz_ aye
12:12 masak the so-called "shitstorm" seems to continue: http://use.perl.org/~pozer/journal/39242
12:12 takadonet ...
12:13 takadonet nice response masak
12:13 masak I hope it wasn't too fanboi-ish.
12:13 masak I hardly know chromatic, but I admire his writing.
12:13 takadonet me too
12:14 takadonet Got the rest of our perl programmers  at work to read his blog
12:15 takadonet http://use.perl.org/~Ovid/journal/39241?from=rss anyone have an answer for him?
12:16 jnthn yeah, but I posted it on p6l :-)
12:16 * moritz_ has no idea
12:17 jnthn masak: I've met chromatic. Nice guy.
12:17 moritz_ http://www.nntp.perl.org/g​roup/perl.perl6.language/ says "4 messages", but when I click on it I only see one, no thread view or so
12:17 masak jnthn: does he live under a bridge?
12:17 jnthn masak: I like his writing too, but can also see how some people could take it the wrong way.
12:18 masak jnthn: yes, I can too.
12:18 jnthn masak: But after meeting him in person, I was pretty convinced that his intentions are very sound.
12:18 masak I can see that they are, too.
12:19 jnthn No, he doesn't live under a bridge. No bridges in sight from his place, from what I remember.
12:19 masak unfortunately, the 'net can reinforce bad mojo.
12:19 masak it's some kind of bad mojo feedback cycle.
12:20 takadonet does anyone know where and when  YAPC::NA::2010 will be?
12:22 jnthn Columbus last I read.
12:22 jnthn Don't ask me where in the US that is though. :-)
12:23 takadonet I don't know either. From Canada here :)
12:23 allbery_b *which* Columbus? I think there's one in every state
12:24 allbery_b (that said, I suspect Columbus, OH. do cows write perl? :)
12:24 moritz_ these non-creative americans
12:25 takadonet well the closer to where I live, the better
12:25 moritz_ jnthn: what's the state of attribute introspection? I'm think of an Object.perl that actually reproduced the attributes...
12:25 moritz_ *reproduces
12:26 moritz_ but for that I'd have to query a class and all of its super classes for attributes
12:26 ihrd joined #perl6
12:27 ihrd left #perl6
12:28 jnthn moritz_: That is one of the missing bits int eh introspection interface at the moment, I'm afraid
12:29 moritz_ jnthn: and not covered by your Hague grant? :/
12:29 jnthn moritz_: It's part of my hague grant, and thus on the schedule for "soon".
12:29 moritz_ oh, cool
12:29 jnthn So far I sorted out .^methods, .WALK and .^parents
12:30 jnthn .^attributes and .^roles are to do.
12:30 jnthn Anyway, I want to get my Hague Grant wrapped up before September.
12:30 jnthn Otherwise, I'll have to eat Ramen every day in Japan. ;-)
12:31 moritz_ great news for me :-)
12:33 moritz_ http://news.perlfoundation.org/200​9/06/yapcna_2010_in_columbus.html btw
12:34 takadonet thanks moritz
12:41 Matt-W argh. Anybody know a good way to get rid of an earworm
12:42 moritz_ replace it by a more persitent one :-)
12:42 moritz_ like, you can't travel to scotland for more than to weeks without having "scotland the brave" as one :-)
12:44 Matt-W urgh. pipe band at the waddington air show played that
12:44 Matt-W not only are they playing the worst kind of bagpipe, they're also playing one of the most predictable tunes on them
12:45 moritz_ as a piper you can't omit it :/
12:45 dalek rakudo: 0c7475a | moritz++ | README:
12:45 dalek rakudo: [README] changed some quotes to C<...> POD markup
12:45 dalek rakudo: Also changed wording a bit: since I only consider the part in t/spec/ to be
12:45 dalek rakudo: the official test suite, we import all of official test suite
12:45 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/0​c7475a1134994aaffcea26d1d018b52807e5241
12:46 moritz_ Matt-W: when I say that I have an earworm, my girlfriend always starts singing "Ohrwurm" from Wise Guys. Doesn't really help :-)
12:46 Matt-W lol
12:46 Matt-W I've not got that
12:46 * Matt-W is trying to purge it with Depeche Mode
12:46 Matt-W trouble is, it's something we were doing with the band, so it's got higher staying power
12:48 Matt-W I'll try wise guys if this doesn't work
12:52 ruoso joined #perl6
12:52 jdv79 joined #perl6
12:53 jdv79 can a role be applied to a metaclass object?
12:53 moritz_ I'd say so
12:53 Matt-W it's an object
12:53 Matt-W so I'd say yes
12:53 moritz_ a metaclass object is just an ordinary object
12:53 moritz_ (with itself as a metaclass, iirc)
12:53 Matt-W since you can apply roles to code objects, so why not metaclass objects?
12:54 Matt-W moritz_: that sounds familiar
12:54 jnthn ok folks, I'm have slovak class now and then amd going to Vienna.pm right afterwards
12:54 jdv79 i don't know:)  are there any examples?  i haven't seen aby.
12:54 jnthn so, gone for the day
12:54 jnthn have fun :-)
12:54 jdv79 *any
12:54 Matt-W bye jnthn
12:54 sri_kraih joined #perl6
12:54 takadonet cya jnthn
12:54 moritz_ "have the appropriate amount of fun"
12:55 Matt-W hmm what's the metaclass accessor? Class.HOW?
12:55 moritz_ Matt-W: aye
12:55 jdv79 or .^ i think
12:55 moritz_ HOW = Higher Order Workings
12:55 Matt-W jdv79: that'd be for calling metaclass methods
12:55 jdv79 oh
12:55 Matt-W so you'd want something like
12:55 Matt-W MyClass.HOW does MyRole;
12:55 moritz_ $a.^b(c) is the same as $a.HOW.b($a, c)
12:55 Matt-W (that's a guess)
12:55 jdv79 i'll just try it then, thanks.
12:56 moritz_ it doesn't work yet in rakudo, I fear
12:58 ruoso joined #perl6
12:59 Matt-W If it doesn't, file a bug...
12:59 skids joined #perl6
13:00 moritz_ rakudo: class A { }; say A.new.HOW.PARROT;
13:00 p6eval rakudo 0c7475: OUTPUT«Method 'PARROT' not found for invocant of class 'P6metaclass'␤»
13:00 moritz_ rakudo: class A { }; say A.new.HOW;
13:00 p6eval rakudo 0c7475: OUTPUT«␤»
13:00 synth joined #perl6
13:01 moritz_ rakudo: class P6metaclass is also { method argl { say 'foo" } }; class A  { }; A.HOW.argl
13:01 p6eval rakudo 0c7475: OUTPUT«say requires an argument at line 2, near " 'foo\" } }"␤in Main (src/gen_setting.pm:2444)␤»
13:01 moritz_ rakudo: class P6metaclass is also { method argl { say 'foo' } }; class A  { }; A.HOW.argl
13:01 p6eval rakudo 0c7475: OUTPUT«Cannot use 'is also' on non-existent class P6metaclass at line 2, near "; class A "␤in Main (src/gen_setting.pm:1594)␤»
13:01 moritz_ rakudo: class P6metaclass:from<parrot> is also { method argl { say 'foo' } }; class A  { }; A.HOW.argl
13:02 p6eval rakudo 0c7475: OUTPUT«Cannot use 'is also' on non-existent class P6metaclass:from<parrot> at line 2, near "; class A "␤in Main (src/gen_setting.pm:1594)␤»
13:02 moritz_ rakudo: class parrot:P6metaclass is also { method argl { say 'foo' } }; class A  { }; A.HOW.argl
13:02 p6eval rakudo 0c7475: OUTPUT«Cannot use 'is also' on non-existent class parrot:P6metaclass at line 2, near "; class A "␤in Main (src/gen_setting.pm:1594)␤»
13:02 moritz_ ah well.
13:02 pmurias joined #perl6
13:03 mizioumt joined #perl6
13:09 Lorn rakudo: .say for <a b c> X 1, 2;
13:09 p6eval rakudo 0c7475: OUTPUT«a␤1␤a␤2␤b␤1␤b␤2␤c␤1␤c␤2␤»
13:10 Lorn rakudo: .print for <a b c> X 1, 2;
13:10 p6eval rakudo 0c7475: OUTPUT«a1a2b1b2c1c2»
13:10 Lorn rakudo: .print for <a b c> X <1 2 3>;
13:10 p6eval rakudo 0c7475: OUTPUT«a1a2a3b1b2b3c1c2c3»
13:12 last Is there a better way to create a list of N random numbers than gather for 1 .. N { take rand (); }?
13:12 masak last: yes :)
13:12 masak map { rand() }, ^$N
13:13 lisppaste3 Lorn pasted "error when try to compile re-smop" at http://paste.lisp.org/display/83168
13:13 Lorn ruoso: ^^
13:13 last masak: I actually thought of that (well, without ^$N because I'm not used to that yet) but it seemed rather against the spirit of map to me.
13:14 masak last: because it ignores the contents if the array it iterates over?
13:14 last masak: yes
13:14 masak last: well, so does the gather.
13:15 masak I guess it's a matter of taste, but I have no trouble using a map construct and completely disregarding $_ in the block.
13:16 moritz_ same here
13:16 last masak: It certainly is handy doing it that way.
13:16 masak last: I use it when initializing the board in Druid.
13:16 moritz_ it's very perlish to abuse syntax :-)
13:17 masak I don't even consider it abuse.
13:18 Matt-W also, the gather way will be lazy one day
13:18 Matt-W and that might be desirable behaviour
13:18 Matt-W is map going to be as lazy?
13:18 masak last: http://github.com/masak/druid/blob/b2f6c896d25127​8c12bb0cbfa377f9854da030fd/lib/Druid/Game.pm#L42
13:18 masak Matt-W: I believe so.
13:18 PerlJam everything will be lazy to a degree
13:19 amoc__ joined #perl6
13:19 ruoso Lorn, hmm... you seem to raise all the problems in the build system ;)
13:19 PerlJam (laziness is one of the 3 great virtues after all)
13:19 last masak: I see.
13:19 last Thanks, gang.
13:19 masak renormalist: to a degree. :)
13:19 masak awrgh, tab complete fail.
13:20 masak PerlJam: to a degree. :)
13:20 ruoso Lorn, have you tried to rm -rf build; make?
13:20 masak oh, I had forgotten that I had already Podded Druid.
13:20 moritz_ Matt-W: actually it is implement in rakudo in a way that as soon as lists and gather/take become lazy, map will be too
13:21 Lorn ruoso: you are welcome :P
13:22 Lorn ruoso: no, just make clean
13:22 ruoso Lorn, try the other... if that still fails, paste the contents of p5interpreter.c (which is generated from p5interpreter.ri)
13:22 Lorn ruoso: same error with r m-rf build; make
13:23 ruoso Lorn, you should find p5interpreter.c in build/p5/src/
13:25 DC joined #perl6
13:25 jdv79 joined #perl6
13:26 lisppaste3 joined #perl6
13:26 Lorn ruoso: i found it, the line 185 has a odd string "mold_run_coro = ;"
13:27 ruoso Lorn, hmm... it means a mold is failing in the compilation
13:28 masak rakudo: my Array[Int] @a
13:28 p6eval rakudo 0c7475: OUTPUT«Use of type object as value␤»
13:28 masak what does that error message mean?
13:29 moritz_ rakudo: my Array[Int] @a; @a[0] = 3;
13:29 pmurias joined #perl6
13:29 p6eval rakudo 0c7475: OUTPUT«Use of type object as value␤Assignment type check failed; expected Failure, but got Int␤in Main (/tmp/wkKFCutJXO:2)␤»
13:29 moritz_ rakudo: my Array[Int] @a; @a[0] = [2];
13:29 p6eval rakudo 0c7475: OUTPUT«Use of type object as value␤Assignment type check failed; expected Failure, but got Array␤in Main (/tmp/Rmfjs0WyqL:2)␤»
13:29 ruoso Lorn, do you have a full pugs checkout?
13:29 masak moritz_: seems it can't handle that syntax yet.
13:29 Lorn ruoso: yes, a i did a svn up today
13:29 moritz_ masak: it means that Array[Int] is parsed wrongly
13:30 masak moritz_: aye.
13:30 masak I see it now.
13:30 ruoso Lorn, of the whole repo?
13:30 pmurias ruoso: hi
13:30 Lorn ruoso: yes
13:30 ruoso hi pmurias...
13:30 ruoso pmurias, any idea of what might be causing Lorn's problem?
13:31 pmurias does he have a working m0ld?
13:31 ruoso Lorn, what happens when you run: perl -I../../src/perl6 tools/ri . ./m0ld_exe < p5/src/p5interpreter.ri
13:33 ruoso jnthn, if "does" is a trait auxiliary, which means it is a multi call, in theory, it would be possible to send :excludes<fuse> in does.... i.e.: class PracticalJoke does Spouse :excludes<fuse> does Bomb :excludes<explode> {...}
13:33 Lorn ruoso: the same odd string in, probabily p5interpreter.c, "mold_run_coro = ;"
13:33 ruoso Lorn, does it output any warning afterwards
13:33 ruoso ?
13:33 Lorn ruoso: Use of uninitialized value in print at tools/ri line 354.
13:34 Lorn ruoso: just this
13:34 ruoso std: role Spouse { method fuse() {...}; method explode() {...} }; role Bomb { method fuse() {...}; method explode() {...} };  class PracticalJoke does Spouse :excludes<fuse> does Bomb :excludes<explode> {...}
13:34 p6eval std 27467: OUTPUT«ok 00:03 37m␤»
13:35 ruoso jnthn, ^^
13:37 Matt-W moritz_: excellent. Glad to hear we get lazy map
13:40 ejs joined #perl6
13:40 masak ruoso: or maybe :excluding, which also isn't an adverb but somehow reads slightly better.
13:40 pmurias why is nopaste not working?
13:40 masak ruoso: what if one would want to do the opposite, only import one or a few methods?
13:40 ruoso masak, :except
13:41 pmurias paste.lisp.org is not working actually
13:41 masak ruoso: aye. best so far.
13:41 ruoso masak, :only
13:41 masak ruoso: I thought :only too, but it's not as excellent as :except
13:41 lisppaste3 moritz_ pasted "just a test" at http://paste.lisp.org/display/83169
13:41 pmurias Lorn: try this ./m0ld_exe <<< 'my $interpreter; my $coro; my $back; my $void = $coro."set_back"($back); my $void = $interpreter."goto"($coro);'
13:41 moritz_ pmurias:  it works for me
13:42 lisppaste3 pmurias pasted "Lorn: try this" at http://paste.lisp.org/display/83170
13:42 pmurias moritz_: forgot the captcha--
13:42 Lorn pmurias: no error, seems works fine
13:42 ruoso masak, er... they are the opposite
13:42 masak ruoso: I know that.
13:42 ruoso ah... ok
13:42 masak I was talking about their suitability.
13:42 masak :restricted-to or :namely or :want are all more precise, but not good names.
13:43 moritz_ :want-but-you-won't-get-it
13:43 PerlJam Is someone updating S14 to include these niceties?
13:43 masak PerlJam: are you volunteering? :)
13:43 ruoso it seems that this kind of adverbs have been rejected in the past... I'm not aware of the reason
13:44 moritz_ I think so far it's been just pondering, not deciding
13:44 exodist joined #perl6
13:44 masak someone will make a module and add them if they're not in core.
13:44 ruoso masak, does Spouse :just<explode> does Bomb :just<fuse>
13:45 PerlJam masak: I was just thinking that if trait_mod:<does> works, we could implement :excludes, :includes, :whatever
13:45 masak ruoso: :only and :just tie for me in goodness.
13:45 pmurias Lorn: is nothing modified (try svn status)?
13:45 masak ruoso: but they both lacksomething that :except has.
13:45 masak PerlJam: yes, sure.
13:46 PerlJam I think ruby tends to use only :only and :except
13:46 PerlJam it's been a while since I've looked at ruby though
13:47 masak maybe there's no better fit than :only
13:47 masak I'd like a word that expresses :but-only
13:47 PerlJam :!only  :)
13:47 pmurias ruoso: gprof seems to be old & broken (doesn't handle shared libraries) so i'm trying my luck with sysprof
13:48 ruoso ah... right...
13:48 ruoso btw.... gsoc mid-term evaluation is up
13:48 masak PerlJam: no, that's "not only" :)
13:48 pmurias ruoso: do i need to do anything?
13:49 * PerlJam starts looking for a unicode symbol that looks like a butt
13:49 masak .oO( :except and :incept )
13:49 Lorn pmurias: svn status show a lot of '?' maybe because, they create new file in the .
13:50 ruoso masak, :except and :excerpt
13:50 masak :P
13:50 pmurias Lorn: ? is harmless
13:52 pugs_svn r27468 | skids++ | [S32/Numeric] correct parameter name in atan2 method form
13:57 kimtaro joined #perl6
13:57 masak :except and :confine
13:58 masak or :except and :limit
13:58 KyleHa joined #perl6
13:58 masak but both :confine and :limit would really need a -to added to them.
14:06 mizioumt1 joined #perl6
14:06 agentzh joined #perl6
14:08 beggars joined #perl6
14:17 Jedai joined #perl6
14:17 masak :prefer has the one-wordness that I'm after, but it's too vague...
14:17 * ruoso still like the :excerpt idea ;)
14:21 jdv79 is there an import() like scheme for classes?
14:21 moritz_ jdv79: what do you mean?
14:22 jdv79 since it looks like packages and classes are seperate now
14:22 ruoso jdv79, import doesn't really make sense for a Class
14:22 ruoso only for a package
14:22 KyleHa Where's there enough documentation to write spec tests for Implementation types?  I see only a little blurb in S02.
14:22 jdv79 i need a one-shot so i can apply a role to the metaclass obj
14:22 jdv79 like Moose::Exporter does
14:23 jdv79 i could hack it up with a flag i guess
14:24 moritz_ KyleHa: I don't know, I just know how thei are used
14:24 moritz_ my $foo is WeirdScalar
14:24 jdv79 oh, scratch that.  i think i'm unconfused now.  i know how to do it.
14:24 moritz_ I guess WeirdScalar has to define FETCH and STORE
14:25 KyleHa moritz_: Makes sense to me, but I have a very Perl 5 viewpoint.
14:25 masak in S32/Num, atan2 doesn't take a :base param like the other trig functions. also, I don't see why both that and atan is needed if atan2 has a default for the second param.
14:25 moritz_ KyleHa: think of them as tied objects; it's quite similar, I think
14:26 KyleHa Yeah, I do think of them that way.  I just would like something in writing to back me up.  8-)
14:27 KyleHa Since the spec is in the same repo, I guess I could always go just write the spec too.  That feels kind of like "researching" a topic by writing whatever I want to report into Wikipedia.
14:28 moritz_ except that by writing specs you change the reality
14:29 moritz_ but it is indeed a topic that needs more spec and test coverage
14:29 KyleHa I am the cause and the effect!
14:29 KyleHa I've also been wondering lately about how to test "non-awesome error message" bugs.
14:30 masak KyleHa: no need to, I think.
14:30 masak KyleHa: it's not part of the spec, and so not part of the spectest suite.
14:30 KyleHa Hmmm.  OK, that makes some sense.
14:30 masak KyleHa: but it's still a rakudobug, because we want Rakudo to be awesome.
14:31 KyleHa Still, I don't want some Perl 6 implementation to pop up and say, "I pass all spec tests" when every error message is "ouch".
14:31 moritz_ std: sub infix:<foo> is assoc<list> (*@a) { @a.join('foobar') }; 2 foo 3 foo 5
14:31 p6eval std 27468: OUTPUT«ok 00:03 40m␤»
14:31 moritz_ KyleHa++
14:31 moritz_ masak: it should be both part of the spec and the test suite
14:32 masak moritz_: what, awesome error messages?
14:32 masak moritz_: you don't think it's a bit implementation-dependent?
14:33 masak KyleHa: yes, you have a point.
14:33 KyleHa I wonder about i18n too.  I write tests in English, and someone in China writes Perl 6.
14:33 moritz_ masak: perhaps not the exact message, but for example if an eval() fails I want to be able to know if it was a compile time or a runtime error
14:33 moritz_ and I don't want code like
14:33 masak moritz_: yes, me too.
14:34 masak moritz_: sounds like you want a good exception class hierarchy in the spec. I do too.
14:34 moritz_ if $impl eq 'Rakudo' && "$!" ~~ /:s parse error/ or $impl eq '..' ...
14:35 masak ouch.
14:35 ruoso jdv79, right... the way you implement that would be to define a custom Package implementation
14:35 KyleHa I think we could define that an error of a certain type has to mention certain things.  "Can't find your library file" should mention @INC.
14:35 ruoso and that Package would have a custom EXPORTALL
14:35 masak KyleHa: or @*INC :)
14:35 justatheory joined #perl6
14:35 moritz_ or whatever mechanism we end up with to locate our libraries.
14:36 KyleHa masak++
14:36 masak KyleHa: I think that's too restrictive. what if someone wants to do a whole different import mechanism? then they're stuck to sneaking @*INC into their error messages.
14:36 masak I say let the messages be completely up to the implementations.
14:36 masak but I'd love to see a good exception hierarchy.
14:37 ruoso std: my class Package is OUTER::Package { sub EXPORTALL($scope, *@symbols, *%tags) {...} }; class Foo { ... }
14:37 p6eval std 27468: OUTPUT«ok 00:02 37m␤»
14:37 masak in class hierarchies, I usually equate "good" and "simple".
14:37 ruoso jdv79, ^^
14:37 pmurias joined #perl6
14:37 moritz_ masak: I'm sure it won't be a strict hierarchy
14:38 moritz_ masak: it might end up being a bunch of roles
14:38 masak fair enough.
14:38 masak a... structure of some kind.
14:38 moritz_ so that you can ask things like $! ~~ X::IO or $! ~~ X::Syntax or so
14:38 masak aye.
14:38 pfenwick joined #perl6
14:39 jdv79 ruoso: interesting tack
14:39 KyleHa I think this commit needs smarter eyeballs than mine:  http://dev.pugscode.org/browser/t/spec/S​02-builtin_data_types/keybag.t?rev=27462
14:40 moritz_ ruoso: did you think about implementation types more closely?
14:40 ruoso moritz_, what do you mean?
14:41 moritz_ ruoso: like, how a defintion of one would look like in Perl 6
14:41 ruoso you mean like ClassHOW?
14:41 moritz_ ruoso: I mean something like a custom ScalarContainer class
14:41 ruoso jdv79, you might also define a new package_decl keyword and associate it with a different metaclass
14:41 moritz_ ruoso: or a Set or a KeyBag or whatever
14:42 moritz_ KyleHa: it kinda looks inconsistent (more)
14:42 moritz_ %h = (a => 1, b => 0, c => 2); is %h.elems, 3, 'Inititalization worked';
14:42 moritz_ and then you set %h<c> to zero...
14:42 ruoso moritz_, well... that's why I'm so harsh about APIs
14:42 moritz_ and expect it to have one element
14:42 ruoso moritz_, because in SMOP/mildew all I have so far are custom implementations of the Perl 6 types
14:43 ruoso I still don't have any of the types bootstrapped
14:43 jdv79 i want to do this to a class though
14:43 jdv79 not a package
14:43 ruoso jdv79, A class declares both a package and a type
14:43 jdv79 i could do it in a BUILD with a flag
14:43 moritz_ KyleHa: so I think it should be 2 elems from the start, if 0-items automaticallz vanish
14:43 KyleHa moritz_: Yeah.  'c' alone was two elements before...two of 'c' in the bag.
14:43 ruoso jdv79, by default methods are not installed in the package
14:44 moritz_ KyleHa: ah, I mis-remembered the spec, wait a sec..
14:44 * TimToady OH NOES TEH AMNESS
14:44 jdv79 i have to read up on p6 again
14:44 KyleHa moritz_: You may have it right, actually.
14:44 ruoso jdv79, what exactly do you want to do?
14:44 KyleHa As I was writing tests, I just thought, "if a Bag is nothing but a hash with a restriction on the values it holds, why would I ever use it?"
14:45 jdv79 i want to apply a role to the metaclass object on declaration.  i should be able to just do it in the class closure, right?
14:45 jdv79 i haven't seen a clear complete p6 MOP spec yet.  does it exist?
14:46 moritz_ KyleHa: %h = (a => 10) then %h.elems == 1, unless I'm very much mistaken
14:46 jdv79 my real question is: are there method metaclasses?
14:46 moritz_ (%h being a KeyBag)
14:46 KyleHa moritz_: OK, then I need to fix my tests.  Thanks!
14:46 ruoso jdv79, not complete yet, no... but there are some sketches in http://svn.pugscode.org/pugs​/v6/smop/src-s1p/ClassHOW.pm
14:46 KyleHa (And I think KeyBags are kind of silly--until I change my mind.)
14:47 moritz_ so I think the count should be 2 at the start, and 1 after setting c to 0
14:47 masak KyleHa: oh, you're doing KeyBags?
14:47 masak KyleHa: I just want to note that I'm very much interested in that area of Perl 6.
14:47 moritz_ KyleHa: oh, and ~@list actually includes spaces
14:47 TimToady it's okay if KeyHashes present a different API from normal Hashes
14:47 moritz_ rakudo: say ~<a b>
14:47 p6eval rakudo 0c7475: OUTPUT«a b␤»
14:47 TimToady as in, .elems could keep the sum of the values
14:48 moritz_ TimToady: but shouldn't it be called .sum then?
14:48 masak .oO( !Liskov )
14:48 TimToady and list() could spit out the keys of a set without the => 1
14:48 jdv79 are there method metaclasses in p6?
14:48 TimToady could have .members, I suppose
14:49 moritz_ this whole discussion seems a bit silly to me unless we identify a use case for KeyBags
14:49 masak jdv79: didn't you like ruoso's answer?
14:49 TimToady certainly Set(@keys) should assume all the keys are being set to 1
14:49 TimToady s/keys/values
14:50 TimToady the main point of KeyHashes is that they autodelete when --> 0
14:50 ruoso jdv79, what do you mean by method metaclass?
14:51 moritz_ TimToady: and KeyBag ist just a specialization of KeyHash, right?
14:51 TimToady and otherwise present more as Set and Bag, but mutably
14:51 ruoso Set would still need some work regarding set theory and DWIM, isn't it?
14:52 masak ruoso: aye.
14:52 TimToady please don't use the word "theory" while my coffee is still brewing o_O
14:52 masak ruoso: I planned to do that this summer in a grant, but plans changed. :)
14:52 * ruoso almost lunch time here ;)
14:52 moritz_ it could also use some implementation and tests :-)
14:53 Tene I have a silly implementation of Sets for rakudo, mainly as an excuse to define the unicode set operators.
14:53 KyleHa If I think a KeyBag is a bunch of keys I've put into a bag, exposing the counters when I haven't asked for them seems like a break from the metaphor.
14:53 jdv79 in moose we have a metaobjects that represent a method
14:53 jdv79 we can mixin on that to add attrs to the method for decoration
14:54 moritz_ KyleHa: agreed
14:54 ruoso jdv79, right... that's not a metaobject, it's a plain object...
14:54 ruoso jdv79, the method is an object too
14:54 moritz_ KyleHa: the only automatic exposition is that some keys will disappear if you have  0 associated with it
14:54 ruoso jdv79, and you can compose a role to that as well
14:54 masak KyleHa: the values could be useful in many cases.
14:54 jdv79 i would like to compose at the class level though
14:54 KyleHa masak: I think they should be available.
14:55 jdv79 so all methods of said class have the decorations
14:55 KyleHa I just don't think that "KeyBag treated as a list" should include the counters.
14:55 ruoso jdv79, the method object is not clonned to each instance of the class
14:55 TimToady there's always an explicit .pairs for that
14:55 ruoso jdv79, so once you compose the role into the method object, every instance will be affected
14:55 jdv79 what is the scope of this method object?
14:57 TimToady I don't see composing roles into method objects as particularly useful
14:57 TimToady it sounds like a form of monkey_typing
14:57 ruoso rakudo: role Bla { method postcircumfix:<( )> { say "Hey! "; nextsame; say "Let's go!" } }; class Foo { our method bar { say "Ho!" } }; Foo.bar
14:57 p6eval rakudo 0c7475: OUTPUT«Ho!␤»
14:57 jdv79 its how i add the xunit type to the method in Test::Able
14:57 ruoso rakudo: role Bla { method postcircumfix:<( )> { say "Hey! "; nextsame; say "Let's go!" } }; class Foo { our method bar { say "Ho!" }; &bar does Bla }; Foo.bar
14:57 p6eval rakudo 0c7475: OUTPUT«Attempt to use rebless_subclass where the new class was not a subclass␤in Main (/tmp/vdJbczMX7h:2)␤»
14:57 jdv79 maybe there's a better way to go about it entirely in p6
14:58 ruoso jdv79, the above code would do what you eant... but rakudo doesn't seem to support it yet
14:58 TimToady it's fine for passive data, but changing behavior is more in the province of .wrap
14:58 jdv79 its not behavior - its just state.
14:58 Matt-W also, traits are probably a better way to go for static data once we have them in rakudo
14:58 ruoso TimToady, it makes sense in frameworks like Catalyst....
14:59 ruoso method foo() does Bla {...}
14:59 ruoso method foo() does Chained</categories> {...}
14:59 ruoso std: class Bar { method foo() does Chained</categories> {...} }
14:59 Matt-W method foo() is chained...
14:59 p6eval std 27468: OUTPUT«##### PARSE FAILED #####␤Malformed block at /tmp/nY7Rvw7Wt2 line 1:␤------> [32mclass Bar { method foo() does Chained[31m</categories> {...} }[0m␤    expecting any of:␤  blockoid␤ method_def␤       terminator␤       trait␤  whitespace␤FAILED 00:02 37m␤»
14:59 Tene ruoso: in Catalyst, those would be subs, not methods...
14:59 TimToady certainly they make more sense as declartions than as mixins
15:00 moritz_ ruoso: looks like  an aplication for traits
15:00 Tene and I'd do those with traits.
15:00 jdv79 what would those alternatives look like?
15:00 ruoso isn't "does" a trait?
15:00 TimToady but even in the case of 'is chained', it's still really passive data that the parser uses
15:00 Tene sub foo() is Chained</categories> {...}
15:00 moritz_ ruoso: uhm, maybe it is
15:02 TimToady or the dispatcher, so some external agency
15:02 TimToady s/so/or/
15:02 TimToady bleah
15:02 TimToady my eyes aren't opposite the sockets
15:03 jdv79 what are these "declarations" you speak of?
15:03 moritz_ KyleHa: I can "fix" keybag.t later on today according to my understanding of the spec
15:04 KyleHa moritz_: I was going to say the same thing, but now I'm not so sure.
15:04 KyleHa moritz_: I very much appreciate your attention to my attempts at testing.
15:04 moritz_ KyleHa: and I very much appreciate your testing work.
15:05 KyleHa *bow*
15:06 ruoso jdv79, "declaration" here is meant as oposed to "runtime mix-in"
15:06 ruoso jdv79, &foo does Bla is a runtime mixin
15:06 jdv79 and those are expressed as "traits"?
15:06 ruoso yes
15:06 moritz_ uhm, traits are compile-time.
15:06 jdv79 that's fine
15:07 jdv79 hence, declaration i guess.
15:07 ruoso yep
15:07 jdv79 jonathan says they don't work yet in rakudo so i have time before i can port:)
15:08 jdv79 nice since its the summer and all
15:08 moritz_ jdv79: what do you want to port?
15:08 jdv79 Test::Able
15:09 jdv79 patrick said the best help he can get is people writing stuff in p6 so i'll port that.
15:10 moritz_ he's right
15:10 masak jdv79++
15:10 masak jdv79: are you planning to go github, or similar?
15:11 nihiliad joined #perl6
15:11 moritz_ so basically Test::Able creates a class when you use() it and call the startup() etc subs?
15:13 ruoso jdv79, but I'm not sure you need to mess with the metaclass to port Test::Able
15:14 jdv79 masak: i guess.  the p5 version is on github.
15:14 ruoso it looks that it can be implemented simply by "is export" and "does"
15:14 masak jdv79: let me know, and I'll add you to projects.list in proto.
15:15 jdv79 masak: ok
15:16 moritz_ you can kinda fake it right now
15:16 jdv79 ruoso: well the core is in Test::Able::Role::Meta::Class.  that i think i still have to apply to the metaclass obj
15:16 jdv79 the method decoration stuff looks like traits
15:17 moritz_ you can simply return a Test::Able object that does the dispatch things at runtime
15:20 donaldh joined #perl6
15:22 pmurias joined #perl6
15:23 pmurias ruoso: got sysprof working (after having to update the kernel) and it seems on of the things we spend a lot of time on is locking/unlocking
15:23 ruoso hmm... that surprises me
15:26 * pmurias checks how commenting the threading affects performance...
15:26 TimToady moritz_: seems like it would be relatively trivial for the logger to grok ansi color codes and colorize the text appropriately, at least for std output
15:27 xinming_ joined #perl6
15:27 moritz_ TimToady: is that a feature request? :-)
15:27 TimToady it ain't a spec
15:28 payload joined #perl6
15:28 TimToady except in the sense of speculation
15:30 moritz_ where are the color codes generated?
15:31 masak I'd like to point out that color codes aren't universal across IRC clients.
15:31 masak and last time someone tried, it was more annoying to those without color support than it benefitted those with.
15:32 pmurias ruoso: without the locking it's like twice as fast
15:33 TimToady I'd like to point out that this isn't IRC output, but webpage
15:33 moritz_ I think masak was referring to the step one layer below :-)
15:34 masak ah. webpage is fine.
15:35 masak I wasn't sure what you were talking about, but the pain of that last time is still fresh in my memory, so I didn't want to take any chances. :)
15:35 pugs_svn r27469 | pmurias++ | [re-smop] locking is only done if SMOP_LOCKING is enabled
15:38 mizioumt joined #perl6
15:41 molaf joined #perl6
15:41 pmurias ruoso: could you check what's the effect on your machine?
15:45 rfordinal joined #perl6
15:47 molaf joined #perl6
15:54 pmichaud Good morning, #perl6
15:54 takadonet morning pmichaud
16:00 pmurias joined #perl6
16:04 pmurias joined #perl6
16:07 hanekomu joined #perl6
16:09 Pismire joined #perl6
16:17 moritz_ std: 2 + + 4
16:17 p6eval std 27469: OUTPUT«ok 00:02 38m␤»
16:17 moritz_ uhm.
16:17 moritz_ std: 2 ++ 4
16:17 p6eval std 27469: OUTPUT«ok 00:02 38m␤»
16:18 moritz_ std: 2++4
16:18 p6eval std 27469: OUTPUT«##### PARSE FAILED #####␤Syntax error (two terms in a row?) at /tmp/p5BgFMiRYH line 1:␤------> [32m2++[31m4[0m␤    expecting any of:␤     POST␤   infix or meta-infix␤        infix stopper␤    postfix␤        postfix_prefix_meta_operator␤       standard stopper␤ statement
16:18 p6eval ..modifier loop␤  terminator␤     whitespac…
16:19 PerlJam std: 2 + + + 4
16:19 p6eval std 27469: OUTPUT«ok 00:02 38m␤»
16:19 moritz_ probably parsed as multiple prefix operators
16:19 moritz_ std: 2 + ~ + ~ + 3
16:19 p6eval std 27469: OUTPUT«ok 00:02 38m␤»
16:19 moritz_ rakudo: say 2 + ~ + ~ + 3
16:19 p6eval rakudo 0c7475: OUTPUT«5␤»
16:20 PerlJam Then something is eating whitespace when it shouldn't
16:20 PerlJam (or ignoring it)
16:20 moritz_ why?
16:20 moritz_ I think that's perfectly valid Perl 6 syntax
16:21 PerlJam If it looks like "term op op term", then it is "term op op term" and I don't think that's valid syntax at all.
16:21 moritz_ it looks like "term op term", where the second term includes a few prefix operators ;-)
16:22 PerlJam let's just say that's *not* the "least surprise" for me then :)
16:22 TimToady you can't have two terms in a row, but it's perfectly fine for term to be (preop term) recursively
16:22 moritz_ PerlJam: I agree
16:22 TimToady and it's only postfixes that restrict whitespace
16:23 PerlJam TimToady: prefixes can't because ... ?
16:23 TimToady they could, by why should they?
16:23 TimToady *but
16:23 PerlJam because I find 2 + + + + 4 really surprising :)
16:23 moritz_ you can do all sorts of similar tricks in perl 5 too
16:24 TimToady well, but do you want to have to write 'sin$x'
16:24 PerlJam moritz_: there's a reason we're writing Perl 6 too  :)
16:24 moritz_ like 1 + / / + / / + 2
16:24 moritz_ or in 5.10 even 1 // / / // 2
16:25 PerlJam sin is a prefix op?
16:25 PerlJam Is that so that it works as a unary?
16:25 Psyche^ joined #perl6
16:26 TimToady it's a named unary
16:26 PerlJam Hmm.
16:27 PerlJam okay, all I know is   $x + sin $y == GOOD   and $x + + $y == BAD   :)
16:31 pmichaud PerlJam: do you consider   $x + - $y  to be bad?
16:32 PerlJam yes-ish.  I'd write it as $x + -$y.
16:33 Gothmog_ What about $x - $y? ;-)
16:33 PerlJam I certainly don't like that I could write $x + - + - + - $y and perl would be perfectly happy with that.
16:34 PerlJam (I mean, if I have to live with it, I can since the chances of accidentally typing something like that are slim)
16:34 PerlJam But I don't like it.
16:34 * moritz_ likes that for obfu
16:34 pmichaud I suspect Damian will make use of it somewhere.  :-P
16:37 tann joined #perl6
16:40 rjh if you were forced at gunpoint to write such a statement, at least $x + - + - + - $y is more readable than $x + -+-+-+-$y.
16:41 PerlJam Besides the syntactic weirdness, I worry that with other folks mixing in their own operators, that there will be some bizarre, surprising interaction.
16:41 rjh ...actually maybe it isn't
16:41 PerlJam rjh: they would mean different things too
16:41 moritz_ aye. Don't forget LTM.
16:42 rjh I can't even remember it, since I don't know what it stands for :)
16:42 moritz_ LTM = longest token matching
16:42 cdarroch joined #perl6
16:42 rjh ah
16:42 moritz_ it means that perl will try to match it as a single operator
16:43 rjh ...before it matches '-'
16:43 TimToady why it doesn't parse -- as - -
16:44 moritz_ rakudo: say +-3
16:44 p6eval rakudo 0c7475: OUTPUT«-3␤»
16:45 PerlJam rakudo: say +-+-+-3
16:45 moritz_ rakudo: say -+-3
16:46 p6eval rakudo 0c7475: OUTPUT«-3␤»
16:46 p6eval rakudo 0c7475: OUTPUT«3␤»
16:46 PerlJam but rakudo doesn't do LTM yet anyway
16:51 pmichaud it does *some* LTM, just not the Perl 6 standard form.
16:51 pmichaud as TimToady++ said, it's why --$foo gets parsed as prefix:<-->(...) and not prefix:<->(prefix:<->(...))
16:52 moritz_ that's something that can be arranged by clever ordering of alternatives
16:53 pmichaud right, but the operator precedence parser actually does ltm in that case
16:53 moritz_ and that's why infix:<...> actually worked?
16:53 PerlJam I haven't looked at the code, but I've always guessed that rakudo does LTM on a case-by-case basis.
16:54 pmichaud rakudo:  say -+-3;
16:54 p6eval rakudo 0c7475: OUTPUT«3␤»
16:54 pmichaud rakudo:  sub prefix:<-+->($x) { 'hello' };   say -+-3;
16:54 p6eval rakudo 0c7475: OUTPUT«hello␤»
16:55 pmichaud rakudo:  sub prefix:<-+->($x) { 'hello' };   sub prefix:<+->($x) { 'world' };   say -+- 3;  say +- 3;
16:55 p6eval rakudo 0c7475: OUTPUT«hello␤world␤»
16:57 PerlJam rakudo++
17:01 rjh why is -+-3 = 3?
17:01 moritz_ because it's -(+(-3))
17:01 rjh ah :s
17:01 moritz_ and - * - = +
17:02 Jedai joined #perl6
17:02 moritz_ ouch, color codes aren't that easy to implement for the irclog
17:03 moritz_ because Bot::BasicBot first decodes the string as UTF-8
17:03 moritz_ and decoding ansi color codes into UTF-8 is bound to be a big FAIL
17:06 rfordinal left #perl6
17:09 * moritz_ blames TimToady for not introducing a good Str/Buf distinction in Perl 5 already ;-)
17:13 justatheory joined #perl6
17:21 justatheory TimToady needs strong coffee before dealing with me…
17:22 Pismire joined #perl6
17:29 jrtayloriv joined #perl6
17:38 mikehh_ joined #perl6
17:40 * Pismire is away: Zur Zeit nicht da.
17:45 hercynium joined #perl6
17:48 tann joined #perl6
17:53 tann rakudo: my @x = 1, 2; my @y = 3, 4;  @x == @y ?? say "yup" !! "nada";
17:53 p6eval rakudo 0c7475: OUTPUT«yup␤»
17:54 moritz_ rakudo: my @x = 1, 2; my @y = 3, 4; say @x ~~ @y ?? 'aye' !! 'nay';
17:54 p6eval rakudo 0c7475: OUTPUT«nay␤»
17:54 tann hmmm..
17:54 moritz_ == is strictly numerical comparison
17:54 tann isn't ~~ for strings?
17:55 moritz_ ~~ is for all sorts of comparisons
17:55 StephenPollei ~~ is smartmatch iirc
17:55 moritz_ including type checks, regex matches, and looking if the coffee is still hot ;-)
17:56 tann hot stuff
17:56 StephenPollei how do you use ~~ to check coffee temperature ??? ;-)
17:57 moritz_ StephenPollei: if $temperature-in-celsius ~~ 80..100 { ... }
17:58 StephenPollei OK didn't know it could do check if within range
17:58 moritz_ you could also use $temp ~~ { 80 <= $_ <= 100 }
17:59 StephenPollei rakudo: my $temp = 80.3; say $temp ~~ { 80 <= $_ <= 100 } ?? "Hot" !! "cold";
17:59 p6eval rakudo 0c7475: OUTPUT«Hot␤»
18:00 StephenPollei rakudo: my $temp = 80.3; say $temp ~~ 80..100 ?? "Hot" !! "cold";
18:00 p6eval rakudo 0c7475: OUTPUT«Hot␤»
18:00 pugs_svn r27470 | moritz++ | [irclog] translate selected ANSI color codes to CSS colors.
18:00 pugs_svn r27470 | moritz++ |
18:00 pugs_svn r27470 | moritz++ | (handling binary data that was accidentally decoded as UTF-8 is ugly. If I
18:00 pugs_svn r27470 | moritz++ | ever had doubts if we really need Perl 6, they are now officially gone)
18:00 tann groovy: ["Rod", "Carlos", "Chris"].findAll{it.size() <= 4}.each{println it}
18:00 tann p6: for <Rod Carlos Chris>.grep({ .chars <= 4}) { .say }
18:01 tann isn't that p6ish?
18:01 tann or something better?
18:01 moritz_ rakudo: .say for <Rod Carlos Chris>.grep: { .chars <= 4};
18:01 p6eval rakudo 0c7475: OUTPUT«Rod␤»
18:01 moritz_ rakudo: .say for <Rod Carlos Chris>.grep: *.chars <= 4; # probably doesn't work (yet?)
18:02 p6eval rakudo 0c7475: OUTPUT«get_number() not implemented in class 'Sub'␤in Main (/tmp/GmSQv370iz:2)␤»
18:02 tann moritz: so that ":" parenthesizes args?
18:02 moritz_ std:  .say for <Rod Carlos Chris>.grep: *.chars <= 4;
18:02 p6eval std 27469: OUTPUT«ok 00:02 36m␤»
18:02 moritz_ tann: the ':' says "everything left on this line is an argument to the method"
18:05 PerlJam moritz_: I read your sentence a couple of times before the semantics sunk in.  I was parsing "left" as a direction as in "left or right"
18:06 moritz_ "the rest of this line is ..." might be clearer
18:12 TimToady more like "the rest of this expression tighter than loose and precedence"
18:14 moritz_ TimToady: in the example above, should "*.chars <= 4" form a closure? or just the "*.chars" part?
18:16 TimToady I'd think that WhateverCode <= 4 should return another WhateverCode successfully
18:16 moritz_ ok, thanks
18:17 pmurias joined #perl6
18:20 pugs_svn r27471 | moritz++ | [t/spec] test that '*.uc eq "foo"' constructs something Callable
18:21 edpratomo joined #perl6
18:21 barney joined #perl6
18:23 KyleHa I'm going back to edit my keybag.t
18:24 * ruoso looking at google insights and realizes that India is the place where people are most looking for Perl...
18:27 moritz_ but are they actually looking for the programming language perl?
18:27 moritz_ or some other pe(a?)rls? ;-)
18:27 KyleHa We interviewed a guy from India today.  He pronounced it "pull".
18:30 PerlJam KyleHa: so you immediately stamped his application with "FAIL" because he couldn't pronounce it correctly.    ;-)
18:30 KyleHa I almost did that because his resume said "PERL".  But he's in for a QA position, and Perl will be the least of his worries.
18:31 tann rakudo: my @which = <perl pull pearl>; say @which.pull;
18:31 p6eval rakudo 0c7475: OUTPUT«Method 'pull' not found for invocant of class 'Perl6Array'␤»
18:31 TimToady for QA you want someone cruel
18:31 ruoso moritz_, it is certainly really perl related, from the search terms
18:31 tann rakudo: say <perl pull pearl>.pick(1)
18:32 p6eval rakudo 0c7475: OUTPUT«pearl␤»
18:32 tann :))
18:32 tann rakudo disagrees with TimToady
18:32 TimToady rakudo: say <perl pull perl>.pick
18:32 p6eval rakudo 0c7475: OUTPUT«pull␤»
18:32 TimToady also disagrees with itself
18:33 pmichaud rakudo can be very disagreeable.
18:33 pmichaud rakudo:  say <perl pull pearl>.pick eq <perl pull pearl>.pick
18:33 p6eval rakudo 0c7475: OUTPUT«0␤»
18:33 * ruoso just saw pozer's post... and is a bit worried on the way things are going...
18:34 PerlJam ruoso: which post is that?
18:35 ruoso http://use.perl.org/~pozer/journal/39242
18:35 zamolxes joined #perl6
18:36 Jedai joined #perl6
18:36 PerlJam ah, I haven't read use.perl today.
18:36 * PerlJam looks
18:37 pmurias ruoso: did you try running mildew without locking?
18:37 * ruoso trying now
18:39 PerlJam maybe it's just my bias, but everything I've read about this interaction between chromatic and rgs seems to have some heat on rgs' side and barely lukewarm on c's side.
18:39 pugs_svn r27472 | kyle++ | [t/spec] Change KeyBag tests to really treat it as a KeyHash of UInt
18:40 TimToady passion is good but escalation is bad
18:43 moritz_ PerlJam: constant dripping wears the stone, or so they say
18:43 alexn_org joined #perl6
18:43 moritz_ PerlJam: and I can very much understand rgs' feeling of being worn
18:44 moritz_ (though I can also understand c's position to a good extend)
18:44 pmichaud I find http://use.perl.org/comments​.pl?sid=43322&amp;cid=69340 to be very troubling.
18:44 PerlJam pm: I think that's just because rgs has gone "over the edge" wrt this topic.  He's need to reboot.
18:45 PerlJam s/He's need/He needs/
18:45 moritz_ aye, I agree with PerlJam here
18:45 moritz_ it's not his style, usually
18:45 moritz_ not at all.
18:45 pmichaud I'm willing (eager) to accept that.
18:46 pmichaud but for someone coming in late to this, it really looks like "either agree with me or shut up."
18:46 moritz_ a while back I followed p5p for about a year, and the blogs too, and never heard a harsh word by rgs
18:47 TimToady well, all pumpkings eventually reach the limits of their patience, one way or another...
18:47 PerlJam I rather it be "I'm tired" than "Gah! I'm outta here!" though
18:48 pmurias_ joined #perl6
18:48 KyleHa I look forward to this all being water under the bridge.
18:48 TimToady but the fact is, Perl 5 is basically in a no-win situation long term, which we first recognized in 2000
18:49 PerlJam TimToady: now you're alienating all the staunch perl 5 supporters  :)
18:49 TimToady I'm only alienating them "long term"
18:49 KyleHa I loving Perl 5 is wrong, I don't want to be right.  8-)
18:50 PerlJam Someone mentioned (probably on use.perl somewhere) that Nicholas tried regular release cycles a while back.  I'd like to know if that's true and if so, what became of it.
18:50 ruoso I don't really think the regular releases is the issue...
18:51 TimToady I love Perl 5 too, but it's stuck (culturally, and maybe technically) in a legacy trap, and the Perl 6 approach is the only long-term way out of that.
18:51 moritz_ ruoso: it's not about *regular*, but about being able to release when there's something to fix
18:52 TimToady Perl 5 is a velociraptor, but we need an acceloraptor now.
18:52 ruoso moritz_, the problem with releasing 5.10.1 with just a few fixes is that 5.10.1 is considered the actual 5.10 stable release
18:52 moritz_ ruoso: 5.10 has been out for 1.5 years or so, and the desparately awaited 5.10.1 is still not here
18:52 PerlJam especially when 5.10.0 is labeled as a "testing" release.
18:52 moritz_ ruoso: but it's been in OS distributions for quite some time, and they need to offer their users some fixes
18:52 ruoso moritz_, maybe it's the fact that I'm a debianer... but I don't think that's really that bad...
18:53 moritz_ 5.10.0 is in Debian stable. There are lots of fixes that should be in stable, too
18:54 ruoso I think that was a problem in the distributors... no vendor should have included 5.10.0... they shoul've waited for 5.10.1
18:54 PerlJam ruoso: they'd still be waiting.
18:54 ruoso 5.10.0 is "testing" after all
18:54 moritz_ ruoso: blamiing the distributors is easy. But I think it's also a problem with comunication
18:54 ruoso sure it is
18:55 moritz_ ruoso: the perl5100delta didn't say "this is a development release, don't ship it"
18:55 ruoso moritz_, it's long known that .0 releases are testing
18:55 moritz_ ruoso: is it? to whom? who documents that?
18:55 PerlJam If there were regular, quarterly releases, all of the fixes to 5.10 would be more widely available.  :)
18:56 moritz_ typically .even = stable, .odd = unstable or so
18:56 PerlJam moritz_: http://www.cpan.org/src/README.html
18:56 PerlJam moritz_: see the second paragraph
18:57 jrtayloriv joined #perl6
18:57 PerlJam (and then, of course, read the 3rd paragraph :)
18:57 moritz_ aye
18:58 moritz_ and I'm currently searching if that document is linked anywhere from within the source code of perl
18:58 sri_kraih quaterly releases might be hard with only volunteers working on a project
18:58 PerlJam sri_kraih: why?
18:58 sri_kraih hard to plan in advance
18:58 moritz_ sri_kraih: parrot manages monthly releases, even
18:58 moritz_ all volunteers, too
18:59 sri_kraih apart from parrot i don't know any open source projects that managed to do it
18:59 moritz_ constantly trying to increase the bus number has helped greatly
18:59 PerlJam sri_kraih: rakudo  :)
18:59 TimToady and it's not like p5 doesn't have a test suite...
18:59 sri_kraih ;p
18:59 pmurias parrot improves much faster than perl5
18:59 pmurias so it's much more worth releasing often
18:59 Pismire joined #perl6
18:59 TimToady it doesn't have the legacy impediment though
19:00 TimToady well, more than it should, but way less than p5
19:00 ruoso moritz_, pmurias, it's simply unfair to compare parrot with perl5
19:00 PerlJam sri_kraih: also, the exact time frame isn't important as long as the releases are timely enough.  ubuntu does a release every 6 months.  This seems to work fine.
19:00 sri_kraih somehow i'm always thinking debian vs ubuntu when i hear regular release cycle
19:00 ruoso since perl5 has way more corner cases to be aware of
19:00 TimToady (we hope)
19:00 moritz_ ruoso: I didn't start that comparison, I just countered the "it's not possible with all volunteers" argument.
19:00 ruoso PerlJam, it doesn't... really... ubuntu is way more unstable than it should because of that
19:01 PerlJam ruoso: never been a problem for me  :)
19:01 moritz_ TimToady: should %key_hash<non_exiting_key> be 0? or undef?
19:02 moritz_ erm, I meant a Keybag actually
19:02 TimToady I think 0 would be fine
19:02 moritz_ ok
19:02 PerlJam moritz_++ for getting back to Perl 6    :)
19:02 TimToady I wasn't gonna say it, in case meta discussion spoiled it... :)
19:03 moritz_ lol
19:03 sri_kraih don't get me wrong, i would love regular releases, just can't think of a volunteer driven project doing it while having to deal with backcompat issues
19:04 * ruoso back to testing mildew
19:04 pmichaud sri_kraih: it can be done (more)
19:04 pmichaud sri_kraih: one needs a good testing suite
19:04 TimToady check
19:04 pmichaud sri_kraih: and also to scale back the size of releases
19:04 * sri_kraih nods
19:04 pmichaud i.e., releases have to become more incremental, instead of "a whole bunch of stuff at once"
19:05 * ruoso having worked with legacy systems before, I understand how hard it can be to manage the risks of a new release
19:05 tann where to find the latest p6 synops? google gets perl.org as the 1 result, which then redirects to pugscode which points to some ugly plain text format...2nd result goes to perlcal and formatted in html but still quite ugly...shouldn't these synops get pulled down and formatted nicely on cpan for ease on the eye?
19:05 TimToady and perhaps establish a better deprecation policy
19:05 pmichaud Since yesterday I've been wondering how Microsoft's notion of "Patch Tuesday" corresponds with the idea of "regular release" (more)
19:05 moritz_ tann: http://perlcabal.org/syn/
19:05 pmichaud I mean, clearly Microsoft has as many backwards compatibility issues as Perl does, but they still manage to put out regular updates.
19:06 moritz_ tann: also the first link in the topic here tries to keep a list of updated links
19:06 pmichaud (granted, Microsoft is not a bunch of volunteers.  Still, I think it shows that we ought to be able to do something more regular)
19:06 TimToady tann: however, when we give a ref like S04:24 it's referring to the line number in the text file
19:06 ruoso pmichaud, er... how many months they take to solve a security issue? they do release in a regular basis, but it's not fresh code
19:06 pmichaud ruoso: still, they don't go for 1+ year without bugfixes.
19:07 pmichaud the question isn't whether every bug can be solved in a month.
19:07 ruoso pmichaud, again... the issue in 5.10.0 was the issue of releasing the first maint release
19:07 TimToady so if you check out the pugs repo, you can just grep the S's in the docs/Perl6/Spec director
19:07 TimToady s/$/y
19:07 TimToady s/$/\// :)
19:07 pmichaud the question is:  is it possible to issue releases at periodic intervals, where each new release contains some delta improvements over the previous one?
19:08 ruoso pmichaud, that doesn't fit with ".0 is a testing release"
19:08 ruoso maybe there had to be a 5.10.0.1
19:09 TimToady we could call it beta instead, now that google is releasing a few of those betans into the cybersphere
19:09 pmichaud ruoso: If the plan has been for 5.10.0 to spend two years in testing before receiving an update, then I guess I can agree with you.
19:09 ruoso sure... but the problem is all about managing risks with legacy code
19:09 pugs_svn r27473 | moritz++ | [t/spec] extend/improve keybag tests (KyleHa++)
19:09 pugs_svn r27473 | moritz++ |
19:09 pugs_svn r27473 | moritz++ | Mostly tries to remove testing interdependencies - when one step goes wrong,
19:09 pugs_svn r27473 | moritz++ | don't make the others autmatically fail. (This is achieved by rolling back
19:09 pugs_svn r27473 | moritz++ | to a defined state a few times)
19:09 pugs_svn r27473 | moritz++ |
19:09 pugs_svn r27473 | moritz++ | Also tests %key_bag<unknown> is a uint, namely 0
19:09 pmichaud ruoso: I think that's covered by my "Patch Tuesday" concept.
19:10 pmichaud Clearly they deal with legacy code as well.
19:10 ruoso pmichaud, I think that wasn't the plan... and maybe the early adoption of 5.10.0 from the vendors caused a noise that got into the way of 5.10.1
19:10 ruoso and then the escalation of the conflicts got in the way as well
19:11 pmichaud ruoso: Perhaps.  But blaming things on the vendors doesn't really solve the issue, either.  Ultimately the vendors are our distributors.
19:11 pugs_svn r27474 | lwall++ | [STD] improve error message on constant redeclaration
19:11 pugs_svn r27474 | lwall++ | [STD] switch tweaks to mandatory named params as current mmd spec requires
19:11 pmurias ruoso: do you think it would be a good idea to set up a plan/scheadule for the second part of gsoc?
19:11 ruoso of course... but blaming the pumpkins doesn't solve as well... it's more about risk management than simply bug fixiing
19:12 ruoso pmurias, yeah... it would be a cool thing to do...
19:12 ruoso pmurias, I think there's a blocker issue that we could work
19:12 pmichaud I'm not sure that I'm "blaming the pumpking".  (more)
19:12 ruoso pmurias, which is the reuse of constants in yeast functions
19:13 pmichaud I think I'm blaming the existing process/constraints, and saying that those need to be improved.  I'm only blaming the pumpking to the extent that process/constraints are his/her responsibility.
19:13 pmurias reuse of constant identifiers?
19:13 TimToady the basic underlying problem is that P5 requires a pumpking at all, due to original design infelicities
19:13 ruoso pmurias, I'd say not only constant identifiers, but literal values as well (ints, for instance)
19:14 ruoso and due to the amount of legacy it should support
19:15 pmichaud again, I posit that "legacy support" and "regular improvements" are not completely incompatible goals.
19:15 sjohnson what's a PumpKing?
19:15 pmurias ruoso: sysprof doesn't seem to notice the constant creation as a significant slowdown
19:15 PerlJam sjohnson: a mistake apparently.
19:16 sjohnson thought it was a male enlargement device
19:16 PerlJam sjohnson: the person responsible for making Perl 5 releases happen.  (over simplification perhaps)
19:16 sjohnson oh
19:16 pmichaud for some pumpkings, it is.  :-)
19:16 sjohnson it means patch pumpkin
19:16 ruoso pmurias, does sysprof points some other point for optimization?
19:16 sjohnson could the PumpKing also backport the trim function?
19:17 moritz_ sjohnson: he could, in theory
19:17 PerlJam sjohnson: the pumpking holds the patch pumpkin.  But the patch pumpkin is currently on the floor where it was dropped yesterday.
19:17 pmurias ruoso: it seems to be spread out
19:17 TimToady it wasn't dropped that hard
19:18 ruoso pmurias, it still takes 4.5 seconds to load the CORE... I can't see other reason for that amount of time
19:18 PerlJam it didn't break or anything, but it's still on the floor
19:18 pmichaud might have a few dents from where people have been kicking it around :-)
19:18 TimToady maybe there's a way to slice it up while nobody is holding it
19:19 sjohnson or carve a face into it
19:19 PerlJam pmichaud: you carved the perfect face for it one year, didn't you?
19:20 pmurias ruoso: simple things like a variable lookup cause lots of methods
19:20 pmurias s/methods/method calls
19:20 pmichaud PerlJam: you mean something like http://codeswimming.com/images/smiley_pumpkin.jpg  ?
19:20 PerlJam indeed
19:20 ruoso pmurias, but there aren't many lookups during the CORE loading, are there?
19:22 * pmurias counts...
19:23 pmurias 139158
19:26 sjohnson can I ask the pumpking to backport Perl 6's trim function into Perl 5?  I don't know how to get in contact with :[
19:26 sjohnson this is the holiest of all functions
19:27 moritz_ sjohnson: perl5-porters@perl.org. Good luck.
19:27 sjohnson thanks!!
19:27 ruoso pmurias, hmm... I wasn't expecting that many
19:28 sjohnson i think i can write a convincing argument
19:29 * ruoso has a meeting two minutes ago... need to leave
19:29 TimToady well, just don't get your ego tied to getting a positive response :)
19:30 pugs_svn r27475 | pmurias++ | [re-smop] add a script which analysis the result of SMOP_MOLD_DEBUG=1
19:31 TimToady especially when the current mood there is probably to circle the wagons
19:32 ruoso pmurias, Ok... I think you can work on optimizing that for a bit, it would be important to reduce the CORE loading to a time that is acceptable
19:32 ruoso 4.5 isn't
19:32 IllvilJa joined #perl6
19:32 ruoso 4.5 seconds, that is
19:32 ruoso I mean... 4.5 secons is not acceptable
19:32 * ruoso later &
19:33 sjohnson hmm
19:33 pmurias ruoso: did turning of locking speed things up?
19:33 pugs_svn r27476 | kyle++ | [t/spec] Remove redundant test.
19:33 sjohnson perhaps i need to use the Larry Walle pen name?
19:33 sjohnson or Larry Wahl
19:33 ruoso pmurias, yeah... it did... but then we'll need to find a way to support threading...
19:34 * pmichaud wonders if Larry Wall-e will be picking up our garbage and organizing the world long after we've departed.  :-)
19:34 moritz_ KyleHa: it seems my attention span was ading at the end of that file
19:34 * ruoso really needs to leave now
19:35 moritz_ pmichaud: btw I've re-added smartmach.t to spectest.data, after thorough review/revamp
19:35 moritz_ pmichaud: hope that's fine by you
19:35 * pmichaud wonders how strongly Disney/Pixar would come after him for using Wall-e in a lightning talk.
19:35 pmichaud moritz_: excellent by me, thanks for putting the good work into smartmatch.t
19:35 pmichaud moritz_++
19:36 moritz_ the structure is now much more aligned with the smart match table in S03
19:36 PerlJam pmichaud: just make sure it's Larry Wall-e and  there should be too much of a problem  :)
19:37 pmichaud moritz_: your actions with the test suite and spectest.data have all been right-on-target so far, so I'm very comfortable with any updates you choose to add
19:37 * PerlJam can't even type
19:37 moritz_ pmichaud: thank you.
19:38 pmichaud PerlJam: try odd typing, then
19:38 PerlJam my typing is odd enough sometimes
19:38 pmichaud I think it might not be your typing that is "odd enough"  :-P
19:38 TimToady trouble is that dratted "not" keeps turning even into odd and vice versa
19:39 * pmichaud wonders about "dratted not" operators...
19:39 PerlJam I think it's that despite being hot enough to approximate the bowels of hell outside, my office is actually cold.
19:39 TimToady it unblesses while negating
19:40 TimToady turns True into 0 and False into 1
19:40 sjohnson and hell freezes over
19:40 pmichaud so it's written as either +not or not+
19:40 TimToady How come nobody ever worries about hell freezing under?
19:41 pmichaud because that would be the "dratted not" form of frozen hell
19:41 he_ joined #perl6
19:41 sjohnson some climate change might do it some good
19:42 pmichaud "Well have some useful climate change legislation when hell freez...  Oh."
19:42 Pismire joined #perl6
19:42 pmichaud *We'll
19:42 pmichaud (darn, another good joke ruined by bad typing)
19:43 sjohnson it's cuter with "freez"
19:43 pmichaud right, I meant the "Well"  -> "We'll" part.
19:43 pmichaud The "freez" was intentional.
19:44 pugs_svn r27477 | moritz++ | [t/spec] unfudge passing TODO tests for rakudo
19:44 eternaleye last: (backlogging) try (1 .. $n).pick(*) for $n random-order numbers
19:44 sjohnson pmichaud: :)
19:45 pmichaud eternaleye: I think you mean    (1..*).pick($n)
19:45 eternaleye rakudo: say ~(1 .. 7).pick(*)
19:45 p6eval rakudo 0c7475: OUTPUT«1 2 4 6 3 7 5␤»
19:45 pmichaud rakudo:  my $n = 7;   say (1..1000).pick($n, :repl);
19:46 p6eval rakudo 0c7475:  ( no output )
19:46 pmichaud rakudo:  my $n = 7;   say (1..10).pick($n, :repl);
19:46 p6eval rakudo 0c7475: OUTPUT«7948571␤»
19:46 PerlJam :repl?
19:46 pmichaud pick with replacement
19:46 pmichaud i.e., so the same number can be picked more than once
19:46 pmichaud I saw that earlier this week and thought it should probably be :replace instead of :repl
19:47 M_o_C I just found out that S07-S10 spectests pass so fast, because there are no such tests ^.°
19:47 eternaleye pmichaud: That works
19:47 M_o_C s/are no such tests/aren't a lot of tests/
19:48 eternaleye For some reason, I read it as needing 1..$n in a random order
19:48 PerlJam +1 :replace
19:48 takadonet left #perl6
19:48 moritz_ +2 # incremental counting
19:48 pmichaud eternaleye: right, that's how I originally read it at first also :-)
19:52 StephenPollei joined #perl6
19:55 FurnaceBoy joined #perl6
19:58 meppl joined #perl6
20:02 Tene rakudo: say [~] (0,1).pick(50, :repl)
20:02 p6eval rakudo 0c7475: OUTPUT«11010011101111001010001​011110110000001101100111011␤»
20:02 sbp :repl?
20:03 Tene 19:46 <@PerlJam> :repl?
20:03 Tene 19:46 <@pmichaud> pick with replacement
20:03 Tene 19:46 <@pmichaud> i.e., so the same number can be picked more than once
20:10 justatheory joined #perl6
20:11 tann :repl looks like cryptic and ugly... would like to see :replace as pm said
20:12 sbp oh sorry, heh
20:13 masak joined #perl6
20:13 Tene sbp: I copied out of entertainment at seeing the same question asked.
20:13 Tene hi masak
20:13 masak oh hai
20:13 Tene OH HAI!!
20:13 masak \o/
20:13 sbp good evidence that it isn't particularly self-documenting
20:13 Tene srsly
20:14 Tene maybe it should just be :ɹ
20:14 sbp that looks like a man trying to lick his right eyeball
20:14 tann but his tongue is too short
20:14 sbp not sure that's the image that perl6 wants to convey to the world
20:14 Tene we need to buy that man tounge-extenders.
20:15 sbp that would be :_ɹ perhaps
20:15 tann p6= smileys
20:15 IllvilJa left #perl6
20:16 huf_ joined #perl6
20:18 estrabd joined #perl6
20:18 masak I see you've been talking about dropping pumkins while I was gone.
20:19 masak I wonder how many channels has this kind of discussion about the events in the Perl 5 world.
20:19 masak I imagine we're not the only one, but perhaps our outlook is a bit unique, since we're doing Perl 6 here.
20:21 jan_ joined #perl6
20:24 skids joined #perl6
20:27 lisppaste3 skids pasted "looking at parameter names from the spec" at http://paste.lisp.org/display/83194
20:28 masak skids++
20:28 moritz_ masak: I've seen similar discussions on #p5p and #toolchain, they also have some unique views ;-)
20:28 masak moritz_: ok. nice to know.
20:28 PerlJam what's #toolchain exactly?
20:28 masak the CPAN toolchain, right?
20:29 moritz_ right.
20:29 PerlJam ok
20:31 elmex joined #perl6
20:32 masak skids: you've put a lot of effort on that list, I can see. kudos.
20:32 exodist joined #perl6
20:33 moritz_ skids_: feel free to send such things to p6l. In nopastes they get lost after a few days.
20:33 masak indeed.
20:35 PerlJam yeah, skids++ and what moritz_ said
20:35 pmichaud masak: (pumpkins)  yes.  I'm interested in what lessons can be learned for p6.
20:36 alester joined #perl6
20:36 masak pmichaud: "don't make the core an unchangeable mess"?
20:36 pmichaud masak: well, I think that's only part of it.
20:36 skids .oO(the world needs a Gene Simmons smiley)
20:36 masak oh, definitely.
20:37 KyleHa my $core is Immutable;
20:37 masak but I also think that the p5 community would be happier if it were not the case.
20:38 masak for what it's worth, I think monthly releases are really good, and I don't give much weight to the arguments I've heard against them.
20:38 pmichaud there was a time when Parrot's core was an unchangeable mess.  Moving to a regular release cycle was one of the things that I think helped us move out of that.  (I grant the counter argument that Parrot's "legacy" is orders of magnitude less than Perl 5's)
20:39 pmichaud a regular release cycle doesn't instantly solve the problem of ugly code, but it provides a regular "heart beat" for development, planning, and making sure that you constantly have something that is in fact releaseable
20:40 masak aye
20:41 pmichaud I will be very interested to see how things go when Rakudo moves just a bit further away from its current "development release" status.
20:41 masak also, that heart beat brings interested spectators, which might graduate into users and contributors.
20:42 moritz_ speaking of which, I think it's time to increase the rakudo bus number, and let others do releases. I volunteer as long as I don't have to fix C stuff to do that ;-)
20:42 PerlJam in that sense rgs (and others) are right that the regular release schedule is more about marketing
20:42 tann so, all of dan sugalski's code was eventually rewrote *his own joke* :)
20:42 pmichaud I think marketing is indeed a piece of regular release schedule, but that's by no means the whole of it.
20:42 tann rewritten
20:42 pmichaud The regular release schedule also provides a structure for the people working on the codebase as well.
20:43 masak pmichaud: agree.
20:43 pmichaud I know that at least Jonathan and I benefit hugely from Rakudo's monthly release schedule.
20:43 masak pmichaud: that's blogging material, you know.
20:43 PerlJam I get the impression that marketing is a negative in the p5p community  (but, again, I have forsaken regular reading of p5p long ago and only visit occasionally)
20:43 pmichaud masak: yes, I know.  But I've also not wanted to blog into the middle of the current firestorm.
20:44 masak pmichaud: I can see that, yes.
20:44 tann pm: is there any measurement of the amount of increasing interests in rakudo/p6?
20:44 * moritz_ feels the same as pmichaud
20:44 pmichaud tann: that's a very good question
20:44 moritz_ tann: there is, but I don't think it's quantified (or easily quantifiable)
20:44 pmichaud tann: anecdotally I can point to increases, but I don't have a specific measurement.
20:44 moritz_ things you could meassure:
20:44 pmichaud perhaps counting blog posts referencing rakudo
20:44 masak tann: on a subjective level, there has been an increased interest.
20:45 moritz_ (1) question on irc/mailing list/blog posts
20:45 moritz_ (2) number of authors who send patches
20:45 moritz_ (3) number of projects usiing rakudo
20:45 moritz_ (see proto's project.list for example)
20:45 tann i've tried to gather all blogs mentioning rakudo/p6/parrot and submitted their urls to google and other search engines
20:45 pmichaud moritz_: (bus number of releases) -- funny you should mention that.  It's been a topic in the Perl 6 design meetings, and I'm committed to make that happen (more)
20:46 pmichaud for a variety of reasons, I think I should go ahead and do the July release.
20:46 moritz_ tann: I hope you know about planetsix.perl.org?
20:46 masak one could perhaps do a simple frequency count of posts in the ironman perl feed that mention 'rakudo' or 'perl 6'
20:46 pmichaud But I'd like someone else to do the releases after that.
20:46 tann moritz: i do
20:46 tann moritz: and your sexy blog
20:46 moritz_ ;-)
20:46 pmichaud more to the point, I *think* that it would be entirely feasible for people to independently prove that they could do a release
20:46 pmichaud (more)
20:47 pmichaud last night I was thinking about "how can I get someone else to do a release", and the github answer stares me in the face
20:47 pmichaud so, let's suppose that you want to prove to yourself that you can make a rakudo release
20:47 pmichaud the steps are:
20:47 pmichaud (1) fork the rakudo github repository
20:47 pmichaud (2) follow the steps in docs/release_guide.pod, substituting your own github repo clone for the rakudo one
20:48 pmichaud (3) skip the steps that say "post messages to mailing lists, use.perl, etc."
20:48 pmichaud (4) profit
20:48 masak that sounds like a fun thing to try.
20:48 pmichaud (5) drop the repo when you're done.
20:48 pmichaud After I thought of that, I was thinking of writing a blog post inviting people to try it.  :-)
20:48 * PerlJam nominates masak for the Aug release :)
20:48 KyleHa I agree.  Sounds like fun.
20:48 pmichaud (and will probably do that here shortly)
20:48 masak maybe I will try that for the July release.
20:49 pmichaud seriously, though, you shouldn't have to wait for a release date to try it.
20:49 [particle] well, that's a different definition of "there will be more than one perl 6"
20:49 pmichaud It can be done at any time.  :-)
20:49 KyleHa If we learn of deficiencies in the release_guide.pod, we can patch it.
20:49 pmichaud KyleHa: exactly
20:49 moritz_ there's one item in release_guide.pod that worries me: "Continue adjusting things until make spectest passes as expected.
20:49 moritz_ "
20:49 pmichaud and it only takes about 90 minutes.
20:49 moritz_ that might be *very* non-trivial.
20:49 pmichaud less if you skip the "make spectest" part :-)
20:50 masak no, I think the 'make spectest' step is important.
20:50 pmichaud moritz_: it might, but this is why the release guide says to start doing those tests two days before the actual release date
20:50 masak it involves judgement calls that have to be made before a release.
20:51 pmichaud the judgement call usually comes down to "fix the bug" or "regress the spectest"
20:51 pmichaud either are valid answers.
20:51 [particle] that's why we machines still need humans
20:51 masak aye.
20:51 moritz_ does 'make release' include the spectests?
20:51 pmichaud ues/
20:51 pmichaud yes.
20:51 moritz_ nice
20:51 pmichaud in the sense that it embeds the current set of spectests into the release tarball
20:52 moritz_ ah, found the first inconsitency ;-)
20:52 moritz_ release_guide.pod says "make release VERSION=YYYY-MM"
20:52 moritz_ and Makefile: [ -n "$(VERSION)" ] || ( echo "\nTry 'make release VERSION=yyyymm'\n\n"; exit 1 )
20:52 pmichaud heh
20:52 pmichaud bug!
20:52 pmichaud feel free to patch/fix.
20:52 moritz_ I guess the guide is right?
20:52 pmichaud (correct is YYYYMM)
20:52 moritz_ ok
20:52 pmichaud oh wait
20:52 pmichaud (thinking)
20:53 pmichaud whichever one is the valid ISO date is the correct one.
20:53 pmichaud I'm pretty sure the Makefile must be correct then.
20:53 pmichaud so yes, YYYYMM is correct, guide is wrong.
20:53 moritz_ the files on github all include the -
20:53 pmichaud oh
20:53 pmichaud then YYYY-MM is correct, makefile is wrong.
20:53 masak *phew*
20:54 masak proto is downstream of that convention.
20:54 [particle] Although the standard allows both the YYYY-MM-DD and YYYYMMDD formats for complete calendar date representations, if the day [DD] is omitted then only the YYYY-MM format is allowed. By disallowing dates of the form YYYYMM, the standard avoids confusion with the truncated representation YYMMDD (still often used).
20:54 pmichaud right.
20:54 [particle] http://en.wikipedia.org/wiki/ISO_8601
20:54 StephenPollei date --iso-8601 2009-07-07
20:54 pmichaud YYYY-MM
20:54 pmichaud StephenPollei: both 2009-07-07 and 20090707 are valid ISO forms
20:55 pmichaud but 2009-07 is the only valid year+month form.
20:55 StephenPollei yes was just showing what one command does by default
20:55 pmichaud StephenPollei: ah, thanks.
20:55 tann is there any plan or someone already working on threads/concurrency for rakudo based on parrot's thread primitives without waiting for the synop?
20:55 StephenPollei 8601 has other ways as well like by week number or julian number iirc
20:56 pmichaud anyway, if anyone wants to try to make a release, I'd be very happy to hear the outcome.
20:56 pmichaud and take suggestions for improving release_guide.pod
20:56 pmichaud then I'll be doing a call for release managers :-)
20:57 masak pmichaud: you should definitely blog about the dry-run idea.
20:58 pmichaud masak: will do.  I have a lot on my plate for the next 4 weeks.  :-)
20:58 masak aye, know the feeling.
20:58 christine joined #perl6
20:59 dalek rakudo: 19b8db2 | moritz++ |  (2 files):
20:59 dalek rakudo: sync Makefile and release_guide.pod about version formats.
20:59 dalek rakudo: Also includes a POD fix.
20:59 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/1​9b8db2f544de3961b4a75ebe8ef4d51271d51b6
21:06 jrtayloriv joined #perl6
21:10 KyleHa left #perl6
21:16 Whiteknight joined #perl6
21:22 stepnem joined #perl6
21:42 molaf joined #perl6
21:42 gbacon joined #perl6
21:42 kidd_ joined #perl6
21:45 justatheory joined #perl6
21:46 PZt joined #perl6
22:12 Whiteknight joined #perl6
22:29 mikehh__ joined #perl6
22:34 spx2 joined #perl6
22:35 justatheory Will the first stable release of Perl6 be 1.0 or 6.0?
22:35 moritz_ yes.
22:36 moritz_ (but I don't know which)
22:36 moritz_ or better "no"
22:36 justatheory grrr
22:36 moritz_ because I don't know if the language will have a release, actually.
22:36 moritz_ implementations will have, possibly
22:36 justatheory Well, there will be version numbers.
22:37 moritz_ I think the language will be "Perl 6.0.0"
22:37 spx2 can I use map or reduce in Perl 6 on two arrays in parallel ?
22:37 spx2 I think I saw this somewhere but can't remember where
22:37 spx2 I'm writing my first p6 code
22:37 spx2 so that's why I'm asking
22:38 justatheory moritz_: Okay, thanks.
22:38 moritz_ spx2: depends on what you mean by "in parallel"
22:38 * spx2 is reading the exegesis
22:38 spx2 moritz_: like for @a;@b -> $x,$y {...}
22:38 moritz_ spx2: rakudo doesn't implement any "real" parallelism yet (threads, forks)
22:38 moritz_ spx2: don't. read the synopsis, they are much more up-to-date
22:38 spx2 ok will do
22:39 moritz_ if they have the same length, zip (or Z) is good
22:39 TimToady or do you mean something like map -> $a, $b { stuff }, @a Z @b?
22:39 moritz_ rakudo: for 1..3 Z <a b c> -> $a, $b { say "$a $b" }
22:39 p6eval rakudo 19b8db: OUTPUT«1 a␤2 b␤3 c␤»
22:39 spx2 TimToady: that's absolutely fantastic !
22:40 spx2 TimToady: thanks!
22:40 Limbic_Region joined #perl6
22:40 spx2 I like this thing , I always wanted this kind of stuff in p5
22:41 TimToady hard to have it in p5 where the loop variable syntax is hardwired, rather than falling out of parameter passsing naturally
22:41 TimToady s/sss/ss/
22:41 spx2 I have an old problem in p5
22:42 spx2 I'd like to describe it and aask how it behaves in p6
22:42 spx2 I have a map on some array
22:42 spx2 and the subroutine of the map pushes values in that same array
22:42 spx2 will the map run forever or not ?
22:42 spx2 in p5 the answer was no , it won't run forever , and the values pushed in the map subroutine didn't have effect
22:43 spx2 it would feel natural that they would be there
22:43 spx2 and that the loop would run forever
22:44 TimToady there's nothing in p6 currently that would prevent it from running forever, assuming the iterator that the Array gives to the list doesn't just copy everything over like p5
22:44 TimToady however, relying on that might be erroneous
22:45 TimToady since p6 lazy lists are allowed to do things in batches, which might include the whole array, triggering exhaustion
22:45 Limbic_Region and can't you force it to be eager?
22:45 TimToady you'd want some kind of strictly lazy pragma or context to guarantee that
22:46 TimToady or some way of interpolating an array that treats the end as a temporary barrier and retries
22:46 Limbic_Region @foo.eager.map{} or some such
22:46 spx2 TimToady: so why does the lazy thing prohibit it running forever ?
22:46 lambdabot Unknown command, try @list
22:46 spx2 Limbic_Region: dunno what eager is ..
22:46 spx2 Limbic_Region: is it documented anywhere?
22:47 Limbic_Region spx2 - that was a question not a statement - see the question mark
22:47 Limbic_Region [18:45] <Limbic_Region> and can't you force it to be eager?
22:47 Limbic_Region spx2 - in perl5, the list passed to map is taken all at once before the block (it isn't a subroutine as you called it) is evaluated
22:47 Limbic_Region this is the reason that modifying the sub in the block doesn't have any affect
22:48 Limbic_Region in perl6
22:48 Limbic_Region the array acts like an iterator pulling off values as they are asked for
22:48 Limbic_Region this is called lazy
22:48 Limbic_Region what TimToady is saying is that this needn't be done 1 at a time
22:48 Limbic_Region it is allowed to do things in batches
22:49 Limbic_Region as such, it is still possible to terminate but not guaranteed
22:49 TimToady see S07 for the current definition of lazy vs eager
22:49 jrtayloriv joined #perl6
22:49 Limbic_Region I was asking if you can turn off laziness and force the array to be eager
22:49 moritz_ sure you can
22:49 TimToady eager @foo
22:49 moritz_ eager @array
22:49 Limbic_Region which would restore the p5 behavior you are used to
22:49 TimToady I don't think he wants that
22:49 Limbic_Region well - I knew that is the way it was years ago when I still paid attention to the ever changing spec
22:50 Limbic_Region TimToady - oh yes, you are right
22:50 Limbic_Region I didn't read far enough down the question
22:50 spx2 I'd be interested in this feature because ... it has practical applications
22:50 spx2 like imagine an Event Queue
22:50 spx2 you push stuff in some for (@events){ push @events,stuff }
22:51 spx2 or in a map
22:51 spx2 and that's pretty useful
22:51 moritz_ rakudo: my @a = 1, 2; @a.map: { @a.push: 4 }; say "alive"
22:51 p6eval rakudo 19b8db: OUTPUT«alive␤»
22:52 moritz_ (but rakudo doesn't do any lazyness yet)
22:52 tann moritz: still failing at the ... attempt?
22:53 moritz_ tann: infix:<...> is in rakudo (in its basic, eager form)
22:53 TimToady I suspect that ... might guarantee strict laziness
22:53 TimToady eventually
22:53 moritz_ spx2: btw you have other means to do event queues in Perl 6
22:53 moritz_ for example
22:54 moritz_ my @queue := gather { take <initial values;> while (@queue) { ... take $new_items } }
22:54 TimToady generally we intend to represent event queues with feed operators, which are like pipes
22:54 moritz_ ah, I never think in terms of those, because nobody implements them :/
22:55 pmichaud I've started to think in terms of those, as I've started to look at implementing them :-)
22:55 TimToady I noticed that S07 is guaranteeing strict laziness on feeds now
22:55 TimToady not sure what I think about that
22:56 moritz_ pmichaud: shouldn't you be thinking of LTM? ;-)
22:56 pmichaud moritz_: I have to think of a lot of things in parallel :-)
22:56 TimToady thinking about LTM is a parallel operation :)
22:58 TimToady maybe if hyper is super-eager, hypo should be super-lazy :)
22:58 TimToady "Give that man a hypo, he's too active!"
22:59 spx2 LTM = ?
22:59 TimToady longest token match
23:00 tann makes sense...hypo might be easily mispronounced as hippo
23:00 TimToady well, English speakers mispronounce it in any case
23:01 TimToady from the standpoint of classical greek, anyway
23:01 spx2 moritz_: what language should I use if I wanted that lazy thing to work /
23:01 spx2 ?
23:01 [particle] sure, and we spell it wrong, too.
23:01 TimToady υ is pronounced more like German ü
23:02 * spx2 is reading some blogs and gets the feeling of a ruby-perl hate relationship
23:02 TimToady Matz and I get along great
23:02 spx2 :)
23:02 spx2 nice to know
23:02 tann hate is right...there's no love in this brutal computing world
23:03 spx2 yeah , sitting with your hands on a keyboard is really hardcore and brutal
23:03 spx2 :)
23:03 TimToady spx2: maybe you should read some different blogs :)
23:04 FCO joined #perl6
23:04 tann spx2: you left out the coffee mug
23:04 tann can be quite a dangerous weapon
23:04 pmichaud TimToady: maybe you should blog about your undying love for Ruby :)
23:04 [particle] please don't upset the pythons
23:05 TimToady I skipped the blogosphere for hardcore IRC
23:05 rjbs joined #perl6
23:05 rjbs Is there a difference between 6 and 6|6 ?
23:05 TimToady if you want my blog, grep the irc logs :)
23:05 pmichaud rjbs: the latter is a junction, yes.
23:06 rjbs Yeah, that was a dumb question, let me rephrase:
23:06 rjbs apart from one being a junction of two ints, are there interesting differences?
23:06 spx2 yeah read about the jon orwant mug thing , that was really exccentric
23:06 moritz_ rakudo: sub a(Junction $x) { say "alive" }; a(6|6); a(6)
23:06 p6eval rakudo 19b8db: OUTPUT«alive␤Parameter type check failed; expected Junction, but got Int for $x in call to a␤in sub a (/tmp/V8m5fEqMTK:2)␤called from Main (/tmp/V8m5fEqMTK:2)␤»
23:06 rjbs I'm ashamed to admit that I remember this question but not the earlier question, today, that led me to it.
23:07 moritz_ rjbs: for most use cases that end in a boolean they are the same.
23:07 tann rakudo:  @irc.grep: { /timtoady/ }
23:07 p6eval rakudo 19b8db: OUTPUT«Symbol '@irc' not predeclared in <anonymous> (/tmp/0vWFsMeaxy:2)␤in Main (src/gen_setting.pm:3340)␤»
23:07 rjbs rakudo: sub a(Int $x) { say "alive" }; a(6|6);
23:07 p6eval rakudo 19b8db: OUTPUT«alive␤»
23:07 [particle] yipes!
23:07 rjbs Aha!  Maybe that's actually want I wanted to know.  Thanks for jogging my memory.
23:07 TimToady dup suppression
23:08 dalek rakudo: 4549f3c | pmichaud++ | docs/release_guide.pod:
23:08 dalek rakudo: Minor update to docs for parrot release number in build/PARROT_REVISION.
23:08 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/4​549f3cee9274406e0d455ea673885ee8d4916b8
23:08 TimToady rakudo: say (6|6).perl
23:08 moritz_ http://irclog.perlgeek.de/​perl6/2009-03-18#i_997787 # my favourite irc "blog" by TimToady ;-)
23:08 p6eval rakudo 19b8db: OUTPUT«any(6)␤»
23:08 moritz_ rakudo: say 6|6
23:08 TimToady moritz_: it should explain LTM
23:08 p6eval rakudo 19b8db: OUTPUT«Junction()<0xb6b84198>␤»
23:09 moritz_ TimToady: even better, it's something social ;-)
23:09 spx2 TimToady: what synopsis do I find the "map" block in ?
23:10 moritz_ S32/Containers probably
23:10 nacho_ joined #perl6
23:10 rjbs so the check done by signatures is distributive over the junction, then
23:10 moritz_ oh wait, do you mean "map" or blocks?
23:10 * spx2 is checking out S32
23:11 spx2 moritz_: I mean this  map -> $x,$y { $x/$y }, @a Z @b;
23:11 moritz_ rjbs: if the parameter type is derived from Any, the junction autothreads
23:11 moritz_ spx2: 'map' is in S32, '-> $x, $y { ... }' in S04, infix:<Z> in S03
23:11 moritz_ and @a in S02 and S09 ;-)
23:12 rjbs What document describes the standard type hierarchy?
23:12 tann moritz_: which line numbers? :D
23:12 moritz_ tann: grep/ack will tell you.
23:12 spx2 I get the feeling that the -> $x,$y {...} is actually defining a sub with parameters $x and $y right ?
23:12 spx2 anonymous sub that is
23:12 moritz_ spx2: a block, not a sub; but they are rather similar
23:12 tann moritz_: *attempted joke*
23:13 rjbs Looks like S14 will be that someday.
23:13 rjbs Ok, thanks, back to p5 now!
23:13 [particle] buubot: spack type hierarchy
23:13 buubot Couldn't match input.
23:13 [particle] buubot: spack hierarchy
23:13 buubot Couldn't match input.
23:13 moritz_ tann: I know, but taking it serious nonetheless requires much less intelligence at 1am
23:13 moritz_ [particle]: it means that buubot doesn't implement "spack"
23:13 moritz_ not that no matches were found
23:14 [particle] well, she used to
23:14 spx2 I like the fact that germans don't have a sense of humour if that means moritz_ is helping me learn p6
23:15 tann spx2: wikipedia is all you need to know about p6
23:16 spx2 tann: I think I want to know more
23:16 tann rumors are that larry learn p6 there so i heard
23:16 moritz_ again an attempt at humor?
23:16 moritz_ (re wikipedia)
23:16 TimToady moritz_: see, even someone old like you can learn new things :)
23:17 moritz_ so I'm officialy "old guard" now? ;-)
23:19 tann rakudo: my Int|Str|Num $ver; $ver = 1.0; say $ver;
23:19 p6eval rakudo 19b8db: OUTPUT«Malformed declaration at line 2, near "Int|Str|Nu"␤in Main (src/gen_setting.pm:3340)␤»
23:20 moritz_ NYI
23:20 [particle] not specified in perl 6.0.0 i thought
23:21 moritz_ not *required*, but specified at the very least
23:21 TimToady it's also a bit of an ambiguity, since | and & potentially mean something else there already
23:25 TimToady so for now you need to define a subset type to do anything fancy
23:25 ihrd joined #perl6
23:27 spx2 so.. I hear threading primitives in Parrot are not passing any tests ATM
23:30 moritz_ spx2: don't hear. RUn the smokes yourself.
23:30 moritz_ t/pmc/parrotrunningthread.t ................. ok
23:30 moritz_ t/pmc/parrotthread.t ........................ ok
23:31 moritz_ t/pmc/threads.t ............................. ok
23:31 rjbs left #perl6
23:31 s1n moritz_: are you familiar with jnthn's effort to rip out trait_auxilliary (spelling?)?
23:32 mizioumt left #perl6
23:32 moritz_ s1n: not really.
23:32 s1n rakudo: role xxx { multi trait_mod:<is>(Code $block, xxx $trait) is export { ... } }
23:32 p6eval rakudo 19b8db: OUTPUT«No applicable candidates found to dispatch to for 'trait_mod:is'␤in Main (/tmp/zwyH4RO5M6:2)␤»
23:33 s1n that has me stumped
23:34 s1n i updated rakudo and it looks like trait_mod either doesn't work or works differently than i expect
23:35 s1n i'm fishing for ideas
23:35 moritz_ [X] ask jnthn
23:40 zamolxes joined #perl6
23:46 s1n jnthn: ^^^
23:53 ihrd left #perl6
23:58 justatheory joined #perl6
23:59 pmichaud draft blog post for "Rakudo release managers":  http://gist.github.com/142466    Comments and suggestions welcomed.

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

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs