»ö« | perl6-projects.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot: perl6: say 3;' | irclog: irc.pugscode.org/ | UTF-8 is our friend!
Set by moritz_ on 27 June 2009.
00:18 ihrd left
s1n frew_: ping 00:19
00:19 whoppix joined 00:21 skids joined
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
any ideas?
00:29 icwiener_ left
Tene s1n: post the code? 00:29
frew_ s1n: I can look but these other guys are a lot more likely to have ideas 00:38
:-)
00:46 nacho_ left 00:52 jauaor joined
TimToady note the order of arguments changed also 00:52
s1n: ^^
s1n TimToady: ahh, that's probably it 00:53
TimToady: how did the order change?
frew_: time for another dallas.p6m 00:54
TimToady the thing being declared now goes first
s1n TimToady: before the trait? (at least that's what i'm getting from the spec) 00:55
TimToady yes
first is usually before everything else :)
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)␤»
s1n rakudo: role xxx { multi trait_auxillary:<is>($block, xxx $trait, $arg) is export { ... } }
p6eval rakudo 99ad1e: ( no output )
s1n is that wrong? i thought i saw commits about how trait_auxillary was completely removed
frew_ s1n: I'm down 01:02
s1n frew_: i think i'm going to stick with the "second tuesday of the month" schedule unless someone bitches 01:03
frew_ Tuesday's work for me and my coworkers 01:07
s1n i need to check my fall schedule though... 01:11
they work for me, barely 01:12
i have a 5.30-6.45 class
01:22 KyleHa joined
frew_ I presume that's the same for Thursday? 01:27
01:30 frew|work joined, frew|work left
s1n frew_: yes 01:32
frew_ ok..
well, I'd imagine that if Tuesday is too bad for you Mon would be the best
I know people have stuff Wed and Friday is kindav a given for other things in general 01:33
s1n i can do it, but i'll be a little late 01:38
frew_ What time do we start again? 01:39
s1n (not this month yet)
7
frew_ ah, then you won't be too late
we can just chat till you get there 01:40
s1n it's fine, it's only for a few months :)
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:42
oops, trait_auxillary:<is> 01:43
was that changed to a different trait_mod?
01:56 cdarroch left 01:58 Molaf left, Molaf joined, SmokeMachine joined
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:04
02:12 alester joined 02:21 FCO left 02:27 stepnem left
pugs_svn r27461 | s1n++ | [spec] trait_auxillary was replaced with traid_mod. 02:27
02:28 last left 02:30 stepnem joined, stepnem left 02:36 stepnem joined, stepnem left 02:40 stepnem joined 02:43 tann left 02:45 beggars joined 02:47 molaf_x joined, sri_kraih left
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. 02:55
frew_ rakudo: 5/140 03:06
p6eval rakudo 99ad1e: ( no output )
frew_ rakudo: say 5/140 03:07
p6eval rakudo 99ad1e: OUTPUT«0.0357142857142857␤»
frew_ rakudo: say 140/5
p6eval rakudo 99ad1e: OUTPUT«28␤»
KyleHa rakudo: say (5/140).WHAT 03:11
p6eval rakudo 99ad1e: OUTPUT«Num()␤»
TimToady %set{$key}++ adds the key if it's not already there, and %set{$key}-- would delete it 03:12
that's because for sets the value is constrained to a boolean
for bags, with integer values, the key is deleted when the value gets back down to 0 03:13
and the integer tells you how many dups of that key there are
KyleHa TimToady: Thanks! 03:15
03:16 Limbic_Region left
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:17
KyleHa Aha. 03:19
So I'd create a Set or Bag using a List, I guess? It would take the list and disorder it.
03:20 donaldh left, donaldh joined 03:21 daemon left 03:24 molaf_x left 03:28 FurnaceBoy left
literal there's planet.perl.org and perlspere.net 03:31
lambdabot literal: You have 3 new messages. '/msg lambdabot @messages' to read them.
literal perlsphere.net # oh, and I was replying to something in the buffer
03:39 Kentrak joined
Kentrak Q regarding .push container method in p6, if anyone is game. 03:40
03:43 cotto left 03:44 cotto joined
pugs_svn r27462 | kyle++ | [t/spec] keybag.t needs review 03:48
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:49
literal returning the count? 03:50
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
p6eval rakudo 99ad1e: OUTPUT«4␤»
literal hm
rakudo: my @a = <a b c>; say ~@a.push(1); 03:52
p6eval rakudo 99ad1e: OUTPUT«4␤»
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
literal rakudo: my @a = <a b c>; say @a.=push(1);
p6eval rakudo 99ad1e: OUTPUT«4␤»
literal rakudo: my @a = <a b c>; say @a; 03:53
p6eval rakudo 99ad1e: OUTPUT«abc␤»
dalek ok: e30e5a5 | (Hinrik Örn Sigurðsson)++ | (2 files):
Make target_index() sort the function list
ok: f7c6085 | (Hinrik Örn Sigurðsson)++ | (4 files):
Bump version to 0.11
ok: 3191567 | (Hinrik Örn Sigurðsson)++ | share/Spec/S (32 files):
Sync synopses
03:54 skids left
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:54
literal Kentrak: what do you mean? they seem to be failing here too 03:56
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) 03:57
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.
Kentrak thanks
KyleHa (Yes, send the patch to [email@hidden.address] with [PATCH] in the subject. The README has stuff about patch formatting.) 04:08
04:10 beggars left
Kentrak ok, submitted. Thanks everyone for the guidance, this was my first Rakudo patch! 04:12
KyleHa Yay Kentrak! 04:13
Kentrak hmm, I guess I should write a test for this and submit that as well... 04:14
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.
KyleHa I'm writing tests for that already. 04:16
04:16 lambdabot left
Kentrak Oh, okay. I'll leave it to you then. :) 04:16
04:19 lambdabot joined
pugs_svn r27463 | kyle++ | [t/spec] S32-array/push.t tests for .push returning modified array 04:22
KyleHa Kentrak: You can read the new tests here: dev.pugscode.org/changeset/27463 04:23
04:27 justatheory_ left
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:28
KyleHa Sitting in the rakudo dir, I run it as: perl t/harness --fudge --verbosity=1 t/spec/S32-array/push.t 04:30
The fudge is the important part.
After fudging, the named array stuff that's killing you will be skipped.
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:37 alester left, KyleHa left 04:39 Kentrak left 04:53 justatheory joined 04:59 justatheory left 05:06 azawawi joined
azawawi hi 05:06
05:06 azawawi left 05:22 elmex_ joined 05:23 elmex left, elmex_ is now known as elmex 05:25 tann joined 05:33 cbk joined 05:38 eMaX_ joined 05:39 frew_ left 05:46 jrockway left, jrockway joined 05:48 kimtaro joined 05:51 DemoFreak joined 05:53 alanhaggai joined 06:13 cbk left 06:21 synth left, rfordinal left, rfordinal joined 06:32 frew_ joined 06:33 azawawi joined 06:41 rfordinal left
azawawi ping 06:42
06:43 iblechbot joined
moritz_ pong -B 06:43
rakudo: class A { }; class B does A { }; say "alive" 06:53
p6eval rakudo 99ad1e: OUTPUT«Method '!select' not found for invocant of class ''␤»
moritz_ submits bug 06:55
"less than awesome" error message
06:56 payload left
pugs_svn r27464 | moritz++ | [t/spec] more smartmatch test and reviews 07:03
azawawi moritz_: did u see the grok-powered Padre Perl 6 help dialog? :) 07:05
moritz_ azawawi: aye. Way cool.
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:06
s/pictures/images/ but you get the point 07:07
07:08 rfordinal joined
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:08
azawawi takes a look at u4x 07:09
07:13 dakkar joined
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 07:20 donaldh left, donaldh joined
azawawi moritz_: so every perl 6 builtin will be in S32-category right? 07:22
moritz_ azawawi: no.
there's still an S29, and I don't think it's going away entirely 07:23
azawawi moritz_: i see 07:25
07:29 azawawi left 07:33 frew_ left
Matt-W Morning 07:38
07:46 payload joined 07:49 alanhaggai left 07:57 meppl joined
pugs_svn r27465 | moritz++ | [t/spec] unfudge Hash ~~ Pair tests for Rakudo 08:02
dalek kudo: 9f63647 | moritz++ | src/setting/Pair.pm:
Implement Hash ~~ Pair smartmatching
08:07
08:08 amoc joined 08:09 ejs joined
Matt-W moritz_: So %hash ~~ $pair smartmatches the value with that key against the pair's value? 08:11
moritz_ Matt-W: aye, that's what S03 says 08:13
Matt-W cool
smartmatch is extremely smart 08:14
I like the implementation too, nice and simple
multimethods do make things like that nice and easy
moritz_ that's why it's not called dumbmatch :-)
aye, and adding the stuff to the setting is really fun.
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:21 ejs left
moritz_ rakudo: my %h = (a => 1, b => 2); say %h.contains('a') 08:26
p6eval rakudo 99ad1e: OUTPUT«1␤» 08:27
moritz_ rakudo: my %h = (a => 1, b => 2); say %h.contains('c')
p6eval rakudo 99ad1e: OUTPUT«0␤»
Matt-W yay 08:34
it works
moritz_ but I don't know if it's specced 08:35
the smartmatch table used to contain .contains, but it was meant more as a description, not as a spec 08:36
08:42 Pismire joined, clkao left 08:43 hcchien left
Matt-W hmm 08:46
because come to think of it, don't we have :exists
moritz_ rakudo: my %h = (a => 1, b => 2); say %h.exists('b') 08:47
p6eval rakudo 9f6364: OUTPUT«1␤»
moritz_ rakudo: my %h = (a => 1, b => 2); say %h.exists('c')
p6eval rakudo 9f6364: OUTPUT«0␤»
08:49 rgrau joined, rgrau is now known as kidd_
pugs_svn r27466 | moritz++ | [t/spec] rakudo unfudging; s/method/submethod/ in an integration test 08:55
dalek kudo: 7203e4b | moritz++ | t/spectest.data:
re-add smartmatch.t to spectest.data

