»ö« | 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 whitespaceFAILED 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«a1a2b1b2c1c2» | ||
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 valueAssignment type check failed; expected Failure, but got Intin Main (/tmp/wkKFCutJXO:2)» | 13:29 | |
moritz_ | rakudo: my Array[Int] @a; @a[0] = [2]; | ||
p6eval | rakudo 0c7475: OUTPUT«Use of type object as valueAssignment type check failed; expected Failure, but got Arrayin 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 subclassin 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 whitespaceFAILED 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«helloworld» | ||
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 a2 b3 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«aliveParameter type check failed; expected Junction, but got Int for $x in call to ain 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 |