pugscode.org/ planetsix.perl.org/ | nopaste: sial.org/pbot/perl6 | evalbot: perl6: say 3; (or rakudo:, pugs:, elf:, etc) | irclog: irc.pugscode.org/
Set by mncharity on 5 January 2009.
ovid Whee! I've now submitted a patch for adding the .trim method: use.perl.org/~Ovid/journal/38261 That was frustrating and fun at the same time. 00:21
jnthn ovid: It tends to get more fun and less frustrating as time passes. :-)
ovid I hope so :)
OK, time for bed. Head hurt. Need pillow. 00:22
jnthn Sleep well
rakudo_svn r35431 | pmichaud++ | [rakudo]: Throw an exception for bare "say" or "print" (RT #62028). 03:20
pmichaud rakudo: say; 03:34
p6eval rakudo 35431: OUTPUT«say requires an argument at line 1, near ";"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
pmichaud rakudo: say for 1..3;
p6eval rakudo 35431: OUTPUT«␤␤␤»
pmichaud oops.
meppl good morning 03:36
rakudo_svn r35432 | pmichaud++ | [rakudo]: Missed a bare say in r35431 -- this fixes it (RT #62028). 04:00
pmichaud rt slow. 04:31
rakudo: say for 1..3; 04:38
p6eval rakudo 35432: OUTPUT«say requires an argument at line 1, near "for 1..3;"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
pmichaud better.
moritz_ perl6: sub e(@a) { print @a.elems; }; e([1, 2, 3]) 09:38
p6eval elf 24885, pugs, rakudo 35432: OUTPUT«3»
moritz_ currently perl6.vim is too slow for real-world usage 09:48
I think we should sacrifice exactness for more speed 09:49
any objections? (espeically from literal)
literal yeah, I was intending to do that 09:50
basically, have some perl6_extended_foo options when you want slow, but exact highlighting
moritz_ +1 09:51
literal but use something fast which covers only the common cases, by default
Matt-W speed would be nice 09:53
masak ovid++ # trim 13:11
pugs_svn r24886 | pmurias++ | [smop] merged has_next/eval/next into eval 13:16
masak so, do I just add trim() to S29? any opinions? 13:19
moritz_ as a method in Str, I wouldn't object 13:22
masak moritz_: and 'is export', yes. I saw that some adaptions needed to be made from ovid's pod doc suggestion. 13:23
also the named params, if we decide to throw those in.
.perl only exists in method form, right? there's no 'perl($var)'? 13:37
moritz_ afaict yes 13:38
perl6: say perl [1, 2, 3] 13:39
p6eval rakudo 35436: OUTPUT«Could not find non-existent sub perl␤current instr.: '_block14' pc 96 (EVAL_16:46)␤»
..elf 24886: OUTPUT«Undefined subroutine &GLOBAL::perl called at (eval 119) line 3.␤ at ./elf_f line 3861␤»
..pugs: OUTPUT«\(1, 2, 3)␤»
moritz_ and as usual, pugs permits nearly everything :-)
Matt-W In Perl 6, is there any difference between (1, 2, 3) and [1, 2, 3]? 13:41
moritz_ yes 13:42
the former will flatten in list context
perl6: my @a = 1, (2, 3, 4), [5, 6, 7]; say @a.perl 13:43
p6eval pugs: OUTPUT«\(1, 2, 3, 4, \(5, 6, 7))␤»
..rakudo 35436: OUTPUT«[1, 2, 3, 4, [5, 6, 7]]␤»
..elf 24886: OUTPUT«[1,2,3,4,[5,6,7]]␤»
moritz_ note that rakudo and elf say the same thing, elf just omits the whitespaces
masak Matt-W: (1,2,3) is a List, [1,2,3] is an Array. 13:49
Matt-W aaaah
masak moritz_: that's a bug in Elf, I'd say.
moritz_ yet a List also .perl'ifies ilke an array
masak: why is it a bug?
masak Matt-W: List objects are immutable, Arrays are mutable. 13:50
Matt-W so [1, 2, 3] gives you a single object, which can then be stuck into a list as an element
rather like an anonymous array reference in perl 5, in some situations
masak moritz_: um, now that I think about it, it isn't...
Matt-W how convenient :)
masak moritz_: I was confusing .perl with stringification.
moritz_ neither S02 nor S29 define a format for the output
masak moritz_: you're right.
should they?
I mean, is there a good reason to? 13:51
moritz_ not really
for things as complicated as subroutines I'm sure the implementations will differ
masak maybe warn people not to depend on implementation specifics in .perl methods? 13:52
moritz_ that's a topic for user-level documentation, not design documents 13:52
Matt-W I'd have thought it was acceptable to provide any alternative that parses back to the original structure 13:53
moritz_ aye, that's the current spec
masak moritz_: I see S29 as user-level documentation. 13:54
I think that's why I care about it the way I do.
moritz_ masak: compare it to perlfunc in verbosity, and you'll see that it's not nearly there 13:55
masak I know. :/ 13:56
masak I prefer to compare it to Ruby's ri. 13:56
jimmy_ hello masak.
Matt-W well it might be one day
we're still in early days here when it comes to docs 13:57
jimmy_ rakudo: say self;
p6eval rakudo 35436: OUTPUT«Lexical 'self' not found␤current instr.: '_block14' pc 51 (EVAL_15:38)␤»
moritz_ I think that's something we should discuss with @Larry when we get to it
masak 你好, jimmy_ 13:58
moritz_ but I don't see anybody complaining about too much user-level documentation in any of the synopsis documents
so that topic can wait 13:59
Matt-W There isn't any user-level documentation in most of the synopses :)
jimmy_ is going to game. 14:00
moritz_ there are occasional "to achieve $perl5_feature do $this instead" comments
Matt-W it's not really a comprehensive attempt at user-level documentation 14:02
Matt-W I've made a couple of abortive attempts at a Perl 6 tutorial thingy 14:02
masak I think having a good REPL and ri/perldoc-like thing ready for Rakudo 1.0 would be a worthwhile goal.
Matt-W yes
masak sometimes I think Envy should be one of the Perl virtues.
look at what Ruby has :) 14:03
poignantguide.net/ruby/expansion-pak-1.html
Matt-W there needs to be Perl 6 for Perl 5 Hackers too
masak aye, definitely.
if you want the O'Reilly contract, start writing the manuscript now.
Matt-W I did have a chapter published once in someone else's book 14:04
moritz_ Matt-W: Perl6::Perl6::Differences and my 5-to-6 blog both aim in that direction
Matt-W moritz_: excellent
I was sure I wasn't the only person thinking about it
moritz_ speaking if writing... if all goes well I'll write an article about Perl 6 Regexes for one of Germanies most reputable IT magazines 14:05
Matt-W Excellent 14:06
I shall have to brush up on my German
moritz_ s/if/of/
sadly I have to assign them the copyright, so I can't publish it freely 14:07
masak moritz_++
I guess there's not much room for negotiation there.
Matt-W You just have to live with that sometimes 14:08
At least you'll be getting the word out
moritz_ and on the bright side it'll also bring me some money
not very much, but perhaps half of my tuition fees for the semester :-) 14:09
Matt-W That's not to be scoffed at
The only thing I've made serious headway on with regard to Perl 6 documentation is a set of slides loosely based on some Perl 5 ones I did for work
but about Perl 6 instead
the trouble is I keep being tempted to compare to Perl 5, whereas I just want to present it as its own thing 14:10
donaldh moritz_: where does your 5 to 6 blog reside?
moritz_ donaldh: perlgeek.de/blog-en/perl-5-to-6/
Matt-W Also I need to do more coding in Perl 6 to get the depth of knowledge to write the thing accurately
moritz_ it's not been very active lately
donaldh some useful examples all the same 14:12
moritz_ they are not tailored to work with present day rakudo 14:12
more to show off, and generate some interest
Matt-W It's good stuff though 14:14
moritz_ thanks 14:16
mdxi seconded. very good stuff :) 14:18
masak thirded. kudos.
moritz_ OH NOEZ, I'VE BEEN THIRDED :-)
masak were the traffic higher here today, you'd surely have been fourthed and fifthed :P 14:20
moritz_ OMG
people use quite a lot RSS these days 14:21
masak brave new world.
moritz_ the rss feed got 90k hits, the most popular HTML page (the link above) has about 1/10 hits
even though many people use google reader, which caches the feed internally 14:22
avar moritz_: does the perlgeek.de/blog-en/ rss feed cover perl 6 and perl6-to-5 ? 14:23
mm, 5-to-6
donaldh moritz_++
avar evidently so 14:25
avar moritz_: your rss needs a date for each entry 14:26
moritz_ avar: perlgeek.de/blog-en/index.rss covers all the blog, including non-perl6-stuff
avar saw 14:27
moritz_ avar: aye, but that freakin' blog system isn't easy :(
avar rakudo.de/ <- has the test suite really grown this much since last year or is it only t/spec ? 14:28
moritz_ avar: mostly t/spec has grown 14:29
aka moved from rest of t/
masak ♥ Rakudo 15:49
pugs_svn r24887 | moritz++ | [t/spec] unfudge a passing smartmatch test (NaN ~~ NaN) for rakudo 16:04
rakudo_svn r35442 | pmichaud++ | [rakudo]: Adjust reference/NCI semantics of IO. Fixes RT #62166. 16:30
rakudo_svn r35443 | jonathan++ | [rakudo] Fix role composition regression from rvar branch merge; methods in the class now resolve conflicts again. 16:40
pugs_svn r24888 | moritz++ | [t/spec] unfudge test for role composition 16:41
jnthn moritz_: Ooh, damm, I had a local patch for that and forgot to apply it! :-) 16:42
moritz_ jnthn: same here, but after 5min I remembered :-) 16:43
masak probably no harm done :) 16:43
jnthn Nope. :-)
namenlos masak: here i am 17:20
masak namenlos: there you are. welcome.
tomyan std: say [*] < 1 2 3 >; 17:27
p6eval std 24888: OUTPUT«00:07 120m␤» 17:28
rakudo_svn r35444 | jonathan++ | [rakudo] Add more type registry implementation. For now it's not enabled, as it causes us to regress two sanity tests and 20ish spectests; follow up commits will deal with this. 17:30
eric256 wades in through 6 inches of snow ;) 17:36
rakudo_svn r35445 | jonathan++ | [rakudo] Mark Bool and Order as enums, so they are seen as types during the parse. 17:50
rakudo_svn r35446 | jonathan++ | [rakudo] Fix up type variable declaration handling in is_type. 18:00
eric256 mberends++ 18:01
rakudo_svn r35447 | jonathan++ | [rakudo] The term action was emitting sub calls incorrectly (not doing namespace lookups), however we didn't notice in a couple of tests because of the typename hack. The type registry picks this up. This patch is from rakudoreg branch, with updates to follow other changes to 18:20
..this action method.
r35448 | jonathan++ | [rakudo] Make enums declare the types they introduce in the block symbol table.
meppl good night 18:27
rakudo_svn r35449 | jonathan++ | [rakudo] Refinement types need to do the Abstraction role. 18:30
jnthn moritz_: ping 18:48
oh, don't worry actually...misread a fudge directive 18:49
pugs_svn r24889 | jnthn++ | [t/spec] Change a todo to a skip, since Rakudo will barf on it once it starts caring that types have been declared (e.g. soon). 18:52
PerlJam jnthn: oh! How soon is soon? Does that mean that my $x = Foo.new will barf if it hasn't seen Foo ? 18:53
jnthn PerlJam: Yes. 18:55
PerlJam cool.
jnthn > my $x = Foo.new; 18:56
Could not find non-existent sub Foo
lambdabot <no location info>: parse error on input `='
PerlJam So ... soon like in the next day or so? or the next week? or ... ?
jnthn (For now. But I've got some other bits to STD.pm to try and pull in also.)
PerlJam: I'm down to one failing spectest.
So maybe even today.
PerlJam jnthn++ 18:57
[particle] jnthn: you may regress the one test, if you can't figure it out soon
jnthn However, the one that fails reveals something kinda...interesting...that I wanna discuss with pmichaud.
[particle]: I know what it is now.
[particle] ah, nice. what is it?
jnthn It's a lexical vs package scoping confusion. 18:58
It's only been thrown up by one test. But it hurts.
Writing class foo {} and sub Bar {} will have correct behaviour once I put in the grammar.pg patch. Just checked that one. :-) 19:01
Matt-W jnthn++ # fixing the bug I found yesterday 19:27
jnthn Matt-W: Thanks for reporting and writing the test. :-)
Matt-W Least I can do 19:28
Since I don't understand the compiler :)
rakudo_svn r35454 | infinoid++ | [cage] Fix a t/codingstd/cuddled_else.t failure. 20:10
mberends Hi everyone, you're welcome to browse a new Rakudo HTTP::Daemon running at autoexec.demon.nl:8888/ , the source code is within github.com/eric256/perl6-examples/tree/master 21:09
eric256 mberends++ ;)
i get a can't establish connection at that address btw 21:10
ohh and its up ;)
nice
mberends I'm being #perl6-bombed and #parrot-bombed! 21:10
eric256 nothing like a little stress testing 21:11
now we just need to hack in a working Net IO ;) so you don't have to fork out to netcat
mberends holding up though, about 2 seconds to render each page. Nice visitor log on the console. 21:12
eric256 is there a perl6 CGI module ;)
[particle]1 yes, in pugs repo
don't know if it compiles on rakudo, though
mberends a bit of one in November...
eric256 i get a failed to connect 2 out of 3 tries 21:13
mberends quite a few others are getting through, still a page every 2 seconds
eric256 oh cool. i wanted to write a DVD/Blue Ray collection managment website. might be fun to build in perl6
pugs_svn r24890 | Ovid++ | Tests for the 'trim' builtin. 21:26
r24890 | Ovid++ |
r24890 | Ovid++ | This is not currently specced, but it's being discussed and I've implemented
r24890 | Ovid++ | the core feature (the bit apparently agreed upon).
r24890 | Ovid++ |
r24890 | Ovid++ | Not sure what to say about trimming lists.
eric256 sees talk about moving rakudo to git and is excited ;) 21:32
mberends now a Googlebot has asked for my robots.txt file. no such luck, Google. 21:33
eric256 wow taht was fast... google hit the IRC log already i'm guessing? 21:34
mberends I have no idea how those messages travel
moritz_ eric256: the irc log has enough backlings (in the order of 1k) and changes daily, so google sees reason to re-crawl it daily 21:35
mberends is someone here browsing from ournaturalcompanions.com ? 21:55
pasteling "ovid" at 82.152.164.233 pasted "Bug? Method 'perl' not found for invocant of class 'Match'" (11 lines, 667B) at sial.org/pbot/34406 22:26
ovid That's breaking my new version of Test.pm. 22:26
moritz_ ovid: that's a sad, known "feature" 22:27
ovid :(
Crud. I'll need to work around it. Most of the spectests pass with the new Test.pm (the biggest difference is the have/want diagnostics)
mdxi is it ok to be stoked about finally stumbling on the synopses yesterday morning, and thinking they are full of awesome? or should i just be ashamed of somehow not being aware of them for this long? 22:31
moritz_ mdxi: I'm constantly amazed when I discover a new section that I never understood before 22:34
pugs_svn r24891 | moritz++ | [t/spec] more tests for initializing parent attributes 22:38
ovid mdxi: That's perfectly fine. Plenty of people are going to be astonished when they see what Perl 6 can pull off. 22:39
pasteling "ovid" at 82.152.164.233 pasted "Known bug? Method '!.^' not found for invocant of class 'Exception'" (10 lines, 641B) at sial.org/pbot/34407 22:40
moritz_ rakudo: try { die "Goodbye cruel world!" };say $! ~~ Exception
p6eval rakudo 35458: OUTPUT«1␤»
moritz_ ovid: looks like a (to me unknown) parse bug 22:41
ovid OK. I'll file it. Test.pm is going to take a while :)
eric256 whats does .^ do? (/me assumes it has something to do with inheritance...dunno) 22:43
moritz_ eric256: it calls a method on the meta class, or proto object or whatever it's called 22:44
eric256 moritz_: hmmm well that sounds as if i was in the right ball park
is that something like $!.HOW.isa("Exception") then? 22:45
moritz_ eric256: yes
[particle] my class Array is instead { ... }; # can take care of lexically replacing Array 22:46
eric256 rakudo: try { die "Goodbye cruel world!" };say $!.HOW.isa("Exception")
p6eval rakudo 35458: OUTPUT«too few arguments passed (2) - 3 params expected␤current instr.: 'parrot;P6metaclass;isa' pc 107 (runtime/parrot/library/P6object.pir:155)␤»
eric256 rakudo: try { die "Goodbye cruel world!" };say $!.HOW 22:47
p6eval rakudo 35458: OUTPUT«get_string() not implemented in class 'P6metaclass'␤current instr.: 'print' pc 18303 (src/builtins/io.pir:26)␤»
ovid rakudo: my $foo = "asdf";say $foo.HOW.isa("Exception") 22:49
p6eval rakudo 35458: OUTPUT«too few arguments passed (2) - 3 params expected␤current instr.: 'parrot;P6metaclass;isa' pc 107 (runtime/parrot/library/P6object.pir:155)␤»
moritz_ rakudo: say "abc".isa(Exception)
p6eval rakudo 35458: OUTPUT«0␤»
moritz_ for real world code .isa (inheritance) or ~~ (type conformance) is usally enough 22:50
jnthn ovid: When calling methods on the metaclass, you also need to pass along the invocant.
rakudo: my $foo = "asdf";say $foo.HOW.isa($foo, "Exception")
p6eval rakudo 35458: OUTPUT«0␤»
jnthn But there's a special syntax for that. 22:51
rakudo: my $foo = "asdf";say $foo.^isa("Exception")
p6eval rakudo 35458: OUTPUT«0␤»
jnthn Which calls it on HOW and passes $foo along as well.
pugs_svn r24892 | moritz++ | [t/spec] svn props on trim.t (use util/add-svn-props.{pl,sh})
ovid jnthn: I'm not sure I understand. I mean, I *know* what you're saying is right, but how does that relate to the bug with try { die "Goodbye cruel world!" };say $!.^isa("Exception")? 22:52
jnthn ovid: I hadn't read *that* bit. ;-) 22:53
Oh
moritz_ jnthn: that's a parse error, it complains about not being able to call method !.^isa
erm, !.^
but that ! actually belongs to $! 22:54
missing LTM fail?
ovid Yeah, it looks like a parse error, but ...
rakudo: try { die "Goodbye cruel world!" };say $!.HOW.isa("Exception")
p6eval rakudo 35458: OUTPUT«too few arguments passed (2) - 3 params expected␤current instr.: 'parrot;P6metaclass;isa' pc 107 (runtime/parrot/library/P6object.pir:155)␤»
jnthn rakudo: try { die "OMGWTFBBQ" }; say $!.WHAT;
p6eval rakudo 35458: OUTPUT«Exception␤»
moritz_ rakudo: try { die "Goodbye cruel world!" };say$!.HOW.isa($!, "Exception")
p6eval rakudo 35458: OUTPUT«say requires an argument at line 1, near "$!.HOW.isa"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
ovid That also fails. My new Test.pm is failing a few tests is failing because of that.
moritz_ rakudo: try { die "Goodbye cruel world!" };say $!.HOW.isa($!, "Exception")
p6eval rakudo 35458: OUTPUT«1␤»
jnthn rakudo: try { die "OMGWTFBBQ" }; say $!.^isa(Exception); 22:55
moritz_ ovid: if you use .HOW, you have to duplicate the $!
p6eval rakudo 35458: OUTPUT«Method '!.^' not found for invocant of class 'Exception'␤current instr.: '_block14' pc 99 (EVAL_20:55)␤»
ovid Ah! That's the workaround :)
jnthn rakudo: try { die "OMGWTFBBQ" }; say ($!).^isa(Exception);
p6eval rakudo 35458: OUTPUT«Method '!.^' not found for invocant of class 'Exception'␤current instr.: '_block14' pc 99 (EVAL_20:55)␤»
ovid rakudo: try { die "Goodbye cruel world!" };say $!.WHAT eq "Exception"
p6eval rakudo 35458: OUTPUT«1␤»
moritz_ ovid: no, it's specced that way
ovid It's not great, but it might do for now.
jnthn is consused
moritz_ .HOW doesn't give you enough information for introspection
ovid jnthn: I'm consused, too ;) 22:56
jnthn Well, it's more than one metaclass may represent many classes, so you have to say which one you mean. :-)
moritz_ the only thing wrong in Rakudo is the parse error
jnthn I'm confused why ($!).^isa is also broke though.
rakudo: eval '$!.^isa(Exception)'; say $!; 22:57
p6eval rakudo 35458: OUTPUT«Use of uninitialized value␤␤»
jnthn was expecting the parse error...
eric256 rakudo: try { die "Goodbye cruel world!" };my $x = $!; say $x.^isa("Exception") 22:58
p6eval rakudo 35458: OUTPUT«Method '!.^' not found for invocant of class 'Exception'␤current instr.: '_block14' pc 119 (EVAL_20:60)␤»
eric256 doesn't appear to be a parse error.
well maybe, is that a compiler optimization + parse error? lol
jnthn say $!.^isa(Exception); 22:59
rakudo: say $!.^isa(Exception);
p6eval rakudo 35458: OUTPUT«0␤»
moritz_ eric256: the ! in the error mesasge shouldn't be there
jnthn Oh!
moritz_ erm
wait
jnthn Why did it work there. :-|
jnthn rakudo: $! = Exception.new; say $!.^isa(Exception); 23:00
p6eval rakudo 35458: OUTPUT«1␤»
eric256 see not a parse error
moritz_ right
jnthn rakudo: $! = Exception.new; say $!.PARROT; try { die "seriously wtf?" }; say $!.PARROT 23:01
p6eval rakudo 35458: OUTPUT«Perl6Scalar->Perl6Exception␤Method 'PARROT' not found for invocant of class 'Exception'␤current instr.: '_block14' pc 142 (EVAL_19:61)␤»
jnthn Aha.
jnthn Type mapping issue. Somehow. 23:02
moritz_ rakudo: class A { has $.x }; class B is A { has $.y }; my $o = B.new(:y<2>, B{ :x<1> } ); say $o.y.perl; say $o.x.perl; 23:04
p6eval rakudo 35458: OUTPUT«undef␤"1"␤»
moritz_ jnthn: that's a nice bug I just submitted
ironically the initialization of the parent attribute (the more complicated thing) worked, the :y<2> did not 23:05
jnthn Maybe introduced in rvar which refactored class construction, or maybe dates back before then. 23:06
eric256 akudo: class A { has $.x }; class B is A { has $.y }; my $o = B.new(A{ :y<2> }, :x<1> ); say $o.y.perl; say $o.x.perl;
rakudo: class A { has $.x }; class B is A { has $.y }; my $o = B.new(A{ :y<2> }, :x<1> ); say $o.y.perl; say $o.x.perl;
rakudo: class A { has $.x }; class B is A { has $.y }; my $o = B.new(A{ :y<2> }, :x<1> ); say $o.y.perl; say $o.x.perl; 23:07
p6eval rakudo 35458: OUTPUT«"2"␤undef␤»
eric256 unicode hates me
rakudo: class A { has $.x }; class B is A { has $.y }; my $o = B.new(A{ :y<2> }, A{ :x<1> ); say $o.y.perl; say $o.x.perl;
p6eval rakudo 35458: OUTPUT«Statement not terminated properly at line 1, near "(A{ :y<2> "␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
eric256 ]arg
rakudo: class A { has $.x }; class B is A { has $.y }; my $o = B.new( :y<2> , A{ :x<1> }); say $o.y.perl; say $o.x.perl;
unicode and my keyboard both hate me
moritz_ forgot at }
p6eval rakudo 35458: OUTPUT«undef␤"1"␤»
eric256 gives up and goes to sleep
moritz_ good idea, actually 23:08
it's already tomorrow
eric256 yea the } and the Enter are too close
jnthn Hmm. Don't have any immediate fix for that Exception issue.
moritz_ it can be really annoying that on German keyboards ~ and Enter are too close
sometimes I want to write 'rm *~' to get rid of the vim backup files
moritz_ and you know what happens when I hti the Enter key instead of ~ ;-) 23:09
eric256 thank goodnees your using revision control ;)
moritz_ not for my home dir :/ 23:10
I probably should :)
rakudo_svn r35459 | moritz++ | [rakudo] implement Str.trim, patch courtesy by Ovid++
ovid Yay :) My first "real" Perl 6 patch. I'm so proud :)
jnthn ovid++ # nice work! 23:11
jnthn S29 needs a patching too, to add trim, if that didn't already happen. :-) 23:11
jnthn should really get around to working on S14 at some point soonish too. 23:12
ovid Thanks. It wasn't an impressive task, but it was a nice introduction to pir.
eric256 looks like try creates a Failure not an exception? but the Failure pir has a !exception method...whats the ! mean in parrot?
jnthn We use ! for "private" usually. eric256: The problem is that somehow the Parrot Exception doesn't get given various methods it would normally inherit from Object, though, it seems. 23:13
jnthn As in, Parrot's Exception class and Rakudo's Object class. So much mapping "fun"! 23:14
ovid Known? Method 'perl' not found for invocant of class 'Iterator' 23:15
eric256 well the !exception method in Failure.pir creatse an Exception object if it doesn't already have an exception... i think pir might hurt my head at this point
moritz_ ovid: not to me
ovid Sigh. Another one to reduce to a minimal test case :)
moritz_ ovid: masak would be so proud ;-)
ovid Now to figure out what the goldbach conjecture is doing :) 23:16
Who is masak?
moritz_ our chief bug reporter
and developer of a Perl 6 wiki engine
jnthn Probably half of the RT queue is his reports. :-) masak++ 23:17
(If not more...)
moritz_ half of the RT tickets in the perl6 queue are his, I think
ovid Oops! I should pay more attention.
eric256 forgets to check the volume nob on his radio before cursing at it for not working 23:18
moritz_ *really* goes to bed now 23:23
ovid Larry says that @array.trim should die with 'no such method' because of @array >> .=trim. How would I implement that? 23:25
[particle]1 check that the param does Scalar? 23:26
wait, won't the sig already check for that? 23:27
ovid Is it sub 'trim' :method :multi('Str')?
I have sub 'trim' :method :multi(_)
[particle]1 likely, yes
ovid I'll try that. 23:28
[particle]1 it might be (['Str'])
[particle]1 that bit of syntax has recently been discussed, not sure what's current 23:28
jnthn Does this mean that maybe it's just a method on Str, not on Any? 23:31
ovid It looks like "sub 'trim' :method :multi('Str')" works just fine.
jnth: Yeah, that's what it would mean. Hmm ... I'm not sure if that's what would be intended. 23:34
I also asked "Won't that fail with 'No such method' on an array of hashes? Or are hyperops applied recursively?" 23:36
[particle]1 you can do >> .keys.trim 23:37
hrmm, maybe it'd be @array>>.values.keys.trim; 23:38
if you want to trim the keys of the hash
>> is probably going to iterate over @array.values, so it's probably just .keys.trim 23:39
jnthn I think it's recursively.
I think hyperops also work over hashes.
I didn't implement that bit though.
[particle]1 i guess i have some re-reading to do :)
jnthn I looked at the hashes bit and thought...OK, another day. :-) 23:40
eric256 wouldn't that be @array>>.key.trim ? i was thinking >> would be like .key.trim for @array (but that might not be the case) 23:41
ovid Wow! It's astonishing how many bugs my new Test.pm has exposed! :(
[particle]1 what is Pair.trim going to do? that's the question. 23:42
jnthn ovid: Look forward to the tickets. ;-) 23:44
ovid jnthn: far too many right now. I'm going to send my new Test.pm as an attachment (not a patch) to perl6-compiler to see if I've just screwed up royally. 23:46
jnthn ovid: It's also possible you're touching on stuff that's not implemented yet. 23:47
eric256 ovid: you can put it up in github.com/eric256/perl6-examples/t...master/lib if you want a place where other people can hack on it outside the official repo 23:48
[particle]1 where is test.pl in the perl 5 source? 23:54
i'm just looking online at the repo, don't have a checkout
ah, found it in t/
pasteling "ovid" at 82.152.164.233 pasted "Sample Test.pm" (257 lines, 7.3K) at sial.org/pbot/34409 23:55
ovid eric256: I'm tired and need to go to bed, so if you want to see what I did for languages/perl6/Test.pm, just check that paste. 23:56
ovid Great timing :) 23:56