average much more correct than our average test file. This commit also removes S12-attributes/class2.t which has been merged into class.t
08:58
kudo: e249a62 | moritz++ | src/ (2 files):
move Hash.ACCEPTS to the setting, add more variants

understand the magic with hash_ACCEPTS that the anonymous sub in src/classes/Hash.pir:32-41 does, but the spectest didn't throw up any black smoke.
08:59
09:02 pmurias joined
jnthn morning, 6folk 09:02
moritz_ oh hai jnthn
pmurias hi
lambdabot pmurias: You have 3 new messages. '/msg lambdabot @messages' to read them.
09:03 payload left
pmurias why does lambdabot mention the same messages multiple times? 09:04
moritz_ it shouldn't, but it's b0rked
sometimes @clear messages help
09:10 tann left
Matt-W hi jnthn 09:12
jnthn Matt-W: hi :) 09:16
moritz_ jnthn: if you have some spare tuits it would be nice if you looked over my last commit 09:25
Matt-W has actually understood a couple of recent commits to rakudo 09:30
admittedly, one of those was the one I wrote...
jnthn It's always a nice feeling when one understands their own patches. 09:32
09:32 ejs joined
jnthn moritz_: Doesn't look wrong...will check into that curious :subid though. 09:32
Matt-W jnthn: yes, but I understood masak's fmt patch too 09:40
jnthn :-) 09:41
Matt-W it's another step on the road to more useful contributions 09:44
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
09:45 masak joined
jnthn lolitsmasak 09:46
masak \o/
09:53 M_o_C joined 09:54 agentzh left
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 09:57
jnthn Yes, some bits can have quite complex interplay. 10:00
10:01 hanekomu joined
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
So I think 'hey that looks far too simple'
10:02 PZt left
jnthn Yes, PCT often does some of the "heavy lifting". :-) 10:03
10:04 icwiener joined, hercynium left
Matt-W So I think I'll leave method call refactoring to you :) 10:09
jnthn Aww! 10:10
But it's fun...you'd love it! ;-)
10:10 zamolxes joined
Matt-W possibly, if I had time to learn how 10:12
jnthn :-) 10:17
Well, you're working on Form.
I'm happy not to have to figure that bit out. :-)
Matt-W the text bit wasn't too bad 10:21
it's the numbers that are driving me crazy
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. :-)
Matt-W they're both very clever 10:23
very, very clever
jnthn Indeed. 10:24
"Insanely good" still contains the word "insane" though. :-D
Matt-W oh yes
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
masak I should read more Damian-authored code. it seems that people have scary things to day about it, and that intrigues me. :)
Matt-W go read Perl6::Form 10:26
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
masak I've skimmed it not so long ago.
but I'll read it again.
Matt-W I think Damian's code would be vastly improved by some thoughtful commenting
But I'm not trying to do the same implementation anyway, I'm exploiting Perl 6 for all it's worth :) 10:27
10:28 last joined
masak jnthn: seen Ovid's email to p6l? 10:28
Matt-W is awaiting a reply to that rather interesting question 10:29
jnthn masak: aye 10:31
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'␤»
masak close, but no cigar.
jnthn That's the Right Answer. 10:34
But I need to patch Rakudo before I give it.
;-)
masak jnthn++
next question: Aristotle has been pressing me for Buf features. use.perl.org/comments.pl?sid=43314&cid=69326 -- so what exactly does 'a stringish view of an array of integers' mean? 10:35
will I be able to do $buf ~~ /foo/ ? 10:36
jnthn Does a Buf know it's encoding/charset? 10:37
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 amoc left
pmurias gprof-- # can't profile shared libraries and doesn't document it 10:39
rjh I would hope the latter 10:44
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.
Matt-W definitely not 10:45
if you want to treat it as a string, I'd say you should turn it into a Str with an appropriate encoding
rjh yep
Matt-W isn't the entire point that a byte stream and a string are semantically different 10:46
10:46 kimtaro_ joined
rjh tell that to C programmers 10:46
10:46 amoc joined
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 ejs left
masak Jon Lang's reply to p6l appears to treat the role methods as subs... 10:48
jnthn That'll not fly 10:51
for one because you're not passing an invocant.
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.
wtf
doesn't have an...
lolcode has destroyed my english
masak "isn't hasing" is cute! :) 10:55
that's the kind of plasticity I miss in natural languages.
Matt-W that did actually make perfect sense 10:56
and english does mutate over time
masak it gets especially interesting when you start to think about the differens between 'hasing' and 'having'.
Matt-W the spelling 'thru' is becoming more common
masak languages evolve.
jnthn Aye.
jnthn ponders that he should some day try porting his sigil-tags templated engine to Perl 6. 10:57
s/templated/templating/
masak oh noes, now he's blogging about it too: use.perl.org/~Ovid/journal/39241
jnthn Then everyone can tell me how insane I was. 10:58
10:58 kane_ joined
Matt-W someone just tell him the Right Way and say it's NYI 10:59
me wonders...
jnthn masak: at least he didn't blog teh wrong answer ;-)
Matt-W class PracticalJoke does Bomb<fuse> does Spouse<explode>
masak jnthn: it's only a matter of time before someone does... :/
Matt-W hmm 11:00
no
that's horrible now I see it written down
please ignore me
masak /ignore Matt-W
jnthn masak: yes yes, will do soon
erm, masak even
GAH!!
matt-w even
jnthn types it rather than tab compltes...
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
Matt-W is trying to get openssl to build on a solaris system which appears to be completely fucked up
11:03 kimtaro left 11:11 pmurias left 11:20 donaldh left 11:21 donaldh joined
masak Matt-W: I've now skimmed through the &segment sub. I see what you mean. 11:21
then again, it's not _that_ bad, is it? I mean, it's obviously tidy code, well-indented.
and there are some comments.
Matt-W yes but what does it DO 11:22
nowhere does it explain what its overall purpose is
masak it... segments things...
Matt-W what goes in, what comes out?
what's the relationship between those things
I find these pieces of information very important
masak it's only being called in one place, &form.
Matt-W clearly the whole process revolves around it
masak the variable storing the result is called $currformat. 11:23
so my guess is that &segment does some initial format parsing or something.
11:23 ruoso left
Matt-W I think it's something to do with comprehending the format picture 11:23
perhaps a similar thing that I do with Form::Grammar and Form::Actions and Form::Field
masak maybe. 11:24
Matt-W -> band practice & 11:25
11:31 azawawi joined
azawawi . 11:32
std: .
p6eval std 27466: OUTPUT«##### PARSE FAILED #####␤Can't understand next input--giving up at /tmp/zCjeKdbdpN line 1:␤------> .␤ expecting any of:␤ prefix or noun␤ statement end␤ statement list␤ whitespace␤FAILED 00:02 36m␤»
11:39 azawawi left 11:43 kane_ left
pugs_svn r27467 | moritz++ | [t/spec] push and unshift return the array, not .elems 11:48
masak rakudo: my @a = 1..5; say (push @a, 6).perl 11:49
p6eval rakudo e249a6: OUTPUT«6␤»
masak moritz_: so, something that needs patching, then?
jnthn je uz patch v lisku 11:50
moritz_ I just pushed a patch
jnthn erm. There's already a patch on the list.
:-)
moritz_ I took the one from RT
tested it
adjusted the tests
and pushed half a minute ago :-)
jnthn fixes RT 66978
masak jnthn: 'v lisku'? was that a typo? 11:51
jnthn yes 11:52
masak moritz_++
jnthn s/listu/listku
masak jnthn: ok. phew. :)
jnthn That the whole thing was a language-o.
s/That/But/
gah
Maybe it's a good job I'm only working half the day!
dalek kudo: 40251e4 | (Kevan Benson)++ | src/classes/Array.pir:
Patch to change bahavior of .unshift to return modified array, not number of elements
kudo: 8a786f4 | (Kevan Benson)++ | src/classes/Array.pir:
Patch to change bahavior of .push to return modified array, not number of elements
masak <3 Signed-off-by 11:53
11:54 clkao joined 11:55 clkao left, clkao joined
masak ingy: ping 11:58
jnthn
.oO( pingy )
12:02
12:05 kidd_ left, Molaf left
takadonet morning all 12:09
masak takadonet: morning.
moritz_ good localtime()
rakudo: say time()
p6eval rakudo e249a6: OUTPUT«1246968587.9968␤»
moritz_ rakudo: say time()
p6eval rakudo e249a6: OUTPUT«1246968599.0826␤»
masak that late already!? 12:10
moritz_ aye 12:11
masak the so-called "shitstorm" seems to continue: use.perl.org/~pozer/journal/39242 12:12
takadonet ...
nice response masak 12:13
masak I hope it wasn't too fanboi-ish.
I hardly know chromatic, but I admire his writing.
takadonet me too
Got the rest of our perl programmers at work to read his blog 12:14
use.perl.org/~Ovid/journal/39241?from=rss anyone have an answer for him? 12:15
jnthn yeah, but I posted it on p6l :-) 12:16
moritz_ has no idea
jnthn masak: I've met chromatic. Nice guy. 12:17
moritz_ www.nntp.perl.org/group/perl.perl6.language/ says "4 messages", but when I click on it I only see one, no thread view or so
masak jnthn: does he live under a bridge? 12:18
jnthn masak: I like his writing too, but can also see how some people could take it the wrong way.
masak jnthn: yes, I can too.
jnthn masak: But after meeting him in person, I was pretty convinced that his intentions are very sound.
masak I can see that they are, too.
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.
it's some kind of bad mojo feedback cycle.
takadonet does anyone know where and when YAPC::NA::2010 will be? 12:20
jnthn Columbus last I read. 12:22
Don't ask me where in the US that is though. :-)
takadonet I don't know either. From Canada here :) 12:23
allbery_b *which* Columbus? I think there's one in every state
(that said, I suspect Columbus, OH. do cows write perl? :) 12:24
moritz_ these non-creative americans
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...
*reproduces
but for that I'd have to query a class and all of its super classes for attributes 12:26
12:26 ihrd joined 12:27 ihrd left
jnthn moritz_: That is one of the missing bits int eh introspection interface at the moment, I'm afraid 12:28
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".
moritz_ oh, cool
jnthn So far I sorted out .^methods, .WALK and .^parents
.^attributes and .^roles are to do. 12:30
12:30 kimtaro_ left
jnthn Anyway, I want to get my Hague Grant wrapped up before September. 12:30
Otherwise, I'll have to eat Ramen every day in Japan. ;-)
moritz_ great news for me :-) 12:31
news.perlfoundation.org/2009/06/yap...umbus.html btw 12:33
takadonet thanks moritz 12:34
Matt-W argh. Anybody know a good way to get rid of an earworm 12:41
moritz_ replace it by a more persitent one :-) 12:42
like, you can't travel to scotland for more than to weeks without having "scotland the brave" as one :-) 12:43
Matt-W urgh. pipe band at the waddington air show played that 12:44
not only are they playing the worst kind of bagpipe, they're also playing one of the most predictable tunes on them
moritz_ as a piper you can't omit it :/ 12:45
dalek kudo: 0c7475a | moritz++ | README:
[README] changed some quotes to C<...> POD markup

the official test suite, we import all of official test suite
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
I've not got that
Matt-W is trying to purge it with Depeche Mode
trouble is, it's something we were doing with the band, so it's got higher staying power
I'll try wise guys if this doesn't work 12:48
12:52 ruoso joined, jdv79 joined
jdv79 can a role be applied to a metaclass object? 12:53
moritz_ I'd say so
Matt-W it's an object
so I'd say yes
moritz_ a metaclass object is just an ordinary object
(with itself as a metaclass, iirc)
Matt-W since you can apply roles to code objects, so why not metaclass objects?
moritz_: that sounds familiar 12:54
jnthn ok folks, I'm have slovak class now and then amd going to Vienna.pm right afterwards
jdv79 i don't know:) are there any examples? i haven't seen aby.
jnthn so, gone for the day
have fun :-)
jdv79 *any
Matt-W bye jnthn
12:54 sri_kraih joined
takadonet cya jnthn 12:54
moritz_ "have the appropriate amount of fun"
Matt-W hmm what's the metaclass accessor? Class.HOW? 12:55
moritz_ Matt-W: aye
jdv79 or .^ i think
moritz_ HOW = Higher Order Workings
Matt-W jdv79: that'd be for calling metaclass methods
jdv79 oh
Matt-W so you'd want something like
MyClass.HOW does MyRole;
moritz_ $a.^b(c) is the same as $a.HOW.b($a, c)
Matt-W (that's a guess)
jdv79 i'll just try it then, thanks.
moritz_ it doesn't work yet in rakudo, I fear 12:56
12:57 ruoso left 12:58 ruoso joined
Matt-W If it doesn't, file a bug... 12:59
12:59 skids joined
moritz_ rakudo: class A { }; say A.new.HOW.PARROT; 13:00
p6eval rakudo 0c7475: OUTPUT«Method 'PARROT' not found for invocant of class 'P6metaclass'␤»
moritz_ rakudo: class A { }; say A.new.HOW;
p6eval rakudo 0c7475: OUTPUT«␤»
13:00 synth joined
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)␤»
moritz_ rakudo: class P6metaclass is also { method argl { say 'foo' } }; class A { }; A.HOW.argl
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)␤»
moritz_ rakudo: class P6metaclass:from<parrot> is also { method argl { say 'foo' } }; class A { }; A.HOW.argl
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
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)␤»
moritz_ ah well.
13:02 pmurias joined 13:03 mizioumt joined
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␤»
Lorn rakudo: .print for <a b c> X 1, 2; 13:10
p6eval rakudo 0c7475: OUTPUT«a1a2b1b2c1c2»
Lorn rakudo: .print for <a b c> X <1 2 3>;
p6eval rakudo 0c7475: OUTPUT«a1a2a3b1b2b3c1c2c3»
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 :)
map { rand() }, ^$N
lisppaste3 Lorn pasted "error when try to compile re-smop" at paste.lisp.org/display/83168
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.
masak last: because it ignores the contents if the array it iterates over? 13:14
last masak: yes
masak last: well, so does the gather.
I guess it's a matter of taste, but I have no trouble using a map construct and completely disregarding $_ in the block. 13:15
moritz_ same here 13:16
last masak: It certainly is handy doing it that way.
masak last: I use it when initializing the board in Druid.
moritz_ it's very perlish to abuse syntax :-)
masak I don't even consider it abuse. 13:17
13:17 pmurias left
Matt-W also, the gather way will be lazy one day 13:18
and that might be desirable behaviour
is map going to be as lazy?
masak last: github.com/masak/druid/blob/b2f6c89...ame.pm#L42
Matt-W: I believe so.
PerlJam everything will be lazy to a degree
13:19 amoc__ joined
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)
last masak: I see.
Thanks, gang.
masak renormalist: to a degree. :)
awrgh, tab complete fail.
PerlJam: to a degree. :) 13:20
ruoso Lorn, have you tried to rm -rf build; make?
masak oh, I had forgotten that I had already Podded Druid.
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 amoc left
Lorn ruoso: you are welcome :P 13:21
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)
Lorn ruoso: same error with r m-rf build; make
ruoso Lorn, you should find p5interpreter.c in build/p5/src/ 13:23
13:25 DC joined, jdv79 left, jdv79 joined, lisppaste3 left 13:26 lisppaste3 joined
Lorn ruoso: i found it, the line 185 has a odd string "mold_run_coro = ;" 13:26
ruoso Lorn, hmm... it means a mold is failing in the compilation 13:27
masak rakudo: my Array[Int] @a 13:28
p6eval rakudo 0c7475: OUTPUT«Use of type object as value␤»
masak what does that error message mean?
moritz_ rakudo: my Array[Int] @a; @a[0] = 3; 13:29
13:29 pmurias joined
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];
p6eval rakudo 0c7475: OUTPUT«Use of type object as value␤Assignment type check failed; expected Failure, but got Array␤in Main (/tmp/Rmfjs0WyqL:2)␤»
ruoso Lorn, do you have a full pugs checkout?
masak moritz_: seems it can't handle that syntax yet.
Lorn ruoso: yes, a i did a svn up today
moritz_ masak: it means that Array[Int] is parsed wrongly
masak moritz_: aye. 13:30
I see it now.
ruoso Lorn, of the whole repo?
pmurias ruoso: hi
Lorn ruoso: yes
ruoso hi pmurias...
pmurias, any idea of what might be causing Lorn's problem?
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
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 = ;"
ruoso Lorn, does it output any warning afterwards
?
Lorn ruoso: Use of uninitialized value in print at tools/ri line 354.
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> {...}
p6eval std 27467: OUTPUT«ok 00:03 37m␤»
ruoso jnthn, ^^ 13:35
Matt-W moritz_: excellent. Glad to hear we get lazy map 13:37
13:40 ejs joined
masak ruoso: or maybe :excluding, which also isn't an adverb but somehow reads slightly better. 13:40
pmurias why is nopaste not working?
masak ruoso: what if one would want to do the opposite, only import one or a few methods?
13:40 iblechbot left
ruoso masak, :except 13:40
pmurias paste.lisp.org is not working actually 13:41
masak ruoso: aye. best so far.
ruoso masak, :only
masak ruoso: I thought :only too, but it's not as excellent as :except
lisppaste3 moritz_ pasted "just a test" at paste.lisp.org/display/83169
pmurias Lorn: try this ./m0ld_exe <<< 'my $interpreter; my $coro; my $back; my $void = $coro."set_back"($back); my $void = $interpreter."goto"($coro);'
moritz_ pmurias: it works for me
lisppaste3 pmurias pasted "Lorn: try this" at paste.lisp.org/display/83170
pmurias moritz_: forgot the captcha-- 13:42
Lorn pmurias: no error, seems works fine
ruoso masak, er... they are the opposite
masak ruoso: I know that.
ruoso ah... ok
masak I was talking about their suitability.
:restricted-to or :namely or :want are all more precise, but not good names.
moritz_ :want-but-you-won't-get-it 13:43
PerlJam Is someone updating S14 to include these niceties?
masak PerlJam: are you volunteering? :) 13:44
ruoso it seems that this kind of adverbs have been rejected in the past... I'm not aware of the reason
moritz_ I think so far it's been just pondering, not deciding
13:44 exodist joined, exodist left
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>
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.
pmurias Lorn: is nothing modified (try svn status)?
masak ruoso: but they both lacksomething that :except has.
PerlJam: yes, sure.
PerlJam I think ruby tends to use only :only and :except 13:46
it's been a while since I've looked at ruby though
masak maybe there's no better fit than :only 13:47
I'd like a word that expresses :but-only
PerlJam :!only :)
pmurias ruoso: gprof seems to be old & broken (doesn't handle shared libraries) so i'm trying my luck with sysprof
ruoso ah... right... 13:48
btw.... gsoc mid-term evaluation is up
masak PerlJam: no, that's "not only" :)
pmurias ruoso: do i need to do anything?
PerlJam starts looking for a unicode symbol that looks like a butt 13:49
masak
.oO( :except and :incept )
Lorn pmurias: svn status show a lot of '?' maybe because, they create new file in the .
ruoso masak, :except and :excerpt 13:50
masak :P
pmurias Lorn: ? is harmless
pugs_svn r27468 | skids++ | [S32/Numeric] correct parameter name in atan2 method form 13:52
13:57 kimtaro joined
masak :except and :confine 13:57
or :except and :limit 13:58
13:58 KyleHa joined
masak but both :confine and :limit would really need a -to added to them. 13:58
14:00 huf left 14:03 DC left 14:06 mizioumt1 joined, agentzh joined 14:08 beggars joined 14:09 Jedai left 14:14 pmurias left 14:17 Jedai joined
masak :prefer has the one-wordness that I'm after, but it's too vague... 14:17
ruoso still like the :excerpt idea ;)
jdv79 is there an import() like scheme for classes? 14:21
14:21 amoc__ left
moritz_ jdv79: what do you mean? 14:22
jdv79 since it looks like packages and classes are seperate now
ruoso jdv79, import doesn't really make sense for a Class
only for a package
KyleHa Where's there enough documentation to write spec tests for Implementation types? I see only a little blurb in S02.
jdv79 i need a one-shot so i can apply a role to the metaclass obj
like Moose::Exporter does
i could hack it up with a flag i guess 14:23
moritz_ KyleHa: I don't know, I just know how thei are used 14:24
my $foo is WeirdScalar
jdv79 oh, scratch that. i think i'm unconfused now. i know how to do it.
moritz_ I guess WeirdScalar has to define FETCH and STORE
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.
moritz_ KyleHa: think of them as tied objects; it's quite similar, I think
KyleHa Yeah, I do think of them that way. I just would like something in writing to back me up. 8-) 14:26
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:27
moritz_ except that by writing specs you change the reality 14:28
but it is indeed a topic that needs more spec and test coverage 14:29
KyleHa I am the cause and the effect!
I've also been wondering lately about how to test "non-awesome error message" bugs.
masak KyleHa: no need to, I think. 14:30
KyleHa: it's not part of the spec, and so not part of the spectest suite.
KyleHa Hmmm. OK, that makes some sense.
masak KyleHa: but it's still a rakudobug, because we want Rakudo to be awesome.
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
p6eval std 27468: OUTPUT«ok 00:03 40m␤»
moritz_ KyleHa++
masak: it should be both part of the spec and the test suite
masak moritz_: what, awesome error messages? 14:32
moritz_: you don't think it's a bit implementation-dependent?
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.
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
and I don't want code like
masak moritz_: yes, me too.
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:34 mizioumt left
masak ouch. 14:35
ruoso jdv79, right... the way you implement that would be to define a custom Package implementation
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.
ruoso and that Package would have a custom EXPORTALL
masak KyleHa: or @*INC :)
14:35 justatheory joined
moritz_ or whatever mechanism we end up with to locate our libraries. 14:35
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.
I say let the messages be completely up to the implementations.
but I'd love to see a good exception hierarchy.
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␤»
masak in class hierarchies, I usually equate "good" and "simple".
ruoso jdv79, ^^
14:37 pmurias joined
moritz_ masak: I'm sure it won't be a strict hierarchy 14:37
masak: it might end up being a bunch of roles 14:38
masak fair enough.
a... structure of some kind.
moritz_ so that you can ask things like $! ~~ X::IO or $! ~~ X::Syntax or so
masak aye.
14:38 pfenwick joined
jdv79 ruoso: interesting tack 14:39
KyleHa I think this commit needs smarter eyeballs than mine: dev.pugscode.org/browser/t/spec/S02...?rev=27462
moritz_ ruoso: did you think about implementation types more closely? 14:40
ruoso moritz_, what do you mean?
moritz_ ruoso: like, how a defintion of one would look like in Perl 6 14:41
ruoso you mean like ClassHOW?
moritz_ ruoso: I mean something like a custom ScalarContainer class
ruoso jdv79, you might also define a new package_decl keyword and associate it with a different metaclass
moritz_ ruoso: or a Set or a KeyBag or whatever
KyleHa: it kinda looks inconsistent (more) 14:42
%h = (a => 1, b => 0, c => 2); is %h.elems, 3, 'Inititalization worked';
14:42 cls_bsd left
moritz_ and then you set %h<c> to zero... 14:42
ruoso moritz_, well... that's why I'm so harsh about APIs
moritz_ and expect it to have one element
ruoso moritz_, because in SMOP/mildew all I have so far are custom implementations of the Perl 6 types 14:43
I still don't have any of the types bootstrapped
jdv79 i want to do this to a class though
not a package
ruoso jdv79, A class declares both a package and a type
jdv79 i could do it in a BUILD with a flag
moritz_ KyleHa: so I think it should be 2 elems from the start, if 0-items automaticallz vanish
KyleHa moritz_: Yeah. 'c' alone was two elements before...two of 'c' in the bag.
ruoso jdv79, by default methods are not installed in the package
moritz_ KyleHa: ah, I mis-remembered the spec, wait a sec..
TimToady OH NOES TEH AMNESS 14:44
jdv79 i have to read up on p6 again
KyleHa moritz_: You may have it right, actually.
ruoso jdv79, what exactly do you want to do?
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?"
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
14:45 pmurias left
jdv79 i haven't seen a clear complete p6 MOP spec yet. does it exist? 14:45
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?
moritz_ (%h being a KeyBag)
KyleHa moritz_: OK, then I need to fix my tests. Thanks!
ruoso jdv79, not complete yet, no... but there are some sketches in svn.pugscode.org/pugs/v6/smop/src-s...lassHOW.pm
KyleHa (And I think KeyBags are kind of silly--until I change my mind.)
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?
KyleHa: I just want to note that I'm very much interested in that area of Perl 6.
moritz_ KyleHa: oh, and ~@list actually includes spaces
TimToady it's okay if KeyHashes present a different API from normal Hashes
moritz_ rakudo: say ~<a b>
p6eval rakudo 0c7475: OUTPUT«a b␤»
TimToady as in, .elems could keep the sum of the values
moritz_ TimToady: but shouldn't it be called .sum then? 14:48
masak
.oO( !Liskov )
TimToady and list() could spit out the keys of a set without the => 1
jdv79 are there method metaclasses in p6?
TimToady could have .members, I suppose
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?
TimToady certainly Set(@keys) should assume all the keys are being set to 1
s/keys/values
the main point of KeyHashes is that they autodelete when --> 0 14:50
ruoso jdv79, what do you mean by method metaclass?
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 Jedai left
ruoso Set would still need some work regarding set theory and DWIM, isn't it? 14:51
masak ruoso: aye. 14:52
TimToady please don't use the word "theory" while my coffee is still brewing o_O
masak ruoso: I planned to do that this summer in a grant, but plans changed. :)
ruoso almost lunch time here ;)
moritz_ it could also use some implementation and tests :-)
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.
jdv79 in moose we have a metaobjects that represent a method
we can mixin on that to add attrs to the method for decoration
moritz_ KyleHa: agreed 14:54
ruoso jdv79, right... that's not a metaobject, it's a plain object...
jdv79, the method is an object too
moritz_ KyleHa: the only automatic exposition is that some keys will disappear if you have 0 associated with it
ruoso jdv79, and you can compose a role to that as well
masak KyleHa: the values could be useful in many cases.
jdv79 i would like to compose at the class level though
KyleHa masak: I think they should be available.
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.
ruoso jdv79, the method object is not clonned to each instance of the class
TimToady there's always an explicit .pairs for that
ruoso jdv79, so once you compose the role into the method object, every instance will be affected
jdv79 what is the scope of this method object?
TimToady I don't see composing roles into method objects as particularly useful 14:57
it sounds like a form of monkey_typing
ruoso rakudo: role Bla { method postcircumfix:<( )> { say "Hey! "; nextsame; say "Let's go!" } }; class Foo { our method bar { say "Ho!" } }; Foo.bar
p6eval rakudo 0c7475: OUTPUT«Ho!␤»
jdv79 its how i add the xunit type to the method in Test::Able
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
p6eval rakudo 0c7475: OUTPUT«Attempt to use rebless_subclass where the new class was not a subclass␤in Main (/tmp/vdJbczMX7h:2)␤»
jdv79 maybe there's a better way to go about it entirely in p6
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
jdv79 its not behavior - its just state.
Matt-W also, traits are probably a better way to go for static data once we have them in rakudo
ruoso TimToady, it makes sense in frameworks like Catalyst....
method foo() does Bla {...} 14:59
method foo() does Chained</categories> {...}
std: class Bar { method foo() does Chained</categories> {...} }
Matt-W method foo() is chained...
p6eval std 27468: OUTPUT«##### PARSE FAILED #####␤Malformed block at /tmp/nY7Rvw7Wt2 line 1:␤------> class Bar { method foo() does Chained</categories> {...} }␤ expecting any of:␤ blockoid␤ method_def␤ terminator␤ trait␤ whitespace␤FAILED 00:02 37m␤»
Tene ruoso: in Catalyst, those would be subs, not methods...
TimToady certainly they make more sense as declartions than as mixins
moritz_ ruoso: looks like an aplication for traits 15:00
Tene and I'd do those with traits.
jdv79 what would those alternatives look like?
ruoso isn't "does" a trait?
TimToady but even in the case of 'is chained', it's still really passive data that the parser uses
Tene sub foo() is Chained</categories> {...}
moritz_ ruoso: uhm, maybe it is
TimToady or the dispatcher, so some external agency 15:02
s/so/or/
bleah
my eyes aren't opposite the sockets
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
KyleHa moritz_: I was going to say the same thing, but now I'm not so sure. 15:04
moritz_: I very much appreciate your attention to my attempts at testing.
moritz_ KyleHa: and I very much appreciate your testing work.
KyleHa *bow* 15:05
ruoso jdv79, "declaration" here is meant as oposed to "runtime mix-in" 15:06
jdv79, &foo does Bla is a runtime mixin
jdv79 and those are expressed as "traits"?
ruoso yes
moritz_ uhm, traits are compile-time.
jdv79 that's fine
hence, declaration i guess.
ruoso yep 15:07
jdv79 jonathan says they don't work yet in rakudo so i have time before i can port:)
nice since its the summer and all 15:08
moritz_ jdv79: what do you want to port?
15:08 hanekomu left
jdv79 Test::Able 15:08
patrick said the best help he can get is people writing stuff in p6 so i'll port that. 15:09
15:09 mizioumt1 left 15:10 ejs left
moritz_ he's right 15:10
masak jdv79++
jdv79: are you planning to go github, or similar? 15:11
15:11 nihiliad joined
moritz_ so basically Test::Able creates a class when you use() it and call the startup() etc subs? 15:11
15:12 beggars left
ruoso jdv79, but I'm not sure you need to mess with the metaclass to port Test::Able 15:13
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"
masak jdv79: let me know, and I'll add you to projects.list in proto.
jdv79 masak: ok 15:15
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
the method decoration stuff looks like traits
moritz_ you can simply return a Test::Able object that does the dispatch things at runtime 15:17
15:19 Pismire left 15:20 donaldh left, donaldh joined 15:22 pmurias joined
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
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
moritz_ TimToady: is that a feature request? :-) 15:27
TimToady it ain't a spec
15:27 payload joined
TimToady except in the sense of speculation 15:28
moritz_ where are the color codes generated? 15:30
masak I'd like to point out that color codes aren't universal across IRC clients. 15:31
and last time someone tried, it was more annoying to those without color support than it benefitted those with.
pmurias ruoso: without the locking it's like twice as fast 15:32
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 :-)
masak ah. webpage is fine. 15:34
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 15:41 molaf joined
pmurias ruoso: could you check what's the effect on your machine? 15:41
15:44 xinming left, molaf left 15:45 rfordinal joined 15:47 molaf joined 15:48 molaf left 15:49 masak left
pmichaud Good morning, #perl6 15:54
takadonet morning pmichaud 15:55
15:57 pmurias left 16:00 pmurias joined 16:04 pmurias left, pmurias joined 16:06 donaldh left 16:07 hanekomu joined 16:09 Pismire joined 16:11 dakkar left, pfenwick left
moritz_ std: 2 + + 4 16:17
p6eval std 27469: OUTPUT«ok 00:02 38m␤»
moritz_ uhm.
std: 2 ++ 4
p6eval std 27469: OUTPUT«ok 00:02 38m␤»
moritz_ std: 2++4 16:18
p6eval std 27469: OUTPUT«##### PARSE FAILED #####␤Syntax error (two terms in a row?) at /tmp/p5BgFMiRYH line 1:␤------> 2++4␤ expecting any of:␤ POST␤ infix or meta-infix␤ infix stopper␤ postfix␤ postfix_prefix_meta_operator␤ standard stopper␤ statement
..modifier loop␤ terminator␤ whitespac…
PerlJam std: 2 + + + 4 16:19
p6eval std 27469: OUTPUT«ok 00:02 38m␤»
moritz_ probably parsed as multiple prefix operators
std: 2 + ~ + ~ + 3
p6eval std 27469: OUTPUT«ok 00:02 38m␤»
moritz_ rakudo: say 2 + ~ + ~ + 3
p6eval rakudo 0c7475: OUTPUT«5␤»
PerlJam Then something is eating whitespace when it shouldn't 16:20
(or ignoring it)
moritz_ why?
I think that's perfectly valid Perl 6 syntax
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 ;-)
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
moritz_ PerlJam: I agree
TimToady and it's only postfixes that restrict whitespace
PerlJam TimToady: prefixes can't because ... ? 16:23
TimToady they could, by why should they?
*but
PerlJam because I find 2 + + + + 4 really surprising :)
moritz_ you can do all sorts of similar tricks in perl 5 too
PerlJam moritz_: there's a reason we're writing Perl 6 too :) 16:24
TimToady well, but do you want to have to write 'sin$x'
moritz_ like 1 + / / + / / + 2
16:24 zamolxes left
moritz_ or in 5.10 even 1 // / / // 2 16:24
PerlJam sin is a prefix op? 16:25
16:25 kimtaro left
PerlJam Is that so that it works as a unary? 16:25
16:25 Psyche^ joined
TimToady it's a named unary 16:26
PerlJam Hmm.
okay, all I know is $x + sin $y == GOOD and $x + + $y == BAD :) 16:27
16:27 jauaor left
pmichaud PerlJam: do you consider $x + - $y to be bad? 16:31
PerlJam yes-ish. I'd write it as $x + -$y. 16:32
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.
(I mean, if I have to live with it, I can since the chances of accidentally typing something like that are slim) 16:34
But I don't like it.
moritz_ likes that for obfu
pmichaud I suspect Damian will make use of it somewhere. :-P
16:37 tann joined
rjh if you were forced at gunpoint to write such a statement, at least $x + - + - + - $y is more readable than $x + -+-+-+-$y. 16:40
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 Patterner left, Psyche^ is now known as Patterner
PerlJam rjh: they would mean different things too 16:41
moritz_ aye. Don't forget LTM.
16:42 hanekomu left
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
rjh ah 16:42
moritz_ it means that perl will try to match it as a single operator
rjh ...before it matches '-' 16:43
TimToady why it doesn't parse -- as - -
16:43 justatheory left
moritz_ rakudo: say +-3 16:44
p6eval rakudo 0c7475: OUTPUT«-3␤»
PerlJam rakudo: say +-+-+-3 16:45
moritz_ rakudo: say -+-3
p6eval rakudo 0c7475: OUTPUT«-3␤» 16:46
rakudo 0c7475: OUTPUT«3␤»
PerlJam but rakudo doesn't do LTM yet anyway
16:50 Pismire left
pmichaud it does *some* LTM, just not the Perl 6 standard form. 16:51
as TimToady++ said, it's why --$foo gets parsed as prefix:<-->(...) and not prefix:<->(prefix:<->(...))
moritz_ that's something that can be arranged by clever ordering of alternatives 16:52
pmichaud right, but the operator precedence parser actually does ltm in that case 16:53
moritz_ and that's why infix:<...> actually worked?
PerlJam I haven't looked at the code, but I've always guessed that rakudo does LTM on a case-by-case basis.
pmichaud rakudo: say -+-3; 16:54
p6eval rakudo 0c7475: OUTPUT«3␤»
pmichaud rakudo: sub prefix:<-+->($x) { 'hello' }; say -+-3;
p6eval rakudo 0c7475: OUTPUT«hello␤»
pmichaud rakudo: sub prefix:<-+->($x) { 'hello' }; sub prefix:<+->($x) { 'world' }; say -+- 3; say +- 3; 16:55
p6eval rakudo 0c7475: OUTPUT«hello␤world␤»
PerlJam rakudo++ 16:57
16:58 pmurias left
rjh why is -+-3 = 3? 17:01
moritz_ because it's -(+(-3))
rjh ah :s
moritz_ and - * - = +
17:02 Jedai joined, tann left
moritz_ ouch, color codes aren't that easy to implement for the irclog 17:02
because Bot::BasicBot first decodes the string as UTF-8 17:03
and decoding ansi color codes into UTF-8 is bound to be a big FAIL
17:06 rfordinal left
moritz_ blames TimToady for not introducing a good Str/Buf distinction in Perl 5 already ;-) 17:09
17:14 justatheory joined
justatheory TimToady needs strong coffee before dealing with me… 17:21
17:22 Pismire joined 17:29 jrtayloriv joined 17:36 skids left 17:38 mikehh_ joined
Pismire is away: Zur Zeit nicht da. 17:40
17:40 Pismire left 17:45 hercynium joined 17:48 tann joined 17:51 mikehh left
tann rakudo: my @x = 1, 2; my @y = 3, 4; @x == @y ?? say "yup" !! "nada"; 17:53
p6eval rakudo 0c7475: OUTPUT«yup␤»
moritz_ rakudo: my @x = 1, 2; my @y = 3, 4; say @x ~~ @y ?? 'aye' !! 'nay'; 17:54
p6eval rakudo 0c7475: OUTPUT«nay␤»
tann hmmm..
moritz_ == is strictly numerical comparison
tann isn't ~~ for strings?
moritz_ ~~ is for all sorts of comparisons 17:55
StephenPollei ~~ is smartmatch iirc
moritz_ including type checks, regex matches, and looking if the coffee is still hot ;-)
tann hot stuff 17:56
StephenPollei how do you use ~~ to check coffee temperature ??? ;-)
moritz_ StephenPollei: if $temperature-in-celsius ~~ 80..100 { ... } 17:57
StephenPollei OK didn't know it could do check if within range 17:58
moritz_ you could also use $temp ~~ { 80 <= $_ <= 100 }
17:59 Jedai left
StephenPollei rakudo: my $temp = 80.3; say $temp ~~ { 80 <= $_ <= 100 } ?? "Hot" !! "cold"; 17:59
p6eval rakudo 0c7475: OUTPUT«Hot␤»
StephenPollei rakudo: my $temp = 80.3; say $temp ~~ 80..100 ?? "Hot" !! "cold"; 18:00
p6eval rakudo 0c7475: OUTPUT«Hot␤»
pugs_svn r27470 | moritz++ | [irclog] translate selected ANSI color codes to CSS colors.
r27470 | moritz++ |
r27470 | moritz++ | (handling binary data that was accidentally decoded as UTF-8 is ugly. If I
r27470 | moritz++ | ever had doubts if we really need Perl 6, they are now officially gone)
tann groovy: ["Rod", "Carlos", "Chris"].findAll{it.size() <= 4}.each{println it}
p6: for <Rod Carlos Chris>.grep({ .chars <= 4}) { .say }
isn't that p6ish? 18:01
or something better?
moritz_ rakudo: .say for <Rod Carlos Chris>.grep: { .chars <= 4};
p6eval rakudo 0c7475: OUTPUT«Rod␤»
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)␤»
tann moritz: so that ":" parenthesizes args?
moritz_ std: .say for <Rod Carlos Chris>.grep: *.chars <= 4;
p6eval std 27469: OUTPUT«ok 00:02 36m␤»
moritz_ tann: the ':' says "everything left on this line is an argument to the method"
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:05
moritz_ "the rest of this line is ..." might be clearer 18:06
TimToady more like "the rest of this expression tighter than loose and precedence" 18:12
moritz_ TimToady: in the example above, should "*.chars <= 4" form a closure? or just the "*.chars" part? 18:14
TimToady I'd think that WhateverCode <= 4 should return another WhateverCode successfully 18:16
moritz_ ok, thanks
18:17 pmurias joined
pugs_svn r27471 | moritz++ | [t/spec] test that '*.uc eq "foo"' constructs something Callable 18:20
18:21 edpratomo joined, barney joined
KyleHa I'm going back to edit my keybag.t 18:23
ruoso looking at google insights and realizes that India is the place where people are most looking for Perl... 18:24
moritz_ but are they actually looking for the programming language perl? 18:27
or some other pe(a?)rls? ;-)
KyleHa We interviewed a guy from India today. He pronounced it "pull".
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.
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'␤»
TimToady for QA you want someone cruel
ruoso moritz_, it is certainly really perl related, from the search terms
tann rakudo: say <perl pull pearl>.pick(1)
p6eval rakudo 0c7475: OUTPUT«pearl␤» 18:32
tann :))
rakudo disagrees with TimToady
TimToady rakudo: say <perl pull perl>.pick
p6eval rakudo 0c7475: OUTPUT«pull␤»
TimToady also disagrees with itself
pmichaud rakudo can be very disagreeable. 18:33
rakudo: say <perl pull pearl>.pick eq <perl pull pearl>.pick
p6eval rakudo 0c7475: OUTPUT«0␤»
ruoso just saw pozer's post... and is a bit worried on the way things are going...
PerlJam ruoso: which post is that? 18:34
ruoso use.perl.org/~pozer/journal/39242 18:35
18:35 zamolxes joined 18:36 Jedai joined
PerlJam ah, I haven't read use.perl today. 18:36
PerlJam looks
pmurias ruoso: did you try running mildew without locking? 18:37
ruoso trying now
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
TimToady passion is good but escalation is bad 18:40
moritz_ PerlJam: constant dripping wears the stone, or so they say 18:43
18:43 alexn_org joined
moritz_ PerlJam: and I can very much understand rgs' feeling of being worn 18:43
(though I can also understand c's position to a good extend) 18:44
pmichaud I find use.perl.org/comments.pl?sid=43322&cid=69340 to be very troubling.
PerlJam pm: I think that's just because rgs has gone "over the edge" wrt this topic. He's need to reboot.
s/He's need/He needs/ 18:45
moritz_ aye, I agree with PerlJam here
it's not his style, usually
not at all.
pmichaud I'm willing (eager) to accept that.
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
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
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
PerlJam TimToady: now you're alienating all the staunch perl 5 supporters :) 18:49
18:49 pmurias left
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-)
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...
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
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
moritz_ ruoso: 5.10 has been out for 1.5 years or so, and the desparately awaited 5.10.1 is still not here
PerlJam especially when 5.10.0 is labeled as a "testing" release.
moritz_ ruoso: but it's been in OS distributions for quite some time, and they need to offer their users some fixes
ruoso moritz_, maybe it's the fact that I'm a debianer... but I don't think that's really that bad...
moritz_ 5.10.0 is in Debian stable. There are lots of fixes that should be in stable, too 18:53
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.
ruoso 5.10.0 is "testing" after all
moritz_ ruoso: blamiing the distributors is easy. But I think it's also a problem with comunication
ruoso sure it is
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 pmurias_ is now known as pmurias
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. :)
moritz_ typically .even = stable, .odd = unstable or so 18:56
PerlJam moritz_: www.cpan.org/src/README.html
moritz_: see the second paragraph
18:56 jrtayloriv left 18:57 jrtayloriv joined
PerlJam (and then, of course, read the 3rd paragraph :) 18:57
moritz_ aye
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
PerlJam sri_kraih: why?
sri_kraih hard to plan in advance
moritz_ sri_kraih: parrot manages monthly releases, even
all volunteers, too
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
PerlJam sri_kraih: rakudo :)
TimToady and it's not like p5 doesn't have a test suite...
sri_kraih ;p
pmurias parrot improves much faster than perl5
so it's much more worth releasing often
18:59 Pismire joined
TimToady it doesn't have the legacy impediment though 18:59
well, more than it should, but way less than p5 19:00
ruoso moritz_, pmurias, it's simply unfair to compare parrot with perl5
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.
sri_kraih somehow i'm always thinking debian vs ubuntu when i hear regular release cycle
ruoso since perl5 has way more corner cases to be aware of
TimToady (we hope)
moritz_ ruoso: I didn't start that comparison, I just countered the "it's not possible with all volunteers" argument.
ruoso PerlJam, it doesn't... really... ubuntu is way more unstable than it should because of that
PerlJam ruoso: never been a problem for me :) 19:01
moritz_ TimToady: should %key_hash<non_exiting_key> be 0? or undef?
erm, I meant a Keybag actually 19:02
TimToady I think 0 would be fine
moritz_ ok
PerlJam moritz_++ for getting back to Perl 6 :)
TimToady I wasn't gonna say it, in case meta discussion spoiled it... :)
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
ruoso back to testing mildew 19:04
pmichaud sri_kraih: it can be done (more)
sri_kraih: one needs a good testing suite
TimToady check
pmichaud sri_kraih: and also to scale back the size of releases
sri_kraih nods
pmichaud i.e., releases have to become more incremental, instead of "a whole bunch of stuff at once"
19:05 zamolxes left
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?
TimToady and perhaps establish a better deprecation policy
pmichaud Since yesterday I've been wondering how Microsoft's notion of "Patch Tuesday" corresponds with the idea of "regular release" (more)
moritz_ tann: perlcabal.org/syn/
pmichaud I mean, clearly Microsoft has as many backwards compatibility issues as Perl does, but they still manage to put out regular updates.
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)
TimToady tann: however, when we give a ref like S04:24 it's referring to the line number in the text file
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
pmichaud ruoso: still, they don't go for 1+ year without bugfixes.
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
TimToady so if you check out the pugs repo, you can just grep the S's in the docs/Perl6/Spec director
s/$/y
19:07 barney left
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?
ruoso pmichaud, that doesn't fit with ".0 is a testing release" 19:08
maybe there had to be a 5.10.0.1
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.
ruoso sure... but the problem is all about managing risks with legacy code
pugs_svn r27473 | moritz++ | [t/spec] extend/improve keybag tests (KyleHa++)
r27473 | moritz++ |
r27473 | moritz++ | Mostly tries to remove testing interdependencies - when one step goes wrong,
r27473 | moritz++ | don't make the others autmatically fail. (This is achieved by rolling back
r27473 | moritz++ | to a defined state a few times)
r27473 | moritz++ |
r27473 | moritz++ | Also tests %key_bag<unknown> is a uint, namely 0
pmichaud ruoso: I think that's covered by my "Patch Tuesday" concept.
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
and then the escalation of the conflicts got in the way as well
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
r27474 | lwall++ | [STD] switch tweaks to mandatory named params as current mmd spec requires
pmurias ruoso: do you think it would be a good idea to set up a plan/scheadule for the second part of gsoc?
ruoso of course... but blaming the pumpkins doesn't solve as well... it's more about risk management than simply bug fixiing
pmurias, yeah... it would be a cool thing to do... 19:12
pmurias, I think there's a blocker issue that we could work
pmichaud I'm not sure that I'm "blaming the pumpking". (more)
19:12 justatheory left
ruoso pmurias, which is the reuse of constants in yeast functions 19:12
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?
TimToady the basic underlying problem is that P5 requires a pumpking at all, due to original design infelicities
ruoso pmurias, I'd say not only constant identifiers, but literal values as well (ints, for instance)
and due to the amount of legacy it should support 19:14
pmichaud again, I posit that "legacy support" and "regular improvements" are not completely incompatible goals. 19:15
sjohnson what's a PumpKing?
pmurias ruoso: sysprof doesn't seem to notice the constant creation as a significant slowdown
PerlJam sjohnson: a mistake apparently.
sjohnson thought it was a male enlargement device 19:16
PerlJam sjohnson: the person responsible for making Perl 5 releases happen. (over simplification perhaps)
sjohnson oh
pmichaud for some pumpkings, it is. :-)
sjohnson it means patch pumpkin
ruoso pmurias, does sysprof points some other point for optimization?
sjohnson could the PumpKing also backport the trim function?
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.
pmurias ruoso: it seems to be spread out
19:17 Pismire left
TimToady it wasn't dropped that hard 19:17
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
pmichaud might have a few dents from where people have been kicking it around :-)
TimToady maybe there's a way to slice it up while nobody is holding it
sjohnson or carve a face into it 19:19
PerlJam pmichaud: you carved the perfect face for it one year, didn't you?
pmurias ruoso: simple things like a variable lookup cause lots of methods 19:20
s/methods/method calls
pmichaud PerlJam: you mean something like codeswimming.com/images/smiley_pumpkin.jpg ?
PerlJam indeed
ruoso pmurias, but there aren't many lookups during the CORE loading, are there?
pmurias counts... 19:22
139158 19:23
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
this is the holiest of all functions
moritz_ sjohnson: [email@hidden.address] Good luck. 19:27
sjohnson thanks!!
ruoso pmurias, hmm... I wasn't expecting that many
sjohnson i think i can write a convincing argument 19:28
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 :)
pugs_svn r27475 | pmurias++ | [re-smop] add a script which analysis the result of SMOP_MOLD_DEBUG=1 19:30
TimToady especially when the current mood there is probably to circle the wagons 19:31
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
4.5 isn't
19:32 IllvilJa joined
ruoso 4.5 seconds, that is 19:32
I mean... 4.5 secons is not acceptable
ruoso later &
sjohnson hmm 19:33
pmurias ruoso: did turning of locking speed things up?
pugs_svn r27476 | kyle++ | [t/spec] Remove redundant test.
sjohnson perhaps i need to use the Larry Walle pen name?
or Larry Wahl
ruoso pmurias, yeah... it did... but then we'll need to find a way to support threading...
19:34 meppl left
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
ruoso really needs to leave now
19:34 ruoso left, pmurias left
moritz_ pmichaud: btw I've re-added smartmach.t to spectest.data, after thorough review/revamp 19:35
pmichaud: hope that's fine by you
pmichaud wonders how strongly Disney/Pixar would come after him for using Wall-e in a lightning talk.
moritz_: excellent by me, thanks for putting the good work into smartmatch.t
moritz_++
19:36 StephenPollei left
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 :)
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
moritz_ pmichaud: thank you.
pmichaud PerlJam: try odd typing, then 19:38
PerlJam my typing is odd enough sometimes
pmichaud I think it might not be your typing that is "odd enough" :-P
TimToady trouble is that dratted "not" keeps turning even into odd and vice versa
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.
TimToady it unblesses while negating
turns True into 0 and False into 1 19:40
sjohnson and hell freezes over
pmichaud so it's written as either +not or not+
TimToady How come nobody ever worries about hell freezing under?
pmichaud because that would be the "dratted not" form of frozen hell
19:41 he_ joined
sjohnson some climate change might do it some good 19:41
pmichaud "Well have some useful climate change legislation when hell freez... Oh." 19:42
19:42 Pismire joined
pmichaud *We'll 19:42
(darn, another good joke ruined by bad typing)
sjohnson it's cuter with "freez" 19:43
pmichaud right, I meant the "Well" -> "We'll" part.
The "freez" was intentional.
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
sjohnson pmichaud: :)
pmichaud eternaleye: I think you mean (1..*).pick($n) 19:45
eternaleye rakudo: say ~(1 .. 7).pick(*)
p6eval rakudo 0c7475: OUTPUT«1 2 4 6 3 7 5␤»
pmichaud rakudo: my $n = 7; say (1..1000).pick($n, :repl);
p6eval rakudo 0c7475: ( no output ) 19:46
pmichaud rakudo: my $n = 7; say (1..10).pick($n, :repl);
p6eval rakudo 0c7475: OUTPUT«7948571␤»
PerlJam :repl?
pmichaud pick with replacement
i.e., so the same number can be picked more than once
I saw that earlier this week and thought it should probably be :replace instead of :repl
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
M_o_C s/are no such tests/aren't a lot of tests/
eternaleye For some reason, I read it as needing 1..$n in a random order 19:48
PerlJam +1 :replace
19:48 takadonet left
moritz_ +2 # incremental counting 19:48
pmichaud eternaleye: right, that's how I originally read it at first also :-)
19:52 StephenPollei joined 19:55 FurnaceBoy joined 19:58 meppl joined
Tene rakudo: say [~] (0,1).pick(50, :repl) 20:02
p6eval rakudo 0c7475: OUTPUT«11010011101111001010001011110110000001101100111011␤»
sbp :repl?
Tene 19:46 <@PerlJam> :repl? 20:03
19:46 <@pmichaud> pick with replacement
19:46 <@pmichaud> i.e., so the same number can be picked more than once
20:10 justatheory joined
tann :repl looks like cryptic and ugly... would like to see :replace as pm said 20:11
sbp oh sorry, heh 20:12
20:13 masak joined
Tene sbp: I copied out of entertainment at seeing the same question asked. 20:13
hi masak
masak oh hai
Tene OH HAI!!
masak \o/
sbp good evidence that it isn't particularly self-documenting
Tene srsly
maybe it should just be :ɹ 20:14
sbp that looks like a man trying to lick his right eyeball
tann but his tongue is too short
sbp not sure that's the image that perl6 wants to convey to the world
Tene we need to buy that man tounge-extenders.
20:15 edpratomo left
sbp that would be :_ɹ perhaps 20:15
tann p6= smileys
20:15 IllvilJa left 20:16 huf_ joined 20:18 estrabd joined
masak I see you've been talking about dropping pumkins while I was gone. 20:18
20:18 jan_ left
masak I wonder how many channels has this kind of discussion about the events in the Perl 5 world. 20:19
I imagine we're not the only one, but perhaps our outlook is a bit unique, since we're doing Perl 6 here.
20:19 huf_ is now known as huf 20:21 jan_ joined, gbacon left 20:24 skids joined
lisppaste3 skids pasted "looking at parameter names from the spec" at paste.lisp.org/display/83194 20:27
masak skids++ 20:28
moritz_ masak: I've seen similar discussions on #p5p and #toolchain, they also have some unique views ;-)
PerlJam what's #toolchain exactly?
masak moritz_: ok. nice to know.
the CPAN toolchain, right?
moritz_ right. 20:29
PerlJam ok
20:30 alexn_org left 20:31 elmex left, elmex joined, jrtayloriv left
masak skids: you've put a lot of effort on that list, I can see. kudos. 20:32
20:32 exodist joined
moritz_ skids_: feel free to send such things to p6l. In nopastes they get lost after a few days. 20:33
masak indeed.
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
masak pmichaud: "don't make the core an unchangeable mess"? 20:36
pmichaud masak: well, I think that's only part of it.
skids
.oO(the world needs a Gene Simmons smiley)
masak oh, definitely.
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.
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)
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:39
masak aye 20:40
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.
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 ;-)
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* :)
pmichaud I think marketing is indeed a piece of regular release schedule, but that's by no means the whole of it.
tann rewritten
pmichaud The regular release schedule also provides a structure for the people working on the codebase as well.
masak pmichaud: agree. 20:43
pmichaud I know that at least Jonathan and I benefit hugely from Rakudo's monthly release schedule.
masak pmichaud: that's blogging material, you know.
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)
pmichaud masak: yes, I know. But I've also not wanted to blog into the middle of the current firestorm.
masak pmichaud: I can see that, yes. 20:44
tann pm: is there any measurement of the amount of increasing interests in rakudo/p6?
moritz_ feels the same as pmichaud
pmichaud tann: that's a very good question
moritz_ tann: there is, but I don't think it's quantified (or easily quantifiable)
pmichaud tann: anecdotally I can point to increases, but I don't have a specific measurement.
moritz_ things you could meassure:
pmichaud perhaps counting blog posts referencing rakudo
masak tann: on a subjective level, there has been an increased interest.
moritz_ (1) question on irc/mailing list/blog posts 20:45
(2) number of authors who send patches
(3) number of projects usiing rakudo
(see proto's project.list for example)
tann i've tried to gather all blogs mentioning rakudo/p6/parrot and submitted their urls to google and other search engines
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)
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?
masak one could perhaps do a simple frequency count of posts in the ironman perl feed that mention 'rakudo' or 'perl 6'
pmichaud But I'd like someone else to do the releases after that.
tann moritz: i do
moritz: and your sexy blog
moritz_ ;-)
pmichaud more to the point, I *think* that it would be entirely feasible for people to independently prove that they could do a release
(more)
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
so, let's suppose that you want to prove to yourself that you can make a rakudo release
the steps are:
20:47 Matt-W left
pmichaud (1) fork the rakudo github repository 20:47
(2) follow the steps in docs/release_guide.pod, substituting your own github repo clone for the rakudo one
(3) skip the steps that say "post messages to mailing lists, use.perl, etc." 20:48
(4) profit
masak that sounds like a fun thing to try.
pmichaud (5) drop the repo when you're done.
After I thought of that, I was thinking of writing a blog post inviting people to try it. :-)
PerlJam nominates masak for the Aug release :)
KyleHa I agree. Sounds like fun.
pmichaud (and will probably do that here shortly)
masak maybe I will try that for the July release.
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"
pmichaud It can be done at any time. :-)
KyleHa If we learn of deficiencies in the release_guide.pod, we can patch it.
pmichaud KyleHa: exactly
moritz_ there's one item in release_guide.pod that worries me: "Continue adjusting things until make spectest passes as expected.
"
pmichaud and it only takes about 90 minutes.
moritz_ that might be *very* non-trivial.
pmichaud less if you skip the "make spectest" part :-)
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
masak it involves judgement calls that have to be made before a release.
pmichaud the judgement call usually comes down to "fix the bug" or "regress the spectest" 20:51
either are valid answers.
[particle] that's why we machines still need humans
masak aye.
moritz_ does 'make release' include the spectests?
pmichaud ues/
yes.
moritz_ nice
pmichaud in the sense that it embeds the current set of spectests into the release tarball
moritz_ ah, found the first inconsitency ;-) 20:52
release_guide.pod says "make release VERSION=YYYY-MM"
and Makefile: [ -n "$(VERSION)" ] || ( echo "\nTry 'make release VERSION=yyyymm'\n\n"; exit 1 )
pmichaud heh
bug!
feel free to patch/fix.
moritz_ I guess the guide is right?
pmichaud (correct is YYYYMM)
moritz_ ok
pmichaud oh wait
(thinking)
whichever one is the valid ISO date is the correct one. 20:53
I'm pretty sure the Makefile must be correct then.
so yes, YYYYMM is correct, guide is wrong.
moritz_ the files on github all include the -
pmichaud oh
then YYYY-MM is correct, makefile is wrong.
masak *phew*
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).
pmichaud right.
[particle] en.wikipedia.org/wiki/ISO_8601
StephenPollei date --iso-8601 2009-07-07
pmichaud YYYY-MM
StephenPollei: both 2009-07-07 and 20090707 are valid ISO forms
but 2009-07 is the only valid year+month form. 20:55
StephenPollei yes was just showing what one command does by default
pmichaud StephenPollei: ah, thanks.
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?
StephenPollei 8601 has other ways as well like by week number or julian number iirc
pmichaud anyway, if anyone wants to try to make a release, I'd be very happy to hear the outcome. 20:56
and take suggestions for improving release_guide.pod
then I'll be doing a call for release managers :-)
20:57 christine left
masak pmichaud: you should definitely blog about the dry-run idea. 20:57
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
dalek kudo: 19b8db2 | moritz++ | (2 files):
sync Makefile and release_guide.pod about version formats.
20:59
21:00 meppl left 21:06 jrtayloriv joined 21:10 KyleHa left 21:16 stepnem left, Whiteknight joined 21:19 jrtayloriv left 21:22 stepnem joined, justatheory left 21:31 exodist left 21:42 molaf joined, gbacon joined, kidd_ joined 21:45 justatheory joined 21:46 PZt joined 21:47 masak left 21:56 Pismire left 22:12 Whiteknight left, Whiteknight joined 22:15 alester left 22:17 kidd_ left 22:21 nihiliad left 22:29 mikehh__ joined 22:34 spx2 joined
justatheory Will the first stable release of Perl6 be 1.0 or 6.0? 22:35
moritz_ yes.
(but I don't know which) 22:36
22:36 molaf left
moritz_ or better "no" 22:36
justatheory grrr
moritz_ because I don't know if the language will have a release, actually.
implementations will have, possibly
justatheory Well, there will be version numbers.
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 ?
I think I saw this somewhere but can't remember where
I'm writing my first p6 code
so that's why I'm asking
justatheory moritz_: Okay, thanks. 22:38
moritz_ spx2: depends on what you mean by "in parallel"
spx2 is reading the exegesis
moritz_: like for @a;@b -> $x,$y {...}
moritz_ spx2: rakudo doesn't implement any "real" parallelism yet (threads, forks)
spx2: don't. read the synopsis, they are much more up-to-date
spx2 ok will do
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?
moritz_ rakudo: for 1..3 Z <a b c> -> $a, $b { say "$a $b" }
p6eval rakudo 19b8db: OUTPUT«1 a␤2 b␤3 c␤»
spx2 TimToady: that's absolutely fantastic !
TimToady: thanks! 22:40
22:40 Limbic_Region joined
spx2 I like this thing , I always wanted this kind of stuff in p5 22:40
TimToady hard to have it in p5 where the loop variable syntax is hardwired, rather than falling out of parameter passsing naturally 22:41
s/sss/ss/
spx2 I have an old problem in p5
I'd like to describe it and aask how it behaves in p6 22:42
I have a map on some array
and the subroutine of the map pushes values in that same array
will the map run forever or not ?
in p5 the answer was no , it won't run forever , and the values pushed in the map subroutine didn't have effect
it would feel natural that they would be there 22:43
and that the loop would run forever
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
however, relying on that might be erroneous
22:44 mikehh_ left
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?
TimToady you'd want some kind of strictly lazy pragma or context to guarantee that
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
spx2 TimToady: so why does the lazy thing prohibit it running forever ?
lambdabot Unknown command, try @list
spx2 Limbic_Region: dunno what eager is ..
Limbic_Region: is it documented anywhere?
Limbic_Region spx2 - that was a question not a statement - see the question mark 22:47
[18:45] <Limbic_Region> and can't you force it to be eager?
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
this is the reason that modifying the sub in the block doesn't have any affect
in perl6 22:48
the array acts like an iterator pulling off values as they are asked for
this is called lazy
what TimToady is saying is that this needn't be done 1 at a time
it is allowed to do things in batches
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
Limbic_Region I was asking if you can turn off laziness and force the array to be eager 22:49
moritz_ sure you can
TimToady eager @foo
moritz_ eager @array
Limbic_Region which would restore the p5 behavior you are used to
TimToady I don't think he wants that
Limbic_Region well - I knew that is the way it was years ago when I still paid attention to the ever changing spec
TimToady - oh yes, you are right 22:50
I didn't read far enough down the question
spx2 I'd be interested in this feature because ... it has practical applications
like imagine an Event Queue
you push stuff in some for (@events){ push @events,stuff }
or in a map 22:51
and that's pretty useful
moritz_ rakudo: my @a = 1, 2; @a.map: { @a.push: 4 }; say "alive"
p6eval rakudo 19b8db: OUTPUT«alive␤»
moritz_ (but rakudo doesn't do any lazyness yet) 22:52
tann moritz: still failing at the ... attempt?
moritz_ tann: infix:<...> is in rakudo (in its basic, eager form) 22:53
TimToady I suspect that ... might guarantee strict laziness
eventually
moritz_ spx2: btw you have other means to do event queues in Perl 6
for example
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
moritz_ ah, I never think in terms of those, because nobody implements them :/
pmichaud I've started to think in terms of those, as I've started to look at implementing them :-) 22:55
22:55 jrtayloriv left
TimToady I noticed that S07 is guaranteeing strict laziness on feeds now 22:55
not sure what I think about that
moritz_ pmichaud: shouldn't you be thinking of LTM? ;-) 22:56
pmichaud moritz_: I have to think of a lot of things in parallel :-)
TimToady thinking about LTM is a parallel operation :)
maybe if hyper is super-eager, hypo should be super-lazy :) 22:58
"Give that man a hypo, he's too active!"
spx2 LTM = ? 22:59
TimToady longest token match
22:59 Jedai left
tann makes sense...hypo might be easily mispronounced as hippo 23:00
TimToady well, English speakers mispronounce it in any case
from the standpoint of classical greek, anyway 23:01
spx2 moritz_: what language should I use if I wanted that lazy thing to work /
?
[particle] sure, and we spell it wrong, too.
TimToady υ is pronounced more like German ü
spx2 is reading some blogs and gets the feeling of a ruby-perl hate relationship 23:02
TimToady Matz and I get along great
spx2 :)
nice to know
tann hate is right...there's no love in this brutal computing world
spx2 yeah , sitting with your hands on a keyboard is really hardcore and brutal 23:03
:)
TimToady spx2: maybe you should read some different blogs :)
23:04 FCO joined
tann spx2: you left out the coffee mug 23:04
can be quite a dangerous weapon
pmichaud TimToady: maybe you should blog about your undying love for Ruby :)
[particle] please don't upset the pythons
TimToady I skipped the blogosphere for hardcore IRC 23:05
23:05 rjbs joined
rjbs Is there a difference between 6 and 6|6 ? 23:05
TimToady if you want my blog, grep the irc logs :)
pmichaud rjbs: the latter is a junction, yes.
rjbs Yeah, that was a dumb question, let me rephrase: 23:06
apart from one being a junction of two ints, are there interesting differences?
spx2 yeah read about the jon orwant mug thing , that was really exccentric
moritz_ rakudo: sub a(Junction $x) { say "alive" }; a(6|6); a(6)
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)␤»
rjbs I'm ashamed to admit that I remember this question but not the earlier question, today, that led me to it.
moritz_ rjbs: for most use cases that end in a boolean they are the same. 23:07
tann rakudo: @irc.grep: { /timtoady/ }
p6eval rakudo 19b8db: OUTPUT«Symbol '@irc' not predeclared in <anonymous> (/tmp/0vWFsMeaxy:2)␤in Main (src/gen_setting.pm:3340)␤»
rjbs rakudo: sub a(Int $x) { say "alive" }; a(6|6);
p6eval rakudo 19b8db: OUTPUT«alive␤»
[particle] yipes!
rjbs Aha! Maybe that's actually want I wanted to know. Thanks for jogging my memory.
TimToady dup suppression
dalek kudo: 4549f3c | pmichaud++ | docs/release_guide.pod:
Minor update to docs for parrot release number in build/PARROT_REVISION.
23:08
TimToady rakudo: say (6|6).perl
moritz_ irclog.perlgeek.de/perl6/2009-03-18#i_997787 # my favourite irc "blog" by TimToady ;-)
p6eval rakudo 19b8db: OUTPUT«any(6)␤»
moritz_ rakudo: say 6|6
TimToady moritz_: it should explain LTM
23:08 SmokeMachine left
p6eval rakudo 19b8db: OUTPUT«Junction()<0xb6b84198>␤» 23:08
moritz_ TimToady: even better, it's something social ;-) 23:09
spx2 TimToady: what synopsis do I find the "map" block in ?
moritz_ S32/Containers probably 23:10
23:10 nacho_ joined
rjbs so the check done by signatures is distributive over the junction, then 23:10
moritz_ oh wait, do you mean "map" or blocks?
spx2 is checking out S32
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
spx2: 'map' is in S32, '-> $x, $y { ... }' in S04, infix:<Z> in S03
and @a in S02 and S09 ;-)
rjbs What document describes the standard type hierarchy? 23:12
tann moritz_: which line numbers? :D
moritz_ tann: grep/ack will tell you.
spx2 I get the feeling that the -> $x,$y {...} is actually defining a sub with parameters $x and $y right ?
anonymous sub that is
moritz_ spx2: a block, not a sub; but they are rather similar
tann moritz_: *attempted joke*
rjbs Looks like S14 will be that someday. 23:13
Ok, thanks, back to p5 now!
[particle] buubot: spack type hierarchy
buubot Couldn't match input.
[particle] buubot: spack hierarchy
buubot Couldn't match input.
moritz_ tann: I know, but taking it serious nonetheless requires much less intelligence at 1am
[particle]: it means that buubot doesn't implement "spack"
not that no matches were found
[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
tann spx2: wikipedia is all you need to know about p6 23:15
spx2 tann: I think I want to know more 23:16
tann rumors are that larry learn p6 there so i heard
moritz_ again an attempt at humor?
(re wikipedia)
TimToady moritz_: see, even someone old like you can learn new things :)
moritz_ so I'm officialy "old guard" now? ;-) 23:17
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)␤»
moritz_ NYI 23:20
[particle] not specified in perl 6.0.0 i thought
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
so for now you need to define a subset type to do anything fancy 23:25
23:25 ihrd joined
spx2 so.. I hear threading primitives in Parrot are not passing any tests ATM 23:27
23:27 M_o_C left
moritz_ spx2: don't hear. RUn the smokes yourself. 23:30
t/pmc/parrotrunningthread.t ................. ok
t/pmc/parrotthread.t ........................ ok
t/pmc/threads.t ............................. ok 23:31
23:31 rjbs left
s1n moritz_: are you familiar with jnthn's effort to rip out trait_auxilliary (spelling?)? 23:31
23:32 mizioumt left
moritz_ s1n: not really. 23:32
s1n rakudo: role xxx { multi trait_mod:<is>(Code $block, xxx $trait) is export { ... } }
p6eval rakudo 19b8db: OUTPUT«No applicable candidates found to dispatch to for 'trait_mod:is'␤in Main (/tmp/zwyH4RO5M6:2)␤»
s1n that has me stumped 23:33
i updated rakudo and it looks like trait_mod either doesn't work or works differently than i expect 23:34
i'm fishing for ideas 23:35
moritz_ [X] ask jnthn
23:40 zamolxes joined
s1n jnthn: ^^^ 23:46
23:48 justatheory left 23:52 icwiener left 23:53 ihrd left 23:58 justatheory joined 23:59 justatheory left
pmichaud draft blog post for "Rakudo release managers": gist.github.com/142466 Comments and suggestions welcomed. 23:59